看本课程之前可以看下openAI官方的微调教程,本课程制作业也程借助ChatGPT的能力协助一起完成。
前景
众说周知,大厂的大模型调教很多直接购买OpneAI的API,照着同样的问题调教回答,和算法。
(某大餐大模型开发组成员跟我说的),每个月大几十上百万的支出,就是为了参照现业内最强大模型的标准,既然大厂都这样做,那我们这些小的开发人员去依靠OpneAI的API去开发产品,APP也是理所当然了(注:国企央企企业不允许OpneAI的API的应用或者产品进入系统内部)
教程
第一步:准备训练集
为了照顾没有科学上网的朋友,我单独把聊天记录复制了下来,蓝色的代表提问方
利用ChatGPT准备训练集的聊天记录 我用了一种比较偷懒的方式去准备训练集,整个流程是这样的
- 找到一些视频或者文字资料,复制链接
- 给到ChatGPT链接,让他总结文字内容
- 使用的是GPT4和插件:YT Summarizer(用于总结视频内容)Browserop(用于浏览网页)
- ChatGPT根据文字内容转化成训练集的.XSONL格式
因为我这里只是做教学示范,所以用与训练的训练集内容不多,下面是训练集的代码格式,复制后再去修改成自己的内容
{"messages": [{"role": "user", "content": "我刚创业,有什么重要的启示吗?"}, {"role": "assistant", "content": "首先,要有清晰的愿景和使命。同时,专注于解决真正的问题,不断学习和适应市场变化。"}]} {"messages": [{"role": "user", "content": "如何找到一个好的创业点子?"}, {"role": "assistant", "content": "观察市场需求和趋势,倾听用户的反馈。解决一个现实问题或提供便利的解决方案通常会引发好的创业点子。"}]} {"messages": [{"role": "user", "content": "我应该如何制定切实可行的创业计划?"}, {"role": "assistant", "content": "明确目标,分析市场和竞争环境。制定详细的商业计划,包括市场营销策略、财务预测和团队组建计划。"}]}
第二步:搭建环境
在终端或者Visual Studio Code编辑器里创建一个date.py文件,代码直接复制,替换自己的
YOU_OPENAI_KEY
和/Users/heyihui/Downloads/个人项目/llm微调测试/X.jsonl
(路径文件)import os import openai # 设置你的OpenAI API密钥 openai.api_key = "YOU_OPENAI_KEY" #上传训练文件 training_file = openai.File.create( file=open("/Users/heyihui/Downloads/个人项目/llm微调测试/X.jsonl","rb"), purpose="fine-tune" ) print(training_file. id)
运行终端会出现以下结果,需要复制
file-cVLy8LcFdgVpRxRtsXbb3eJn
进行下一步
创建finetune.py文件,输入以下代码,替换
YOU_OPENAI_KEY
和file-cVLy8LcFdgVpRxRtsXbb3eJn
运行文件,等待OpenAI的官方邮件
import os import openai openai.api_key ="YOU_OPENAI_KEY" # 创建微调作业 openai.FineTuningJob.create(training_file="file-vdFrgTRs22jNPmad7IGZBb1x", model="gpt-3.5-turbo")
第三步:测试微调模型
等微调成功,OpenAI会发送一份邮件,里面会有新模型的ID(黄色高亮的是ID),复制ID
创建runmodel.py文件,复制以下代码,替换
YOU_OPENAI_KEY
和模型ID:ft:gpt-3.5-turbo-0613:hyh2::7t9zP397
(这里需要提供完整的ID,而不是gpt-3.5-turbo-0613:hyh2::7t9zP397
)其中
messages=[...]
: 提供一个消息列表来与模型交互。每个消息都有一个角色(role
)和内容(content
)。在这个例子中,首先是一个系统消息,告诉模型它是一个乐于助人的创业助理,拥有丰富的创业知识,可以指导问你问题的人,内容为"Hello!创业者"。运行文件
import os import openai openai.api_key = "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" completion = openai.ChatCompletion.create( model="ft:gpt-3.5-turbo-0613:hyh2::7t9zP397", messages=[ {"role": "system", "content": "You are a helpful entrepreneurial assistant who possesses abundant knowledge about entrepreneurship and can guide people who ask you questions."}, {"role": "user", "content": "Hello!创业者"} ] ) print(completion.choices[0].message)
成功运行结果会出现
也可以在OpenAI的playground去测试,在Model选项选择微调好的模型