概念理解
LLM
大语言模型(Large Language Model)
Prompt
给大模型的输入语。
优秀的prompt可以让AI的回复质量更高,避免多次问答,节省Token
- System Prompt(系统提示词)
- 开篇设定,例如,可以给它固定为"你是一名资深的Java开发工程师"
- 很多大厂会写死
绝不允许回答政治敏感问题,直接回复"我无法回答"来规避风险
- User Prompt(用户提示词):用户自己输入的问题
Token
大模型读写文字时的基本单位。一段内容被拆解,被拆解的每一块都是一个Token
1个汉字 ≈ 1-2个Token,1个单词 ≈ 0.8-1个Token
问的问题算Token,AI的回答内容也算
上下文窗口 / 记性
AI一次性能够理解的Token量。
输入3000的Token,回答7000的Token,假设模型记性只有1wToken,那么后续提问时,前面的内容就会被悄悄擦除。
128K的Token 指的128*1024个Token,约七八万汉字
Embedding(嵌入)和 Vector(向量)
把文字转成浮点数列表,就是Embedding,得到的列表就是向量
1024维的向量,指的是1.23, -2.3, 0.3, ... 共1024个,Java中就是 float1024
RAG
Retrieval:检索
Augmented Generation:增强生成
RAG是一种思想(检索、增强、生成)。Java、Python这些都是用来检索增强的工具。
示例:
1、用户提问你们公司年假有几天。由于训练AI的资料里面没有,它只能靠着惯性乱编。
2、用Java代码提前把公司手册拆成向量存入数据库中
3、提问时把问题转为向量,去库中找出距离最近的内容块作为小抄拿出来
4、把这个小抄和用户问题一起发给AI,让AI照着小抄生成回答
这个过程就是RAG。
Function Calling
示例:
-
用户询问今日天气,如果没有Function Calling,那么AI会乱编。
-
Java提前准备好读取天气
getWeather的方法,并把方法的调用方式告知AI。 -
AI收到用户询问,分析后去调用
getWeather,并根据方法返回的结果回答用户。
LLM不直接回答,而是先生成结构化指令(JSON),让Java拿到这个指令后去做事情(发邮件、查天气、查数据库等),做完后的结果返回AI,AI再根据这个结果输出最终回答。
微调(SFT/QLoRA)
微调:为了让AI适应特定业务,于是对它进行参数调整。(全量微调耗时耗钱,几乎不用)
SFT:一种方式,用格式化的问答对喂给AI,让AI背下来之后再使用
QLoRA:新加一个U盘,给它调参数,调好了之后再把它跟原来的AI放一起,再回答问题