如何用大模型 + 向量数据库,帮你搞定出行规划与旅游 blog
在 Zilliz 最近主办的柏林非结构化数据Meetup上,海外旅游规划平台GetYourGuide的机器学习工程师Meghna Satish分享了他们是如何使用 LLM+向量数据库,来构建改善客户体验并重塑旅游服务的经验与思路,以及如何解决大模型幻觉等问题。
一、GYG 如何使用 LLM 改善服务
1、内容翻译和本地化
GYG 对 LLM 的主要应用之一是内容翻译和本地化。因为 LLM 能打破语言障碍,实时翻译文章、酒店描述和评论等旅行信息,使不同地区的用户能够用母语理解。
其采用的大模型一般是 ChatGPT,在大部分情况下 ChatGPT 可以提供与品牌调性一致的高质量翻译。然而,ChatGPT 的训练数据来源约 50%是英语,6%是西班牙语,32%是欧洲语,18%是亚洲语言。
因此为了对抗潜在的偏见并确保准确性,GYG 会将 ChatGPT 翻译与其他深度学习神经网络相结合,用于后期编辑,以实现更精准、更具文化敏感性的本地化。
2、内容生成和客户支持
旅游平台内容为王的背景下,GYG 还使用 LLM 来辅助内容创作,包括 AI 辅助的景点介绍、目的地指南和旅游博客,全都可以通过自动化内容生成。
创作之外,基于 LLM 的客服支持,还可以通过自动 FAQ 和多轮对话来提供精准答案并高效回答海量用户问题,让专业的客服能够专注于更复杂的案例,同时降低运营成本。
3、未来可能性:个性化推荐
虽然 GYG 还未实施,但 LLM 具有巨大的个性化潜力。LLM 可以利用用户数据(如搜索历史记录、预订模式和交互偏好),为个人用户创建定制化内容,包括个性化行程、活动推荐和符合用户旅行兴趣的定制折扣。
二、GYG 使用 LLM 的挑战
尽管能够初步翻译和生成内容,但 GYC 在使用 LLM(特别是 ChatGPT)后期编辑本地化内容时还是遇到了一些挑战:
幻觉:如果缺乏与查询相关的特定信息,ChatGPT 有时会生成不正确或捏造的细节。例如,在翻译时,它可能会发明原文中不存在的人名、地点或事件,引入不准确的信息,进而影响翻译质量。并且,ChatGPT 还倾向于回答问题,而非严格遵循翻译任务,导致内容偏离预期。
提示偏离:ChatGPT 偶尔会添加原始提示中没有的额外字符或信息,导致回答偏离预期目的,使提示词变得无关紧要。这种“偏离”会破坏预期输出,需要额外的检查和编辑。
角色一致性:ChatGPT 有时无法维持被分配的角色。如果一个提示略微偏离预期语气或内容,ChatGPT 可能会对任务本身进行评论,而不是严格遵守指示。这可能会干扰诸如翻译等需要一致性的任务。
为了应对这些挑战,需要人工监督以确保准确性和相关性。然而,人工干预只能有效处理中小规模应用的问题,对于每天有数十万用户的大型系统来说,手动监督是不切实际的。
因此,可以通过检索增强生成(RAG)作为解决方案:通过向 LLM 提供外部数据源,RAG 可以减轻幻觉,填补需要人工输入的知识空白。
三、检索增强生成(RAG)减少 LLM 幻觉
RAG是减少 LLM 幻觉的典型解决方案,尤其是需要查询模型训练数据之外的特定知识时。例如,如果我们向 LLM 询问一些企业内部专有数据的时候,它可能会返回不准确的回答,而 RAG 通过检索相关上下文,并将其提供给 LLM,能使其更准确地回答。
标准的 RAG 设置结合了 LLM(如 ChatGPT)、向量数据库(如Milvus或其托管版本Zilliz Cloud)以及 Embedding模型。开发人员可以集成其他工具,如LlamaIndex、LangChain、DSPy或rerankers,来构建更高级的 RAG 系统,这些工具针对检索、重新排名或其它专业任务进行了优化,以获得更准确和更相关的输出。
以下是一个 RAG 的典型工作流程:
向量化:我们的问题不会被直接发送给 LLM,而是通过 Embedding 模型首先将查询和外部知识源分别编码为向量嵌入。
向量存储:这些向量嵌入会被存储在 Milvus 或 Zilliz Cloud 这样的向量数据库中,这些数据库能够有效管理大量向量化数据,以实现快速检索。
向量相似性搜索:向量数据库执行相似性搜索,识别与用户查询的上下文和语义匹配的前 k 个结果。
将上下文传递给 LLM:向量搜索的最优匹配结果与原始查询一起输入给 LLM,这为 LLM 提供了相关的最新信息,有助于减少幻觉并提高响应准确性。
生成最终响应:LLM 结合其预训练知识与检索到的上下文,生成更准确、更明智的响应。
这种方法使 LLM 能够有效处理复杂或特定的问题,即使它缺乏有关该主题的直接训练。
四、RAG 与微调模型
RAG 和微调以不同方式改进了 LLM。RAG 能实时从外部源获取相关的最新信息来丰富响应,使其非常适合信息变化频繁或涵盖主题广泛的情况。这种方法使 LLM 无需进行大量重新训练,就能够处理多样化或动态查询,保持相关性的同时还能降低成本。相比之下,微调通过调整特定数据集的权重来永久更新模型的知识,使其非常适合需要在稳定领域具有深厚专业知识的应用,但是,微调是资源密集型的,不太适应信息快速变化的情况。
总之,RAG 最适合需要实时访问外部数据的可扩展、适应性强的任务,而微调最适合从嵌入的专业知识中受益的专门应用。对于许多应用案例来说,相比传统微调,RAG 的灵活性和性价比使其成为更具吸引力的选择。
不过,通常来说,RAG 和微调并不相互排斥,我们可以将它们视为相辅相成的选择。比如,通过微调 LLM 以提高其对特定领域语言的理解,确保其输出满足应用的特定需求;同时,使用能提供从外部源获取的最新且上下文恰当的信息的 RAG,进一步提高响应的质量和相关性。这种组合策略,可以产生更强大和有效的解决方案,同时满足一般和专业要求。
总结
LLM 正在为旅游业带来重大变革,使 GetYourGuide(GYG)等公司能够提供高效的客户体验。通过语言翻译和内容生成等用例,GYG 增强了其平台与用户的互动,使其服务更易于访问。
尽管 ChatGPT 和深度学习神经网络对语言翻译等任务非常有效,但存在不少挑战,尤其是幻觉问题,但通过 RAG,将来自 Milvus 等向量数据库的外部知识连接到 LLM,可以获得更准确的输出,缓解幻觉问题。
推荐
How to Build a Multilingual RAG with Milvus, LangChain, and OpenAI
Build a Multimodal RAG with Gemini, BGE-M3, Milvus and LangChain
本文作者:Yesha Shastri
版权声明: 本文为 InfoQ 作者【Zilliz】的原创文章。
原文链接:【http://xie.infoq.cn/article/c6af869cdb1b15edb6ac388a5】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论