OpenAI Embedding:基于人工智能的搜索新篇章

news2025/9/16 4:46:05

theme: orange

本文正在参加「金石计划」

Embedding模型在许多应用场景中都有广泛的应用。在OpenAI中,文本嵌入技术主要用于衡量文本字符串之间的相关性。

什么是Embedding

嵌入(Embeddings)是一种将离散变量表示为连续向量的方法。它在机器学习中起到了不可或缺的作用。例如,在机器翻译中的词嵌入和分类变量中的实体嵌入都是嵌入的成功应用。

image.png

嵌入的本质是“压缩”,用较低维度的k维特征去描述有冗余信息的较高维度的n维特征,也可以叫用较低维度的k维空间去描述较高维度的n维空间。在思想上,与线性代数的主成分分析PCA,奇异值分解SVD异曲同工,事实上,PCA和SVD也可以叫做Embedding方法。

OpenAI 早先提供了第一代模型(在模型ID中用-001表示),包括text-similarity-davinci-001和davinci-001嵌入等等,而后在2022年12月将嵌入模型更新为text-embedding-ada-002(在模型ID中用-002表示)。新模型拥有较小的嵌入大小,新嵌入只有1536维,并且提供:

  • 价格降低了90%-99.8%
  • 嵌入维度大小减少了1/8,降低了向量数据库成本
  • 端点统一,便于使用
  • 在文本搜索、代码搜索和句子相似性方面具有最先进的性能
  • 上下文窗口从2048增加到8192

总的来说,建议对几乎所有用例使用text-embedding-ada-002。它更好,更便宜,更简单使用。

Embedding 应用场景

Embedding模型在许多应用场景中都有广泛的应用。在OpenAI中,文本嵌入技术主要用于衡量文本字符串之间的相关性。以下是一些常见的应用场景: 

  1. 搜索(Search):根据与查询字符串的相关性对搜索结果进行排序。
  2. 聚类(Clustering):将文本字符串按照相似性进行分组。
  3. 推荐(Recommendations):推荐与给定文本字符串相关的项目。
  4. 异常检测(Anomaly Detection):识别与其他文本字符串相关性较低的异常值。
  5. 多样性测量(Diversity Measurement):分析文本字符串之间相似性的分布。
  6. 分类(Classification):根据文本字符串与各标签的相似性进行分类。 

嵌入模型将文本字符串转换为浮点数向量(列表),向量之间的距离衡量它们的相关性。较小的距离表示高相关性,而较大的距离表示低相关性。 

需要特别注意的是,Embedding模型是基于包含一些关于现实世界事件的信息的数据集进行训练的,直到2020年8月为止。您需要处理涉及最近事件的任务,模型可能无法表现出最佳效果。

下面是一种常见的应用场景,将知识数据通过嵌入模型查询出向量,并映射保存,然后在应用时将问题也转换成嵌入式,通过相似度算法(比如余弦相似度)对比前期保存的向量,找出TopN的数据,即得到与问题最关联的内容。

image.png


接下来的文章,我将通过代码构建一个基于OpenAI 嵌入(Embeddings)模型实现的应用场景,请持续关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字节分享的软件测试《面试笔记》文档,让我直呼卧槽卧槽

我有一个朋友(真是朋友,不是我啊),前几年环境好的时候入的行,那时候软件测试的要求真的很低,他那时好像是报了个班,然后入门的,但学的都是些基础,自动化涉及了一点&#…

天坑,后悔进那外包啊......

关于计算机专业应届生毕业之后会遇到的就业问题,网上已经有许多的套路,实际上许多人在选择专业的时候并没有考虑到之后的就业方向,甚至于自己所学的专业面向的工作岗位都不是特别清楚。计算机专业毕业大概率是要做程序员的,而目前…

【Java EE】-多线程编程(九) 锁策略CAS锁优化

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 主要内容:乐观锁VS悲观锁、轻量级锁VS重量级锁、自旋锁VS挂起等待锁、互斥锁VS读写锁、公平锁VS非公平锁、可重入锁VS不可重入锁。CAS实…

docker 执行springboot 报数据源找不到

本地运行springboot项目完全正常&#xff0c;在docker中开启容器&#xff0c;报错&#xff0c;如下&#xff1a; 解决方案&#xff1a;特别简单&#xff08;经过摸爬滚打得出来的结论&#xff09; <resources><resource><directory>src/main/resources</d…

Hum Brain Mapp | 双语者语言控制的遗传基础:一项EEG研究

双语者似乎具有一种独特的能力&#xff0c;在使用一种语言时暂时“忽略”另一种语言&#xff0c;避免无关语言不必要的干扰。这种排除干扰的过程被称为语言控制。部分研究认为双语者的语言控制是通过调用一系列执行功能&#xff0c;如抑制、注意控制、更新、冲突监测和工作记忆…

Linux 云服务器好用吗?(解读Linux云服务器的特点优势)

​  如今&#xff0c;云计算越来越受欢迎&#xff0c;许多公司正在将业务转移到那里。企业向云过渡的主要原因是它提供的众多服务&#xff0c;包括安全和充足的存储、数据库、服务器和其他关键元素。 作为相对前|沿的技术之一&#xff0c;云建立在虚拟服务器上。Linux 服务器…

