生成人工智能(生成AI)为构建智能系统开启了新的可能性。最近在生成AI基础的大型语言模型(LLM)中的进步,让它们能够在信息检索的多个应用中得到使用。考虑到数据源,LLM提供的工具使我们能在几周内部署出问答聊天机器人,而不是以前可能需要多年才能完成的过程,而且性能也将更好。因此,我们制定了一个检索增强生成(RAG)解决方案,以便让PGATOUR创建一个未来的粉丝互动平台,能够以对话格式将其数据以互动方式呈现给粉丝。
使用结构化数据回答问题需要有效提取与用户查询相关数据的方法。我们采用了文本到SQL方法,将用户的自然语言查询转化为SQL语句,由AmazonAthena执行,并返回相关数据。随后,该数据再次提供给LLM,请其根据所提供的数据回答用户的查询。
处理文本数据需要使用索引来搜索,并为LLM提供相关上下文以回答用户查询。为了快速检索信息,我们使用了作为这些文档的索引。当用户提出问题时,我们的虚拟助手快速浏览AmazonKendra索引,寻找相关信息。AmazonKendra使用自然语言处理(NLP)来理解用户查询并找到最相关的文档,然后将相关信息提供给LLM,以生成最终的回应。我们的最终解决方案是一种结合了文本到SQL和文本RAG方法的系统。
在本文中,我们强调了与以及的合作,开发出了一种原型虚拟助手,使用,使粉丝能够无缝获取关于任何赛事、球员、每个洞或每杆细节的信息。AmazonBedrock是一个完全托管的服务,通过单一API提供来自AI21 Labs、Anthropic、Cohere、Meta、MistralAI、Stability AI和Amazon的多种高性能基础模型(FMs),以及构建生成AI应用所需的一系列功能,确保安全性、隐私性和负责任的AI使用。
在任何数据驱动项目中,性能只会与数据的质量成正比。我们为LLM处理数据,以便其能有效查询和检索相关的数据信息。
对于表格型赛事数据,我们关注于与最多用户查询相关的数据子集,并以直观的方式标记列名,以便于LLM理解。我们还创建一些辅助列,以帮助LLM理解可能比较困难的概念。例如,一个高尔夫球手如果打出了比标准杆少一杆的成绩(如在一个四杆洞中三杆进洞,或在一个五杆洞中四杆进洞),通常被称为“
小鸟球
”。如果用户问:“球员X去年打了多少个小鸟球?”,仅仅通过表格中的分数和标准杆信息是远远不够的。因此,我们添加列来指示常见的高尔夫术语,例如柏忌、小鸟和老鹰。此外,我们将比赛数据与单独的视频集关联,通过加入一个video_id
列,使我们的应用能提取与特定击球相关的视频。我们也使文本数据与表格数据关联,例如为每位球员加入传记信息作为文本列。下图展示了查询在文本到SQL管道中处理的逐步过程,数字指示了回答查询的步骤序列。
删除)
在下图中,我们展示了我们的端到端管道。我们使用作为负责与不同数据源、LLM和用户查询进行互动的编排功能。步骤1-8与之前的图相似。对于非结构化数据有些许变化,我们将在下一部分讨论。
删除)
文本数据需要独特的处理步骤,将长文档分块(或划分)为LLM可消化的部分,同时保持主题的连贯性。我们尝试了多种方法,最终采用了一种按页面分块的方案,与媒体指南的格式很好地对齐。我们使用AmazonKendra——一个托管服务,负责文档索引,无需指定嵌入,并提供易于检索的API。下图展示了这一架构。
删除)
我们开发的统一、可扩展的管道使PGATOUR能够扩展到他们的所有历史数据,其中一些数据可以追溯至1800年代。它为未来的应用提供了支持,能够利用现场赛事的上下文创造丰富的实时体验。
我们仔细测试和评估了可在AmazonBedrock上使用的第一方和第三方LLM,以选择最适合我们的管道和用例的模型。最终,我们选用了Anthropic的Claude v2和ClaudeInstant。对于我们的结构化和非结构化数据管道,我们观察到,Anthropic的Claude 2在提供我们的最终数据管道所需的最好结果方面表现出色。
提问是获取LLM输出所需文本的关键方面。我们花费了大量时间为每个任务实验不同的提问。例如,在文本到SQL管道中,我们设置了多个备用提示,以逐渐增加具体性并简化表格架构。如果SQL查询无效并导致Athena错误,我们开发了一个错误修正提示,将错误和不正确的SQL传递给LLM,并请其修正。文本到SQL管道中的最终提示请求LLM获取Athena的输出,并以Markdown或CSV格式提供信息,并给出答案。针对非结构化文本,我们制定了通用提示,以利用从AmazonKendra检索的上下文回答用户查询。提示中包括指示,要求仅使用从Amazon Kendra检索的信息,而不依赖于LLM预训练的数据。
延迟是生成AI应用中的一个常见问题,本项目也不例外。尤其是文本到SQL时,它涉及到对初始SQL生成LLM的调用,随后是响应生成LLM的调用。如果我们使用大型LLM,例如Anthropic的ClaudeV2,这将有效地使延迟翻倍。我们尝试了多种大小不同的LLM配置,以评估运行时间和结果正确性。下表展示了一个示例问题的延迟,以及在AmazonBedrock上使用Anthropic的Claude V2和Claude Instant生成的响应。
示例问题 | 响应 |
---|---|
Tony Finau在Shriners儿童公开赛中的最长击球距离是多少? | Tony Finau在Shriners儿童公开赛中的最长击球为382码,发生在2018年第一轮的第4洞。 |
Collin Morikawa在Shriners儿童公开赛中打出的最长击球距离是多少? | Collin Morikawa在Shriners儿童公开赛中的最长击球为334码,该击球发生在2019年第一轮的第15洞。 |
2022年Shriners儿童公开赛中是否有人击出一杆进洞? | 是的,Adam Hadwin在2022年Shriners儿童公开赛第三轮的第14洞击出了一杆进洞。 |
在我们的应用中,我们使用Lambda函数来编排提示选择以及与Amazon Athena、Amazon Kendra和AmazonBedrock之间的通信。虚拟助手提供了一个对话式界面,使用React和Cloudscape设计系统构建,通过文本和视频与用户互动。
我们的虚拟助手可以处理有关PGA TOUR赛事、球员、统计数据、历史等各类问题。例如,当被问及TonyFinau在Shriners儿童公开赛中的最长击球时,助手可以查询结构化数据,提取其击球数据,得知其击球距离,以此生成最终响应。下表包含了一些示例响应。
在初步测试中,我们的PGATOUR虚拟助手在改善粉丝体验方面展示了巨大潜力。通过结合文本到SQL、语义搜索和自然语言生成等AI技术,助手能够提供信息丰富、引人入胜的响应。粉丝能够轻松访问此前难以获取的数据与故事。
随着开发的继续,我们将扩展虚拟助手能够处理的问题范围。这将需要AWS与PGATOUR之间的广泛测试。随着时间的推移,我们希望将助手演变为一个个性化、跨渠道的体验,能够在网页、移动和语音接口上访问。
建立一个基于云的生成AI助手,让PGATOUR能够向多个内部和外部利益相关者展示其庞大的数据源。随着体育生成AI领域的发展,它能够创造新的内容。例如,AI和机器学习(ML)可以用来提取粉丝希望在观看赛事时看到的内容,或者生产团队希望从以往比赛中寻找与当前事件匹配的镜头。例如,如果MaxHoma准备在PGA TOUR冠军赛中从距离洞口20英尺的地方进行最终击球,PGATOUR可以利用AI和ML识别并展示他以前尝试类似击球的五个镜头,并附上AI生成的解说。这样的访问和数据使得制作团队能够立即向直播增值,或让粉丝自定义他们希望看到的数据类型。
“PGA TOUR在利用前沿技术提升粉丝体验方面处于行业领先地位。AI是我们技术栈的核心,通过它,我们能够为粉丝创建一个更加引人入胜且互动的环境。这是我们与AWS生成AI创新中心合作开展生成AI旅程的开始,旨在为客户提供全面的转型体验。我们在努力利用Amazon Bedrock和我们的专有数据,创建一个互动式的PGA TOUR粉丝平台,让他们以互动的方式获取赛事、球员、统计或其他内容的信息。”
– Scott Gutterman,PGA TOUR广播和数字资产高级副总裁。
我们在本文中讨论的项目展示了如何利用结构化和非结构化数据源进行融合,以创建下一代虚拟助手。对于体育组织而言,这项技术促进了更沉浸的粉丝互动并释放了内部效率。我们所提供的数据智能帮助PGATOUR的利益相关者,例如球员、教练、官员、合作伙伴和媒体,更快速地做出明智的决策。超越体育领域,我们的方法论可跨行业复用。相同的原则适用于构建能够与客户、员工、学生、患者和其他最终用户互动的助手。通过深思熟虑的设计和测试,几乎任何组织都能从一个能够将其结构化数据库、文档、图像、视频和其他内容进行上下文化的AI系统中获益。
如果您对实施类似功能感兴趣,考虑使用和作为替代的完全AWS管理解决方案。这种方法可以进一步探索通过可定制的代理提供智能自动化和数据搜索的能力。这些代理有可能将用户应用程序的交互转变得更加自然、高效和有效。
Leave a Reply