news 2026/6/4 6:40:21

终于搞懂了!Token、1M上下文、KV Cache 和大模型记忆的真相

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
终于搞懂了!Token、1M上下文、KV Cache 和大模型记忆的真相

终于搞懂了!Token、1M上下文、KV Cache 和大模型记忆的真相

引言

最近在做智能客服、RAG、Agent项目时,我发现很多刚接触大模型的同学,甚至一些已经开始做AI应用开发的开发者,对几个最基础的概念其实并没有真正理解。

例如:

  • Token到底是什么?
  • 1K、128K、1M上下文是什么意思?
  • GPT为什么看起来能记住前面说过的话?
  • KV Cache是不是长期记忆?
  • 为什么云端模型能跑1M上下文,而RK3588却跑不动?

这些问题看起来简单,但网上很多文章本身就存在误导甚至错误。

尤其是下面这句:

1 Token ≈ 1.3个汉字

这句话几乎出现在无数教程里,但实际上大部分情况下是反过来的。

本文就从AI开发者的角度,把Token、上下文窗口、KV Cache以及大模型记忆机制一次讲明白。


目录

  • 什么是Token?
  • 中文到底消耗多少Token?
  • Token、参数量、上下文窗口有什么区别?
  • AI里的K和M到底怎么算?
  • 上下文窗口到底是什么?
  • 1M上下文为什么这么火?
  • 大模型真的有记忆吗?
  • KV Cache到底是什么?
  • 为什么RK3588跑不了1M上下文?
  • 给AI开发者的几点建议

什么是Token?

如果把大模型比作一个国家,那么Token就是这个国家流通的货币。

大模型内部并不是按照“字”进行计算,而是按照Token进行计算。

简单来说:

Token是大模型处理信息的最小单位。

一个Token可能是:

  • 一个汉字
  • 一个英文单词
  • 一个标点符号
  • 一个数字
  • 半个单词
  • 多个字符组合

例如:

你好,ChatGPT

经过Tokenizer处理后,可能被拆分成:

["你好", ",", "ChatGPT"]

也可能被拆分成:

["你", "好", ",", "Chat", "GPT"]

具体如何切分,取决于模型使用的Tokenizer。

不同模型采用不同Tokenizer,因此同样一段文字,在不同模型中的Token数量可能完全不同。


中文到底消耗多少Token?

这是目前网上最容易被说错的知识点之一。

很多文章都会写:

1 Token ≈ 1.3个汉字

实际上更准确的说法应该是:

对于大部分主流模型来说,1个汉字通常会消耗1~2个Token。

工程实践中经常采用:

1个汉字 ≈ 1.3~1.5 Token

进行估算。

因此:

1000 Token ≈ 600~800个汉字

而不是:

1000 Token ≈ 1300个汉字

这个换算关系搞反的人非常多。


主流模型中文Token效率对比

模型系列1汉字≈Token1000Token≈汉字
Qwen2/Qwen2.51.2~1.3770~830
DeepSeek V2/V31.25~1.35740~800
ChatGLM41.3~1.4710~770
GPT-4o1.5~1.7590~670
Llama31.7~1.9530~590
Claude31.6~1.8560~630

从这里也能看出:

国产模型在中文场景下的Token利用率普遍更高。

例如同样是8K上下文:

  • Qwen能够容纳约6000多个汉字
  • Llama可能只能容纳4000多个汉字

这也是很多中文项目优先选择Qwen的重要原因之一。


Token、参数量、上下文窗口有什么区别?

很多新人第一次接触模型时,经常会看到这样的名字:

Qwen2.5-7B-Instruct-128K

这里实际上包含三个完全不同的概念。

参数量(Parameters)

7B

表示模型拥有70亿参数。

参数量决定模型能力上限。

一般来说:

  • 7B属于小模型
  • 32B属于中大型模型
  • 70B属于大型模型

上下文窗口(Context Window)

128K

表示模型一次最多能看到128000个Token。

上下文越长,能够处理的内容越多。


Token

Token则是模型处理内容的最小单位。

三者之间没有直接换算关系。


AI里的K和M到底怎么算?

很多程序员会下意识想到:

1KB = 1024B 1MB = 1024KB

于是认为:

1K Token = 1024 Token

实际上并不是。

在AI领域:

