ChatGPT

ChatGPT (Chat Generative Pre-trained Transformer) 是一种基于人工神经网络的自然语言处理模型,是由OpenAI开发的一种大型语言模型,于2022年11月推出。它是一个预训练模型,使用了大量的文本数据进行训练,以便能够理解并生成自然语言。ChatGPT是一种强大的工具,可以用于各种任务,包括文本生成、机器翻译、语音识别和对话系统等。

ChatGPT是一个生成型预训练变换模型(GPT),使用基于人类反馈的监督学习和强化学习在GPT-3.5之上进行了微调。这两种方法都使用了人类训练员来提高模型的性能,通过人类干预以增强机器学习的效果,从而获得更为逼真的结果。在监督学习的情况下,模型被提供了这样一些对话,在对话中训练师充当用户和AI助理两种角色。在强化步骤中,人类训练员首先对模型在先前对话中创建的响应进行评级。这些级别用于创建“奖励模型”,使用近端策略优化(PPO)的多次迭代进一步微调。这种策略优化算法比信任域策略优化(trust region policy optimization)算法更为高效。此外,OpenAI继续从ChatGPT用户那里收集数据,这些数据可用于进一步训练和微调ChatGPT。用户可对他们从ChatGPT收到的回复投赞成票或反对票;在投赞成票或反对票时,他们还可以填写一个带有额外反馈的文本字段。

使用方法

请访问 https://chat.openai.com/ 以使用ChatGPT。

API 访问

注册并登录 https://platform.openai.com/account/api-keys 获取 API Key 之后,即可使用 API 访问 ChatGPT。

比如下面就是一个通过 Python 来访问 ChatGPT 的简单示例:

import os
import openai
import tiktoken

MODEL = "gpt-3.5-turbo"
openai.api_key = os.getenv("OPENAI_API_KEY")
ENCODER = tiktoken.get_encoding("gpt2")

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Who won the world series in 2020?"},
    {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
    {"role": "user", "content": "Where was it played?"}
]

response = openai.ChatCompletion.create(
    model=MODEL,
    messages=messages,
    temperature=0.2,
    frequency_penalty=0,
    presence_penalty=0,
    max_tokens=4095 - len(ENCODER.encode(prompt)),
    stream=True)
completion_text = ''
for event in response:
    if event["choices"] is not None and len(event["choices"]) > 0:
        choice = event["choices"][0]
        if choice.get("delta", None) is not None and choice["delta"].get("content", None) is not None:
            completion_text += choice["delta"]["content"]
        if choice.get("message", None) is not None and choice["message"].get("content", None) is not None:
            completion_text += choice["message"]["content"]
print(completion_text)

详细的 API 使用方法请参考官方 API 文档

ChatGPT 应用

参考文档