从0开始学AI:Embedding,原来是这回事!

人工智能安全(一)Leakage In Embedding: GEIA GEIA”:,发表在ACL2022。GEIA通过模型生成的语句embedding存在泄漏敏感信息的可能性。GEIA可以通过embedding复原有序语句,且和真实的输入语句有高相似性。 阅读详情

分词器 Tokenizer

人类的自然语言需要经过分词器 Tokenizer 和 Embedding 处理,才可以输入到神经网络中进行处理。

分词器是将一段自然语言输入,切分成模型能理解的最小单位(tokens),然后转换成一个固定的 index。例如词汇表大小为 4,输入:“我喜欢你”,分词器处理如下:

input: 我
output: 0

input: 喜欢
output: 1

input:你
output: 2

常用的 Tokenization 方法有:

1、Word-level(词级别)

2、Subword-level(子词级别,如 BPE、WordPiece)

3、Character-level(字符级别)

实现一个简单的 Tokenizer

import re
from collections import Counter

class SimpleTokenizer:
    def __init__(self, vocab_size=10000):
        self.vocab_size = vocab_size
        self.word2idx = {"<PAD>": 0, "<UNK>": 1, "<SOS>": 2, "<EOS>": 3}
        self.idx2word = {v: k for k, v in self.word2idx.items()}

    def train(self, texts):
        words = []
        for text in texts:
            words.extend(self._tokenize(text))

        word_freq = Counter(words)
        most_common = word_freq.most_common(self.vocab_size - 4)

        for word, _ in most_common:
            idx = len(self.word2idx)
            self.word2idx[word] = idx
            self.idx2word[idx] = word

    def _tokenize(self, text):
        text = text.lower()
        text = re.sub(r'[^\w\s]', '', text)
        return text.split()

    def encode(self, text):
        tokens = self._tokenize(text)
        return [self.word2idx.get(token, self.word2idx["<UNK>"]) for token in tokens]

    def decode(self, indices):
        return " ".join([self.idx2word.get(idx, "<UNK>") for idx in indices])

# 测试Tokenizer
def test_tokenizer():
    texts = [
        "Hello world, this is a test.",
        "Machine learning is fascinating.",
        "Natural language processing is important."
    ]

    tokenizer = SimpleTokenizer(vocab_size=1000)
    tokenizer.train(texts)

    test_text = "Hello, this is machine learning."
    encoded = tokenizer.encode(test_text)
    decoded = tokenizer.decode(encoded)

    print(f"原始文本: {test_text}")
    print(f"编码结果: {encoded}")
    print(f"解码结果: {decoded}")
    print(f"词汇表大小: {len(tokenizer.word2idx)}")

test_tokenizer()

使用 HuggingFace 的 Tokenizer

from transformers import AutoTokenizer

# 使用预训练的tokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

def test_huggingface_tokenizer():
    text = "Hello, this is a test of tokenization."
    
    # 编码
    tokens = tokenizer.tokenize(text)
    print(f"Tokens: {tokens}")
    
    # 转换为ID
    input_ids = tokenizer.convert_tokens_to_ids(tokens)
    print(f"Input IDs: {input_ids}")
    
    # 完整编码(包含特殊token)
    encoded = tokenizer(text, return_tensors="pt")
    print(f"完整编码: {encoded}")
    
    # 解码
    decoded = tokenizer.decode(encoded["input_ids"][0])
    print(f"解码结果: {decoded}")

# test_huggingface_tokenizer()

Embedding

经过 Tokenizer 处理后的数据,再经过 Embedding 处理,所以 Embedding 层的输入往往是一个(batch_size,seq_len,1)的矩阵,batch_size 是一次批处理的数量,seq_len 是自然语言序列处理的长度,最后一个是 token 经过 Tokenizer 转换成的 index 值,如上述“我喜欢你”这句话经过 Tokenizer 处理,输入到 Embedding 层的是:

[[[0],[1],[2]]]

其batch_size 为 1,seq_len 为 3,转换出来的 index 如上。

Embedding 内部是一个可训练的(Vocab_size,embedding_dim)的权重矩阵,词表里的每一个值,都对应一行维度为embedding_dimde 向量。对于输入的值,会对应到这个词向量,然后拼接成(batch_size,seq_len,embedding_dim)的矩阵输出。

Embedding 层实现

import torch
import torch.nn as nn

class EmbeddingLayer(nn.Module):
    def __init__(self, vocab_size, embedding_dim):
        super().__init__()
        self.embedding = nn.Embedding(vocab_size, embedding_dim)

    def forward(self, input_ids):
        return self.embedding(input_ids)