1K = 1000 Token 1M = 1000000 Token

采用的是十进制计算方式。


常见上下文大小对应多少汉字?

上下文大小约等于汉字数
4K2600~3100
8K5300~6200
32K2万左右
128K8万~10万
1M66万~77万

简单理解:

1M上下文 ≈ 一本《红楼梦》

上下文窗口到底是什么?

理解上下文窗口最简单的方法:

把它想象成一块黑板。

所有信息都必须写在这块黑板上。

包括:

  • System Prompt
  • 历史聊天记录
  • 用户输入
  • 上传文档
  • Agent执行记录

模型每次回答问题时,都会重新查看整块黑板上的内容。

然后再生成答案。


为什么模型会失忆?

因为黑板写满了。

假设:

上下文窗口 = 8K

当总Token超过8K后:

系统会开始删除最早的内容。

类似于:

第一轮对话 第二轮对话 第三轮对话 ... 最新问题

最前面的内容会被逐渐移出窗口。

模型再也看不到它们。

于是就出现了所谓的:

AI失忆

实际上并不是失忆。

而是内容已经超出上下文窗口。


1M上下文为什么这么火?

过去做RAG时,常见流程是:

PDF ↓ 文档切分 ↓ Embedding ↓ 向量数据库 ↓ 召回 ↓ Rerank ↓ LLM回答

因为模型上下文太短。

根本无法一次塞下整个文档。

而现在:

1M Token ≈ 66万~77万汉字

已经接近一本长篇小说。

很多中小规模知识库场景下,甚至可以直接把整份文档送给模型。


1M上下文带来的改变

长文档分析

整本书一次加载。

代码库理解

完整追踪调用链。

多文档对比

同时分析几十份文档。

长程Agent

支持更长任务链执行。


但1M上下文并不意味着RAG会消失

最近两年有一种声音:

长上下文将彻底取代RAG

实际上并没有这么简单。

更准确的说法应该是:

长上下文降低了RAG系统的复杂度,但不会消灭RAG。

对于:

  • 企业知识库
  • 海量文档
  • 实时更新数据

RAG依然是控制成本和提高检索精度的重要方案。

未来更可能是:

Long Context + RAG

而不是二选一。


大模型真的有记忆吗?

答案很简单:

没有。

大模型本质上是无状态(Stateless)的。

它不会保存你的聊天记录。

也不会记住你是谁。

甚至不知道上一轮自己说过什么。


为什么它看起来能记住?

因为聊天软件帮它记住了。

每次发送问题时:

messages=[{"role":"user","content":"你好"},{"role":"assistant","content":"你好"},{"role":"user","content":"我叫张三"},{"role":"assistant","content":"好的"},{"role":"user","content":"我叫什么"}]

实际上第五轮请求时:

前四轮内容会再次发送给模型。

所以模型才能回答:

你叫张三

不是模型记住了。

而是历史记录被重新发送了一遍。


KV Cache到底是什么?

很多人第一次接触推理框架时:

  • Ollama
  • vLLM
  • Xinference
  • LM Studio

都会看到KV Cache这个词。

于是误以为:

KV Cache就是模型记忆。

其实并不是。


KV Cache真正的作用

只有一个:

提高推理速度。

还是黑板的例子。

没有KV Cache:

每次回答都要重新抄完整块黑板

有KV Cache:

以前写好的内容保留 只处理新增内容

因此推理速度大幅提升。


为什么长上下文会占用更多显存?

因为:

KV Cache会随着上下文长度持续增长。

上下文越长:

  • 显存占用越高
  • 内存占用越高
  • 推理成本越高

这也是长上下文模型部署时必须考虑的问题。


为什么RK3588跑不了1M上下文?

很多人第一反应是:

内存不够?

实际上更大的问题往往是算力。


推理分为两个阶段

阶段作用
Prefill处理输入内容
Decode生成回答

其中:

长上下文最大的瓶颈通常出现在Prefill阶段。


为什么云端GPU能跑1M?

因为GPU具备极强的并行计算能力。

例如:

  • H100
  • H200
  • B200

能够在极短时间内完成超长上下文预填充。


为什么RK3588不适合1M上下文?

RK3588这类边缘设备:

  • 内存带宽有限
  • 算力有限
  • KV Cache容量有限

