核心概念区分

1. Token(令牌/分词)

  • 是什么:将文本拆分成最小处理单元的过程
  • 形式:离散的符号/标记(如单词、子词、字符)
  • 目的:让计算机能理解文本结构
  • 示例
    文本:"I love AI"
    Token化结果:["I", "love", "AI"]
    

2. Embedding(嵌入/向量化)

  • 是什么:将离散token转换为连续数值向量的过程
  • 形式:高维空间中的浮点数数组
  • 目的:捕获语义含义,使相似含义的token有相似向量
  • 示例
    Token: "king" → 向量: [0.2, -0.1, 0.8, ...]
    Token: "queen" → 向量: [0.19, -0.12, 0.79, ...] # 与"king"向量相似
    

标准处理流程

文本数据流程

原始文本 → Token化 → Token序列 → Embedding → 向量表示

具体步骤

  1. 原始文本"人工智能正在改变世界"
  2. Token化["人工", "智能", "正在", "改变", "世界"](以中文分词为例)
  3. Embedding:每个token转换为向量
    • "人工"[0.12, -0.34, 0.56, ...]
    • "智能"[0.10, -0.32, 0.58, ...]
  4. 组合向量:通过池化(如平均)或特殊token得到整个文本的向量

现代模型的实际情况

# 以BERT为例的简化流程
text = "Hello, world!"

# 1. Tokenization
tokens = tokenizer.tokenize(text)  # ["hello", ",", "world", "!"]
token_ids = tokenizer.convert_tokens_to_ids(tokens)  # [7592, 1010, 2088, 999]

# 2. Embedding查找(在模型内部)
# embedding层将每个token_id映射为向量
# token_id 7592 → 查找embedding表 → 得到向量[0.1, -0.2, 0.3, ...]

# 3. 最终得到整个序列的向量表示

常见疑问澄清

Q:每个token都有一个向量吗?

A:是的,在大多数模型中,每个token都会被转换为一个独立的向量。但最终我们通常需要整个文本的一个向量,常见做法:

  • [CLS]特殊token的向量(BERT)
  • 所有token向量的平均值
  • 最后一个隐藏层的池化输出

Q:直接文本→向量可能吗?

A:是的,有些专门模型(如sentence-transformers)可以直接从文本生成向量,内部仍然经过tokenization和embedding步骤,但对用户透明。

Q:非文本数据(如图片)呢?

A

  • 图像:直接通过CNN/ViT等模型提取特征向量,无需tokenization
  • 音频:通过声学特征提取后embedding
  • 多模态:各自处理后再融合

在向量数据库上下文中的完整流程

原始数据 → 预处理 → Token化 → Embedding模型 → 向量 → 存入向量数据库
   ↓
 文本/图片/音频           Token序列     每个token向量  整个数据的向量表示

实用示例:使用OpenAI API

import openai

# 用户只需提供文本,API内部完成所有步骤
response = openai.Embedding.create(
    input="人工智能的未来",  # 原始文本
    model="text-embedding-ada-002"
)

vector = response['data'][0]['embedding']  # 直接得到1536维向量
# 内部隐含:tokenization → embedding → 池化 → 输出向量

关键总结

  1. Token化是文本的"分词",将连续文本拆分为离散单元
  2. Embedding是"向量化",将离散单元映射到连续向量空间
  3. 流程顺序:必须先Token化,再Embedding,因为embedding模型需要token作为输入
  4. 最终目标:获得整个数据片段的单一向量,用于相似性检索

简单记忆:Token是"拆解",Embedding是"转换",两者是上下游关系,共同完成从文本到数值向量的转变。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