当前位置:首页 » 《随便一记》 » 正文

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

19 人参与  2023年05月08日 08:57  分类 : 《随便一记》  评论

点击全文阅读


预备 Preliminary:

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

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

Step 0.5 : 设置密钥

官网指令(Linux):

export OPENAI_API_KEY="<OPENAI_API_KEY>"

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

setx OPENAI_API_KEY "<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 "<model_id>"

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

openai api fine_tunes.list

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


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

在命令行:

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

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

import openairesponse = openai.Completion.create(    # 模型名称    model= "<model_name>",    # 用户提供的输入文本,用于指导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


点击全文阅读


本文链接:http://zhangshiyu.com/post/61476.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1