embeddings是什么?
OpenAI 的文本嵌入模型可以计算文本字符串的特征向量,通过向量计算字符串之间的语义相关性。嵌入通常用于:
- 搜索(其中搜索结果按与查询字符串的相关性排序)
- 聚类(其中文本字符串按相似性分组)
- 推荐(其中推荐具相似的内容)
- 异常检测(识别具有很少相关性的异常值)
- 多样性测量(分析相似性分布)
- 分类(按它们最相似的标签对文本字符串进行分类)
embeddings模型计算出来的向量数据是浮点数数组。两个向量之间的距离可以表达它们之间的相关性。距离越近表明相关性越高,距离越远表明相关性越低。
- 提示:目前业界在文本向量计算这块,OpenAI的embedding模型效果是比较好的,缺点就是要花钱,不过目前价格还是很便宜,目前大概$0.0001/1K tokens。
如何使用embeddings模型?
使用openai的嵌入模型很简单,一个接口调用就可以搞定,目前OpenAI最新的嵌入模型是ext-embedding-ada-002
HTTP API调用例子:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "欢迎浏览www.tizi365.com的文本嵌入模型教程",
"model": "text-embedding-ada-002"
}'
参数就两个input就是需要计算向量的文本,model就是我们选择的嵌入模型,OPENAI_API_KEY就是API KEY,这个需要申请。
返回结果示例:
{
"data": [
{
"embedding": [
-0.006929283495992422,
-0.005336422007530928,
...
-4.547132266452536e-05,
-0.024047505110502243
],
"index": 0,
"object": "embedding"
}
],
"model": "text-embedding-ada-002",
"object": "list",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
embedding字段就是返回的特征向量数组。