生成式 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 无法确定用户查询背后的预期含义。这可能会导致输出不完整或不正确。
- 如果字词具有多种含义或查询使用同义词,则可能会出现问题。例如,“银行”(金融机构与河岸)可能会导致不相关的结果。
- 全文搜索可能会输出恰好包含关键字但与用户目标不符的结果。
语义搜索是一种通过重点关注以下关键方面来提高搜索准确性的技术:
- 搜索者的意图:它会尝试了解用户搜索内容的原因。他们在尝试寻找或达成什么目标?
- 上下文含义:它会根据相应字词和短语的周围文字以及用户的位置信息或搜索记录等其他因素来解读这些字词和短语。
- 概念之间的关系:语义搜索使用知识图谱(由相关实体组成的大型网络)和自然语言处理技术来了解字词和概念之间的关联方式。
因此,当您使用语义搜索构建工具时,搜索结果取决于查询的整体用途,而不是关键字。这意味着,即使没有出现确切关键字,工具也能确定相关文档。它还可以避免出现包含该字词但具有不同含义的结果。
目前,您可以实现两种采用语义搜索的搜索工具:Vertex AI Search 和 Algolia AI Search。
从已发布的内容中提取解答
您已学习如何通过向问题添加上下文,使用问题工程让 LLM 提供与其从未见过的内容相关的答案。您还了解了如何使用检索增强生成 (RAG) 技术,将此方法从单个文章扩展到整个内容语料库。您了解了如何通过语义搜索进一步改进用户搜索查询的结果,从而更好地将 RAG 植入到您的产品中。
生成式 AI 工具可能会产生误导性的输出(即幻觉),这是一个已知问题,有时会导致输出不可靠,在最糟糕的情况下,甚至会对企业造成实际伤害。借助这些技术,用户和开发者都可以提高可靠性,或许还能建立对这些应用输出的信任。