一、提示模板在LLM技术栈中的位置
提示模板(Prompt Template)用于监督微调(SFT,Supervised Finetuning)阶段。
SFT很重要
SFT是大语言模型(LLM,Large Language Model)训练中的第二个阶段,也称为指令微调(Instruction Finetuning)。
图1 LLM的训练四步曲
如图1所示,具备通用能力的LLM助手,通常需要经历四个阶段的训练:
预训练(Pretraining):耗时长,数据量大、数据质量低;
监督微调(SFT,Supervised Finetuning):数据量小,数据质量高;10~100K;
奖励模型训练(RM,Reward Modeling):数据量小,数据质量高;100K~1M;
强化学习(RL,Reinforcement Learning):数据量小,数据质量高;10K~100K;
在垂直领域,基于预训练过的开源模型(如LLaMA、ChatGLM、Mistral等),完成增量预训练和SFT即可应用于业务场景。往往无需进行RM和RL。有时候,甚至直接基于基座模型完成SFT即可满足业务要求。但不管如何,SFT是必不可少的。
所以,SFT很重要,本文介绍SFT中,数据的输入格式,也就是Prompt Format。
二、LLaMA的Prompt Template
2.1 单轮对话模板
图2 LLaMA单轮对话Prompt模板
LLaMA单轮对话Prompt模板如图2所示。、[INST]、<等为特殊的token。用以标志一轮对话的开始、用户消息的、系统提示等。
system_prompt只加在第一轮对话的最开头处。各类业务场景有不同的system_prompt。我们可以使用任意的system_prompt,但关键是要保持与训练时用到system_prompt一致。
2.2 多轮对话模板
图3 LLaMA多轮对话Prompt模板
多轮对话的prompt模板如图3所示。system_prompt因为过长,被省略了。可以看到这对特殊token之间的内容为一轮对话。[INST][/INST]之间为用户消息(user_message)。
2.3 user_message
user_message为用户消息,表示用户的输入数据。以Stanford alpaca指令微调数据为例,user_message由”instruction”+ “input”拼接而来。如下图所示。
图4 Stanford Alpaca SFT微调数据
instruction表示要求模型做的事,也就是具体的任务。input表示当前任务的输入信息。input可以为空。
三、ChatGLM2的Prompt模板
ChatGLM2中build_prompt代码如下图所示
图5 ChatGLM2 构建prompt代码
可以知道,把SFT数据输入后,会形成如下的prompt数据:
图6 ChatGLM2 Prompt的输出格式
其中为特殊token---eos_token,表示序列结束。
四、总结
prompt模板用于SFT阶段。
prompt模板中通常会加入system_prompt信息;这个system_prompt因业务场景的不同而不同。
prompt模板中带有多种特殊token。
prompt模板因模型而异。
prompt模型要想生效,关键是要和训练时的模型保持一致。
Reference
1.ChatGLM2-6B多轮对话训练方式: https://zhuanlan.zhihu.com/p/651293366
2.The state of GPT by Andrew Karpathy:
https://medium.com/@chassweeting/the-state-of-gpt-by-andrew-kaparthy-fad2f007c1b9
3.指令微调数据集: https://blog.csdn.net/dzysunshine/article/details/130870398
4.Llama 2 is here - get it on Hugging Face: https://huggingface.co/blog/llama2
5.Get Llama2 Prompt Format Right:
https://www.reddit.com/r/LocalLLaMA/comments/155po2p/get_llama_2_prompt_format_right/
6.NLP实践 -- Llama2多轮对话Prompt构建:
https://blog.csdn.net/weixin_44826203/article/details/131974846
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.