【实践笔记】手把手带你微调自己的GPT-davinci-003 关联 ChatGPT,OpenAI,微调API,Fine-tune API

预备 Preliminary:

接下来的操作我默认以下条件已满足:

1.已安装openai pakage, 具体可以看我的上两篇文章。
2.做的是生成任务,如果是其他任务诸如抽取和问答,可以参考,对照官方文档调整对应操作。

Step 0.5 : 设置密钥

官网指令(Linux):

export OPENAI_API_KEY=""

如果你是Windows,请这样操作:

setx OPENAI_API_KEY ""

Step 1 :准备数据

我是简单的生成,所以只有输入"prompt"和输出"completion"这两个东西,
官方给了很多数据格式与载体格式,我这里用的是csv,
很简单,两个列,列名对应好就可以。
这里演示,我们假设我们的微调训练数据文件名为 pac.csv

openai tools fine_tunes.prepare_data -f pac.csv

此时完成了文件处理,他会帮你加好一些预处理操作,一直选Y(yes)就行。


Step 2: 创建并训练微调模型

参数 -t 是你生成的jsonLine文件
参数 -m是你的基础模型,这里我选择的是达芬奇

openai api fine_tunes.create -t "pac_prepared.jsonl" -m davinci

当这句话开始执行, 先会把文件传到云端,然后微调训练就开始了,你可以用给出的命令 follow查看进度。

openai api fine_tunes.follow -i ""

或者你也考虑list指令看当前全部模型状态

openai api fine_tunes.list

在输出中找到你的训练id, status属性会显示"pending"
当训练结束,可以使用的时候,status会变成 “processed”


Step 3: 使用微调模型结果进行预测:

在命令行:

openai api completions.create -m "" -p " 帮我生成肯德基吮指原味鸡的广告语 ->"

如果你想像在官网playground上面那样调一些模型参数,可以考虑python调用方式:

import openai
response = openai.Completion.create(
    # 模型名称
    model= "",
    # 用户提供的输入文本,用于指导GPT输出
    prompt=" 生成文案关于必胜客的牛肉披萨 ->",
    # 控制输出的多样性,0-1,其中0表示最保守的输出,1表示最多样化的输出。
    temperature=0.2,
    # 输出的最大长度(输入+输出的token不能大于模型的最大token),可以动态调整
    max_tokens=1000,
    # [控制字符的重复度] -2.0 ~ 2.0 之间的数字,正值会根据新 tokens 在文本中的现有频率对其进行惩罚,从而降低模型逐字重复同一行的可能性
    frequency_penalty=0.5,
    # [控制主题的重复度] -2.0 ~ 2.0 之间的数字,正值会根据到目前为止是否出现在文本中来惩罚新 tokens,从而增加模型谈论新主题的可能性
    presence_penalty=0.5,
)
print(response['choices'][0]['text'])

response有很多输出属性,可以自行做其他拆解。
此处python调用API的代码参考 @感谢地吸引力 原文链接:

https://blog.csdn.net/weixin_43764974/article/details/129218852

你可能感兴趣的:(实践笔记,chatgpt,python,人工智能,自然语言处理,nlp)