chatGPT的FineTuning最佳实践:创建自己的微调模型

为了方便自己调用和及时跟上OpenAI官方API更新的节奏,我做了两件事:

  1. OpenAI API SDK java版本,可访问 github:openai-java
  2. 用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)】菜单,进入下图所示页面。
  • 可以看到左上角有两种方式(【手动录入训练数据】和【上传训练集文件】)创建自己的训练集文件。(推荐使用【手动录入训练数据】)
  1. 手动录入训练数据


点击【录入新训练数据】,对于小白,就不要设置系统提示,只是输入问题和答案,对于单条问题和答案最好文本长一些,不要太简短,不然训练效果不好。对于一个训练文件,请至少包含10条数据,推荐包含50-100条数据。当然也不用担心自己的数据补全,等有了新的问题和答案还可以基于之前新建的微调模型继续微调。 我从网上粘贴了一些关于2023年10月以来巴以冲突的新闻,都是基础模型中不存在的内容。


点击需要训练集内容右侧的【加入训练文件】按钮加入文件。加入后,请点击本页面顶部提示中的训练文件名,然后点击【文件页面】跳转到文件页面找到对应的文件,如下图。


点击对应文件右侧上传训练集,对应训练数据会被上传到OpenAI。


记住当前的训练集文件名称,将在下一步中使用。

  1. 上传训练集文件


对于小白用户不建议使用这种方式创建训练集文件,需要自己准备数据,然后生成对应的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分钟的等待即可得到我们自己的微调模型。

三、调用最新生成的微调模型

下面是使用基础模型和我们生成的微调模型的区别(左侧基础模型,右侧为微调模型):

到这里也就结束了,如果你有任何问题可以在这里留言。

相关推荐
NLP小讲堂4 分钟前
LLaMA Factory 深度调参
人工智能·机器学习
不懂嵌入式10 分钟前
基于深度学习的水果识别系统设计
人工智能·深度学习
江小皮不皮19 分钟前
为何选择MCP?自建流程与Anthropic MCP的对比分析
人工智能·llm·nlp·aigc·sse·mcp·fastmcp
GIS数据转换器33 分钟前
当三维地理信息遇上气象预警:电网安全如何实现“先知先觉”?
人工智能·科技·安全·gis·智慧城市·交互
网易易盾33 分钟前
AIGC时代的内容安全:AI检测技术如何应对新型风险挑战?
人工智能·安全·aigc
工头阿乐38 分钟前
PyTorch中的nn.Embedding应用详解
人工智能·pytorch·embedding
alpszero41 分钟前
YOLO11解决方案之物体模糊探索
人工智能·python·opencv·计算机视觉·yolo11
vlln1 小时前
适应性神经树:当深度学习遇上决策树的“生长法则”
人工智能·深度学习·算法·决策树·机器学习
奋斗者1号1 小时前
机器学习之决策树与决策森林:机器学习中的强大工具
人工智能·决策树·机器学习
多巴胺与内啡肽.1 小时前
OpenCV进阶操作:风格迁移以及DNN模块解析
人工智能·opencv·dnn