昨天的追友套路竟然没人看,太可惜了。虽然我知道大家都想快速成功,而且快速成功的秘诀很简单:MONEY!(钱)
可是大伙缺的反而正是这个。
大清早,刷X,看到了一则推送。
OpenAI宣布推出GPT-3.5 Turbo微调功能。
大语言模型的微调(Fine-tuning)是一种在预训练模型的基础上,对特定任务进行深度训练的方法。
微调的基本思想是,先在大规模文本数据上预训练一个大型的语言模型,例如,GPT-3.5,然后,使用特定任务的数据集(如法律、医疗),进一步对模型进行训练,以适应特定的任务。
在这个过程中,模型的参数会进行微小的调整,使其在特定业务场景上的性能更好。
通过微调,企业、开发人员可以使用自己的数据,结合业务用例构建专属ChatGPT。
大家看到“微调”这个词可能有些懵,打个比方吧。
大语言模型就像一个已经训练有素的家政靓妹,她懂汉语,会做家务,但是对你家里的情况不了解。
微调就相当于靓妹第一次到你家干活,你要花时间告诉她家里的情况,比如物件如何摆放、哪些地方要重点打扫、哪些地方不能动等等。靓妹按照这些要求,可以更出色地完成对你的家政工作。
根据OpenAI的官方微调说明文档,微调功能可以让模型更好地遵循指令,使输出简洁或始终以特定语言进行响应。例如,开发人员可以使用微调来确保模型,在提示使用英语时始终以英语进行响应。
怎么微调呢?
只需四步。
1、准备数据,创建一组多样化的演示对话,类似于要求模型在实际输出中的对话。
数据集中的每个示例都应该与OpenAI的聊天完成 API 格式相同的对话,特别是消息列表,其中每条消息都有角色、内容和可选名称。
格式像这样:
{"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."}]}
2、上传数据集文件
3、创建微调作业,使用 OpenAI SDK开始进行大规模数据训练、微调。训练模型可能需要几分钟或几小时,具体取决于模型和数据集大小。
除了创建微调作业外,开发者还可以列出现有作业、检索作业状态或取消作业。
模型训练完成后,创建微调作业的用户将收到一封确认电子邮件。
4、微调作业完成后模型就可以投入使用了。
在某些情况下,用户的微调模型可能需要几分钟才能准备好处理请求。如果对模型的请求超时或找不到模型名称,可能是因为模型仍在加载中,可在几分钟后重试。
OpenAI因为也要生存,所以微调功能不是免费使用的。微调分为初始训练成本和使用成本两大部分。
训练成本:每1000个tokens花销0.008 美元。
使用输入:每1000个tokens花销0.012 美元。
使用输出:每1000个tokens花销0.016 美元。
举个例子,微调3次包含了100000个tokens的文件,预期训练成本是2.40美元。
如果针对微调感兴趣,更深入的研究,可以参考下面的文献:
https://openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates
https://platform.openai.com/docs/guides/fine-tuning