导语

大模型很强,但它有一个致命弱点:记忆有限。你公司的内部文档、产品手册、客户历史记录——这些数据模型统统不知道。怎么让模型在海量私有数据中快速找到相关信息?

答案是两个关键技术:Embedding(嵌入)向量数据库。Embedding 负责把文本转换成数字向量(语义相似 = 向量接近),向量数据库负责在百万级向量中毫秒级找到最相似的。

这两者是 RAG、语义搜索、推荐系统的底层基石,也是下一篇 RAG 文章的前置知识。


一、什么是 Embedding:把万物变成向量


1.1 直觉理解

Embedding 的核心思想:语义相似 = 向量接近

"猫在沙发上睡觉"  → [0.23, 0.87, -0.12, 0.45, ...]  ─┐ 距离近"小猫躺在沙发上"  → [0.25, 0.85, -0.10, 0.43, ...]  ─┘ (语义相似)"今天股市大涨"    → [-0.67, 0.12, 0.89, -0.34, ...]     距离远(语义不相关)

每个文本被转换成一个固定长度的数字向量(比如 1536 维),向量在高维空间中的位置关系反映了语义关系。

1.2 从 Word2Vec 到 Sentence Embedding

阶段 年份 代表 关键突破
静态词向量 2013 Word2Vec, GloVe “king - man + woman ≈ queen”
上下文词向量 2018 ELMo, BERT 同一个词在不同上下文有不同向量
句子向量 2019 Sentence-BERT 直接生成句子级别的语义向量
现代 Embedding 2023+ BGE-M3, text-embedding-3 高质量、多语言、多粒度

1.3 稠密 vs 稀疏

  • 稠密向量(Dense):每个维度都有值,如 [0.23, 0.87, -0.12, ...],捕获语义信息
  • 稀疏向量(Sparse):大部分维度为 0,如 TF-IDF/BM25,捕获关键词匹配
  • 混合方式:两者结合效果最好(后面会讲)

二、主流 Embedding 模型对比


模型 厂商 维度 多语言 定价/1M tokens 特点
text-embedding-3-large OpenAI 3072 $0.13 维度可调,性价比高
text-embedding-3-small OpenAI 1536 $0.02 极便宜
Embed v3 Cohere 1024 $0.10 支持搜索/分类不同用途
Voyage AI 3 Voyage 1024 $0.06 代码 Embedding 最强
BGE-M3 BAAI 1024 优秀 免费(开源) 多语言多粒度多功能
GTE-Qwen2 阿里 1536 优秀 免费(开源) 中文最强梯队
E5-Mistral 微软 4096 免费(开源) 基于 LLM 的 Embedding

代码示例:调用 OpenAI Embedding

from openai import OpenAIimport numpy as npclient = OpenAI()def get_embedding(text, model="text-embedding-3-small"):    response = client.embeddings.create(input=text, model=model)    return response.data[0].embedding# 生成 Embeddingemb1 = get_embedding("猫在沙发上睡觉")emb2 = get_embedding("小猫躺在沙发上打盹")emb3 = get_embedding("今天股市大涨")# 计算余弦相似度def cosine_similarity(a, b):    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))print(f"猫睡觉 vs 猫打盹: {cosine_similarity(emb1, emb2):.4f}")  # ~0.95 高相似print(f"猫睡觉 vs 股市大涨: {cosine_similarity(emb1, emb3):.4f}")  # ~0.15 低相似

三、向量相似度搜索:原理与算法


3.1 距离度量

度量方式 公式 适用场景 值域
余弦相似度 文本语义搜索(最常用)
欧氏距离 需要考虑向量大小的场景
点积 归一化后的向量

实践中余弦相似度用得最多——它只关心方向不关心大小,更符合"语义相似"的直觉。

3.2 精确搜索 vs 近似最近邻(ANN)

精确搜索(暴力遍历)在数据量大时不可行——100 万条向量,每条 1536 维,每次查询都要计算 100 万次距离。

ANN(Approximate Nearest Neighbor) 用空间换时间,牺牲一点精度换取几个数量级的速度提升。

算法 核心思想 时间复杂度 特点
HNSW 多层跳表图,从高层粗搜到底层精搜 O(log n) 最流行,查询快,内存大
IVF 先聚类再只搜最近的几个簇 O(n/k) 适合大数据集,需要训练
PQ (Product Quantization) 向量压缩,减少内存和计算 O(n) 但常数小 内存效率极高
HNSW + PQ 组合使用 O(log n) 兼顾速度和内存

HNSW 直觉理解

想象一个城市地图:- 第 0 层(底层):所有建筑(所有向量)- 第 1 层:主要建筑- 第 2 层:地标建筑- 第 3 层(顶层):只有几个核心地标搜索过程:1. 从顶层的某个地标出发2. 在当前层找最近的邻居3. 下到下一层,继续搜索4. 一路到底层,找到精确的最近邻

四、向量数据库选型指南


4.1 主流向量数据库对比

数据库 类型 语言 部署方式 性能 特点
Milvus 专用向量库 Go/C++ 自部署/云服务 极高 分布式、功能全面、生产级
Pinecone 专用向量库 - 纯云服务 开箱即用、免运维
Qdrant 专用向量库 Rust 自部署/云 极高 Rust 实现、性能优秀
Weaviate 专用向量库 Go 自部署/云 内置混合搜索
Chroma 轻量级 Python 本地/嵌入式 极简、适合原型
FAISS 索引库 C++/Python 嵌入式 极高 Meta 出品,纯索引
pgvector PG 扩展 C 跟 PostgreSQL 已有 PG 可直接用

