为了方便自己调用和及时跟上OpenAI官方API更新的节奏,我做了两件事:
- OpenAI API SDK java版本,可访问 github:openai-java
- 用VUE3写了一个网站应用,包括H5和PC两个版本(网址都是 web.felh.xyz ),还有小程序版【FELH AI】(后续不会更新了,因为不要face的微信开始对个人小程序也开始收年审的费用了)
到目前为止SDK已经支持所有2023-11-06 API更新后新加的接口(Assistants, Threads, Messages, Runs),移除了废弃和过时接口(Completions, Edits, Fine-tunes)
下面我就用一个具体的例子来创建一个基于GPT-3.5-turbo-1106这个版本的微调模型。
一、准备数据,录入系统、创建训练集文件并上传到OpenAI
- 点击左下角用户头像,然后选择【个人微调模型(Fine-tuning Model)】菜单,进入下图所示页面。
- 可以看到左上角有两种方式(【手动录入训练数据】和【上传训练集文件】)创建自己的训练集文件。(推荐使用【手动录入训练数据】)
- 手动录入训练数据
点击【录入新训练数据】,对于小白,就不要设置系统提示,只是输入问题和答案,对于单条问题和答案最好文本长一些,不要太简短,不然训练效果不好。对于一个训练文件,请至少包含10条数据,推荐包含50-100条数据。当然也不用担心自己的数据补全,等有了新的问题和答案还可以基于之前新建的微调模型继续微调。 我从网上粘贴了一些关于2023年10月以来巴以冲突的新闻,都是基础模型中不存在的内容。
点击需要训练集内容右侧的【加入训练文件】按钮加入文件。加入后,请点击本页面顶部提示中的训练文件名,然后点击【文件页面】跳转到文件页面找到对应的文件,如下图。
点击对应文件右侧上传训练集,对应训练数据会被上传到OpenAI。
记住当前的训练集文件名称,将在下一步中使用。
- 上传训练集文件
对于小白用户不建议使用这种方式创建训练集文件,需要自己准备数据,然后生成对应的JSONL文件,通过【上传文件】上传到OpenAI。 具体格式如下:
json
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already."}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?"}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters."}]}
上传时purpose请选择fine-tune,上传后可在本页面得到一个最新上传的文件,也就是我们的训练集文件,此时这个文件已经在OpenAI服务器上了。
二、根据训练集文件创建自己的微调模型
回到个人微调模型页面,点击【新建模型】
在此页面中填入微调模型的名称,基础模型选择gpt-3.5-turbo-1106,训练文件选择上一步中上传的文件,点击确认。
然后经过大概10分钟的等待即可得到我们自己的微调模型。
三、调用最新生成的微调模型
下面是使用基础模型和我们生成的微调模型的区别(左侧基础模型,右侧为微调模型):
到这里也就结束了,如果你有任何问题可以在这里留言。