跳转至

大语言模型(Large Language Model, LLM)基本概念扫盲

心法:抽象

在继续阅读前,请牢记一个原则:把复杂的事物看作黑箱,只关注关键部分的输入输出,不关心细节。

大模型生成一个字的过程发生了什么?

输入(文本):对于大语言模型来说,它接收的输入是一段文本(包括自然语言和代码)。在进入模型前,这些字符会通过分词器(Tokenizer)被拆解为一串词元(Token)。词元的划分通常基于高频的字符组合。从数量级上看,英文中1个Token大约对应0.75个单词

tokenization
英文单词被切成词元(Token)

思考时间!询问豆包前请思考五分钟

有说法用中文编程相比英文编程更省Token,花销更少?这种说法保真吗?如果用文言文呢?

中间态(语义映射):这串词元(Token)通过模型内部的神经网络算法,被转化为高维空间中的一串向量。向量代表了该词元在多维坐标系中的位置,这个位置即表征了它的语义。在空间中,向量距离越近,代表其语义关联度越高。

text to vector
英文单词被切成词元(Token)

输出(预测):基于当前的语义向量上下文,模型会计算词表中所有Token的概率分布,并预测生成下一个概率最高的词元(Token)。它通过不断将新生成的词元追加到输入序列中,并重复这个“预测下一位”的循环过程,最终拼凑出逻辑连贯的长文本。

一次多轮对话发生了什么?

理解了单次生成的过程,单轮对话本质上就是将上述过程重复进行,直到触发终止条件(这表现为模型预测并输出了一个特殊的停止符号 <EOS>,代表当前回复的逻辑已闭环或文本已生成完毕)。

那么和模型多轮对话时发生了什么呢?大模型本身不具备持久化记忆。每次交互时,系统会在后台将之前几轮的历史对话记录你的最新提示词拼接在一起,组合成一段完整的新文本作为输入。模型始终是基于这段全局上下文来预测接下来的内容,直到输出停止符号。

decoding
一次对话的Decoding过程,就是预测下一个词,然后不断

Prompt 与 KV Cache 缓存机制:

Prompt(提示词)

**即你输入给模型的指令和上下文。随着对话轮数增加,拼接的历史Prompt会越来越长。

示例:提示词差异(TBD. claude code中用同样的GLM5.1 模型,简单模糊的提示词 vs. 详细描述仔细定义的提示词,生成一个个人简介网站)

PROMPT: 
帮我写一个个人简介网站的代码,要好看一点,包含我的个人信息、作品集和联系方式。
simple prompt
简单prompt只能生成千篇一律的“紫色渐变"皮肤”
PROMPT: 
Task: 请在当前目录下创建一个完整的个人简介网站项目。
Technical Stack:
使用 React + Tailwind CSS。
使用 Lucide-react 作为图标库。
使用 Framer Motion 处理入场动画。
Structure & Content:

Hero Section: 包含一个吸引人的标题(例如:“构建未来的全栈开发者”)、简短的自我介绍和一张占位图。
Skills: 用磁贴(Tiles)形式展示技术栈:Next.js, TypeScript, GLM-4/5 API, Python, Tailwind。
Projects: 展示 3 个项目卡片,每个卡片包含:项目名称、描述、技术标签、以及一个指向 GitHub 的链接图标。
Contact: 一个简洁的联系表单,以及社交媒体链接(GitHub, Twitter, Email)。
Navigation: 粘性顶部导航栏,支持平滑滚动到对应区域。
Design Requirements:

风格: 极简主义、深色模式(Dark Mode)为主,主色调使用电光蓝(#0070f3)。
响应式: 必须完美适配手机、平板和桌面端。
交互: 所有按钮和卡片需有悬停位移效果;页面滚动时组件要有淡入动画。
Output:
请直接生成所有必要的文件(App.js, components, styles 等),并确保代码结构清晰,注释完整。
complex prompt demo
如果你将一切都清晰地定义清楚,LLM将给你一个可以直接交付的成品

左脚踩右脚上天

如果你不懂那些技术名词,没关系!让Claude Code不要先生成代码,而是先给你一个落地可用的技术方案( Shift+Tab 按两次进入计划模式)

Prompt Cache(缓存机制)

模型在处理长文本时,不必每次都从头重新理解前文。它会把前面每个 token 形成的向量表示先保存起来,后续生成新词时,只需要计算新输入对应的向量,并直接复用之前存好的那些向量结果,从而减少重复计算,提升生成速度。

模型参数量

模型参数量决定了模型处理和拟合复杂数据的容量边界。通常情况下,参数量越大,模型展现出的泛化与推理性能越强。这种规模与性能的正相关关系详见 Scaling Law(缩放定律)

  • 1B, 7B, 9B:(B = Billion, 十亿)轻量级参数模型,推理成本低,适合在手机端侧或普通消费级显卡上本地运行。

    Gemma 4 E2B
    Gemma 4 E2B 可以被部署在手机上
    - 600B, 1T:(T = Trillion, 万亿)超大规模参数,通常由多家巨头采用的混合专家架构(MoE)或稠密模型使用,需部署在庞大的云端算力集群上,用于处理极度复杂的逻辑推理任务。

    text to vector
    NVL72 每座机柜单价可达 300 万美元,可以部署4-5个参数量为1T大语言模型

工具调用原理(Tool Use)

大模型本身是一个封闭的文本生成引擎,无法直接联网或执行系统命令。工具调用的核心本质是约定的结构化文本交换

  1. 定义:系统在初始Prompt中,以文本形式告诉模型当前有哪些工具可用,以及这些工具需要什么格式的参数(通常为 JSON 格式)。

  2. 触发:当模型判定仅靠内部知识无法回答问题(例如查询“今天的上海天气”)时,它会暂停生成常规自然语言,转而输出一段符合预设格式的 JSON 指令,请求调用【天气API】,并传入参数 {"location": "Shanghai"}

  3. 执行与回传:外部的工程系统拦截到这段 JSON,代替模型执行真实的 API 请求。随后,系统将 API 返回的数据(如“25度,晴”)作为新的上下文输入给模型。

  4. 总结:模型接收到外部数据后,再次进行文本生成,最终输出自然语言回答:“北京今天天气晴朗,气温25度”。

    tool-use
    大模型进行一次工具调用的过程

智能体(Agent)

Skill

LLM的计价方式