我们正在引入嵌入,这是 OpenAI API 中的一个新端点,可以轻松执行自然语言和代码任务,如语义搜索、聚类、主题建模和分类。 嵌入是转换为数字序列的概念的数字表示,它使计算机更容易理解这些概念之间的关系。 我们的嵌入在 3 个标准基准测试中优于顶级模型,其中包括 20% 的代码搜索相对改进。
嵌入对于使用自然语言和代码很有用,因为它们可以很容易地被其他机器学习模型和算法(如聚类或搜索)使用和比较。
数值相似的嵌入在语义上也相似。 例如,“canine companions say”的嵌入向量将更类似于“woof”的嵌入向量,而不是“meow”的嵌入向量。
新端点使用神经网络模型(GPT-3 的后代)将文本和代码映射到向量表示——将它们“嵌入”到高维空间中。 每个维度都捕获输入的某些方面。
新的 /嵌入 端点在 开放人工智能API 通过几行代码提供文本和代码嵌入:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
我们正在发布三个嵌入模型系列,每个系列都经过调整以在不同的功能上表现出色:文本相似性、文本搜索和代码搜索。 这些模型将文本或代码作为输入并返回一个嵌入向量。
型号 | 用例 | |
---|---|---|
文本相似度:捕获文本之间的语义相似性。 | 文本相似性-{ada、巴贝奇、居里、达芬奇}-001 | 聚类、回归、异常检测、可视化 |
文字搜寻: 对文档进行语义信息检索。 | 文本搜索-{ada、巴贝奇、居里、达芬奇}-{查询、文档}-001 | 搜索、上下文相关性、信息检索 |
代码搜索:使用自然语言查询查找相关代码。 | 代码搜索-{ada, babbage}-{代码, 文本}-001 | 代码搜索和相关性 |
文本相似性模型
文本相似性模型提供了捕获文本片段语义相似性的嵌入。 这些模型可用于许多任务,包括 集群, 数据可视化及 分类.
以下交互式可视化显示了来自 DBpedia 数据集的文本样本的嵌入:
要比较两段文本的相似性,您只需使用 点积 关于文本嵌入。 结果是“相似度分数”,有时称为“余弦相似度,” 介于 –1 和 1 之间,数字越大表示相似度越高。 在大多数应用中,嵌入可以预先计算,然后点积比较非常快速地执行。
import openai, numpy as np resp = openai.Embedding.create( input=["feline friends go", "meow"], engine="text-similarity-davinci-001") embedding_a = resp['data'][0]['embedding']
embedding_b = resp['data'][1]['embedding'] similarity_score = np.dot(embedding_a, embedding_b)
嵌入的一种流行用途是将它们用作机器学习任务中的特征,例如分类。 在机器学习文献中,当使用线性分类器时,这种分类任务称为“线性探针”。 我们的文本相似性模型在线性探针分类方面取得了新的最先进的结果 发送评估 (Conneau 等人,2018 年),用于评估嵌入质量的常用基准。
文本搜索模型
文本搜索模型提供了支持大规模搜索任务的嵌入,例如在给定文本查询的文档集合中查找相关文档。 分别对文档和查询进行嵌入,然后使用余弦相似度来比较查询和每个文档之间的相似度。
基于嵌入的搜索可以比经典关键字搜索中使用的单词重叠技术更好地概括,因为它捕获了文本的语义含义并且对确切的短语或单词不太敏感。 我们评估文本搜索模型在 贝雷尔 (塔库尔等人。 2021) 搜索评估套件并获得比以前的方法更好的搜索性能。 我们的 文本搜索指南 提供有关使用嵌入进行搜索任务的更多详细信息。
代码搜索模型
代码搜索模型为代码搜索任务提供代码和文本嵌入。 给定一组代码块,任务是为自然语言查询找到相关的代码块。 我们评估代码搜索模型 代码搜索网 (Husian 等, 2019) 评估套件,其中我们的嵌入比以前的方法取得了明显更好的结果。 查看 代码搜索指南 使用嵌入进行代码搜索。
Embeddings API 实例
JetBrains 研究
JetBrains Research 的 天体粒子物理实验室 分析数据,如 天文学家的电报 和美国宇航局的 GCN 通函,即包含传统算法无法解析的天文事件的报告。
在 OpenAI 嵌入这些天文报告的支持下,研究人员现在能够在多个数据库和出版物中搜索“螃蟹脉冲星爆发”等事件。 Embeddings 还通过 k-means 聚类实现了 99.85% 的数据源分类准确率。
微调学习
微调学习 是一家为学习构建混合人类-人工智能解决方案的公司,例如 自适应学习循环 帮助学生达到学术标准。
OpenAI 的嵌入显着改进了根据学习目标查找教科书内容的任务。 OpenAI 的 text-search-curie 嵌入模型实现了 5% 的 top-89.1 准确率,优于之前的方法,如 Sentence-BERT (64.5%)。 虽然人类专家仍然更好,但 FineTune 团队现在能够在几秒钟内标记整本教科书,而专家则需要几个小时。
法比尤斯
法比尤斯 帮助公司将客户对话转化为结构化的洞察力,从而为规划和优先级排序提供依据。 OpenAI 的嵌入使公司能够更轻松地找到并标记带有功能请求的客户通话记录。
例如,客户可能会使用“自动化”或“易于使用”等词来要求更好的自助服务平台。 以前,Fabius 使用模糊关键字搜索来尝试使用自助服务平台标签来标记这些成绩单。 借助 OpenAI 的嵌入,他们现在能够找到 2 倍以上的一般示例,以及 6 至 10 倍以上具有抽象用例且客户可能使用的关键字不明确的功能示例。
所有 API 客户都可以开始使用 嵌入文档 在他们的应用程序中使用嵌入。
.vector 图 img { 显示:无;
}
.vector-diagram img:first-child { 显示:块;
}
var printResponse = function (btn) { // 追加响应 var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') if (!responseEl || !callParentEl) 返回; callParentEl.appendChild(responseEl); // 隐藏按钮 btn.style.display= 'none';
}; var initRotate = function () { var rotates = document.querySelectorAll('.js-rotate'); 如果(!rotates.length)返回; // 对于每组旋转 rotates.forEach(function (r) { // 每 n 秒将第一个子元素移动到结束 window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = function (parent, child) { parent.removeChild(child); parent.appendChild(子); // 附加到父级
}; var initShowMore = function () { var showmores = document.querySelectorAll('.js-showmore'); showmores.forEach(function (e) { e.addEventListener('click', function () { var showmoreparent = this.parentElement; if (!showmoreparent) return; var more = showmoreparent.querySelector('.js-more'); if (!more) return; more.style.display = 'block'; this.style.display = 'none'; }); });
}; // 在里面
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
});
从“https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js”导入{Runtime, Inspector, Library};
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
从“https://api.observablehq.com/d/fef3cb0801a0b0.js?v=322”导入 notebook_embed3d const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener(“调整大小”,调整大小);返回函数(){ window.removeEventListener(“调整大小”,调整大小);};});
}; const topk_renders = {“图表”:“#topk-chart”,
};
new Runtime(Object.assign(new Library, {width: customWidth(“#topk-chart”)})).module(notebook_topk, name => { const selector = topk_renders[name]; if (selector) { // key存在 return new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { “图表”:“#embed3d-图表”,“图例”:“#embed3d-图例”,
};
new Runtime(Object.assign(new Library, {width: customWidth(“#embed3d-chart”)})).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (selector) { // key存在 return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- 实现
- 横过
- 算法
- 其中
- API
- 应用领域
- 可使用
- 基准
- 阻止
- 建筑物
- 呼叫
- 可以得到
- 例
- 更改
- 孩子
- 分类
- 码
- 采集
- 公司
- 公司
- 相比
- 电脑
- 内容
- 对话
- 合作伙伴
- data
- 数据库
- 检测
- 不同
- 尺寸
- 屏 显:
- 文件
- 容易
- 端点
- 事件
- 例子
- 专家
- 家庭
- 高效率
- 专栏
- 特征
- 反馈
- 姓氏:
- 以下
- 功能
- 其他咨询
- 高度
- 帮助
- 帮助
- 隐藏
- 创新中心
- How To
- HTTPS
- 杂交种
- 包含
- 信息
- 可行的洞见
- 互动
- IT
- 键
- 语言
- 知道
- 学习
- 自学资料库
- 文学
- 机
- 机器学习
- 地图
- 匹配
- 问题
- 意
- 指标
- 模型
- 模型
- 摩根
- 最先进的
- 移动
- 美国宇航局
- 自然
- 网络
- 数
- 其他名称
- 性能
- 短语
- 物理
- 规划行程
- 平台
- 热门
- 预测
- 探测器
- 生成
- 产品
- 代码编程
- 提供
- 提供
- 质量
- RE
- 关系
- 释放
- 报告
- 业务报告
- 响应
- 成果
- 搜索
- 选
- 集
- 类似
- 解决方案
- 太空
- 标准
- 开始
- 国家的最先进的
- 样式
- 任务
- 团队
- 技术
- 通过
- 最佳
- 传统
- 理解
- 使用
- 可视化
- W
- W3
- 维基百科上的数据
- 中
- 话
- 加工
- 元