def test_embedding():
    vocab_size = 10000
    embedding_dim = 512
    batch_size = 2
    seq_len = 10

    # 模拟输入
    input_ids = torch.randint(0, vocab_size, (batch_size, seq_len))

    # Embedding层
    embedding_layer = EmbeddingLayer(vocab_size, embedding_dim)
    embeddings = embedding_layer(input_ids)

    print(f"输入ID形状: {input_ids.shape}")
    print(f"Embedding输出形状: {embeddings.shape}")
    print(f"Embedding维度: {embedding_dim}")

# test_embedding()
[人工智能] 轻松理解Embedding:从基本概念到最新应用 简单来说,Embedding就是一种将高维度的、离散的、复杂的数据转化为低维度、连续的、易于计算的向量表示方法。可以把它理解为“压缩”的过程,把信息从复杂的、难以操作的形式转化为计算机更容易理解和处理的数字表示。高维数据转低维向量:比如,在自然语言处理中,我们可以将每个单词转化为一个向量,这个向量是一个数字数组。这个数字数组的维度(通常是几十到几百维)比原始数据(如单词的字符、词汇表大小等)要低很多。Embedding作为一种将复杂数据转化为易于计算的向量表示的技术,已经成为人工智能领域不可或缺的工具。 阅读详情

相关推荐

新手避坑指南:用SARScape 5.6.2处理Sentinel-1数据做SBAS-InSAR,这些参数设置错了白忙活

本文详细介绍了使用SARScape 5.6.2处理Sentinel-1数据做SBAS-InSAR时的关键参数设置技巧,帮助新手避免常见错误。重点解析了连接图生成、干涉工作流、DEM处理等环节的12个关键参数,包括Max Normal Baseline、Unwrapping Coherence Threshold等,提供实测安全值范围和优化建议,确保处理效率和结果准确性。

weixin_30694389的博客 557

Embedding 、词嵌入、向量模型说的是一回事么?AI是如何理解世界?AI人不能不看的Embedding白话科普!

在AI理解世界的过程中,向量模型扮演着一个至关重要的角色,甚至可以说它是AI大模型用以构建和理解复杂数据的基础,也是对不同形态数据的一种标准化的“浓缩”。它能够将语言、图像、声音等多样化的信息,转化为一种通用的、数学化的表达形式,为AI开启一扇通往对世界智能理解与创造的大门。向量模型擅长将抽象的概念和具体的事物转化为一系列数值,这些数值在多维空间中按照特定的模式排列,形成了向量。向量模型之所以重要,不仅因为它们为机器学习算法提供了一种高效的数据处理方式,更因为它们是实现可重用性、泛化性和灵活性的关键。

2401_85379281的博客 1715

AI智能体评估基准AgentBench:从原理到实战的完整指南

在人工智能领域,智能体(AI Agent)的评估是衡量其实际应用能力的关键环节。评估基准通过设计标准化的测试任务,系统性地检验智能体的推理、规划和工具使用等核心能力。其技术价值在于为模型迭代和产品选型提供了客观、可复现的量化依据,能有效推动技术从演示走向工程落地。典型的应用场景包括模型能力评测、智能体框架对比以及具体应用(如自动化运维、智能客服)的性能验证。本文聚焦于清华团队推出的AgentBench,它作为一个多维度的综合评估套件,涵盖了从操作系统、数据库操作到网页浏览、数字卡牌游戏等八个贴近真实世界的任

weixin_27207591的博客 599

AI 如何理解文字:Embedding解析

Embedding是一种将高维数据(如文字、图像等)映射到低维空间的技术。在自然语言处理中,embedding通常指的是将单词或短语转换成连续的向量表示。这些向量捕捉了词汇的语义信息,使得相似的词汇在向量空间中距离更近。Embedding是AI理解文字的关键技术之一。通过将高维的one-hot编码向量转换成低维的连续向量,embedding不仅减少了维度,还捕捉了词汇之间的语义关系。常见的用于Embedding的库包括spaCy、Gensim、TensorFlow和PyTorch。

智慧危机的博客 1382

【学习总结】飞跨电容三电平boost拓扑发波分析与matlab仿真

正常工作时,飞跨电容的电压大约控制在输出电压的一半,降低了开关器件的耐受电压。

晞子的技术札记 1万+

GD32F103实战:用ADC+DMA实现高精度多通道电压采集与OLED实时显示(附完整工程)

本文详细介绍了如何利用GD32F103的ADC+DMA技术实现高精度多通道电压采集,并通过OLED实时显示数据。文章包含硬件架构设计、ADC配置技巧、DMA传输优化及显示系统实现方案,提供完整工程代码和调试指南,适用于工业传感器和环境监测设备开发。

weixin_42567497的博客 402

从 0 开始学 AI:第 6 课,Token、上下文窗口、Prompt、Embedding 是什么?

