news 2026/4/14 14:53:11

大模型应用开发入门:掌握Transformer Embedding与向量表示,轻松收藏提升技能!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大模型应用开发入门:掌握Transformer Embedding与向量表示,轻松收藏提升技能!

Transformer Embedding 与向量表示

Embedding(嵌入/向量表示)是将离散的文本数据转换为连续向量空间中的数值表示的核心技术,使得计算机能够「理解」语义信息。本篇覆盖词向量的基本原理、位置编码(Positional Encoding)的作用与演进语义相似度计算方法,以及Embedding 在 RAG 系统和向量数据库中的实际应用

概念速览


一、词向量(Word Embedding):文本的数值化表示


1.1 为什么需要词向量?

计算机无法直接处理文字,只能处理数字。如何让机器「理解」文本的含义?这就需要将文字转换为数值形式。

通俗理解:想象你要向一个只懂数学的外星人解释「苹果」和「香蕉」的关系。你不能说「它们都是水果」,因为外星人不懂「水果」这个词。但你可以说:「苹果的坐标是 (3, 5, 2),香蕉的坐标是 (3.2, 4.8, 2.1),它们在空间中很近,说明它们相似。」这就是词向量的核心思想——用数字坐标表示词义。

1.2 从 One-Hot 到 Word Embedding 的演进

早期方案:One-Hot 编码

最简单的文本数值化方式是 One-Hot 编码:

词汇表:[苹果, 香蕉, 汽车, 飞机]苹果 → [1, 0, 0, 0]香蕉 → [0, 1, 0, 0]汽车 → [0, 0, 1, 0]飞机 → [0, 0, 0, 1]

One-Hot 的致命缺陷

    1. 维度灾难:词汇表有 10 万个词,每个词就是 10 万维的向量
    1. 语义缺失:「苹果」和「香蕉」的向量完全正交,无法体现「都是水果」的语义关系
    1. 稀疏表示:向量中绝大多数是 0,计算效率低

Word Embedding 的突破

Word Embedding 将每个词映射到一个低维稠密向量(通常 100-1000 维),并且语义相近的词在向量空间中距离更近。


1.3 Word Embedding 的工作原理

核心思想:分布式假设

「一个词的含义由它的上下文决定。」——如果两个词经常出现在相似的上下文中,它们的语义就相近。

通俗理解:如果你在阅读时总是看到「猫追着老鼠跑」「狗追着老鼠跑」,即使你不知道「猫」和「狗」的具体含义,你也能推断它们有某种相似性——它们都能「追老鼠」。Word Embedding 就是用数学方法捕捉这种「上下文相似性」。

Embedding 层的数学表示

Embedding 层本质上是一个查找表(Lookup Table)

# 假设词汇表大小 V=10000,嵌入维度 d=512embedding_matrix = torch.randn(10000, 512) # 形状:(V, d)# 查找词 "苹果" 的向量(假设索引为 42)apple_vector = embedding_matrix[42] # 形状:(512,) ```![](http://cdn.zhipoai.cn/df8d64be.jpg) ### 1.4 词向量的语义特性 训练好的词向量具备以下语义特性: **1. 语义相似性** 语义相近的词在向量空间中距离更近: ```plaintext cos_similarity(苹果, 香蕉) ≈ 0.85 # 都是水果cos_similarity(苹果, 汽车) ≈ 0.12 # 毫无关联

2. 语义类比(向量运算)

著名的「国王 - 男人 + 女人 ≈ 女王」:

vector(国王) - vector(男人) + vector(女人) ≈ vector(女王)

通俗理解:这说明词向量捕捉到了「性别」这个维度。「国王」减去「男性特征」再加上「女性特征」,得到的向量最接近「女王」。


二、位置编码(Positional Encoding):让模型理解词序


2.1 为什么需要位置信息?

Transformer 的 Self-Attention 机制有一个关键问题:它对词的顺序是「盲」的

通俗理解:对于 Self-Attention 来说,「狗咬人」和「人咬狗」是一样的——都是「狗」「咬」「人」三个词的集合。但这两句话的意思完全相反!所以必须给模型注入位置信息。

2.2 绝对位置编码:正弦余弦位置编码

原始 Transformer 论文使用正弦/余弦函数生成位置编码:

公式

其中:

  • pos是词在序列中的位置(0, 1, 2, …)
  • i是向量的维度索引
  • d_model是嵌入维度(如 512)

通俗理解:想象一个钟表,秒针转得快、分针转得慢、时针转得更慢。位置编码的不同维度就像不同的「指针」,转动频率不同。通过观察所有「指针」的位置,你能唯一确定当前时间。同样,通过所有维度的正弦余弦值,模型能唯一确定每个词的位置。

为什么用正弦余弦?

    1. 值域有界:输出在 [-1, 1] 之间,不会过大
    1. 可泛化:对任意长度的序列都能生成编码
    1. 相对位置可计算PE(pos+k)可以表示为PE(pos)的线性函数

