Man*_*dha 4 azure openai-api azure-openai
embeddings
OpenAI有相当多的教程。我无法理解它们是如何工作的。
参考https://platform.openai.com/docs/guides/embeddings/what-are-embeddings, anembedding
是 avector
或list
。将字符串传递给embedding
模型,模型返回一个数字(用最简单的术语来说)。我可以使用这个号码。
如果我使用一个简单的字符串来获取它embeddings
,我会得到一个巨大的列表
result = get_embedding("I live in space", engine = "textsearchcuriedoc001mc")
Run Code Online (Sandbox Code Playgroud)
result
打印时
[5.4967957112239674e-05,
-0.01301578339189291,
-0.002223075833171606,
0.013594076968729496,
-0.027540158480405807,
0.008867159485816956,
0.009403547272086143,
-0.010987567715346813,
0.01919262297451496,
0.022209804505109787,
-0.01397960539907217,
-0.012806257233023643,
-0.027908924967050552,
0.013074451126158237,
0.024942029267549515,
0.0200139675289392 , ..... -> truncated this much, much, much longer list
Run Code Online (Sandbox Code Playgroud)
问题 1 - 这个庞大的列表与我的 4 字文本有何关联?
问题2 -
我创建embeddings
了要在查询中使用的文本。注意,与原文内容的文字完全一致I live in space
queryembedding = get_embedding(
'I live in space',
engine="textsearchcuriequery001mc"
)
queryembedding
Run Code Online (Sandbox Code Playgroud)
当我跑步时cosine similarity
,值为0.42056650555103214
.
similarity = cosine_similarity(embeddings_of_i_live,queryembedding)
similarity
Run Code Online (Sandbox Code Playgroud)
我得到价值0.42056650555103214
该值不应该1
表示相同的值吗?
问题一:
这个庞大的列表与我的 4 字文本有何关联?
A1:假设您想使用 OpenAItext-embedding-ada-002
模型。无论你的输入是什么,你总是会得到一个1536维的嵌入向量(即里面有1536个数字)。您可能熟悉 3 维空间(即 X、Y、Z)。嗯,这是一个1536维的空间,这是非常难以想象的。为什么嵌入向量中有 1536 个数字?因为该text-embedding-ada-002
模型的输出维度为1536。它是预先定义的。
问题2:
我创建了要在查询中使用的文本的嵌入。注意,与原文内容的文字完全一致:
I live in space
。当我运行余弦相似度时,该值为0.42056650555103214
。该值应该1
表示相同的值吗?
A2:是的,如果计算两个相同文本之间的余弦相似度,该值应该是。1
请参阅此处的示例。
有关基于嵌入的语义搜索的示例,请参阅此答案。
归档时间: |
|
查看次数: |
4803 次 |
最近记录: |