OpenAI 终于开放了 GPT-3.5 的微调的API,如果嫌开源模型不够好用,又舍得花钱的话,真的是个好的选择。
花了点时间研究了一下官方的文档和Cookie Book,帮大家总结一下微调的一些常见问题。
- 什么是微调(Fine-tuning)?
通常我们说的微调,指的是基于已经训练好的语言模型,使用小规模的特定的数据集继续训练它,让它更适应于特定的任务或领域。
这不太好理解,没关系继续看,第二个问题通过打比方可以帮助你更容易的理解。
- 微调和提示工程(Prompt Engineering)、嵌入(Embedding)、智能体(Agent)区别是什么?
这几个概念有相同的地方,也有差别,让我通过两个比喻来解释。
第一个经典比喻来自王建硕老师,他把LLM(大语言模型)比喻为一个已经训练好的家政阿姨,她懂中文,会做家务,但是对你家里的情况不了解。
微调:就相当于阿姨第一次到你家干活的时候,你要花一小时时间告诉她家里的情况,比如物件的摆放、哪些地方不能动,哪些地方要重点照顾。
嵌入:就相当于你省去了对阿姨进行二次培训的,而是在家里贴满纸条,这样阿姨需要做什么事先找纸条,一看到纸条就知道该怎么做了。
基于他的比喻我延伸一下:
提示工程:就是你给阿姨的指令,告诉阿姨应该做什么事情,同时为了让阿姨能圆满完成任务,在指令里通常需要包含很多背景信息。然后阿姨借助她自己的语言能力和推理能力,理解你的指令,做出推理,最终给出回应。另外阿姨记性不太好,你一次不能说太长的内容(上下文窗口长度限制)
智能体:就好比让阿姨去修家里坏了的电视,阿姨不会修,但是阿姨知道该找修电视的,于是阿姨把修电视的叫过来把电视修了,那这个修电视的就是智能体,能帮助大语言模型处理它能力之外的事。
另一个比喻是如果把LLM比作大学生:
提示工程:就好比考试的问题,问题中提供了一定的背景知识和要求,然后学生按照问题的要求和背景知识,进行推理,最终给出答案。限于考卷的长度,你的问题和学生的答案都不能太长(上下文窗口长度限制)
微调:就好比大学生要突击某门考试,考试前给这个学生一些这门课的指定格式的问题和答案,让学生记住这些知识,并且考试的时候按照上面的格式回复。
嵌入:就像记笔记,是一种短期记忆,当考试的时候,你把笔记带上,遇到问题先翻看笔记,对于笔记上有的内容可以得到准确的答案,另外由于上下文窗口长度的限制,你每次只能抄笔记本上几段的内容。
智能体:就好比考数学,学生可以带高级计算器,遇到不会算的问题,学生直接用计算器就可以得到答案,计算器就相当于智能体。