生成式 AI 指的是使用人工智能来创建新内容,例如文本、图像、音乐、音频和视频。生成式 AI 依赖于机器学习 (ML) 模型来学习人类创建内容的数据集中的模式和关系。
这项技术已通过 Gemini 等应用展示了令人难以置信的能力。您可能想知道,如何将生成式 AI 工具应用到我的 Web 产品中?
一个常见的用例是为用户提供更好的界面,以便就网站内容提问。借助机器学习,您可以极大地改善用户的搜索结果。
构建更出色的特定网站搜索
您可以创建一个界面,用户可以在其中写入他们的问题,然后将问题发送到大型语言模型 (LLM),例如 Gemini,然后向用户显示答案。
假设此站点上存在这样的功能。用户想知道 Interop 2024 中包含哪些 API,并且他们输入了以下查询
What are the features included in Interop 24?
遗憾的是,出于以下几个原因,输出可能不正确
- 用户为 LLM 提供了很少的问题背景信息,因此 LLM 更容易返回错误答案或产生幻觉。
- LLM 很可能在 Interop 2024 创建或其功能确定之前就已接受训练,因此它不了解该信息。
虽然 LLM 有可能找到更新的信息,但 LLM 训练数据集本质上是过时的。维护最新的结果可能非常耗时且昂贵。
使用提示工程
提示工程是一组从 LLM 中获得最佳输出的技术。
一种技术是在提示中提供额外的上下文,使 LLM 更可能输出与上下文相关的内容。
继续我们的 Interop 示例,我们的第一步是提供文章的完整内容作为上下文。然后将问题添加为 LLM 要回答的输入。例如
Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)
Input:
What are the features included in Interop 2024?
您可以期望 Gemini 输出如下内容
The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL
由于答案基于提供的上下文,因此此答案可能比没有上下文的提示好得多。
使用 RAG 扩展
例如,我们不希望 LLM 回答关于单篇文章的问题,而是希望它使用任何文章作为额外的上下文来回答更多关于 web.dev 的问题。虽然这对于较小的站点来说可能是可行的,但考虑到 Gemini 1.5 的 100 万个标记的上下文窗口,较大的提示运行速度更慢且成本更高。
LLM 的输入和输出长度以标记来衡量和收费,标记是一种表示文本输入中常见的字符序列的方式。标记的数量通常会大于单词的数量。例如,第一个示例中的输入有 775 个单词,由 1097 个标记表示。不同的 LLM 可能会以不同的方式计算标记,大多数 LLM 都提供 API 或端点来计算文本输入的标记数量。
一种解决方案是为 LLM 提供与提示相关的文章。此任务应分为两个部分
- 在提示 LLM 时,将热门文章的内容添加为上下文。
- 搜索内容,查找与“Interop 2024 中包含哪些功能?”相关的文章。
我们希望 Gemini 结果返回基于以下文章的内容
- 文章 1: web.dev/blog/submit-your-proposals-for-interop-2024
- 文章 2: web.dev/blog/interop-2023-wrapup
- 文章 3: web.dev/blog/interop-2024
输入应如下所示
Context:
Article 1:
Over the past two years... (trimmed)
Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)
Article 3:
Following on from the success of Interop 2022... (trimmed)
Input:
What are the features included in Interop 2024?
此上下文会生成我们期望的输出。
* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL
对于那些熟悉 AI 技术的人来说,这种方法使用 RAG,这是提高生成式 AI 工具给出真实答案可能性的常用做法。
通过语义搜索改进输出
虽然 RAG 技术可以与常规全文搜索一起使用,但这种方法存在缺点。
- 全文搜索帮助 AI 找到精确的关键字匹配项。但是,LLM 无法确定用户查询背后的预期含义。这可能会导致输出不完整或不正确。
- 当单词有多种含义或查询使用同义词时,可能会出现问题。例如,“bank”(金融机构与河岸)可能会导致不相关的结果。
- 全文搜索可能会输出恰好包含关键字但与用户目标不符的结果。
语义搜索 是一种通过关注以下关键方面来提高搜索准确性的技术
- 搜索者的意图:它试图理解用户搜索某物的原因。他们试图查找或完成什么?
- 上下文含义:它根据单词和短语周围的文本以及用户的地理位置或搜索历史记录等其他因素来解释单词和短语。
- 概念之间的关系:语义搜索使用知识图谱(相关实体的大型网络)和自然语言处理来理解单词和想法是如何联系的。
因此,当您使用语义搜索构建工具时,搜索输出依赖于查询的总体目的,而不是关键字。这意味着即使在没有确切关键字的情况下,工具也可以确定相关文档。它还可以避免出现单词存在但含义不同的结果。
目前,您可以实施两种采用语义搜索的搜索工具:Vertex AI Search 和 Algolia AI Search。
从已发布的内容中提取答案
您已经了解了如何使用提示工程,通过在提示中添加上下文来使 LLM 能够提供与它从未见过的内容相关的答案。而且,您已经了解了如何使用 检索增强生成 (RAG) 技术将这种方法从单个文章扩展到整个内容语料库。您了解了语义搜索如何进一步改进用户搜索查询的结果,从而更好地将 RAG 应用到您的产品中。
生成式 AI 工具可能会“产生幻觉”是一个已知问题,这使得它们充其量有时不可靠,或者最坏情况下,对企业有害。借助这些技术,用户和开发者都可以提高可靠性,并可能建立对这些应用程序输出的信任。