经典案例

  • 首页 /
  • 经典案例 /
  • 在 Amazon Bedrock 中开始使用 Amazon Titan 文本嵌入 机器学习博客

在 Amazon Bedrock 中开始使用 Amazon Titan 文本嵌入 机器学习博客

2026-01-27 13:24:34

开始使用亚马逊 Titan 文本嵌入在亚马逊 Bedrock 中

作者:Jason Stehle,Nitin Eusebius,Mani Khanuja,Mark Roy 和 Raj Pathak 2024年1月31日发表于亚马逊 Bedrock,亚马逊机器学习,中级(200) 永久链接 评论

关键收获

文本嵌入概述:文本嵌入将文本转换为数值表示,以便更好地理解数据的语义和上下文。亚马逊 Titan 文本嵌入:一个模型,可以将自然语言文本转化为数值表示,适用于许多应用,如搜索、个性化和聚类。功能:支持多种语言、提供丰富的嵌入,并允许识别多语言文本的含义。

嵌入在自然语言处理NLP和机器学习ML中起着关键作用。文本嵌入是将文本转化为高维向量空间中的数值表示的过程。该技术通过使用机器学习算法,使数据的含义和上下文语义关系得以理解,并学习数据中的复杂关系和模式句法关系。通过这些生成的向量表示,可以广泛应用于信息检索、文本分类、自然语言处理等多个领域。

亚马逊 Titan 文本嵌入是一个将自然语言文本如单词、短语或大型文档转化为数值表示的模型,适用于许多用例,如基于语义相似度的搜索、个性化和聚类。

在本文中,我们讨论了亚马逊 Titan 文本嵌入模型及其功能和示例应用。

一些关键概念包括:

概念描述文本的数值表示向量捕捉单词之间的语义和关系丰富的嵌入可用于比较文本相似度多语言文本嵌入可识别不同语言中的含义

文本是如何转换为向量的?

将句子转换为向量的方法有多种。一种流行的方法是使用词嵌入算法,如 Word2Vec、GloVe 或 FastText,然后聚合这些词嵌入以形成句子级别的向量表示。

另一种常见的方法是使用大型语言模型LLMs,例如 BERT 或 GPT,这些模型能为整个句子提供上下文化的嵌入。这些模型基于深度学习架构如 Transformers,能更有效地捕捉句子中单词之间的上下文信息和关系。

为什么我们需要嵌入模型?

向量嵌入是 LLM 理解语言语义程度的基础,使得 LLM 能在情感分析、命名实体识别和文本分类等下游 NLP 任务中表现良好。

除了语义搜索,嵌入还可用于通过检索增强生成RAG提升输入的准确性但为此,您需要将它们存储在具备向量能力的数据库中。

亚马逊 Titan 文本嵌入模型经过优化,适用于文本检索,支持 RAG 用例。它可以将您的文本数据转换为数值表示或向量,并使用这些向量从向量数据库中准确搜索相关段落,从而最大限度地利用您的专有数据与其他基础模型的结合。

由于亚马逊 Titan 文本嵌入是在亚马逊 Bedrock上管理的模型,因此它提供的是完全无服务器的体验。您可以通过亚马逊 Bedrock REST API或 AWS SDK 进行使用。所需的参数包括您希望生成嵌入的文本以及表示亚马逊 Titan 文本嵌入模型名称的 modelID 参数。以下是使用 AWS SDK for Python (Boto3) 的示例代码:

pythonimport boto3import json

创建与 Bedrock 的连接

bedrock = boto3client( servicename=bedrock regionname=uswest2 )

bedrockruntime = boto3client( servicename=bedrockruntime regionname=uswest2 )

查看所有可用的亚马逊模型

availablemodels = bedrocklistfoundationmodels()

for model in availablemodels[modelSummaries] if amazon in model[modelId] print(model)

定义提示和模型参数

promptdata = 给我写首关于苹果的诗

body = jsondumps({ inputText promptdata})

modelid = amazontitanembedtextv1 # 查找嵌入accept = application/json contenttype = application/json

调用模型

response = bedrockruntimeinvokemodel( body=body modelId=modelid accept=accept contentType=contenttype)

打印响应