Token、上下文窗口、Prompt、Embedding 是什么?

wumingxiaoyao的博客 549

5G/NR 随机接入过程学习总结

对于随机接入过程,NR与LTE之间有相同点,也有不同点,其最大的区别在于触发场景已经Msg1的处理,详情见下文。 第21章 随机接入过程 21.1 随机接入过程事件触发场景 1) 初始接入:UE从RRC_IDLE态到RRC_CONNETTED态; 2) RRC连接重建:以便UE在无线链路失败后重新建立无线连接(期间重建小区可能是UE无线链路失败的小区,也...

欢迎来到小七的博客,这里将带你深入探索5G通信的神秘世界。无论你是通信领域的专业人士还是对这一领域充满好奇心的技术爱好者,这里都有专业协议解读、通信知识普及以及有趣的Python编程内容等你发现。 7万+

零基础学AI大模型之Embedding与LLM大模型对比全解析

摘要:本文深入解析文本嵌入(Embedding)与大语言模型(LLM)的核心差异与协作关系。通过类比“语义地图”形象说明Embedding如何将文字转换为可计算的向量坐标,实现语义相似度判断。文章对比了两者的关键特性:Embedding专注语义编码(固定维度、高效检索),LLM侧重文本生成(上下文理解、创造性输出)。结合RAG系统实例,展示了二者如何分工协作——Embedding负责快速筛选知识片段,LLM进行深度加工。最后探讨了开源与商用Embedding模型的选择策略及典型应用场景。

chandfy的博客 1925

YOLOv8【第十章:多任务扩展深度篇·第19节】YOLOv8 与 DeepLabV3+ 对比——实时性与精度的权衡!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1万+

HTML满屏跳动的爱心(完整代码)

HTML语言实现满屏跳动爱心的完整代码。

AIGC 12万+

Embedding保姆级教程:从零开始,把文字、图片变成数字!AI大模型入门到精通,收藏这篇就够了!

如果要用一句话来解释:**Embedding 就是把原本“看不懂”的符号,翻译成机器能理解的数字向量。

m0_59163425的博客 1163

YOLOv13涨点改进 | 独家创新、Neck特征融合改进篇 | TGRS 2024 | 引入 EFC增强跨层特征相关创新点,含MSEF(多尺度有效融合模块)二次创新模块,助力遥感目标检测涨点

本文提出EFC(增强跨层特征相关)模块改进YOLOv13模型,显著提升小目标检测性能。EFC通过分组特征聚焦(GFF)和多层特征重建(MFR)增强特征融合效率,在小目标检测任务中平均精度(mAP)提升1.7%,同时减少模型计算量。实验验证EFC在VisDrone等数据集上的有效性,改进后的模型能更好地保留小目标细节信息。还提出二次创新模块MSEF,集成通道和位置注意力机制,进一步优化特征表达。文章详细介绍了模块配置方法和yaml文件修改步骤,为小目标检测任务提供了实用的改进方案。

Ai缝合怪、助力小伙伴高效发论文 325

AI大模型中BERT的Embedding到底是个什么?看完小白也懂了!

摘要: Embedding是将文本转化为语义向量(浮点数数组)的技术,通过向量距离反映语义相关性。其生成方式分为两类:1)大模型推理中的Token级Embedding,通过分词和词表映射实现;2)独立使用的句子/文档级Embedding(如Sentence-BERT),用于检索和相似性分析。本质是模型通过海量数据学习到的语义数学表示(如“猫”与“狗”向量相近)。应用场景包括RAG、相似性判断和文本聚类。与Token不同,Embedding是训练得到的连续向量,长度固定。大模型(如Qwen)与小模型(如BER

javatiange的博客 1108

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

大模型三大协作模式深度解析:Agent、Copilot与Embedding,一文掌握AI应用进阶之路!

文章解析了大模型三种协作模式:Embedding(人类主导,AI辅助提供参考)、Copilot(人机协同工作)、Agent(AI自主执行任务,人类仅设定目标)。这三种模式反映了人类从"自己做"到"与AI协作"再到"让AI做"的进化过程,未来将根据任务特点灵活应用不同模式,实现人机协作的最大效能。

2301_80239908的博客 760

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

从零开始:手把手教你微调Embedding模型,让检索效果提升10倍!

本文介绍了使用LlamaIndex微调Embedding模型以提升RAG系统检索效果的方法。主要内容包括:1. 采用三步走策略:自动生成训练数据集、模型微调和效果评估;2. 详细代码解析,展示如何用LlamaIndex实现从PDF文档自动生成问答对训练数据;3. 使用SentenceTransformersFinetuneEngine进行模型微调;4. 通过命中率评估模型效果,实验显示微调后命中率从8.9%提升至23.5%。该方法无需人工标注,能显著提升专业领域检索准确率,适合特定业务场景应用。

沐雪架构师 1109

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

AI大模型中,BERT的Embedding到底指的是什么?图文详解!

Embedding是将文本转换为语义向量表示的核心技术,通过浮点数向量反映文本间的语义关联。生成方式分为:1)Token级Embedding(大模型推理时通过词表映射);2)句子/文档级Embedding(专用模型生成)。其本质是模型通过海量数据自动学习的语义数学表达,如"king-man+woman≈queen"等关系。

