ChatGPT(生成型预训练变换模型)
是一个自回归语言模型,目的是为了使用深度学习生成人类可以理解的自然语言
介绍
GPT(Generative Pre-Training,生成式预训练)
是由在旧金山的人工智能公司 OpenAI 训练与开发,模型设计基于谷歌开发的变换语言模型
GPT-1
2018/6 约 5GB 文本,1.17 亿参数量(神经网络)
- transformer,需要通过微调参数满足不同场景
- 竞品 Bert,Bert 根据上下文完形填空;GPT 预测未来的事
GPT-2
2019/2 约 40GB 文本,15 亿参数量
- zero-shot 即下游任务不通过参数微调实现
- 通过暗示(prompt,或提示模型需要完成的任务)完成推断,更加强大
- 采样策略,自回归模型希望模型有多样性
- 通过
温度(Temperature)
对预测结果进行结果的概率分析,温度越高结果多样性越丰富,温度越低结果越准确
- 结果的
Top k
vs Top p
- Top k 预测结果仅为前 k 个
- Top p 预测结果累加到 0.9 或 0.95 的值位候选
GPT-3
2022/5 约 45TB 文本,1750亿
参数量,为有史以来参数最多的神经网络模型,不开源
- 不做微调,训练数据包罗万象
- 3 中核心下游任务方式
few-shot
根据一些例子推断结果,结果更符合要求,输入多,API token 消耗更多
zero-shot
通过输入的自然语音描述,自行推断结果
one-shot
根据一个例子推断结果
- GPT-4
- 竞品
使用
api 调用示例
基于 Python 调用接口示例,由于国内 IP 被封,可以采用 openai API 代理,参考
pip3 install openai
export OPENAI_API_KEY="xxx"
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
model="text-davinci-003",
prompt="I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with "Unknown".", # 提示信息
temperature=0,
max_tokens=100,
top_p=1,
frequency_penalty=0.0,
presence_penalty=0.0,
stop=["\n"]
)
print(response)
import openai
openai.api_key = "<INSERT API KEY HERE>"
# Create the OpenAI API object
openai_api = openai.API()
# Ask the OpenAI API a question
response = openai_api.create_engagement("What is the capital of France?",
engagement_level="chat")
# Print the response from the OpenAI API
print(response.text)
客户端
F&Q
OpenAI not available in your country
OpenAI’s services are not available in your country
# javascript: 要手动输入
javascript:window.localStorage.removeItem(Object.keys(window.localStorage).find(i=>i.startsWith('@@auth0spajs')))
https://github.com/lencx/ChatGPT/issues/83