大模型入门必读:Token到Agent底层逻辑上篇
摘要
一、什么是LLM(全称:Large Language Model) 市面上几乎所有的大模型,底层引擎都基于Transform
一、什么是LLM(全称:Large Language Model)
市面上几乎所有的大模型,底层引擎都基于Transformer这套架构(如下图所示)。乍一听可能有点抽象,但你可以把它理解成一个超级复杂的“概率猜词机”——它的核心本事,就是根据你给的输入,猜下一个最可能出现的词。
大模型工作原理
1. 文字接龙本质
说白了,大模型本质上就是一场高级的文字接龙游戏。你问它一句“今天天气怎么样”,它收到这个问题后,内部就开始运算:预测下一个概率最高的词是什么。比如它先算出“非常”,就把“非常”吐出来;然后把这个“非常”再塞回原来的输入里,继续预测下一个字,这次可能是“得”;再把“得”加回去,猜下一个,比如“好”;当它觉得话说完了,就会输出一个结束符。于是你看到的就是“非常得好”。这就是大模型最底层的生成逻辑——一个词一个词地往外蹦,直到它觉得够了为止。
2. 中间人 Tokenizer 以及 Token 是什么
为什么要有 Tokenizer?
大模型本质上是一堆数学函数和矩阵运算,它只认数字,不认文字、标点这些人类符号。如果你直接把一句话扔给它,它根本读不懂。Tokenizer 就像大模型和人类之间的翻译官——它负责把人类语言编码成模型能运算的数字序列,再把模型输出的数字解码回我们能读的文字。没有 Tokenizer,大模型就是个文盲。
Token 是什么
Token 是大模型处理文本的最小基本单元。它跟单词不是一一对应的,通常来说,1 个 Token 大约相当于 0.75 个英文单词,或者 1.5 个汉字。它可以是:
- 完整单词(比如
ChatGPT) - 子词(比如
program被切成program+mer) - 单个字符(比如
a、中) - 特殊符号(比如
<|endoftext|>、[CLS])
Tokenizer 如何工作
编码阶段:先把文本做预格式化(统一大小写、插入特殊标记等),然后拆分成 Token 序列,最后查词汇表给每个 Token 分配一个唯一的数字编号。
解码阶段:模型输出一串 Token ID,Tokenizer 反向查表,把这些 ID 拼回自然语言文本,返回给用户。
搞懂了 Tokenizer 和 Token 之后,你就能明白一件事:主流大模型 API 是按 Token 收费的。通过优化你输入的内容和 Tokenizer 的解析方式,完全可以省下不少费用。
二、什么是上下文(Context)
平时用大模型时,你会发现它好像能记住之前说过的话。但仔细想想,大模型本质上就是一个函数——你给它输入,它给你输出,它并没有真实的人那样的记忆。那么它到底是怎么“记住”前文的呢?
1. Context
答案其实很简单:每次你向大模型发送消息时,它不会只发送当前这个问题,而是会把之前整段对话的历史找出来,一起打包发过去。模型每次都能看到完整的对话内容,自然就知道之前发生了什么。这个“打包在一起的所有消息”就叫 Context。用户问题、对话历史、模型正在输出的每个 Token、工具列表、System Prompt 等等,全都算在 Context 里。所以你可以简单理解:Context 就是大模型每次处理任务时所接收到的消息总和,某种程度上也可以把它看作大模型的临时记忆体。
2. Context 能有多大,能放多少东西
这个容量由 Context Window(上下文窗口)决定。下图给出了目前主流大模型的 Context Window 大小——100 万 Token 大约可以装下 150 万个汉字。对于大多数日常使用来说,这个空间已经相当充裕了。
3. 什么是 RAG 技术,有什么用
当你需要处理特别长的文本(比如公司产品手册)时,如果直接把整本手册塞进 Context,要么窗口不够用,要么成本太高。RAG 技术(检索增强生成)就是来解决这个问题的:它从长文本里只抽取与用户问题最匹配的片段,再发给大模型。这样一来,既不受 Context Window 限制,又能大幅降低成本。
(受限于篇幅,剩下的内容将在接下来的文章中继续讲述。)
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。