一文看懂Embedding:用代码给大家讲清这个核心概念

深入理解Embedding:原理与代码实践

今天我们要聊一个AI领域的关键技术——Embedding(嵌入)。不要被术语吓到,接下来我会用最直观的方式,配合代码示例,让你彻底明白它是什么!

什么是Embedding?

简单来说,Embedding就是把文字、图片或其他数据转换成数字的形式,让计算机能够理解和处理。就像我们给每个单词分配一个「数字身份证」,但这个身份证不是简单的编号,而是包含丰富信息的「多维特征向量」。

先举一个生动的栗子
想象一下,我们要给世界上所有食物编码:
汉堡:[-0.2, 0.8, 0.3]
沙拉:[0.5, -0.3, 0.1]
冰淇淋:[0.1, 0.9, -0.4]
数字的正负和大小代表了食物的特征(如甜度、健康程度、温度)。这样计算机就能通过数字计算发现「汉堡和冰淇淋都是高热量食物」。

Embedding就是大模型自己的语言,任何需要跟大模型沟通的文字、图像、视频都需要转换为大模型所能理解的语言:Embedding,它才能处理。处理完成后,它再翻译成人类能理解的文字、图像等。这也是大模型最强大的核心能力之一,多模态处理能力。

重点:代码实战

好,接下来直接上代码,看Embedding如何工作

# 导入必要的库
from sentence_transformers import SentenceTransformer

# 加载模型
model = SentenceTransformer('paraphrase-MiniLM-L6-v2')

# 定义句子列表
sentences = [
    '我喜欢吃苹果',
    '苹果公司9月要发布新手机iPhone 17',
    '今天的天气真好,蓝天白云',
    "香蕉是一种热带水果"
]

# 生成Embedding向量
embeddings = model.encode(sentences)

print("生成的Embedding的向量维度:", embeddings.shape)

# 输出全部
# print("Embedding向量的具体内容:", embeddings)

# 输出上面句子的向量前10维
for i, sentence in enumerate(sentences):
    print(f"'{sentence}': {embeddings[i][:10]} ...")


# 计算句子间的相似度
from sklearn.metrics.pairwise import cosine_similarity

# 计算余弦相似度
similarities = cosine_similarity(embeddings)

print("句子相似度矩阵:")
for i in range(len(sentences)):
    for j in range(len(sentences)):
        if i <= j:  # 避免重复输出
            sim = similarities[i][j]
            print(f"'{sentences[i]}' vs '{sentences[j]}': {sim:.3f}")

输出如下:

生成的Embedding的向量维度: (4, 384)

'我
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

softkit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值