responsebody = jsonloads(response[body]read())embedding = responsebodyget(embedding)

打印嵌入

print(embedding)

输出将类似于以下内容:

plaintext[0057861328 015039062 04296875 031054688 015625]

有关如何安装所需包、连接到亚马逊 Bedrock 以及调用模型的更多详细信息,请参阅亚马逊 Bedrock boto3 设置。

亚马逊 Titan 文本嵌入的功能

使用亚马逊 Titan 文本嵌入,您可以输入多达 8000 个词元,非常适合根据您的用例处理单个单词、短语或整篇文档。 亚马逊 Titan返回 1536 维的输出向量,具有很高的准确性,同时优化了低延迟和低成本的结果。

亚马逊 Titan 文本嵌入支持创建和查询超过 25 种不同语言的文本嵌入。这意味着您可以将模型应用于您的用例,而无需为每种希望支持的语言创建和维护单独的模型。

拥有一个训练过多种语言的单一嵌入模型提供以下关键好处:

优势描述更广的覆盖范围通过开箱即用的 25 种语言,您可以将应用程序的覆盖范围扩大到许多国际市场的用户和内容一致的表现借助覆盖多种语言的统一模型,您将获得跨语言的一致结果,而不是单独优化每种语言。多语言查询支持允许在任何支持的语言进行文本嵌入查询,灵活性较强,以便跨语言检索语义相似内容。

截至撰写本文时,支持的语言包括:

阿拉伯语中文简体中文繁体捷克语荷兰语英语法语德语希伯来语印地语意大利语日语卡纳达语韩语马来亚拉姆语马拉地语波兰语葡萄牙语俄语西班牙语瑞典语菲律宾语泰米尔语泰卢固语土耳其语

使用亚马逊 Titan 文本嵌入与 LangChain

LangChain是一个流行的开源框架,用于处理生成 AI模型和相关技术。它包括一个BedrockEmbeddings 客户端,方便地以抽象层包裹 Boto3 SDK。 BedrockEmbeddings 客户端允许您直接处理文本和嵌入,而无需了解 JSON 请求或响应结构的细节。以下是一个简单的示例:

pythonfrom langchainembeddings import BedrockEmbeddings

黑石加速器下载

创建亚马逊 Titan 文本嵌入客户端

embeddingsclient = BedrockEmbeddings()

定义要创建嵌入的文本

text = 请告诉我怎么去面包店?

调用模型

embedding = embeddingsclientembedquery(text)

打印响应

print(embedding)

您还可以与亚马逊 Bedrock LLM 客户端一起使用 LangChain 的 BedrockEmbeddings 客户端,以简化实现 RAG、语义搜索和其他与嵌入相关的模式。

嵌入的用例

虽然 RAG 目前是使用嵌入的最流行用例,但还有许多其他用例可以使用嵌入单独解决特定问题或与 LLM 协同工作:

问答:嵌入可以通过 RAG 模式来支持问答接口。生成嵌入与向量数据库相结合,可以找到问题与知识库内容之间的最接近匹配。个性化推荐:类似于问答,您可以使用嵌入根据用户提供的标准找到度假目的地、高校、车辆或其他产品。这可以是简单的匹配列表,或使用 LLM 处理每个推荐,并解释其如何满足用户的需求。您还可以使用这种方法为用户生成基于其特定需求的“十大最佳”文章。数据管理:当您拥有映射不清晰的数据源,而手头又有描述数据记录的文本内容时,可以利用嵌入识别潜在重复记录。例如,可以使用嵌入识别可能使用不同格式、缩写或翻译名称的重复候选记录。应用组合合理化:在努力整合母公司与收购目标公司的应用组合时,识别潜在重叠点并不总是显而易见。如果配置管理数据质量较低,这可能会成为限制因素,并且协调跨团队理解应用程序环境可能很困难。通过使用嵌入的语义匹配,我们可以快速分析应用程序组合,识别具有合理化潜力的高潜力候选应用。内容分组:可以使用嵌入帮助将类似内容分组到提前无法明确知道的类别中。例如,假设您有一系列客户电子邮件或在线产品评论。您可以为每个项目创建嵌入,然后通过kmeans 聚类来识别客户关注、产品赞扬或投诉等主题的逻辑分组。然后,可以使用 LLM 生成这些分组内容的集中摘要。

