来 Azure 学习 OpenAI 四 - 用 Embedding 赋能 GPT

本文介绍了如何在Azure上结合OpenAI的Embedding技术来提升GPT模型的能力。通过嵌入将文本转化为向量,计算向量相似度,用于搜索相关文档段落,以增强GPT对特定问题的回答。文中详细阐述了从预处理文档到生成回答的整个过程,展示了Embedding在文本理解和信息检索中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家好,我是学生大使 Jambo。在我们前一篇文章中,我们介绍了 OpenAI 模型的调用。今天,我将为大家介绍 Embedding 的使用。

嵌入是什么

嵌入(Embedding )是一种将高维数据映射到低维空间的方法。嵌入可以将高维数据可视化,也可以用于聚类、分类等任务。嵌入可以是线性的,也可以是非线性的。在深度学习中,我们通常使用非线性嵌入。非线性嵌入通常使用神经网络实现。

上面这句话对于没接触过 NLP(自然语言处理)的同学来说可能有点抽象。你可以理解为通过嵌入,可以将文字信息压缩、编码成向量(或者不准确的称之为数组),而这个向量包含了这段文字的语义。我们可以将这个技术用于搜索引擎、推荐系统等等。

调用 Embedding 模型

与前篇一样,我们需要先部署模型。这里我们使用 text-embedding-ada-002

1

然后安装 openai 包。用以下命令安装,会将 numpy、pandas 等库一并安装。

pip install openai[datalib]

接下来导入 openai,并做一些初始化工作。

import openai

openai.api_key = "REPLACE_WITH_YOUR_API_KEY_HERE"    # Azure 的密钥
openai.api_base = "REPLACE_WITH_YOUR_ENDPOINT_HERE"  # Azure 的终结点
openai.api_type = "azure" 
openai.api_version = "2023-03-15-preview" # API 版本,未来可能会变
model = "text-embedding-ada-002"  # 模型的部署名
embedding = openai.Embedding.create(
    input="苹果", engine="text-embedding-ada-002"
)
print(embedding1)
{
  "data": [
    {
      "embedding": [
        0.011903401464223862,
        -0.023080304265022278,
        -0.0015027695335447788,
        ...
    ],
      "index": 0,
      "object": "embedding"
    }
  ],
  "model": "ada",
  "object": "list",
  "usage": {
    "prompt_tokens": 3,
    "total_tokens": 3
  }
}

其中 embedding 就是 “苹果” 所对应的向量。

计算向量相似度

在我们将文字转换成向量之后,我们讨论两句话的相似度,其实就是问它们所对应向量的相似度。通常我们使用余弦相似度来衡量两个向量的相似度。

余弦相似度是计算两个向量夹角角度的 cos ⁡ \cos cos 值,取值范围在 -1 和 1 之间。如果两个向量的方向完全一致,那么它们的余弦相似度为 1;如果两个向量的方向完全相反,那么它们的余弦相似度为 -1;如果两向量是垂直(正交)的,那么它们的余弦相似度为 0。其公式如下:

cos ⁡ ( θ ) = A ⃗ ⋅ B ⃗ ∥ A ⃗ ∥ ∥ B ⃗ ∥ \cos(\theta) = \frac{\vec A \cdot \vec B}{\|\vec A\| \|\vec B\|} cos(θ)=A ∥∥B A B

A ⃗ \vec A A

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值