【为生成AI应用程序的向量搜索】 Case 7: 语义搜索和聊天
首先
Apache Cassandra和DataStax Astra DB作为向量数据库的背景。
根据DataStax工程师的提议,为了应对从2022年开始兴起的生成AI浪潮,已经在Apache Cassandra上提出了扩展向量搜索功能的建议。这一功能现在可在DataStax的Cassandra托管服务Astra DB中使用。本文章系列将根据DataStax公司公布的白皮书内容,作为对这一趋势的一部分进行讨论。
来源和日本语版
这个系列文章的原始资料可以在以下获取。
在博客文章中,我们注重易读性而不是忠实于原文的翻译,因此有部分内容被省略了。
如果您希望获得完整的日文版白皮书,请通过info-jp@datastax.com与我们联系,我们会提供给您。
【用于生成AI应用的向量搜索】用例: 语义搜索和聊天
语义搜索
语义搜索经常被解释为“带有意义和理解的搜索”。它与基于词汇或关键词匹配的搜索相对立。
以下是用中文表达的简化版本:
为了说明语义搜索的威力,我们提供一个简单的例子。 “网站主题”、”网站模板”和”网站设计”这些词汇都代表了网站的视觉表现。然而,若使用传统的词汇搜索,输入”主题”关键词进行搜索时,如果特定产品将它们称为”模板”,那么相关信息将不会作为搜索结果返回。另外,在使用语义搜索进行图像搜索时,可以将”隼”和”鹰”放置在向量空间中相邻的位置,从而实现彼此之间的搜索。
语义搜索的应用案例
使用语义搜索可以解决的问题类型有很多。下面是一些例子。
搜索引擎
使用语义搜索技术构建的搜索引擎将非常强大且高速。
在这种情况下,只需执行向量搜索,并返回前N个检索结果的数据。在这里,N是要返回的文档数。通常情况下,使用近似最近邻(ANN)搜索来搜索与某个向量相似的向量。
为了给用户呈现更具意义的结果,我们可以考虑根据其他可用数据重新对搜索结果进行排名。例如,可以考虑使用文档的流量、点击率和其他指标。
文档摘要和信息提取
可以使用LLM来对通过向量搜索找到的文档进行摘要或提取特定信息,并向用户呈现。
推荐
推荐系统是一种用于个性化的强大工具。它可以确保向每个用户提供他们可能感兴趣的内容,从而实现系统对客户互动的改善。结合生成AI的能力和专有数据,推荐系统将变得更加强大和广泛覆盖。
聊天
通过AI技术,可以扩展聊天(或使用它进行客户支持应用程序)。这样就可以像人类一样回答用户的问题。类似的应用程序示例包括虚拟家庭教师和个人助理等。
重要的是可以通过使用类似的方法来提供广泛的附加功能。例如,在查询或对话中明确用户喜好的情况下,可以考虑基于用户喜好做推荐。例如,用户正在寻找适合年长亲人的养老院,可能会有各种需求和限制。通过以适当的嵌入式数据扩展应用程序,并利用RAG基础体验,在进一步缩小范围后向用户提供列表,用户可以开始考虑从精选列表中选择。
在各种场景中,实现这样的体验是容易的。因为生成AI模型不同于传统的聊天或客户支持系统,它不依赖于预定义的答案或结构化数据库,并且在理解问题的上下文和语义的基础上能够实时生成类似人类的回应。
可以进一步将这一范式推进,并将回应历史转化为嵌入数据,保存以备将来使用。这种附加功能可以很容易地通过扩展数据平台为RAG应用程序实现。与简单的聊天机器人历史记录保存相比,这种扩展功能更加强大。因为所有与客户的交互记录都可以在将来的对话上下文中进行引用。