embedding model 介绍

发布时间: 更新时间: 总字数:1472 阅读时间:3m 作者: IP上海 分享 网址

模型嵌入(Embedding)的工作原理是将文本、图像和视频转换为称为向量(Vectors)的浮点数数组,这种向量(称为嵌入向量Embedding)能够捕捉数据的语义或特征信息,使计算机更容易处理和分析复杂的关系。

介绍

Embedding Model(嵌入模型) 是一种将高维、离散的数据(如文字、图像、音频等)转换为低维、连续的向量表示的机器学习模型。

核心概念

  • 向量表示
    • 将文本、图像等非结构化数据转换为数值向量(例如,一个词变为一个 300 维的向量)
    • 例如:通过嵌入模型,可能表示为 [0.2, -0.5, 0.7, ...],而的向量可能与之接近
  • 语义保留:语义相似的词(如汽车卡车)在向量空间中的距离较近,语义无关的词(如苹果宇宙)则距离较远
  • 降维:将原始高维数据(如 One-Hot 编码的千万维词表)压缩为低维稠密向量,提升计算效率

Embedding 模型的工作原理

  • 训练目标 通过大量数据学习规律
    • 例如,Word2Vec 通过预测上下文词(Skip-Gram)或根据上下文预测中心词(CBOW)来训练
    • BERT 等模型通过掩码语言模型(Masked Language Model)学习上下文相关的嵌入
  • 输入与输出
    • 输入:离散符号(如单词、句子、图片像素)
    • 输出:固定长度的向量,隐含语义或特征信息

Embedding 模型的优势

  • 解决稀疏性:相比 One-Hot 编码,低维向量更高效
  • 泛化能力:相似语义的数据在向量空间中聚集,提升模型泛化性
  • 跨模态应用:文本、图像、音频均可嵌入到同一空间(如 CLIP 模型)

应用场景

通过 Embedding 模型,计算机能更理解数据的内在关联,成为现代 AI(如大语言模型)的核心技术之一

  • 语义搜索:将搜索词和文档转换为向量,通过相似度匹配结果(如 ChatGPT 的检索增强生成)
    • 搜索如何做蛋糕,匹配到包含烘焙指南的文档
    • 词向量king - man + woman ≈ queen
  • 推荐系统:用用户和商品的嵌入向量预测兴趣匹配度
  • 文本分类:将文本转为向量后,用分类模型判断情感、主题等
  • 机器翻译:捕捉跨语言语义关系(如cat向量接近)

常见的 Embedding 模型

Model Name Performance Sentence Embeddings (14 Datasets) Performance Semantic Search (6 Datasets) Avg. Performance Speed Model Size
all-mpnet-base-v2 69.57 57.02 63.30 2800 420 MB
multi-qa-mpnet-base-dot-v1 66.76 57.60 62.18 2800 420 MB
all-distilroberta-v1 68.73 50.94 59.84 4000 290 MB
all-MiniLM-L12-v2 68.70 50.82 59.76 7500 120 MB
multi-qa-distilbert-cos-v1 65.98 52.83 59.41 4000 250 MB
all-MiniLM-L6-v2 68.06 49.54 58.80 14200 80 MB
multi-qa-MiniLM-L6-cos-v1 64.33 51.83 58.08 14200 80 MB
paraphrase-multilingual-mpnet-base-v2 65.83 41.68 53.75 2500 970 MB
paraphrase-albert-small-v2 64.46 40.04 52.25 5000 43 MB
paraphrase-multilingual-MiniLM-L12-v2 64.25 39.19 51.72 7500 420 MB
paraphrase-MiniLM-L3-v2 62.29 39.19 50.74 19000 61 MB
distiluse-base-multilingual-cased-v1 61.30 29.87 45.59 4000 480 MB
distiluse-base-multilingual-cased-v2 60.18 27.35 43.77 4000 480 MB

说明:

  • The all-* models where trained on all available training data (more than 1 billion training pairs) and are designed as general purpose models
  • The all-mpnet-base-v2 model provides the best quality, while all-MiniLM-L6-v2 is 5 times faster and still offers good quality

实现方法&模型

  • 词嵌入(Word Embedding)
    • Word2Vec:生成静态词向量(如银行在不同语境中向量相同)
    • GloVe:基于全局词频统计的嵌入
  • 上下文相关嵌入
    • BERT:生成动态词向量(如苹果吃苹果苹果公司中向量不同)
    • GPT:基于 Transformer 的解码器结构,生成文本的嵌入表示
  • 句子/段落嵌入
    • Sentence-BERT:将句子映射为向量,用于语义相似度计算
    • Instructor:支持多任务的文本嵌入模型
模型名称 向量维度 最大行数 单行最大处理 Token 数
GPT-1 768 - -
GPT-2 1600 - -
GPT-3 12288 - -
DeepSeek v3 7168 - -
text-embedding-v3 1,024(默认)、768 或 512 10 8,192
text-embedding-v2、text-embedding-v1 1,536 25 2,048
text-embedding-async-v2、text-embedding-async-v1 1,536 100,000 2,048

说明:

  • 通过向量维度,表示词的语义关系

Embedding API 调用示例

  • 以阿里云接口为例 embedding_demo1.py
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 如果您没有配置环境变量,请在此处用您的API Key进行替换
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"  # 百炼服务的base_url
)

completion = client.embeddings.create(
    model="text-embedding-v3",
    input='测试embedding字符串',
    dimensions=1024, # 指定向量维度(仅 text-embedding-v3 支持该参数)
    encoding_format="float"
)

print(completion.model_dump_json())
  • 运行
pip install openai
python3 embedding_demo1.py
  • 结果(完整的结果下载地址
embedding-demo-result ...
{
    "data": [
        {
            "embedding": [
                -0.06671106070280075,
                0.012732073664665222,
                ...
                0.05693344399333
            ],
            "index": 0,
            "object": "embedding"
        }
    ],
    "model": "text-embedding-v3",
    "object": "list",
    "usage": {
        "prompt_tokens": 6,
        "total_tokens": 6
    },
    "id": "909822eb-aaba-9c4a-af47-8ac31a94b0dd"
}
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数