4.2 选型决策

你的场景是什么?│├── 原型开发 / PoC│   └── Chroma(Python 原生,5 行代码搞定)│├── 已有 PostgreSQL│   └── pgvector(零运维成本,直接加扩展)│├── 不想运维│   └── Pinecone(纯托管,按量付费)│├── 百万~千万级数据,需要高性能│   ├── 需要分布式 → Milvus│   └── 单机够用 → Qdrant│└── 纯研究 / Benchmark    └── FAISS(纯索引库,最灵活)

五、实战:构建一个语义搜索系统


import chromadbfrom openai import OpenAIclient = OpenAI()# 1. 初始化 Chromachroma_client = chromadb.Client()collection = chroma_client.create_collection(    name="knowledge_base",    metadata={"hnsw:space": "cosine"}  # 使用余弦相似度)# 2. 准备数据documents = [    "Python 是一种解释型、面向对象的高级编程语言",    "机器学习是人工智能的一个分支,通过数据训练模型",    "Docker 是一个开源的容器化平台,用于自动化部署应用",    "React 是 Facebook 开发的 JavaScript 前端框架",    "深度学习使用多层神经网络来学习数据的层次表示",    "Kubernetes 是一个开源的容器编排平台",    "自然语言处理是计算机科学和 AI 的交叉领域",    "PostgreSQL 是一个强大的开源关系型数据库",]# 3. 生成 Embedding 并存入def get_embeddings(texts):    response = client.embeddings.create(        input=texts, model="text-embedding-3-small"    )    return [item.embedding for item in response.data]embeddings = get_embeddings(documents)collection.add(    documents=documents,    embeddings=embeddings,    ids=[f"doc_{i}" for i in range(len(documents))],)# 4. 语义搜索query = "怎么用 AI 处理文本数据?"query_embedding = get_embeddings([query])[0]results = collection.query(    query_embeddings=[query_embedding],    n_results=3,)print("查询:", query)print("最相关的文档:")for i, doc in enumerate(results["documents"][0]):    dist = results["distances"][0][i]    print(f"  {i+1}. [{dist:.4f}] {doc}")# 输出:# 1. [0.1823] 自然语言处理是计算机科学和 AI 的交叉领域# 2. [0.2156] 机器学习是人工智能的一个分支,通过数据训练模型# 3. [0.2891] 深度学习使用多层神经网络来学习数据的层次表示

六、最佳实践与避坑指南


6.1 Embedding 模型选型

场景 推荐模型 理由
英文为主 text-embedding-3-small 便宜够用
中文为主 GTE-Qwen2 / BGE-M3 中文优化
代码搜索 Voyage Code 3 代码 Embedding 最强
数据不能出境 BGE-M3(自部署) 开源免费
需要极致性能 text-embedding-3-large 维度更高,精度更好

6.2 关键避坑点

    1. 查询和文档用同一个模型:不同模型的向量空间不兼容
    1. 文本预处理影响大:去除 HTML 标签、特殊字符、过长文本截断
    1. 分块大小很重要:太大语义不精确,太小丢失上下文(下一篇 RAG 详讲)
    1. Embedding 模型更换需全量重建:换模型 = 重新生成所有向量
    1. 不要忽略混合搜索:向量搜索 + 关键词搜索(BM25)组合效果通常更好

6.3 混合搜索示例

# 混合搜索:结合向量检索和关键词检索def hybrid_search(query, documents, alpha=0.7):    """    alpha: 向量检索的权重(0-1)    1-alpha: 关键词检索的权重    """    # 向量检索得分    vector_scores = vector_search(query, documents)        # BM25 关键词检索得分    bm25_scores = bm25_search(query, documents)        # 归一化后加权合并    final_scores = {}    for doc_id in set(list(vector_scores) + list(bm25_scores)):        v_score = normalize(vector_scores.get(doc_id, 0))        k_score = normalize(bm25_scores.get(doc_id, 0))        final_scores[doc_id] = alpha * v_score + (1 - alpha) * k_score        return sorted(final_scores.items(), key=lambda x: x[1], reverse=True)

七、职业视角


7.1 面试高频问题

问题 核心答案要点
Embedding 是什么? 将文本映射到高维向量空间,语义相似的文本距离接近
向量数据库和传统数据库的区别? 传统 DB 精确匹配,向量 DB 相似性搜索;索引结构不同(B-tree vs HNSW)
HNSW 算法的原理? 多层跳表图结构,从高层粗搜到底层精搜,O(log n) 时间复杂度
为什么需要混合搜索? 向量搜索捕获语义,关键词搜索捕获精确匹配,组合更全面

7.2 岗位价值

Embedding + 向量数据库是 RAG、搜索、推荐等方向的必备基础。掌握这个技能,你就具备了构建语义搜索系统的核心能力——这正是大量 AI 应用岗位的核心要求。


总结

    1. Embedding 本质:将文本映射到向量空间,语义相似 = 向量接近
    1. 模型选择:OpenAI 方便,开源(BGE-M3/GTE)免费可自部署,按场景选
    1. ANN 算法:HNSW 最流行,IVF + PQ 适合超大规模数据
    1. 向量数据库:原型用 Chroma,生产用 Milvus/Qdrant,已有 PG 用 pgvector
    1. 混合搜索:向量 + BM25 关键词,效果通常优于单一方式

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