简易保姆版OpenAI 3.5微调教程
😁

简易保姆版OpenAI 3.5微调教程

置顶数字
Tags
LLM
计算机
教程
Published
August 28, 2023
Author
HYH
看本课程之前可以看下openAI官方的微调教程,本课程制作业也程借助ChatGPT的能力协助一起完成。
费话不多说,先说重点,微调之前,先买好OpenAI的API额度保姆级开通OpenAI API和ChatGPT Plus教程(macOS版)我微调到一半,一直报错,原来免费额度不能用于微调,囧。

前景

众说周知,大厂的大模型调教很多直接购买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
进行下一步
notion image
 
创建finetune.py文件,输入以下代码,替换YOU_OPENAI_KEYfile-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
notion image
 
创建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)
成功运行结果会出现
notion image
 
也可以在OpenAI的playground去测试,在Model选项选择微调好的模型
notion image
notion image
 

💡
👉平时我会在知乎,博客网站上更新文章,B站更新长视频,抖音更新短视频,喜欢我的可以关注社媒 知乎GitHub B站抖音