外观
嵌入Embedding
约 2389 字大约 8 分钟
2025-09-05
嵌入 Embedding
嵌入(Embedding)技术是现代人工智能,尤其是深度学习的核心组件之一。它通过将高维、稀疏或非结构化的数据(如文本、图像、音频)映射到低维、连续的向量空间,让机器能更好地"理解"和处理这些信息。
从抽象概念到具体向量
Embedding 的本质是一种"向量化"或"向量表示"的技术,它将复杂数据转换为机器更易处理的数值形式(向量)。这些生成的向量(称为嵌入向量)能够捕捉原始数据的语义和特征信息,使得在原始数据中相似的对象在向量空间中的距离也更近。
核心思想:通过某种映射函数,将对象(如单词、图片、用户)转换为低维稠密的实数向量(通常几十到几百维)。这些向量并非随意排列,其关键在于:
- 向量空间中的距离和方向蕴含语义:语义相近的词(如"猫"和"狗")或相似内容的图片,其向量在空间中的距离会更近。
- 对比传统表示方法的优势:传统方法如 One-Hot 编码,虽然简单但维度高、稀疏且无法表达任何语义关系。Embedding 产生的向量则低维、稠密,并包含了丰富的语义信息。
Embedding 模型
嵌入模型的核心思想是将复杂数据转换为机器更易处理的数值形式。它通过某种映射函数,将对象(如单词、图片、用户)转换为低维稠密的实数向量(通常几十到几百维)。这些向量并非随意排列,其关键在于:
- 向量空间中的距离和方向蕴含语义:语义相近的词(如“猫”和“狗”)或相似内容的图片,其向量在空间中的距离会更近;同时,向量间的方向也可能对应某种语义关系,例如
vec("国王") - vec("男人") + vec("女人") ≈ vec("女王")
。 - 对比传统表示方法的优势:传统方法如 One-Hot 编码,虽然简单但维度高、稀疏且无法表达任何语义关系。嵌入模型产生的向量则低维、稠密,并包含了丰富的语义信息。
类型 | 描述 | 经典模型/方法 | 主要特点 |
---|---|---|---|
词嵌入 (Word Embedding) | 将词汇表中的单词映射为向量 | Word2Vec, GloVe, FastText | 捕捉词汇间的语义和语法关系;FastText 能处理未登录词 |
句子/文档嵌入 (Sentence/Document Embedding) | 将整个句子或文档表示为单个向量 | Doc2Vec, Universal Sentence Encoder, Sentence-BERT | 捕捉整段文字的语义和上下文信息 |
图嵌入 (Graph Embedding) | 将图结构数据中的节点或边映射为向量 | DeepWalk, node2vec, GCN (图卷积网络) | 保留网络中的结构信息和关系,用于社交网络分析、推荐系统等 |
图像嵌入 (Image Embedding) | 将图像内容转换为向量表示 | CNN (卷积神经网络), ResNet | 提取图像特征,用于图像分类、检索、相似度计算等 |
动态嵌入 (Contextualized Embedding) | 根据上下文为单词生成不同的向量表示 | BERT, ELMo, GPT | 解决一词多义问题,表征能力更强,已成为当前主流 |
应用场景
嵌入模型作为表示学习的基础,应用极其广泛:
- 自然语言处理 (NLP):文本分类、情感分析、机器翻译、问答系统、语义搜索(理解查询意图,返回语义相关结果,而不仅是关键词匹配)。
- 推荐系统:将用户和历史交互过的物品(如商品、电影)转换为向量,通过计算向量相似度为用户推荐可能感兴趣的物品。
- 信息检索:改善搜索引擎的效果,使其更能理解查询和文档的语义。
- 图像处理:图像识别、以图搜图、图像聚类。
- 知识图谱:表示实体和关系,用于链接预测、知识补全等。
嵌入模型的选择
模型名称 | 来源/类型 | 核心特点 | 适用场景 | 典型部署方式 | 资源需求 |
---|---|---|---|---|---|
商汤 Piccolo2 | 国内/通用中文 | 中文评测榜首(C-MTEB 70.95 分),支持 512/2K/8K 长文本,高精度语义检索 | 长文本处理、RAG、高精度语义检索 | 本地/Hugging Face 部署 | 高显存(支持 GPU 加速) |
百度 BGE 系列 (如 bge-large-zh) | 国内/通用中文 | 专为中文优化,处理速度 350ms/次,企业级服务支持 | 企业级中文问答系统、金融/医疗知识库 | 云端 API(百度千帆)或本地 | 中等显存 |
BGE-M3 | 国内/多语言 | 支持 100+语言混合检索,长文本处理(8192 tokens),召回率高 | 跨境电商、多语言内容平台、全球化企业知识库 | 本地/云端混合部署 | 高显存(需 16GB+) |
Text2Vec 系列 (如 text2vec-large-chinese) | 国内/开源中文 | 开源,支持本地部署,768 维向量,支持 FP16 量化降低内存 | 数据隐私敏感场景、本地化部署 | 本地部署 | 低至中等显存 |
M3E 系列 (如 m3e-base/large) | 国内/开源中文 | 中文社区评测优异,支持中英双语,适合本地部署 | 纯中文或中英混合任务语义匹配 | 本地部署 | 中等(内存占用约 3.2GB) |
阿里 GTE 系列 (如 GTE-large-zh) | 国内/通用中文 | 高性能、长文档支持、多语言处理,弹性向量维度 | 信息检索、文本相似度计算、文本聚类 | 云端或本地 | 中等 |
OpenAI text-embedding-3 (small/large) | 国外/商业 API | 通用性强,MTEB 排名前列,长上下文(8191 tokens),易用性高 | 全球化电商检索、快速原型开发、跨语言任务 | API 调用 | 无本地资源需求,按使用量付费 |
Google EmbeddingGemma | 国外/开源轻量 | 新模型,308M 参数,多语言,端侧离线运行,量化后<200MB 内存 | 移动端 RAG、离线语义搜索、隐私敏感应用 | 端侧设备本地部署(手机、笔记本) | 极低(量化后<200MB 内存) |
Cohere Embed | 国外/商业 API | 提供生成文本、分析文档、构建 AI 助手等功能,具备企业级安全部署选项 | 复杂行业(金融、医疗)的高影响力应用开发 | API 调用或私有化部署 | 无本地资源需求,按使用量付费 |
Sentence-BERT (SBERT) | 国外/开源 | 句向量相似度计算效率高,适合语义检索、文本聚类 | 语义搜索、文本聚类、信息检索 | 本地部署 | 中等(取决于底层 BERT 模型大小) |
Nomic-Embed-Text | 国外/开源 | 完全开源可审计,支持 32K tokens 超长窗口 | 科研论文分析、长文本处理 | 本地部署 | 中等 |
程序语言及开发框架
通用开发语言
语言 | 核心特点 | 典型应用场景 |
---|---|---|
Python | 生态丰富(PyTorch, TensorFlow, Transformers),开发效率高,社区资源多 | 绝大多数 LLM 训练和研究,快速迭代,依赖现有开源库的项目 |
C++ | 极致性能,直接操作硬件资源,精细内存控制,适合底层优化和高性能计算 | 芯片底层优化、驱动开发、高性能计算,生产环境高效推理 |
Java | 企业级系统开发,跨平台能力强,并发处理能力较好 | 企业级系统和大规模数据处理,与 Java 生态系统集成的项目 |
Rust | 内存安全,高性能,适合系统级编程 | 构建 LLM 训练框架的基础设施,需要长期维护的高稳定性项目 |
专用框架/库
框架/库 | 核心特点 | 典型应用场景 |
---|---|---|
Hugging Face Transformers | 提供大量预训练模型,API 易用,支持 PyTorch、TensorFlow 和 JAX,模型库极其丰富 | 快速实验和使用各种 SOTA 模型进行微调和推理 |
FastEmbed | 轻量级,高性能,基于 ONNX 运行时,支持 CPU 运行,无需 GPU | 需要高性能文本嵌入生成的生产环境,资源受限的场景 |
LangChain | 用于构建 LLM 应用的框架,简化与嵌入模型、向量数据库、LLM 集成的流程 | 构建复杂的 AI 应用流水线,如 RAG、智能代理 |
LangChain4J | LangChain 的 Java 版本,提供标准化 API,支持多种大模型和嵌入存储 | Java 开发者构建聊天机器人和 RAG 管道 |
LlamaIndex | 专注于构建知识检索系统,特别适合 RAG 应用 | 知识检索与 RAG 应用开发 |
嵌入式 AI 工具链
工具/库 | 核心特点 | 典型应用场景 |
---|---|---|
TensorFlow Lite / TF Lite Micro | 针对移动端和嵌入式设备优化的轻量级框架,支持在微控制器上运行模型 | 移动端(App)和嵌入式设备(如 IoT 设备)上的模型部署 |
Edge Impulse | 专注于在资源受限的嵌入式设备上开发和部署机器学习模型,提供端到端的工具链和优化库 | 工业控制、智能家居、可穿戴设备等边缘计算场景 |
CMSIS-NN | 由 ARM 推出的针对 Cortex-M 系列处理器优化的神经网络库 | 在 ARM Cortex-M 微控制器上高效运行神经网络 |
ST X-Cube-AI | 意法半导体(ST)提供的工具,用于将其 STM32 微控制器与 AI 模型集成和部署 | 在 STM32 系列 MCU 上部署和运行 AI 模型 |