2024-09-29
人工智能
0

目录

Models (模型)
Prompts (提示词)
Prompt Templates (提示模板)
Embeddings (嵌入)
Tokens
Structured Output (结构化输出)
Bringing Your Data & APIs to the AI Model (将您的数据和 API 引入 AI 模型)
Retrieval Augmented Generation (RAG 检索增强)
Function Calling (函数调用)

Models (模型)

AI 模型是旨在处理何生成信息的算法,通常模仿人类的认知功能。通过从大型数据集中学习模式何间接,这些模型可以进行预测、文本、图像或其它输出,从而增强跨行业的各种应用程序。

有许多不同的 AI 模型,每种模型都适用于特定的试用案例。随软管ChatGPT机器生成式AI功能通过文本输入何输出吸引了用户,但许多模型何公司都提供了不同的输入何输出。

下表根据模型的输入和输出类型对多个模型进行分类: image.png

Prompts (提示词)

提示是基于语言的输入的基础,这些输入可指导 AI 模型生成特定输出。对于熟悉 ChatGPT 的人来说,提示可能看起来只是在发送到 API 的对话框中输入的文本。然而,它包含的远不止于此。在许多 AI 模型中,提示的文本不仅仅是一个简单的字符串。

ChatGPT 的 API 在一个提示中有多个文本输入,每个文本输入都分配了一个角色。例如,有 system 角色,它告诉模型如何行为并设置交互的上下文。还有 user role,通常是来自用户的 Importing。

制作有效的提示既是一门艺术,也是一门科学。ChatGPT 专为人类对话而设计。这与使用 SQL 之类的东西来 “ask a question” 完全不同。一个人必须与 AI 模型进行交流,类似于与另一个人交谈。

正是这种交互方式的重要性,以至于“Prompt Engineering”一词已经成为一门独立的学科。有一系列新兴的技术可以提高提示的有效性。投入时间制作提示可以大大提高结果输出。

分享提示已成为一种公共实践,并且正在积极地进行关于这一主题的学术研究。例如,创建有效的提示(例如,与 SQL 形成对比)是多么违反直觉,最近的一篇研究论文发现,您可以使用的最有效的提示之一以短语“深呼吸并逐步完成此工作”开头。这应该可以告诉你为什么语言如此重要。我们还不完全了解如何最有效地利用这项技术的先前迭代,例如 ChatGPT 3.5,更不用说正在开发的新版本了。

Prompt Templates (提示模板)

创建有效的提示包括建立请求的上下文,并将请求的各个部分替换为特定于用户输入的值。

Embeddings (嵌入)

嵌入是文本、图像或视频的数字表示形式,用于捕获输入之间的关系。

嵌入的工作原理是将文本、图像和视频转换为浮点数数组(称为向量)。这些矢量旨在捕获文本、图像和视频的含义。嵌入数组的长度称为向量的维数。

通过计算两段文本的向量表示之间的数值距离,应用程序可以确定用于生成嵌入向量的对象之间的相似性。

image.png

作为探索 AI 的 Java 开发人员,没有必要理解复杂的数学理论或这些向量表示背后的具体实现。对它们在 AI 系统中的角色和功能有基本的了解就足够了,尤其是在您将 AI 功能集成到应用程序中时。

嵌入在 Retrieval Augmented Generation (RAG) 模式等实际应用中尤其相关。它们能够将数据表示为语义空间中的点,这类似于欧几里得几何的二维空间,但维度更高。这意味着就像欧几里得几何中平面上的点可以根据其坐标来接近或远一样,在语义空间中,点的接近反映了含义的相似性。在这个多维空间中,关于相似主题的句子被放置在更近的位置,就像图表上彼此靠近的点一样。这种接近有助于文本分类、语义搜索甚至产品推荐等任务,因为它允许 AI 根据相关概念在这个扩展的语义环境中的 “位置” 来识别和分组。

您可以将此语义空间视为一个向量。

Tokens

Token 是 AI 模型工作原理的构建块。在输入时,模型将单词转换为标记。在输出时,他们将标记转换回单词。

