GPT-3 和 GPT-3.5-Turbo API的学习日志,仅作个人用途。

目录

------------------

事先准备

1
2
3
4
pip install openai

# 使用bash...
export OPENAI_API_KEY="你的OpenAI API KEY"

创建微调模型

注意,GPT-3.5-Turbo API 目前不支持微调!

该栏块说的 API 统一默认为 GPT-3

微调 GPT-3 所需要的数据必须是 JSONL 文件,格式为:

1
{"prompt": "提白文本", "completion": "想要生成的文本"}

假设已经有一个 CSVTSVXLSXJSON 文件作为数据库,则可以使用以下命令行来重新格式化数据:

1
openai tools fine_tunes.prepare_data -f 文件名

有了 JSONL 文件后,开始微调:

1
openai api fine_tunes.create -t JSONL文件名 -m 模型名

模型名分为:ada、babbage、curie、davinci。
从左到右,速度越来越慢,能力越来越强。

注意:

一定要仔细查看微调模型的价格表!

模型 训练 使用
Ada $0.0004 / 1K tokens $0.0016 / 1K tokens
Babbage $0.0006 / 1K tokens $0.0024 / 1K tokens
Curie $0.0030 / 1K tokens $0.0120 / 1K tokens
Davinci $0.0300 / 1K tokens $0.1200 / 1K tokens

有时事件流可能会被中断,使用以下命令行来恢复微调:

1
openai api fine_tunes.follow -i 微调工作ID

事件流被中断后会自动生成一个命令供你复制粘贴运行。

查看微调工作

列出所有被创建的微调工作:

1
openai api fine_tunes.list

检索一个微调工作的状态和其他信息:

1
openai api fine_tunes.get -i 微调工作ID

取消一个微调工作:

1
openai api fine_tunes.cancel -i 微调工作ID

删除微调模型

有光就有影子,有创建就有删除:

1
openai api models.delete -i 微调模型

Python也可以删除一个微调模型:

1
2
import openai
openai.Model.delete(微调模型)
------------------

使用微调模型

你可以直接使用微调成功后,自动生成的命令行:

1
openai api completions.create -m 微调模型 -p 提白

当然主要的还是我们的 Python,这是官网示范:

1
2
3
4
import openai
openai.Completion.create(
model=FINE_TUNED_MODEL,
prompt=YOUR_PROMPT)

openai.Completion.create() 返回一个字典:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"choices": [
{
"finish_reason": "length",
"index": 数字,
"logprobs": null,
"text": "字符串"
}
],
"created": 数字,
"id": "字符串",
"model": "微调模型",
"object": "text_completion",
"usage": {
"completion_tokens": 数字,
"prompt_tokens": 数字,
"total_tokens": 数字
}
}

也就是说,只要拿到 openai.Completion.create()['choices'][0]['text'],就拿到了模型返回的字符串,我们打印这个字符串就好了。

稍作修改一番:

1
2
3
4
5
6
7
8
9
10
import openai
import prompt_toolkit

while True:
user_input = prompt_toolkit.prompt('> ')
response = openai.Completion.create(
model=微调模型,
prompt=user_input
)
print(response['choices'][0]['text'])

一个简易的控制台机器人就写好了。