Elasticsearch 开放 inference API 增加了对 Cohere Embeddings 的支持

作者:来自 Elastic Serena Chou, Jonathan Buttner, Dave Kyle

我们很高兴地宣布 Elasticsearch 现在支持 Cohere 嵌入! 发布此功能是与 Cohere 团队合作的一次伟大旅程,未来还会有更多合作。 Cohere 是生成式 AI 领域令人兴奋的创新者,我们很自豪能够让开发人员使用 Cohere 令人难以置信。

Elastic 的交付方法:频繁、生产就绪的迭代

在我们深入探讨之前,如果你是 Elastic 的新手(欢迎!),我们始终相信投资我们选择的技术 (Apache Lucene) 并确保贡献可以用作生产级功能,以我们最快的发布模式可以提供。

让我们深入了解一下我们迄今为止所构建的内容以及我们很快将能够提供的内容:

  • 2023 年 8 月,我们讨论了我们对 Lucene 的贡献,以实现最大内积并使 Cohere 嵌入成为 Elastic Stack 的一等公民。
  • 它首先被贡献到 Lucene 中,并在 Elasticsearch 8.11 版本中发布。
  • 在同一版本中,我们还推出了 /_inference API 端点的技术预览,该端点支持 Elasticsearch 中管理的模型的嵌入,但很快在接下来的版本中,我们建立了与 Hugging Face 和 OpenAI 等第三方模型提供商的集成模式。

Cohere 嵌入支持已经向参与我们在 Elastic Cloud 上的 stateless 产品预览的客户提供,并且很快将在即将发布的 Elasticsearch 版本中向所有人提供。

你需要一个 Cohere 帐户,以及一些 Cohere Embed 端点的使用知识。 你可以选择可用的模型,但如果你只是第一次尝试,我们建议你使用模型 embed-english-v3.0,或者如果你正在寻找多语言变体,请尝试 embed-multilingual-v3.0,维度大小为 1024。

在 Kibana 中,即使没有设置 IDE,你也可以访问控制台,以便在 Elasticsearch 中输入这些后续步骤。

PUT _inference/text_embedding/cohere_embeddings 
{"service": "cohere","service_settings": {"api_key": <api-key>, "model_id": "embed-english-v3.0", "embedding_type": "byte"}
}

当你选择在控制台中运行此命令时,你应该会看到相应的 200,用于创建你的命名 Cohere 推理服务。 在此配置中,我们指定 embedding_type 为 byte,这相当于要求 Cohere 返回带符号的 int8 嵌入。 仅当你选择使用 v3 模型时,这才是有效的配置。

你需要在索引中设置映射,以便为存储即将从 Cohere 检索的嵌入做好准备。

Cohere 嵌入的 Elasticsearch 向量数据库

PUT cohere-embeddings
{"mappings": {"properties": {"name_embedding": { "type": "dense_vector", "dims": 1024, "element_type": "byte"},"name": { "type": "text" }}}
}

在映射的定义中,你会发现 Elastic 团队对 Lucene 做出的另一个贡献的一个很好的例子,即使用标量量化的能力。

只是为了好玩,我们粘贴了你将在入门体验中看到的命令,该命令摄取简单的图书目录。

POST _bulk?pretty
{ "index" : { "_index" : "books" } }
{"name": "Snow Crash", "author": "Neal Stephenson", "release_date": "1992-06-01", "page_count": 470}
{ "index" : { "_index" : "books" } }
{"name": "Revelation Space", "author": "Alastair Reynolds", "release_date": "2000-03-15", "page_count": 585}
{ "index" : { "_index" : "books" } }
{"name": "1984", "author": "George Orwell", "release_date": "1985-06-01", "page_count": 328}
{ "index" : { "_index" : "books" } }
{"name": "Fahrenheit 451", "author": "Ray Bradbury", "release_date": "1953-10-15", "page_count": 227}
{ "index" : { "_index" : "books" } }
{"name": "Brave New World", "author": "Aldous Huxley", "release_date": "1932-06-01", "page_count": 268}
{ "index" : { "_index" : "books" } }
{"name": "The Handmaid's Tale", "author": "Margaret Atwood", "release_date": "1985-06-01", "page_count": 311}

此时,你的 books 内容已位于 Elasticsearch 索引中,现在你需要启用 Cohere 在文档上生成嵌入!

为了完成此步骤,你将设置一个 ingest pipeline,该管道使用我们的 inference processor 来调用你在第一个 PUT 请求中定义的推理服务。

PUT _ingest/pipeline/cohere_embeddings
{"processors": [{"inference": {"model_id": "cohere_embeddings", "input_output": { "input_field": "name","output_field": "name_embedding"}}}]
}

如果你没有摄取像本书目录这样简单的内容,你可能想知道如何处理所选模型的 token 限制。

如果需要,你可以快速修改创建的 ingest pipeline 以对大型文档进行分块,或者在首次摄取之前使用其他转换工具来处理分块。