2.30、守护进程(1)

2.30、守护进程&#xff08;1&#xff09;1.终端是什么2.进程组是什么3.会话是什么4.进程组、会话、控制终端之间的关系5.进程组、会话操作有哪些函数①pid_t getpgrp(void);②pid_t getpgid(pid_t pid);③int setpgid(pid_t pid, pid_t pgid);④pid_t getsid(pid_t pid);⑥pid…

【Java8】新的日期和时间API

【Java8】新的日期和时间API前言为什么要设计新的API&#xff1f;使用LocalDate、LocalTime、LocalDateTimeLocalDateLocalTimeLocalDateTime 合并日期和时间改变日期打印输出及解析日期-时间对象Date和LocalDate、LocalDateTime转换《Java8实战》读书笔记 前言 为什么要设计新…

十二载征程犹未止,看今朝星光尽闪耀丨万字长文回顾2023数据技术嘉年华

4月8日下午&#xff0c;为期两天的第十二届数据技术嘉年华&#xff08;DTC 2023&#xff09;在北京新云南皇冠假日酒店圆满落下帷幕。大会得到了工业和信息化部电子五所的支持和指导&#xff0c;围绕“开源融合数字化——引领数据技术发展&#xff0c;释放数据要素价值”这一主…

基于Spring Boot和Vue3打造一个属于自己的博客平台CodeInsight

CodeInsight是一个基于Spring Boot和Vue3技术栈的博客平台&#xff0c;为开发者和技术爱好者提供了一个专注于现代编程技术分享与学习的高质量平台。在本文中&#xff0c;我们将详细介绍CodeInsight的特点、功能模块以及付费专栏内容。 目录: 《用户体验与交互设计实践》 用户模…

AI新宠:Prompt Learning,用提示学习调教大模型

“提示学习”对于很多人来说都是新名词&#xff0c;Prompt Learning 和 Prompting 这两者之间有什么区别和联系呢&#xff1f;现在的一些大模型如何利用“提示语言”呢&#xff1f;本期直播课为大家做了详细介绍&#xff0c;从 AI 范式的一个变迁&#xff0c;到提示学习&#x…

LVGL V9.0基于VS2022仿真搭建(2)

完整Demo&#xff0c;lvgl,lvgl_drivers相关资料下载 链接&#xff1a;https://pan.baidu.com/s/1h3OKCIBQRX0Hn7KjZsynqg 提取码&#xff1a;sc2l 下载的lv_drivers中的win32drv.c及win32drv.h文件是做了修改的&#xff0c;官网下载的lv_drivers编译会报错&#xff0c;因为l…

数据类型。

数据类型分为简单数据类型&#xff08;值类型&#xff09;和复杂数据类型&#xff08;引用类型&#xff09;值类型&#xff1a;在存储时变量中存储的是值本身&#xff08;string、number、boolean、undefined、null&#xff08;null特殊&#xff0c;返回一个空的对象 object&am…

2023年第十三届MathorCup高校数学建模挑战赛|A题|量子计算机在信用评分卡组合优化中的应用

目录 题目详情 最终收入 贷款利息收入 &#xff0d; 坏账损失 赛题说明 1&#xff1a;流程简化及示例 赛题说明 2&#xff1a;QUBO 模型简介 赛题说明 3&#xff1a;赛题数据 问题​ 题目详情 在银行信用卡或相关的贷款等业务中&#xff0c;对客户授信之前&#xff0c;需…

mycat2安装配置,分库分表,一库多表

1、官网下载&#xff08;官网下载地址&#xff09; 官网下载地址 Index of /2.0/ 下载模板 下载jdk包 下载好后吧jdk包房到mycat的lib目录下 2、配置启动 配置结构 mycat配置文件夹 clusters- prototype.cluster.json //无集群的时候自动创建- c0.cluster.json- c1.cluster…

jupyter notebook笔记 visualpython

通过界面拖拽生成Python代码 0 安装 pip install visualpythonvisualpy install 出现橙色按钮即为成功 1 主界面 2 logic 一些简单的逻辑运算 以class 为例&#xff1a; 3 Data Analysis 3.1 import 3.2 File&#xff08;数据集&#xff09; 3.2.1 读本地文件 3.2.2 写…

【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)

摘要&#xff1a;农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况&#xff0c;自动化标注、记录和保存病害位置和类型&#xff0c;辅助作物病害防治以增加产值。本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统&#xff0c;在介绍算法原理的同时&#…

能够翻译文档的免费软件-免费翻译整个文档的软件

chatgpt怎么实现批量翻译 ChatGPT是一种基于人工智能技术的自然语言处理软件&#xff0c;可以实现快速、准确的批量翻译操作&#xff0c;同时也支持多种语言翻译。下面是 ChatGPT 的批量翻译操作流程&#xff1a; 步骤 1: 确定翻译语言和翻译文本 首先需要确定要翻译的原文本…

套接字通信基础

套接字通信基础概述套接字通信基础套接字类型socket模型创建流程分析套接字创建socket()套接字绑定bind()套接字监听listen()套接字接受连接请求accept套接字连接套接字数据传输套接字通信实例服务器端代码客户端代码应用场景总结概述 套接字通信是在Linux系统中实现进程间通信…