名词扫盲
大模型
什么是大模型
LLM (large language Model) 大语言模型。平时说的 [AI 对话] [AI 助手] 都是大模型
大的体现 :
- 参数量大 : 模型内部有数千亿个参数
- 训练数据大
根据给的上下文,预测接下来最合理的文字是什么
大模型读文字的基本方式
Token 是大模型处理文本的 基本单位 。LLM 会把一句话拆分成多个 token 进行读取
对于一句话 hello world ,通常会被切分为 ["hello", "world"] ,大约一个单词对应一个token
Token :
- 决定模型能处理的文本长度上限 : 最常见的就是
200k - 决定 API 调用花费
上下文窗口
上下文窗口 ,限制了 token 的量。 跟达模型聊的越久,越容易忘记前面发生的事
- GPT-4 有 128K token 窗口,大约 10w个汉字
- Claude 3.5 有 200k 的
token窗口
不过上下文窗口并不只是包含你询问的数据,它包含 你发出去的所有消息+模型的所有回复+调用工具的结果
大模型是无状态的
LLM 本身没有任何记忆,每次调用 APi 对他来说都是第一次见面
为什么我们在网页端 Gemini 和 Gpt 上面聊天都能记住前面的话,是因为在应用层,代码已经处理了记忆
每次我们发送消息,他都会把历史对话打包成为一个列表传给大模型
这就引入了两件事 :
- 为什么上下文窗口会写满 : 历史对话越多,上下文窗口会更快的被占满
- 为什么 Agent 需要管理记忆 : Agent 在执行长任务时,必须主动决定 把哪些历史传进去,不然窗口很快就会塞满
对话的角色结构 : system,user,assistant
既然多轮对话是靠 传历史列表实现的,那么列表长什么样
调用大模型 API 时,你传入的不是一段裸文字,而是一个有结构的消息列表,每条消息都有一个 角色(role) :
- system : 系统提示 ,给模型的"身份设定和行为规则"。比如「你是一个 OnCall 助理,只能回答和系统故障相关的问题,回答必须简洁」。这部分用户看不见,但模型会严格遵守
- user : 用户的输入 ,就是你说的话
- assistant : 模型之前的回复 ,多轮对话时,把历史回复也打包进来,模型才知道"之前说了什么" 用伪代码表示,大概长这样:
|
|
https://cloud.tencent.com/developer/article/2643849
大模型能帮我们做什么
- 使用自然语言,分析意图
- 会进行逻辑思考,拆解任务和做决策
- 生成符合要求的内容
- 看懂规则并且执行
大模型做不到什么
- 没有执行能力, 只能通过
agent+tool的方式进行调用 - 知识有保质期,容易瞎编
- 上下文窗口有限,记不住太长的内容
开发场景
在理解完上面的概念之后,我们可以知道 agent 开发 就是给 llm 增加 Tool 调用,funciton call ,MCP 并且 加上 RAG (知识库) 进行应用开发