大语言模型入门之Embedding

这个系列用于记录我的大语言模型学习过程


前言

LLM中的Embedding是一个至关重要的概念,它在大规模语言处理任务中发挥着核心作用。这篇用于介绍Embedding。


一、Embedding的基本概念

        Embedding,即嵌入,是指将高维度的数据(如文本、图片、视频等)映射到低维度空间的过程。在LLM中,Embedding通常指的是将自然语言文本中的词汇、句子或更复杂的文本结构转换为固定长度的向量表示。这些向量能够捕捉文本的语义信息,使得计算机能够更好地理解和处理自然语言数据。其背后的主要想法是,相似或者相关的对象在嵌入空间中的距离应该很近。

  • 语义表示: 词嵌入能够有效地表示词语的语义信息,使得相似含义的词语在向量空间中的表示更为接近,如“king”和“queen”在向量空间中的距离应该接近,因为它们都与“royalty”相关联。
  • 语法关系: 词嵌入可以捕捉到词语之间的语法关系,例如在向量空间中,“man”到“woman”的向量应该大致等于“king”到“queen”的向量。
  • 输入表示: 在很多自然语言处理任务中,词嵌入被用作模型的输入表示,提供了更丰富的语义信息,有助于提升模型在文本理解和生成任务中的性能。
  • 降低维度:将高维稀疏的数据转换为低维稠密的向量表示,有助于减少计算复杂度,提高处理效率。

二、实现方式

这里简单展示一下怎么调用zhipu的API,智谱有封装好的SDK,直接调用即可。

from zhipuai import ZhipuAI
def zhipu_embedding(text: str):

    api_key = "your api key"
    client = ZhipuAI(api_key=api_key)
    response = client.embeddings.create(
        model="embedding-2",
        input=text,
    )
    return response

# text = '要生成 embedding 的输入文本,字符串形式。'
text = "你好!"
response = zhipu_embedding(text=text)

print(f'response类型为:{type(response)}')
print(f'embedding类型为:{response.object}')
print(f'生成embedding的model为:{response.model}')
print(f'生成的embedding长度为:{len(response.data[0].embedding)}')
print(f'embedding(前10)为: {response.data[0].embedding[:10]}')

        response为zhipuai.types.embeddings.EmbeddingsResponded类型,我们可以调用objectdatamodelusage来查看response的embedding类型、embedding、embedding model及使用情况。

        输出结果如下图所示。

其他更详细的API调用参考:Embeddings Model API :: Spring AI Reference


总结

        LLM中的Embedding是一种将高维数据转换为低维向量表示的技术,它在自然语言处理任务中发挥着重要作用。通过捕捉文本的语义信息并降低数据维度,Embedding使得计算机能够更好地理解和处理自然语言数据。随着技术的不断进步,我们可以期待Embedding在未来发挥更加重要的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值