2024年评测:9大API管理工具比较与推荐
AI+搜索:在Elastic的推理API中嵌入大语言模型Cohere API
随着 Elasticsearch 8.13 的发布,开发人员现在可以在 Elastic 的推理 API 中访问 Cohere 的 Embed v3 模型。 这使企业能够轻松地为其数据创建嵌入,在 Elastic 中对这些嵌入进行索引,并在其文档中执行矢量和混合搜索。
开发人员只需调用一次 API,就可以使用 Elastic 的摄取管道将 Cohere 嵌入添加到索引中进行矢量搜索,而且还可以利用 Cohere 的本地嵌入压缩功能,将存储成本降低 75%。
什么是矢量搜索?
矢量搜索(vector-search)是一种信息检索方法,其中的文档和查询表示为矢量而不是纯文本。 在矢量搜索中,机器学习模型生成源输入的矢量表示,它们可以是文本、图像或其他内容。 使用内容的数学表示形式可为搜索方案提供共同的基础。 如果所有内容都是矢量,则查询可以在矢量空间中查找匹配项,即使关联的原始内容使用的媒体或语言与查询不同。
什么是Cohere?
Cohere 是一个大模型平台,它提供了一个 API,使用户可以访问 NLP 和大型语言模型技术。Cohere 提供了对经济实惠、易于部署的大型语言模型的访问。
Cohere成立于2019年,总部位于加拿大多伦多。
利用 Elastic 的推理 API 简化矢量搜索
Elastic 的推理 API 可让开发人员在 Elastic 环境中轻松访问人工智能模型并对其执行推理。 该 API 无需自托管模型或通过外部 API 进行单独的推理调用,从而简化了在 Elastic 中创建和查询矢量索引的过程。 值得注意的是,无需手动遍历现有词法搜索索引中的每个文档来添加向量嵌入,只需调用一次 API,即可创建推理摄取管道并重新为数据建立索引。
Cohere 的整个 Embed v3 模型系列–包括我们最先进的英语嵌入模型(embed-english-v3.0)和多语言嵌入模型(embed-multilingual-v3.0)–现在可通过 Elastic 的推理 API 在 Elastic Cloud 和 Elastic 自管理环境中使用。
我们还很高兴地宣布,推理 API 原生支持浮点和 int8(或字节)嵌入。 Int8 压缩允许用户利用 Elastic 对字节矢量的支持,将嵌入的大小减少 4倍,而对搜索质量的影响却很小。 由于矢量数据库的成本在一定程度上与存储矢量的大小相关,因此开发人员可以在不影响准确性的情况下降低存储成本。 Cohere 的嵌入模型在使用 int8(字节)压缩时,其性能可与 OpenAI 的嵌入模型相媲美,而存储成本仅为后者的一小部分。 下图显示了各种嵌入模型的 MTEB 精度与约 2.5 亿嵌入数据集的存储成本的比较。
我们很高兴 Elastic 行业领先的平台能让开发人员更轻松地访问我们的嵌入式产品。
如何将 Cohere 与弹性推理 API 结合使用
使用推理应用程序接口(Inference API)实现 Cohere 的嵌入只需调用几个应用程序接口。
首先,创建一个推理模型,指定一个 Cohere 的嵌入模型。 在本例中,我们将使用 Cohere 的基准英语模型 “embed-english-v3.0″,并使用 int8 压缩。 要在 Elastic 中使用 int8 压缩,我们将指定`embedding_type`为`byte`。
PUT _inference/text_embedding/cohere_embeddings
{
"service": "cohere",
"service_settings": {
"api_key": "<cohere_api_key>",
"model_id": "embed-english-v3.0",
"embedding_type": "byte"
}
}
接下来,为包含嵌入内容的新索引创建索引映射。 在此,您将指定由您选择的向量和压缩技术决定的某些参数。
PUT cohere-embeddings
{
"mappings": {
"properties": {
"content_embedding": {
"type": "dense_vector",
"dims": 1024,
"element_type": "byte"
},
"content": {
"type": "text"
}
}
}
}
接下来,创建一个带有推理处理器的摄取管道,以便在将内容摄取到索引时自动计算嵌入。
PUT _ingest/pipeline/cohere_embeddings
{
"processors": [
{
"inference": {
"model_id": "cohere_embeddings",
"input_output": {
"input_field": "content",
"output_field": "content_embedding"
}
}
}
]
}
要完成新索引的设置,请使用您刚刚创建的摄取管道重新索引现有来源的数据。 新索引将包含管道中指定的输入字段中所有文本数据的嵌入,供您在语义搜索中使用。
POST _reindex?wait_for_completion=false
{
"source": {
"index": "test-data",
"size": 50
},
"dest": {
"index": "cohere-embeddings",
"pipeline": "cohere_embeddings"
}
}
现在您的索引已经创建,您可以使用 KNN 向量搜索和 Cohere 的嵌入来轻松查询。
GET cohere-embeddings/_search
{
"knn": {
"field": "content_embedding",
"query_vector_builder": {
"text_embedding": {
"model_id": "cohere_embeddings",
"model_text": "Elasticsearch and Cohere"
}
},
"k": 10,
"num_candidates": 100
},
"_source": [
"id",
"content"
]
}
就是这样! 利用 Cohere 嵌入在您的 Elastic 索引中进行语义搜索。 要开始使用,请为 Cohere 创建一个试用 API 密钥,并尝试使用 Elastic 的推理 API 和 Cohere 的嵌入。
如何发现更多AI搜索API
幂简集成是国内领先的API集成管理平台,专注于为开发者提供全面、高效、易用的API集成解决方案。幂简API平台提供了多种维度发现API的功能:通过关键词搜索API、从API Hub分类浏览API、从开放平台分类浏览企业间接寻找API等。
此外,幂简集成开发者社区会编写API入门指南、多语言API对接指南、API测评等维度的文章,让开发者选择符合自己需求的API。
本文翻译源自:https://cohere.com/blog/elastic-inference-api