大模型系列(二):技术基础与核心能力

一、Token:大模型眼中的"语言单位"

大模型处理的是文本,但它的计算单元不是"字",也不是"词",而是 Token(词元)。

1. 什么是 Token?

Token 是模型处理文本的最小单元。它可以是:

  • 一个完整的单词:"hello" → 一个 Token

  • 一个词的一部分:"unbelievable" → ["un", "believ", "able"](3 个 Token)

  • 一个标点符号:"," → 一个 Token

  • 一个汉字:"大" → 一个 Token

不同的分词器(Tokenizer)有不同的切分方式,同一个句子在不同模型下切出的 Token 数量可能不同。

2. 为什么需要 Token?

原因 说明
词汇表限制 世界上的词是无限的,但模型需要一个有限的词汇表
处理未知词 分词可以把没见过的新词拆成已知的子词片段
控制长度 Token 数量影响计算成本和上下文窗口
多语言支持 分词器可以同时处理中文、英文等不同语言

3. Token 的计数方式

模型计费通常按 Token 计,中英文的 Token 比例大致如下:

  • 英文:1 个单词 ≈ 1.3 个 Token

  • 中文:1 个汉字 ≈ 1.5 ~ 2 个 Token

    用 tiktoken 查看 Token 数量(OpenAI 的分词器)

    import tiktoken

    enc = tiktoken.encoding_for_model("gpt-4")
    text = "大模型的学习"
    tokens = enc.encode(text)
    print(f"Token 数量: {len(tokens)}") # 输出: 5
    print(f"Token ID: {tokens}") # 输出: [12345, 67890, ...]

二、Embedding:把文字变成数学

计算机不理解文字,只理解数字。为了让模型"理解"文字,需要把 Token 转换成向量(Vector),这个过程叫 Embedding(嵌入)。

1. 什么是向量?

一个向量就是一个数字列表,比如 [0.12, -0.34, 0.56, ...]。高维向量(比如 768 维、1024 维、4096 维)可以表示丰富的语义信息。

2. 向量的核心特性:语义空间

  • 相似词的向量距离近 :"苹果" 和 "橙子" 的向量在空间中距离较近(都是水果)

  • 不相关词的向量距离远 :"苹果" 和 "银行" 的向量距离远

  • 语义关系可以被计算 :"国王" - "男人" + "女人" ≈ "女王"

3. 向量维度

模型 向量维度
BERT-base 768
GPT-2 768
GPT-3.5 4096
GPT-4 8192
中文开源模型 (ChatGLM) 4096

维度越高,表达能力越强,但计算成本也越高。

三、注意力机制:大模型读懂上下文的核心

Transformer 架构中最重要的创新就是 注意力机制(Attention Mechanism)。

1. 注意力

注意力机制让模型在处理一个词时,能够动态地关注到句子中其他所有词,并分配不同的"注意力权重"。

处理 "小明去了银行,他在那里开户" 这句话时,模型处理到 "那里" 这个代词时,注意力会集中在 "银行" 这个中心词上。

2. 自注意力(Self-Attention)

自注意力是在同一句话内部计算词与词之间的关系。

对于 "我 爱 学习" 中的 "爱":

  • 注意 "我":0.1

  • 注意 "爱":0.3

  • 注意 "学习":0.6

→ 模型知道 "爱" 这个词在上下文中主要关联 "学习"。

3. 多头注意力(Multi-Head Attention)

多个注意力头并行计算,每个头关注不同的关系,然后拼接起来:

复制代码
注意力头1:关注语法关系(主谓宾)
注意力头2:关注语义关系(同义词)
注意力头3:关注指代关系(代词指代)
...

这种设计让模型可以从多个角度理解文本。

4. 注意力机制的数学简化

复制代码
attention_score = query · key / √d
attention_weight = softmax(attention_score)
output = attention_weight · value

简单理解:

  • Query:当前词在找什么

  • Key:其他词能提供什么

  • Value:其他词的实际内容

  • 先算相关性(Query × Key),再用相关性加权求和(Value)

四、三者的关系

关系

概念 作用 类比
Token 把文字切成可计算的最小单元 把句子拆成积木块
Embedding 把 Token 转换成数学向量 给每个积木块贴上一个位置标签
注意力机制 计算词与词之间的关系 在搭建积木时,知道哪些块需要粘在一起
相关推荐
小田学Python1 小时前
DeepSeek Harness 完整上手指南:安装部署 + 必装插件 + 用一周就回不去的功能
大数据·大模型·agent·ai工具·deepseek
羲云网络1 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记4 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事5 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
aicat_cn5 小时前
json-render 接入 Chat SDK:Agent 在 Slack 和 Teams 里直接回表格和按钮
ai·大模型
神奇的代码在哪里6 小时前
Agent 记忆的组成部分:Anthropic The components of agent memory 文章的简要解读
大模型·claude·ai agent·上下文工程·agent记忆
神奇的代码在哪里6 小时前
ERNIE-5.5-Flash-Base 开源速览:280B-A14B MoE 基座,微调与推理支持 1M 上下文
大模型·模型部署·文心大模型·moe·ernie5.5
天天被压力7 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力7 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A7 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python