2.3 旋转位置编码(RoPE):当前主流方案

版本说明:RoPE(Rotary Position Embedding)由苏剑林于 2021 年提出,现已成为 LLaMA、Qwen、GLM 等主流大模型的标准配置。

RoPE 的核心思想

RoPE 不是简单地「加上」位置信息,而是通过旋转的方式将位置信息编码到 Query 和 Key 中。

通俗理解:想象你在一个旋转木马上,位置 0 的马朝向北方,位置 1 的马旋转了 30 度朝向东北,位置 2 的马又旋转了 30 度…每匹马的方向就编码了它的位置信息。RoPE 就是让词向量像旋转木马一样,通过旋转角度来编码位置。

RoPE 的优势

2.4 位置编码的实际应用

在 Transformer 中的使用方式

# 伪代码:位置编码的使用def transformer_input(tokens): # 1. 词嵌入 word_embeddings = embedding_layer(tokens) # (batch, seq_len, d_model) # 2. 位置编码 positional_encodings = get_positional_encoding(seq_len, d_model) # 3. 相加(传统方式) input_embeddings = word_embeddings + positional_encodings return input_embeddings

三、语义相似度:向量空间中的距离度量


3.1 余弦相似度:最常用的相似度度量

公式

通俗理解:余弦相似度衡量的是两个向量的「方向」是否一致,而不关心它们的「长度」。想象两个人同时指向天空的同一颗星星,无论他们站得多远,他们指向的方向是一致的,余弦相似度就是 1。

取值范围

  • 1:完全相同方向(最相似)
  • 0:完全正交(无关)
  • -1:完全相反方向(最不相似)

3.2 其他相似度度量方法

余弦相似度:只关注方向,不关注长度,适用于文本语义相似度

点积相似度:同时考虑方向和长度,适用于 Attention 计算

欧氏距离:绝对距离,适用于聚类分析

曼哈顿距离:格点距离,适用于高维稀疏向量

3.3 相似度计算的代码实现

import numpy as npdef cosine_similarity(vec_a, vec_b): """计算两个向量的余弦相似度""" dot_product = np.dot(vec_a, vec_b) norm_a = np.linalg.norm(vec_a) norm_b = np.linalg.norm(vec_b) return dot_product / (norm_a * norm_b)# 示例embedding_apple = np.array([0.2, 0.8, 0.3, 0.5])embedding_banana = np.array([0.25, 0.75, 0.35, 0.48])embedding_car = np.array([0.9, 0.1, 0.7, 0.2])print(f"苹果-香蕉相似度: {cosine_similarity(embedding_apple, embedding_banana):.4f}") # ≈ 0.98print(f"苹果-汽车相似度: {cosine_similarity(embedding_apple, embedding_car):.4f}") # ≈ 0.45

四、Embedding 模型与 API 实践


4.1 主流 Embedding 模型对比

版本说明:以下信息截至 2026 年 3 月,OpenAI 已发布 text-embedding-3 系列模型,智谱 AI 已发布 embedding-3 模型,通义千问已发布 Qwen3-Embedding 系列(API 名称 text-embedding-v4)。

4.2 OpenAI Embedding API 使用示例

from openai import OpenAIclient = OpenAI()def get_embedding(text, model="text-embedding-3-small"): """获取文本的 Embedding 向量""" response = client.embeddings.create( input=text, model=model ) return response.data[0].embedding# 使用示例text = "Transformer 是现代大语言模型的核心架构"embedding = get_embedding(text)print(f"向量维度: {len(embedding)}") # 1536print(f"前5个值: {embedding[:5]}")

4.3 Embedding 维度选择策略

text-embedding-3 系列支持维度缩放(Matryoshka Embedding),可根据需求选择合适维度:

# 指定输出维度response = client.embeddings.create( input="Hello world", model="text-embedding-3-large", dimensions=256 # 可选:256, 512, 1024, 3072)


五、向量数据库与 RAG 应用


5.1 向量数据库概述

向量数据库是专门为存储和检索高维向量设计的数据库系统,是 RAG(检索增强生成)系统的核心基础设施。

5.2 主流向量数据库对比

5.3 RAG 检索流程详解

5.4 Embedding 在 RAG 中的最佳实践

1. 文档切分策略

# 推荐的切分参数CHUNK_SIZE = 512 # 每块的 Token 数CHUNK_OVERLAP = 50 # 块之间的重叠 Token 数

2. 检索优化技巧

  • 混合检索:结合关键词检索(BM25)和向量检索
  • 重排序:使用 Rerank 模型对初筛结果精排
  • 查询改写:用 LLM 改写用户问题,提升召回率

六、Embedding 实战:构建语义搜索系统


6.1 完整代码示例

