"我想让模型懂我们的课程。"听到这句话,很多人的第一想法是:把课程内容全加载到上下文里,不就行了?
这个办法不好。这门课光前 4 章就有七万多字,Ollama 默认的上下文只有 4096 个 token,放不下。把上下文开大,每次提问都要带着这么多内容,显存占得多,第一个字也要等很久,而且模型讲起来还是原来那个样子。
换个思路:与其每次把课程递给模型,不如直接把模型练一练。这就是微调:在已经训练好的模型上,用这门课的问答再加练一轮。
这一章,我们就来微调一个懂咱们课程的模型:不用每次递资料,问它这门课的问题,开口就是这门课的讲法。
不过微调不是万能的:有些问题,写好一段提示词就解决了;有些问题,给模型配一个能随时查的资料库更合适。所以动手之前,先弄清这三种办法各管什么。
学完你能做到:面对一个需求,判断该用提示词、RAG 还是微调;知道课程助教是什么、为什么要微调。
一、三种办法,改的地方不一样
把模型想象成一个刚入职的新同事:
- 提示词:每次派活时,递一张写清楚要求的任务单。
- RAG(检索增强生成):配一个资料柜,每次回答前先去查,看着资料回答。
- 微调:送去参加专项培训,养成固定的工作习惯和表达方式。
任务单和资料柜都是派活时临时递过去的,人还是原来那个人;培训过后,人本身变了。换成模型的说法:提示词和 RAG 改的是输入,微调改的是权重。