2401_84495872的博客 1081

入门必看:什么是Embedding?Embedding综述,看这一篇就够了!

入门必看:什么是Embedding?Embedding综述,看这一篇就够了!

m0_48891301的博客 3664

【AI大模型】一文彻底搞懂人工智能的嵌入(Embedding)

*Embedding** 是一种机器学习概念,用于将数据映射到高维空间,将语义相似的数据放在一起。Embedding模型通常是 BERT 或其他 Transformer 系列中的深度神经网络,可以用一系列称为**向量(vectors)的数字**有效地表示**文本、图像和其他数据类型的语义**。这些模型的一个主要特点是,向量之间在高维空间中的数学距离可以表示原始文本或图像语义的相似性。这一特性开启了许多信息检索应用,如谷歌和必应等网络搜索引擎、电子商务网站上的产品搜索和推荐,以及最近流行的生成式人工智能中的检

Android23333的博客 765

保姆级教程:从0开始运行Qwen3-Embedding-0.6B模型

本文介绍了如何在星图GPU平台上自动化部署Qwen3-Embedding-0.6B镜像,实现高效的文本向量化处理。基于该平台,用户可快速启动模型服务,并应用于语义搜索、内容推荐等典型场景,显著提升AI应用的开发与部署效率。

weixin_42518334的博客 467

零基础学AI大模型之LangChain Embedding框架全解析

摘要:本文是"工藤学编程"博主关于LangChain Embedding框架的深度解析。文章首先指出Embedding模块的核心价值在于解决模型适配难题,通过标准化接口统一不同Embedding模型的调用方式。然后详细介绍了LangChain Embedding的两个核心功能:接口统一和实现多样化,以及这种设计带来的开发优势。最后从源码层面解析了Embedding的"标准协议",展示了抽象基类的关键代码实现。该系列文章为零基础学习AI大模型提供了系统化的知识体系。

chandfy的博客 1621

AI大模型中BERT的Embedding到底是个什么?

Embedding(嵌入)是指把文本(也可能包括图像、视频等其他模态数据)转成能表达语义信息的浮点数向量,向量之间的数学距离可以反映对应文本之间的语义相关性。

2401_85325557的博客 1007

Java程序员从0学AI(一)

本文介绍了如何通过Java语言与AI技术结合,特别是如何使用Spring Boot框架集成DeepSeek的AI模型。文章首先解释了AI领域的一些基础概念,如LLM(大语言模型)、Prompt(提示词)、Token(文本处理单元)和Embedding(向量化)。接着,详细说明了如何申请DeepSeek的API Key,并通过Curl或Postman调用API。最后,文章展示了如何在Spring Boot项目中集成DeepSeek模型,包括配置文件的编写和示例代码的实现。通过这些步骤,Java开发者可以轻松地

仔哥学编程 1194

产品经理学AI-9:AI黑话秒懂指南,Embedding

文章主要介绍了AI大模型相关的专业术语和概念,包括序列化/反序列化、解析/解析器、数据块(chunk)、词元(Token)、向量、嵌入(Embedding)、检索增强生成(RAG)、提示词、温度、TOP P采样、大型语言模型(LLM)、预训练和微调等。这些是理解和学习AI大模型的基础知识,帮助初学者理解行业术语,避免被专业术语吓退,为深入学习大模型奠定基础。最近一直在学习AI相关的课程,课程前前后后说了很多专业名词,有时候光听到名词,觉得特别高大上,但是听了老师的讲解后也会立马明白。

2401_85375298的博客 849

AI绘画工具Stable Diffusion【模型篇】:Embedding模型教程

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

白帽阿叁的博客 1698

检索效果提升10倍!手把手教你微调Embedding,从零开始也能成为大神!

还在为RAG系统的检索效果不佳而苦恼?通用Embedding模型无法理解你的业务场景?今天,我将带你从零开始,用LlamaIndex微调一个专属的Embedding模型,让检索准确率大幅提升!

xx_nm98的博客 1081
上一篇: 从0开始学AI:编码器-解码器,原来是这回事!
下一篇: 程序员转行学习AI大模型:位置编码
程序员明仔AI
博客等级 码龄5年 913粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值