[all_in_ai] AI 名词扫盲 大模型

是机会 也是 陷阱

名词扫盲

大模型

什么是大模型

LLM (large language Model) 大语言模型。平时说的 [AI 对话] [AI 助手] 都是大模型

大的体现 :

  1. 参数量大 : 模型内部有数千亿个参数
  2. 训练数据大

根据给的上下文,预测接下来最合理的文字是什么

大模型读文字的基本方式

Token 是大模型处理文本的 基本单位 。LLM 会把一句话拆分成多个 token 进行读取

对于一句话 hello world ,通常会被切分为 ["hello", "world"] ,大约一个单词对应一个token

Token :

  1. 决定模型能处理的文本长度上限 : 最常见的就是 200k
  2. 决定 API 调用花费

上下文窗口

上下文窗口 ,限制了 token 的量。 跟达模型聊的越久,越容易忘记前面发生的事

  • GPT-4 有 128K token 窗口,大约 10w个汉字
  • Claude 3.5 有 200k 的 token 窗口

不过上下文窗口并不只是包含你询问的数据,它包含 你发出去的所有消息+模型的所有回复+调用工具的结果

大模型是无状态的

LLM 本身没有任何记忆,每次调用 APi 对他来说都是第一次见面

为什么我们在网页端 Gemini 和 Gpt 上面聊天都能记住前面的话,是因为在应用层,代码已经处理了记忆

每次我们发送消息,他都会把历史对话打包成为一个列表传给大模型

这就引入了两件事 :

  1. 为什么上下文窗口会写满 : 历史对话越多,上下文窗口会更快的被占满
  2. 为什么 Agent 需要管理记忆 : Agent 在执行长任务时,必须主动决定 把哪些历史传进去,不然窗口很快就会塞满

对话的角色结构 : system,user,assistant

既然多轮对话是靠 传历史列表实现的,那么列表长什么样

调用大模型 API 时,你传入的不是一段裸文字,而是一个有结构的消息列表,每条消息都有一个 角色(role) :

  • system : 系统提示 ,给模型的"身份设定和行为规则"。比如「你是一个 OnCall 助理,只能回答和系统故障相关的问题,回答必须简洁」。这部分用户看不见,但模型会严格遵守
  • user : 用户的输入 ,就是你说的话
  • assistant : 模型之前的回复 ,多轮对话时,把历史回复也打包进来,模型才知道"之前说了什么" 用伪代码表示,大概长这样:
1
2
3
4
5
6
messages = [
  { role: "system",    content: "你是一个 OnCall 助理,回答必须简洁" },
  { role: "user",      content: "昨晚数据库报警是什么原因?" },
  { role: "assistant", content: "是慢查询导致的连接池耗尽。" },
  { role: "user",      content: "怎么预防?" },   // 当前问题
]

https://cloud.tencent.com/developer/article/2643849

大模型能帮我们做什么

  1. 使用自然语言,分析意图
  2. 会进行逻辑思考,拆解任务和做决策
  3. 生成符合要求的内容
  4. 看懂规则并且执行

大模型做不到什么

  1. 没有执行能力, 只能通过 agent+tool的方式进行调用
  2. 知识有保质期,容易瞎编
  3. 上下文窗口有限,记不住太长的内容

开发场景

在理解完上面的概念之后,我们可以知道 agent 开发 就是给 llm 增加 Tool 调用,funciton call ,MCP 并且 加上 RAG (知识库) 进行应用开发

使用 Golang 构建