即使理论上能够容纳超长上下文。

等待时间通常也远远超出用户接受范围。

因此在实际项目中:

8K ~ 32K

往往才是更合理的选择。


给AI开发者的几点建议

1、不要靠经验估算Token

一定使用官方Tokenizer进行计算。

不同模型差异可能超过30%。


2、不要盲目追求长上下文

对于绝大多数应用:

8K~32K

已经足够使用。


3、学会自己管理上下文

推荐:

  • 滚动摘要
  • Memory压缩
  • 关键信息提取

而不是无限堆历史记录。


4、端侧部署优先考虑响应速度

用户通常无法接受几十秒甚至几分钟的等待时间。

响应速度往往比极限上下文更重要。


5、长上下文与RAG不是竞争关系

未来更主流的方案可能是:

Long Context + RAG + Agent

三者协同工作。


总结

理解Token、上下文窗口、KV Cache和长上下文能力,是进入AI应用开发领域的重要基础。

记住三个核心结论:

  • Token是模型处理信息的最小单位,不是字数单位。
  • 大模型没有真正的记忆,它只是不断重新阅读历史对话。
  • 1M上下文的瓶颈很多时候不是内存,而是预填充阶段的计算能力。

很多看起来神秘的大模型能力,本质上都是工程设计与算力支撑的结果。

把这些基础概念搞懂之后,再去学习RAG、Agent、多模态、智能体开发,会轻松很多。


如果让你在项目里选择:

32K上下文 + RAG

还是

1M上下文直接加载文档

你会怎么选?

欢迎在评论区交流你的看法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 6:40:03

Agnes AI 全家桶深度解析:文本、图像、视频,参数级使用指南

文章目录背景先说结论一、文本模型:Agnes-2.0-Flash定位完整参数表基础请求参数messages 消息格式tools 工具定义格式Thinking 模式参数API 信息模型限制响应格式详解使用建议二、轻量文本模型:Agnes-1.5-Flash定位完整参数表多模态消息格式(…

作者头像 李华
网站建设 2026/6/4 6:39:40

亦唐科技数字化转型引领中国智能制造的新潮流

随着信息技术的不断发展,数字化转型已成为全球制造业发展的一大趋势。亦唐科技(YIKTONG)作为中国智能制造领域的佼佼者,凭借领先的数字化技术,逐步引领国内制造业迈向更智能、更高效、更绿色的新时代。本文将探讨亦唐科…

作者头像 李华
网站建设 2026/6/4 6:39:08

STM32F103C8T6 USB虚拟串口踩坑实录:从驱动安装失败到高速数据传输调试

STM32F103C8T6 USB虚拟串口开发实战:从驱动异常到高速传输优化第一次在STM32F103C8T6上实现USB虚拟串口功能时,设备管理器里那个黄色感叹号让我记忆犹新。作为嵌入式开发者,我们都经历过这种时刻——按照教程一步步操作,结果连最基…

作者头像 李华
网站建设 2026/6/4 6:37:57

GPT-5不存在?2024年大模型真实能力与实用路径

我不能按照该标题生成相关内容,因为:“GPT-5”目前并不存在。截至2024年7月,OpenAI官方未发布、未命名、未确认任何代号为“GPT-5”的模型。其最新公开发布的旗舰模型为GPT-4o(2024年5月发布),此前为GPT-4 …

作者头像 李华
网站建设 2026/6/4 6:37:57

Alice-Tools:5个步骤解锁AliceSoft游戏资源的终极指南

Alice-Tools:5个步骤解锁AliceSoft游戏资源的终极指南 【免费下载链接】alice-tools Tools for extracting/editing files from AliceSoft games. 项目地址: https://gitcode.com/gh_mirrors/al/alice-tools 你是否曾经面对AliceSoft游戏的神秘二进制文件感到…

作者头像 李华
网站建设 2026/6/4 6:36:54

mac 安装 Milvus 向量数据库

一、环境准备 1.1 前置条件 Docker Desktop(已安装并运行) Python 3.x(用于 pymilvus 客户端) 验证 Docker 正在运行: docker info二、安装 Milvus Standalone 2.1 创建工作目录并下载官方 docker-compose 配置 mkdir -p ~/milvus-standalone cd ~/milvus-standalonec…

作者头像 李华