如果你正在寻找其他工具来帮助确定分块策略,那么搜索实验室中的这些 notebooks 就是你的最佳选择。

有趣的是,在不久的将来,Elasticsearch 开发人员将完全可以选择此步骤。 正如本博客开头所提到的,我们今天向你展示的这种集成为未来的更多变化奠定了坚实的基础。 其中之一将是此步骤的大幅简化,你根本不必担心分块,也不必担心摄取管道的构建和设计。 Elastic 将以出色的默认设置为你处理这些步骤!

你已经设置了目标索引和摄取管道,现在是时候重新索引以强制文档完成该步骤了。

POST _reindex
{"source": {"index": "books","size": 50 },"dest": {"index": "cohere-embeddings","pipeline": "cohere_embeddings"}
}

用于 Cohere 向量嵌入的 Elastic kNN 搜索

现在你已准备好使用 Cohere 嵌入进行第一个向量搜索。

GET cohere-embeddings/_search
{"knn": {"field": "content_embedding","query_vector_builder": {"text_embedding": {"model_id": "cohere_embeddings","model_text": "Snow"}},"k": 10,"num_candidates": 100},"_source": ["name","author"]
}

就这么简单。

如果你已经对向量搜索有了很好的理解,我们强烈建议你阅读这篇关于将 kNN 作为查询运行的博客 - 这将解锁专家模式!

与 Cohere 的集成以 stateless 方式提供,很快就可以在 Elastic Cloud、笔记本电脑或自我管理环境中的版本化 Elasticsearch 版本中进行尝试。

祝你搜索愉快,再次感谢 Cohere 团队在此项目上的合作!

准备好将 RAG 构建到你的应用程序中了吗? 想要尝试使用向量数据库的不同 LLMs?
在 Github 上查看我们的 LangChain、Cohere 等示例 notebooks,并参加即将开始的 Elasticsearch 工程师培训!

原文:Elasticsearch open inference API adds support for Cohere Embeddings — Elastic Search Labs

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

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

相关文章

SpringBoot+Prometheus+Grafana实现应用监控和报警

一、背景 SpringBoot的应用监控方案比较多&#xff0c;SpringBootPrometheusGrafana是目前比较常用的方案之一。它们三者之间的关系大概如下图&#xff1a; 关系图 二、开发SpringBoot应用 首先&#xff0c;创建一个SpringBoot项目&#xff0c;pom文件如下&#xff1a; <…

蓝桥杯嵌入式老竞赛板在MDK5上使用CooCox下载出现unknown device的问题

本文是在参考网上博客并经过实操解决自己遇到的问题总结而成&#xff0c;只是为了让后来者少走弯路。 本文是在在LED闪烁实验时遇到这个问题 蓝桥杯嵌入式老竞赛板在MDK5上使用CooCox下载出现unknown device的问题 环境&#xff1a;win11系统&#xff0c;keil MDK 518 老竞赛…

【Unity】TextMeshPro富文本

启用富文本 在Unity里&#xff0c;如果需要使用富文本&#xff0c;首先需要开启Rich Text 如果不开启Rich Text&#xff0c;就会在UI上显示富文本代码 1.粗体 <b>Game</b> Over2.斜体 <i>Game</i> Over3.下划线 <u>Game</u> Over4…

.Net 知识杂记

记录平日中琐碎的.net 知识点。不定期更新 目标框架名称(TFM) 我们创建C#应用程序时&#xff0c;在项目的工程文件(*.csproj)中都有targetFramework标签&#xff0c;以表示项目使用的目标框架 各种版本的TFM .NET Framework .NET Standard .NET5 及更高版本 UMP等 参考文档&a…

Tomcat配置https

前言&#xff1a;本文内容为实操记录&#xff0c;仅供参考&#xff01; 一、证书 CA证书申请下载不赘述了。 二、上传证书 进入tomcat根目录&#xff0c;conf同级目录下创建cert文件夹&#xff0c;并将证书两个文件上传到该文件夹&#xff1b; 三、编辑conf/server.xml文件 ① …

unity3d for web

时光噶然 一晃好多年过去了&#xff08;干了5年的u3d游戏&#xff09;&#xff0c;记得最后一次使用的版本好像是 unity 2017。 那个是 unity3d for webgl 还需要装个插件。用起来很蛋疼。 最近做一个小项目 在选择是用 Layabox 还是 cocosCreate 的时候 我想起了老战友 Uni…

iOS - Runloop的运行逻辑

文章目录 iOS - Runloop的运行逻辑1. 苹果官方的Runloop执行图2. Mode里面的东西2.1 Source02.2 Source12.3 Timers2.4 Observers 3. 执行流程3.1 注意点 4. Runloop休眠 iOS - Runloop的运行逻辑 1. 苹果官方的Runloop执行图 2. Mode里面的东西 2.1 Source0 触摸事件处理pe…

中企出海,在地合规、境外支出管理,该怎么做?

