大模型基础概念
大模型的计量单位
1B: 10亿 1T:1万亿
TOKEN
每个模型的token计算方式都是不同的,和 tokenizer 模型有关。每个大模型在预训练前,都会先训练一个 tokenizer 的分词器模型,由于每个模型的预训练数据不一样,因此 tokenizer 的分词器模型也不一样。导致每个模型的计算方式都是不一样的。(除非使用了相同的tokenizer分词模型) 有可能一个中文一个token,有可能2个中文1个token。 大约标准:1个英文字符 = 0.3 个token、1个中文字符 = 0.6个token
大模型四要素
参数、推理代码、训练代码、训练数据集
大模型训练范式
预训练: 让模型说话(学知识,所有的知识都一股脑塞进去) SFT(监督微调): 让模型会说话(问题->答案的标注数据。有问题,有答案的再次训练) 对齐优化(RLHF/RLAIF):给模型设定规则(负能量、破坏性行文的对话、套路模型进行对话),让模型根据偏好来说话
模型推理过程
自回归:问题+下一个token不断自回归,得到最终的答案
工程落地
大模型的答案不理想时,存在以下几种方案优化:
- 提示层工程(预计可解决70%以内的问题)
- 提供答案示例(FewShort)解决SFT(大模型输出格式风格不统一)问题。
- RAG(在大模型预训练时,缺乏知识数据。可通过RAG在灌输知识点)
- 微调(SFT:只有在大模型回复的格式不对,或者风格/花束不统一时考虑,需要提供dataset数据,有过得去的显卡资源)
- 续训(预训练:准备大量的数据和资源进行训练,但结果不一定理想。模型对某个领域的知识点和分布出现“系统性”缺失,有丰富的显卡资源)
- 智能体(Agent:拆解问题、让大模型通过调用工具、多agent协同的方式来解决问题,需要人为开发,并且有长期维护的准备。)
RAG 和 微调(SFT)不是前后关系性的解决方案,是对等的解决方案,是2选1的。RAG一般是和Agent/LLM配合开发。“只有大模型回复格式不对/风格不统一时,才会去走SFT”。 在SFT之前,一般会提供一些示例(FewShort),来解决大模型输出格式风格不准确的问题,此时如果效果不好,可以在拿这些示例去走 SFT。
提示层工程
严格按照如下六个点来书写提示词(提示词工程六要素):
- 角色
角色一定要指定:你扮演一个优秀的大学老师
- 任务
目标需要明确:阅读这篇报告,给我总结,300字左右。
- 背景,上下文:
示例:""" 根据以下背景信息:{background_info} \n\n 请以{expertise_level}水平撰写关于{topic}的详细解释。\n确保内容准确、结构清晰,并包含实际应用示例。 """
- 输入数据:
输入数据的前后都需要有空行,输入内容使用三个反引号或tab标签,如:“```” 来标识,或使用 <tag>{input}</tag>
- 输出数据:
明确输出格式,最好提供示例
- 质量约束:
内容限制、字数、文风、语调、复杂度、创造性、自定义规则等。
示例如下:
yml# 角色
你是一名【角色定位,如:数据分析师 / 业务分析师 / 政策研究员】。
# 任务
你的任务是基于给定的输入数据进行【分析 / 总结 / 对比 / 评估】。
# 背景/上下文
【历史记录总结】。
【参考资料】。
# 输入数据
<<<
{在此粘贴输入数据}
>>>
# 输出格式
- 使用**表格**形式输出
- 表格中必须包含以下列:
1. 关键发现
2. 支撑数据(来自输入数据的原文或摘要)
3. 结论
4. 建议
- 表格下方需给出**整体结论说明**
# 质量与约束
- 仅基于输入数据进行分析
- 不得编造、推测或引入外部信息
- 若输入数据不足以支撑结论,必须明确标注为**“信息不足”**
- 不允许为了完整性而补充假设
不同模型下提示词的权重
按照常规方式来说,transform 的注意力机制会把重要的token权重放在开头的起始位置。因此位置越是靠前的。出现的次数多的token权重越大。
但是根据测算:开头位置和末尾位置的token,大模型回复的会更准确一些。不同的模型不一样,有的是起始位置,有的是末尾位置。
提示词的注意点
- 不要说谢谢
- 不要把多个任务混合在一起
- 允许LLM说 “我不知道”
- 不要过度优化提示词本身、要注重提示词工程(六要素)
- 魔法词
“让我们逐步思考”,对复杂的问题可以使用此模型,可搜索相关模版 这对我的职业生涯菲唱重要 深呼吸,仔细考虑
记住,以上方案只能减少大模型的幻觉,但是不能完全消除幻觉。
微调与续训的前后顺序
续训要放在微调的前面,因为微调后再去续训,很有可能微调的内容将会消失。
- 如果是格式不对,或者风格/花束不统一时考虑微调。
- 如果是缺失的资料太多,系统资料也不少,直接考虑续训。
Prompt、RAG、微调、续训
- 遇到问题,一定是先考虑提示词是否能解决,再到 RAG、在到微调、在到续训。
- 微调的模型基座: 7-14B 左右的小模型
一般到RAG就到底了,微调都很少。本质上都是为了解决问题,实在不行就上智能体。
温度参数 temperature
- 值的设置一般是:0-2 之间,设置在 0.7 是最合理的