生成式 AI 是指使用人工智能来创作新内容,例如文本、图片、音乐、音频和视频。生成式 AI 依托机器学习 (ML) 模型,学习人工创建的内容数据集中的模式和关系。
这项技术已通过 Gemini 等应用展现出令人难以置信的功能。您可能想知道,如何在网络产品中实现生成式 AI 工具?
一个常见的用例是,为用户提供更好的界面,以便他们询问有关网站内容的问题。借助机器学习技术,您可以显著提升用户的搜索结果。
打造更出色的网站专用搜索
您可以创建一个界面,供用户撰写问题,然后将问题发送到大语言模型 (LLM)(例如 Gemini),再将回答显示给用户。
假设此网站上存在此类功能。用户想要了解 Interop 2024 中包含哪些 API,于是输入以下查询:
What are the features included in Interop 24?
很遗憾,输出结果可能不正确,原因有以下几点:
- 用户向 LLM 提供了很少的问题背景信息,因此 LLM 更容易返回错误答案或幻觉。
- LLM 可能在 Interop 2024 创建或其功能确定之前就接受过训练,因此不知道这些信息。
虽然 LLM 可以找到更实时的信息,但 LLM 训练数据集本身就已过时。保持新鲜的结果可能非常耗时且成本高昂。
使用提示工程
提示工程是一组可从 LLM 中获取最佳输出的技术。
一种方法是在问题中提供更多背景信息,让 LLM 更有可能输出与背景信息相关的内容。
继续我们的互操作性示例,我们第一步是提供文章的完整内容作为上下文。然后,将问题添加为 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 工具可能会产生误导性的输出(即幻觉),这是一个已知问题,有时会导致输出不可靠,在最糟糕的情况下,甚至会对企业造成实际伤害。借助这些技术,用户和开发者都可以提高可靠性,或许还能建立对这些应用输出的信任。