from openai import OpenAIimport numpy as npfrom typing import List, Tupleclient = OpenAI()class SemanticSearch: def __init__(self, model="text-embedding-3-small"): self.model = model self.documents = [] self.embeddings = [] def add_documents(self, docs: List[str]): """添加文档到索引""" self.documents.extend(docs) # 批量获取 Embedding response = client.embeddings.create( input=docs, model=self.model ) for item in response.data: self.embeddings.append(item.embedding) def search(self, query: str, top_k: int = 3) -> List[Tuple[str, float]]: """语义搜索""" # 获取查询的 Embedding query_response = client.embeddings.create( input=query, model=self.model ) query_embedding = query_response.data[0].embedding # 计算相似度 similarities = [] for i, doc_embedding in enumerate(self.embeddings): sim = self._cosine_similarity(query_embedding, doc_embedding) similarities.append((self.documents[i], sim)) # 排序返回 Top-K similarities.sort(key=lambda x: x[1], reverse=True) return similarities[:top_k] def _cosine_similarity(self, a: List[float], b: List[float]) -> float: a = np.array(a) b = np.array(b) return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))# 使用示例search_engine = SemanticSearch()# 添加文档documents = [ "Transformer 是一种基于自注意力机制的神经网络架构", "BERT 使用双向编码器来理解文本上下文", "GPT 系列模型使用单向解码器进行文本生成", "Word2Vec 是经典的词向量训练方法", "RNN 和 LSTM 是处理序列数据的传统方法"]search_engine.add_documents(documents)# 搜索results = search_engine.search("什么是注意力机制?")for doc, score in results: print(f"[{score:.4f}] {doc}")

七、Embedding 技术演进趋势


7.1 动态嵌入取代静态嵌入

静态嵌入(Word2Vec、GloVe)为每个词生成固定向量,无法区分同一词在不同上下文中的含义(如「苹果公司」和「苹果水果」)。动态嵌入(Contextualized Embeddings)根据上下文生成不同的向量表示,已成为主流方案。

7.2 N-gram Embedding

美团 LongCat 团队在 2026 年初发布的 LongCat-Flash-Lite 模型中,将超过 300 亿参数用于嵌入层,通过 N-gram Embedding 捕捉短语级语义(如"热夏装" vs “夏天”),在词表扩展的方式上实现了轻量化 MoE 的高效演进。

7.3 多模态 Embedding

CLIP 和 BLIP 等模型将文本和图像嵌入到共享向量空间,实现跨模态检索(如"文本搜图")。这类模型在电商推荐、图文匹配等场景中应用广泛。

7.4 选择建议


关键要点回顾


    1. Embedding 是语义的数值化:将离散文本映射为连续向量,语义相近的内容在向量空间中距离更近
    1. 位置编码弥补了 Attention 的顺序盲区:正弦余弦编码是经典方案,RoPE 是当前主流
    1. 余弦相似度是最常用的相似度度量:只关注方向,不关注长度,适合文本语义匹配
    1. Embedding 模型选择要权衡效果和成本:text-embedding-3-large 效果最好,small 性价比高
    1. 向量数据库是 RAG 系统的核心:Embedding + 向量数据库 + LLM = 知识增强的 AI 应用

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

领取方式在文末

为什么要学习大模型?

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

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

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

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

最后

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

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

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

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

大模型全套学习资料展示

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

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

01教学内容

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

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

02适学人群

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

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

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

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

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

03入门到进阶学习路线图

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

04视频和书籍PDF合集

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

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

05行业报告+白皮书合集

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

0690+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)

07 deepseek部署包+技巧大全

由于篇幅有限

只展示部分资料

并且还在持续更新中…

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 14:52:14

Adobe-GenP 3.0:解锁Adobe创意套件的终极完整指南

Adobe-GenP 3.0:解锁Adobe创意套件的终极完整指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的订阅费用头疼吗&#xf…

作者头像 李华
网站建设 2026/4/14 14:51:55

如何免费解锁Cursor Pro功能:终极指南与完整解决方案

如何免费解锁Cursor Pro功能:终极指南与完整解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tria…

作者头像 李华
网站建设 2026/4/14 14:50:22

单细胞数据合并后,你的聚类图为啥不好看?可能是批次效应在捣鬼

单细胞数据合并后,你的聚类图为啥不好看?可能是批次效应在捣鬼 当你兴奋地将多个单细胞RNA测序样本合并,准备大展拳脚进行聚类分析时,却发现t-SNE或UMAP图上细胞群杂乱无章,本该清晰的细胞类型边界变得模糊不清——这很…

作者头像 李华
网站建设 2026/4/14 14:50:18

【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---GUI-MCP 整体架构盘

前言 在使用 kubectl get $KIND -o yaml 查看 k8s 资源时,输出结果中包含大量由集群自动生成的元数据(如 managedFields、resourceVersion、uid 等)。这些信息在实际复用 yaml 清单时需要手动清理,增加了额外的工作量。 使用 kube…

作者头像 李华
网站建设 2026/4/14 14:49:14

Jmeter性能测试之阶梯式场景、波浪式场景、服务器监控

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快1、阶梯式场景(负载测试)该场景主要应用在负载测试里面,通过设定一定的并发线程数,给定加压规则,遵循“缓…

作者头像 李华