网站首页 > 文章精选 正文
这里主要是讲微调gpt-3.5的模型,使用自己企业的数据,在openai基础上训练一个自己行业的专有大模型
总的来说:
Fine Tuning的优点是,它能够使ChatGPT模型快速适应中文口语,并能够在短时间内实现中文口语的生成。此外,Fine Tuning技术也能够提高ChatGPT模型的准确性和效率,因为微调后的模型已经具有了更好的中文口语理解和生成能力。
Fine Tuning的缺点是,需要大量的中文口语数据集来进行微调。此外,微调后的模型可能会出现过拟合现象,导致对新数据的适应性不足。
微调(fine-tune)是什么?
网上内容多的是,不过多解释,只讲核心的
微调的基本思想是,先在大规模文本数据上预训练一个大型的语言模型,例如 GPT-3.5(这部分是大模型),然后使用特定任务的数据集(如法律、医疗),进一步对模型进行训练,以适应特定的任务(这部分是微调)。在这个过程中,模型的参数会进行微小的调整,使其在特定业务场景上的性能更好。
直接上代码:
1、首先需要拿到key和url,这个github的项目比较火,方便多了:
https://github.com/xing61/xiaoyi-robot, 拿到key和url。
2、开始撸python代码:(其它语言类似)
- 准备训练数据
数据格式要注意形如下面:
{"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."}]}
下面是代码
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "http://flag.smarttrot.com/index.php/api/v1"; #智增增的base_url
# files
def files():
openai.api_key = API_SECRET_KEY
openai.api_base = BASE_URL
resp = openai.File.create(
file=open("mydata.jsonl", "rb"),
purpose='fine-tune'
)
json_str = json.dumps(resp, ensure_ascii=False)
print(json_str)
- 上传训练数据
上传成功就自动开始训练了
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "http://flag.smarttrot.com/index.php/api/v1"; #智增增的base_url
# jobs
def jobs(file_id):
openai.api_key = API_SECRET_KEY
openai.api_base = BASE_URL
resp = openai.FineTuningJob.create(training_file=file_id, model="gpt-3.5-turbo") #训练文件的id要从上一步获取得到
json_str = json.dumps(resp, ensure_ascii=False)
print(json_str)
- 检查是否训练完成
要注意的是:
上一步提交完训练任务之后,模型是需要一段时间来训练的,训练的时长取决于你的数据量大小、当下训练的任务数、openai的算力是否充足等等。
也就是说模型是否训练好,是需要有一个判断的
这里通过返回数据的:status=succeeded来进行判断
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "http://flag.smarttrot.com/index.php/api/v1"; #智增增的base_url
# retrieve
def retrieve(ftid):
openai.api_key = API_SECRET_KEY
openai.api_base = BASE_URL
resp = openai.FineTuningJob.retrieve(ftid) #微调任务id要从上一步获取得到
json_str = json.dumps(resp, ensure_ascii=False)
print(json_str)
- 使用微调模型
要注意的是:
像使用基础模型gpt-3.5,gpt-4一样,但这个模型名字是你自己训练的,所以名字是比较特殊的,需要从上一步的接口中获取得到
API_SECRET_KEY = "你的智增增获取的api_key";
BASE_URL = "http://flag.smarttrot.com/index.php/api/v1"; #智增增的base_url
# chat
def chat_completions(query):
openai.api_key = API_SECRET_KEY
openai.api_base = BASE_URL
resp = openai.ChatCompletion.create(
model="ft:gpt-3.5-turbo-0613xxxxxxxxxxxxxxxxxxx", # 模型名字要从上一步获取得到
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": query}
]
)
json_str = json.dumps(resp, ensure_ascii=False)
print(json_str)
恭喜,大功告成!!
你就在gpt-3.5基础上训练了一个自己的模型了
猜你喜欢
- 2025-06-12 AI系统提示词:V0(aide提示)
- 2025-06-12 这AI浏览器代理太强!AI帮你自动完成复杂网页操作,微软开源新神器
- 2025-06-12 史蒂芬·金、扎迪·史密斯等人作品被用于训练人工智能
- 2025-06-12 DeepSeek开源周收官,颠覆存储架构!OpenAI继续“大力出奇迹”,GPT-4.5价格达R1的270倍
- 2025-06-12 刚刚,ChatGPT的深度研究可以连接GitHub了,网友:这是真·RAG
- 2025-06-12 OpenAI全新 Agent 套件来了,可以手搓Manus,5大要点一网打尽
- 2025-06-12 推荐一款免费的高质量TTS API项目,零成本生成高质量语音!
- 2025-06-12 刚刚,OpenAI最强图像生成API上线,一张图1毛5!自定义解锁神P图
- 2025-06-12 LangChain使用mcp-openai和通义千问
- 2025-06-12 编程革命爆发!刚刚,OpenAI最强智能体上线ChatGPT
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)