语义搜索示例

在我们的GitHub 示例中,我们展示了一个简单的嵌入搜索应用,利用亚马逊 Titan 文本嵌入、LangChain 和 Streamlit。

该示例将用户的查询与内存向量数据库中最接近的条目进行匹配。然后我们直接在用户界面中展示这些匹配。这在您需要故障排除 RAG 应用程序或直接评估嵌入模型时非常有用。

为了简化,我们使用了内存中的FAISS数据库来存储和搜索嵌入向量。在大规模的实际场景中,您可能希望使用持久的数据存储,如亚马逊 OpenSearch 无服务器向量引擎或pgvector扩展模块。

尝试从 Web 应用中用不同语言提出一些提示,例如:

在 Amazon Bedrock 中开始使用 Amazon Titan 文本嵌入 机器学习博客我如何监控我的使用情况?我如何自定义模型?我可以使用哪些编程语言?Comment mes donnes sontelles scurises 私保护?Quais fornecedores de modelos esto disponveis por meio do BedrockIn welchen Regionen ist Amazon Bedrock verfgbar有哪些级别的支持?

请注意,即使源材料是英文的,其他语言的查询同样会与相关条目进行匹配。

结论

基础模型的文本生成能力非常令人兴奋,但必须记住,理解文本、从知识体中查找相关内容以及在段落之间建立联系对实现生成 AI 的全部价值至关重要。随着这些模型的持续改进,我们将继续看到新的有趣的嵌入应用场景出现。

下一步

您可以在以下工作坊中找到嵌入的附加示例,作为笔记本或演示应用:

亚马逊 Bedrock 工作坊亚马逊 Bedrock 检索增强生成 (RAG) 工作坊使用亚马逊 Bedrock 和 LangChain 构建

关于作者

Jason Stehle 是 AWS 的高级解决方案架构师,现居新英格兰地区。他与客户合作,将 AWS 能力与他们最大的业务挑战对齐。工作之外,他喜欢与家人一起搭建模型和观看漫画电影。

Nitin Eusebius 是 AWS 的高级企业解决方案架构师,拥有软件工程、企业架构和 AI/ML 的经验。他对探索生成 AI 的可能性充满热情,并与客户合作,帮助他们在 AWS 平台上构建良构架的应用程序,致力于解决技术挑战并帮助他们的云端之旅。

Raj Pathak 是大型财富 50 公司和中型金融服务机构FSI的首席解决方案架构师和技术顾问,跨加拿大和美国。他专注于机器学习应用,如生成 AI、自然语言处理、智能文档处理和 MLOps。

Mani Khanuja 是技术主管生成 AI 专家,《在 AWS 上应用机器学习和高性能计算》一书的作者,还是制造业教育基金会董事会成员。她领导多个领域的机器学习 (ML) 项目,如计算机视觉、自然语言处理和生成 AI。她帮助客户构建、训练和部署规模庞大的机器学习模型,并在 reInvent、Women in Manufacturing West、YouTube 网络研讨会和 GHC 23 等内部和外部会议上发言。闲暇时,她喜欢在海滩上长跑。

Mark Roy 是 AWS 的首席机器学习架构师,帮助客户设计和构建 AI/ML 解决方案。他的工作涵盖了广泛的机器学习用例,尤其关注计算机视觉、深度学习以及大规模部署机器学习。他已为多个行业的公司提供帮助,包括保险、金融服务、媒体娱乐、医疗保健、公用事业和制造业。Mark 拥有六项 AWS 认证,其中包括 ML 专业认证。在加入 AWS 之前,Mark 在金融服务等领域担任建筑师、开发人员和技术领袖超过 25 年。

使用 AWS IoT 安全隧道连接远程设备 官方博客
使用 AWS IoT 安全隧道连接远程设备 官方博客
2026-01-27
施耐德电气利用亚马逊Aurora和亚马逊Bedrock的生成性人工智能AI实现Salesforc
施耐德电气利用亚马逊Aurora和亚马逊Bedrock的生成性人工智能AI实现Salesforc
2026-01-27