在英语中,一个标记大约相当于一个单词的 75%。作为参考,莎士比亚全集总计约 900,000 字,可翻译成大约 120 万个Token。

image.png

也许更重要的是Token = 货币。在托管 AI 模型的上下文中,您的费用由使用的Token数量决定。输入和输出都会影响总Token计数。

此外,模型还受Token限制的约束,这些限制限制了在单个 API 调用中处理的文本量。此阈值通常称为 “上下文窗口”。模型不会处理任何超过此限制的文本。

例如,ChatGPT3 有 4K Token限制,而 GPT4 提供不同的选项,例如 8K、16K 和 32K。Anthropic 的 Claude AI 模型具有 100K Token限制,而 Meta 最近的研究产生了 1M Token限制模型。

Structured Output (结构化输出)

AI 模型的输出传统上以 java.lang.String 的形式到达,即使您要求以 JSON 格式回复也是如此。它可能是正确的 JSON,但不是 JSON 数据结构。它只是一个字符串。此外,在提示中请求 “for JSON” 并不是 100% 准确的。

这种复杂性导致了一个专业领域的出现,该领域涉及创建提示以产生预期的输出,然后将生成的简单字符串转换为可用于应用程序集成的数据结构。

image.png

结构化输出转换采用精心设计的提示,通常需要与模型进行多次交互才能获得所需的格式。

Bringing Your Data & APIs to the AI Model (将您的数据和 API 引入 AI 模型)

GPT 3.5/4.0 数据集仅延长至 2021 年 9 月。因此,该模型表示它不知道需要该日期之后知识的问题的答案。如何为 AI 模型配备尚未训练的信息?

有三种技术可用于自定义 AI 模型以合并您的数据:

  • Fine Tuning(微调):这种传统的机器学习技术涉及定制模型和更改其内部权重。然而,对于机器学习专家来说,这是一个具有挑战性的过程,并且由于 GPT 等模型的大小,它非常耗费资源。此外,某些型号可能不提供此选项。
  • Prompt Stuffing:一种更实用的替代方案涉及将数据嵌入到提供给模型的提示中。给定模型的 token 限制,需要技术在模型的上下文窗口中呈现相关数据。这种方法俗称 “填充提示”。Spring AI 库可帮助您实现基于“填充提示”技术(也称为检索增强生成 (RAG))的解决方案。
  • Function Calling(函数调用):此技术允许注册自定义的用户函数,这些函数将大型语言模型连接到外部系统的 API。

Retrieval Augmented Generation (RAG 检索增强)

用于解决将相关数据纳入提示以实现准确 AI 模型响应。该方法涉及批处理风格的编程模型,其中作业从您的文档中读取非结构化数据,对其进行转换,然后将其写入矢量数据库。概括地说,这是一个 ETL (提取、转换和加载) 管道。

作为将非结构化数据加载到矢量数据库的一部分,最重要的转换之一是将原始文档拆分为更小的部分。将原始文档拆分为较小部分的过程有两个重要步骤:

  1. 将文档拆分为多个部分,同时保留内容的语义边界。例如,对于包含段落和表格的文档,应避免在段落或表格的中间拆分文档。对于代码,请避免在方法实现的中间拆分代码。
  2. 将文档的各个部分进一步拆分为大小占 AI 模型Token限制的一小部分。

RAG 的下一阶段是处理用户输入。当 AI 模型要回答用户的问题时,该问题和所有“相似”文档片段都会被放入发送到 AI 模型的提示中。这就是使用向量数据库的原因。它非常擅长寻找相似的内容。

image.png

Function Calling (函数调用)

大型语言模型 (LLMs) 在训练后被冻结,导致知识过时,并且无法访问或修改外部数据。函数调用机制解决了这些缺点。它允许您注册自己的函数,以将大型语言模型连接到外部系统的 API。这些系统可以为 LLMs实时数据,并代表它们执行数据处理操作。

本文作者:wucc

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-SA 许可协议。转载请注明出处!