从组团出海抢订单,到“新三样”拉动外贸新增长......"出海",已经成了中国企业的关键战略。但企业出海水深浪高,由于在全球税财法管控体系上缺乏经验,在地合规风险、内控管理漏洞、资金支出隐患等方面可能“陷阱”重重。 基于此,分贝通联合安永,以“破局!中国企业出海…

MTransE阅读笔记

Multilingual Knowledge Graph Embeddings for Cross-lingual Knowledge Alignment 用于交叉知识对齐的多语言知识图谱嵌入(MTransE) Abstract 最近的许多工作已经证明了知识图谱嵌入在完成单语知识图谱方面的好处。由于相关的知识库是用几种不同的语言构建的&#xff0c;因…

Java代码基础算法练习-求偶数和-2024.03.29

任务描述&#xff1a; 编制程序&#xff0c;输入n个整数&#xff08;n从键盘输入&#xff0c;n>0&#xff0c;整数取值范围&#xff1a;0~1000&#xff09;&#xff0c;输出这n个 数当中的偶数和。 任务要求&#xff1a; 代码示例&#xff1a; package M0317_0331;import…

集合,排序查找算法,可变参数

文章目录 集合Set集合TreeSet集合 Map集合概述特点子类及其底层数据结构常用方法遍历 数据结构常见的数据结构二叉树 可变参数介绍格式注意 Collections工具类方法 排序查找算法冒泡排序介绍原理注意代码 选择排序介绍原理规律代码 二分查找前提介绍原理注意代码 集合 Set集合 …

大话设计模式之代理模式

代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许通过代理对象控制对另一个对象的访问。代理对象充当客户端和实际对象之间的中介&#xff0c;客户端通过代理对象间接访问实际对象&#xff0c;从而可以在访问控制、缓存、延迟加载等方面提…

蓝桥杯刷题第四天

思路&#xff1a; 这道题很容易即可发现就是简单的暴力即可完成题目&#xff0c;我们只需满足所有数的和为偶数即可保证有满足条件的分法&#xff0c;同时也不需要存下每个输入的数据&#xff0c;只需要知道他是偶数还是奇数即可&#xff0c;因为我们只需要偶数个奇数搭配在一块…

如何使用命令行对RK开发板进行OpenHarmony版本烧录?

问题 在 OpenHarmony 自动化测试环境中&#xff0c;需要对流水线上的 RK 设备进行烧录&#xff0c;图形工具只能人工操作&#xff0c;那么有什么方法可以纯命令行进行自动化烧录呢&#xff1f; 思路 我们发现 RK 开发板实际是使用 upgrade_tool 的执行文件进行烧录的&#x…

公众号文章怎么写?手把手教你

公众号文章写作是讲究技巧和经验的&#xff0c;按照爆款文章的逻辑和结构走&#xff0c;你也能写出精彩的公众号推文&#xff0c;本文伯乐网络传媒将为你揭秘公众号文章的写作之道&#xff0c;纯干货&#xff0c;建议收藏起来慢慢看。 一、文章结构安排 1. 标题策划&#xff1…

使用Leaflet.rotatedMaker进行航班飞行航向模拟的实践

目录 前言 一、Leaflet的不足 1、方向插件 2、方向控制脚本说明 二、实时航向可视化实现 1、创建主体框架 2、飞机展示 3、位置和方位模拟 三、成果及分析 1、成果展示 2、方向绑定解读 总结 前言 众所周知&#xff0c;物体在空间中的运动&#xff08;比如飞行、跑步…

Windows11 使用 VirtualBox 安装创建 Ubuntu虚拟机

〇、背景 开发者大比例习惯都是Windows下编辑代码&#xff0c;比如使用Windows的Visual Studio Code进行代码的开发。但不管是AOSP还是鸿蒙开发&#xff0c;目前都不支持windows本地环境编译的&#xff0c;建议使用Ubuntu操作系统环境对源码进行编译。 因此&#xff0c;没有U…

redis集群配置(精华版):主从复制模式

主从复制模式 概念&#xff1a;作用&#xff1a;为什么使用集群&#xff1a;动手实操1、环境准备2、配置redis.conf配置文件3、再次查看主从节点信息4、验证主从模式 概念&#xff1a; ​ 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器…

Manjaro 安装全新 Linux 版微信,从此告别 Wine

目前已经基本上使用 Manjaro 来工作&#xff0c;而工作离不开微信作为日常的工作沟通工具。因为微信官方一直没有 Linux 版本的&#xff0c;所以之前都只能够使用 Wine 版本&#xff0c;然后踩了不少坑&#xff0c;但还算能勉强使用。 最近听说微信终于要发布 Linux 版本的&am…

网络层/数据链路层/其他协议/ARP/NAT

网络层 IP协议 前置认识 我们之前详谈过TCP协议&#xff0c;TCP协议主要是提供一种可靠的传输策略&#xff0c;但是并不能直接将报文发送给对方主机&#xff0c;而IP协议的本质就是提供一种将数据跨网络从A主机送到B主机的能力&#xff0c;而用户需要的是一种将数据 可靠的 跨…