创建技能和知识 YAML 文件
第 1 章 自定义税务树 复制链接链接已复制到粘贴板!
您可以使用 RHEL AI 环境中的知识或技能数据修改税务树,以创建自己的自定义 Granite Large Language Model (LLM)。在 RHEL AI 上,创建数据集的知识与技能以 YAML 的形式进行格式化。此 YAML 配置称为 qna.yaml 文件,其中 "qna" 代表问题和回答。分类树是包含 qna.yaml 文件的分类和信息分类方法。
以下文档章节描述了如何为您的税务树创建技术和知识 qna.yaml 文件。
您可以使用一些受支持的知识文件类型来培训入门 Granite LLM。当前支持的文档类型包括:
- Markdown
1.1. 知识与知识概述 复制链接链接已复制到粘贴板!
您可以使用知识和知识集,并指定域特定信息来呈现您的自定义模型。
- 知识
- 由信息和事实组成的数据集。在为模型创建知识数据时,您要为它提供附加数据和信息,以便模型可以更准确地回答问题。
- 技能
个数据集,您可以在其中教授模型如何执行任务。RHEL AI 的技术被分成几个类别:
组成技能:组成技能允许 AI 模型执行特定任务或功能。有两种组成技能:
- 自由组成技能:这些都是执行不需要额外上下文或信息才能正常工作的。
- 现场组成技能:这些都是需要额外上下文的执行技能。例如,您可以省略模型来读取表,其中附加上下文是表布局的示例。
- 基础技能:基础技能是涉及数学、原因和编码等技能。
其它资源
第 2 章 在您的税务树中添加知识 复制链接链接已复制到粘贴板!
您可以自定义税务树,以便模型能够了解特定域的信息。对于 RHEL AI,您的知识数据托管在 Git 存储库中。知识贡献使用 qna.yaml 文件来了解如何阅读您要呈现模型的文档。每个用于知识的 qna.yaml 文件都包含一组键的键值条目:
| 字段 | 描述 | 约束(constraint) | Example |
|---|---|---|---|
|
| qna.yaml 文件中使用的 taxonomy 模式版本。 |
此参数当前支持的值是 |
|
|
| 供稿者的名称或用户名。 | - |
|
|
| 知识文档的主题或类别。域在复合数据生成期间向教员模型提示并添加额外的上下文。 |
建议您的 |
有关 Phoenix contestation 的知识文档,域将是
有关健康保险信息的知识文档,域将是 |
|
| 包含与知识文档中的上下文的问答对的字段。 |
|
seed_examples:
- context:
questions_and_answers:
|
|
| 从知识文档中完全获取的信息块。突出显示不同类型的内容,包括表格、段落或列表,以帮助指导教员模型。 | 每个 qna.yaml 需要五个上下文块,且最大令牌计数为 500 个令牌。 |
|
|
| 包含您模型要学的问题和答案的字段。 |
每个 |
questions_and_answers:
- question:
answer:
|
|
| 相关上下文中与 和 相关的问题。提供各种问题和问题类型,包括基于事实的问题、原因或说明。 | 最大令牌数量为 250 个令牌。 |
|
|
|
对指定问题的回答。答案应处于完整的句子中,并在 | 最大令牌数量为 250 个令牌。 |
|
|
| 文档的简要摘要,类似于sis 语句。这为文档的内容提供了高级别的上下文。 |
必须详细地参考 |
|
|
| 包含您的知识数据源的字段。 | - |
document: repo: commit: patterns:
|
|
| 包含您的知识文件的 git 存储库的 URL。 | - |
|
|
| 与 repo 中文档对应的完整提交哈希 | - | - |
|
| 包含 git 存储库中的文件 |
有效值包括 |
|
用于创建 qna.yaml的其他资源
-
有关带有示例参数的完整
qna.yaml文件,请参阅 Sample knowledge YAML 规格 文档。 - 有关 YAML 策展过程的完整指南,请参阅 YAML 创建实践来优化模型性能 文档。
2.1. 创建知识 YAML 文件 复制链接链接已复制到粘贴板!
以下流程演示了如何创建一个 qna.yaml 文件,该文件使用 RHEL AI 工具集指导您的 LLM 有关您提供的知识文件。
先决条件
- 已使用可引导容器镜像安装了 RHEL AI。
- 安装了 git CLI。
-
您初始化了 InstructLab,可以使用
ilabCLI。 - 在机器上具有 root 用户访问权限。
流程
- 由于您在 git 存储库中托管您的知识文件,因此在更新税务时,您需要签出一个正常工作的分支。
- 导航到 taxonomy 文件夹。RHEL AI 包含可与之交互的税务树。
- 导航到 taxonomy 目录中的 knowledge 文件夹。
在您要添加知识
qna.yaml文件的 taxonomy 树中添加目录和文件夹。taxonomy 树中的文件路径示例
taxonomy/knowledge/technical_documents/product_customer_cases/qna.yaml
taxonomy/knowledge/technical_documents/product_customer_cases/qna.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用所需的文本编辑器,创建
qna.yaml文件。您的 YAML 必须具有qna.yaml标题。注意要使 SDG 正确运行,必须至少包含五个
上下文块和三个问题,并在questions_and_answers参数中回答每个上下文值的 seeds。-
将所需的密钥添加到
qna.yaml文件中并保存您的更改。有关格式化qna.yaml文件的更多信息,请参阅"Sample knowledge YAML 规格"。
验证
要验证您的知识
qna.yaml文件是否正确格式,您可以运行以下命令:ilab taxonomy diff
$ ilab taxonomy diffCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的 taxonomy 树和
qna.yaml文件有效且正确格式化,则 CLI 会显示。CLI 还会显示您在哪里可以修复遇到的任何错误。有效 taxonomy 树和
qna.yaml文件示例knowledge/technical_documents/product_customer_cases/qna.yaml Taxonomy in /taxonomy/ is valid :)
knowledge/technical_documents/product_customer_cases/qna.yaml Taxonomy in /taxonomy/ is valid :)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 无效的 taxonomy 树和
qna.yaml文件的输出示例9:15 error syntax error: mapping values are not allowed here (syntax) Reading taxonomy failed with the following error: 1 taxonomy with errors! Exiting.
9:15 error syntax error: mapping values are not allowed here (syntax) Reading taxonomy failed with the following error: 1 taxonomy with errors! Exiting.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.1.1. 知识 YAML 规格示例 复制链接链接已复制到粘贴板!
知识贡献使用 qna.yaml 文件来了解如何阅读您要呈现模型的文档。在 RHEL AI 上,合成数据生成(SDG)进程使用 qna.yaml seed 示例来创建大量人工数据。这个过程使其使其具有更多数据,以便从中获取更多数据,而不依赖于提供的示例。
知识库 qna.yaml 文件示例
- 1
- 指定 knowledge
qna.yaml格式的版本。目前,有效的值为3。 - 2
- 指定文档的主题或类别。例如,"技术文档"或"安装指南"。
- 3
- 指定文档内容概述。建议引用您在
document_outline字段中上下文参数中包含的主题。例如,如果文档是安装指南,且每个上下文都包含有关不同云供应商的详情,则document_outline将是 "Installation Guide for AWS, GCP, 和 Azure"。 - 4
- 指定名称或 git username。
- 5
- 指定您的知识数据的段落。这是您的问题和答案要基于的内容。上下文块的格式必须与您的知识文件的格式匹配。例如,如果您的知识库文章为 Markdown,您的
上下文块也必须采用 Markdown 格式。 - 6
- 为模型指定一个问题。问题应基于
上下文字段中的信息。例如,"产品的最新版本是什么?" - 7
- 指定来自模型所需的响应。必须包含回答信息,但不从
上下文块复制,并处于完整的句子中。回答应处于完整的句子。例如,"产品的最新版本为 1.5 版本"。 - 8
- 指定包含您的知识文件的存储库的 URL。
- 9
- 指定来自您的知识文件的 git 存储库中的提交的 SHA。
- 10
- 指定 git 存储库中的文档。有效的文档类型值包括
.md或.pdf。单个qna.yaml文件只能引用一个文档类型,不支持在同一qna.yaml中混合文件类型。
2.2. 创建知识标记文件 复制链接链接已复制到粘贴板!
在 Red Hat Enterprise Linux AI 版本 1.5 中,您必须以 git 存储库和 markdown 格式托管您的知识文档和数据。您可以使用标准 git 工作流创建文件并上传到存储库。您可以使用各种开源标记转换工具,包括:
- Pandoc:开源转换工具.
- Visual Studio Code with All in one extention:您可以在 Visual Studio Code 中打开您的文档,并使用 Markdown All in One 扩展 来转换为 Markdown。
- IBM Deepsearch/Docling:捆绑 PDF 文档转换为 JSON,并在自包含的软件包中标记。
流程
- 选择您首选的 git 托管平台。只要与 git 兼容,就可以在 RHEL AI 上使用任何平台。
将您的文档转换为
.md标记格式。您可以使用您想要进行知识数据的任何标记转换软件。以下列表包含知识标记文件的指南:
- 所有文档都必须是文本,当前不支持镜像。
- 从您的文档中删除任何脚注。
- 表必须采用 markdown 格式。
- 目前不支持图表和图形。
-
记录您的文件名和提交哈希。这个值在您的
qna.yaml文件中使用。 创建
md文件并将其上传到 git 存储库中。知识文档标记示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 在您的税务树中添加技能 复制链接链接已复制到粘贴板!
初学者模型可以通过使用域特定技能填充 qna.yaml 文件来了解自定义技能。每个用于技能的 qna.yaml 文件都包含一组键值条目,其中包含以下键:
| 字段 | Desciption | restraints |
|---|---|---|
|
|
| 此参数当前支持的值是 2。 |
|
| 您的 Git 用户名或贡献者名称。 | None |
|
| 对您的技能及其功能的描述。 | None |
|
| 键和值条目的集合。 |
每个 |
|
| 逐步技能要求用户提供额外的上下文,其中包含模型执行该技能所需的信息。 |
对于基本技能,需要此文件。每个 |
|
| 为模型指定一个问题。 |
每个 |
|
| 指定模型的回答。 |
每个 |
3.1. 创建技能 YAML 文件 复制链接链接已复制到粘贴板!
您可以自定义税务树,以便模型能够了解所需用例的新技能。以下流程演示了如何创建一个包含您的技术 qna.yaml 文件的税onomy 树。
先决条件
- 已使用可引导容器镜像安装了 RHEL AI。
-
您初始化了 InstructLab,可以使用
ilabCLI。 - 在机器上具有 root 用户访问权限。
流程
导航到
compositional_skills文件夹,位于 taxonomy 目录。重要目前,RHEL AI 版本 1.5 不支持创建代码的基础技能。
根据树中存在的目录,选择您要添加技术
qna.yaml文件的树中。taxonomy 树中的文件路径示例
taxonomy/compositional_skills/grounded/<add_example>/qna.yaml
taxonomy/compositional_skills/grounded/<add_example>/qna.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用所需的文本编辑器,创建
qna.yaml文件。注意要使 SDG 正确运行,您必须在
qna.yaml文件中至少包含五个问题和回答对示例。-
将所需的密钥添加到
qna.yaml文件中并保存您的更改。有关格式化qna.yaml文件的更多信息,请参阅"Sample skills YAML 规格"。
验证
要验证您的技能是否正确格式,您可以运行以下命令:
ilab taxonomy diff
$ ilab taxonomy diffCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的 taxonomy 树和
qna.yaml文件有效且正确格式化,则 CLI 会显示。CLI 也会显示修复您可能遇到的任何错误的位置。有效 taxonomy 树和
qna.yaml文件示例compositional_skills/writing/freeform/<example>/qna.yaml Taxonomy in /taxonomy/ is valid :)
compositional_skills/writing/freeform/<example>/qna.yaml Taxonomy in /taxonomy/ is valid :)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 无效的 taxonomy 树和
qna.yaml文件的输出示例6:11 error syntax error: mapping values are not allowed here (syntax) Reading taxonomy failed with the following error: 1 taxonomy with errors! Exiting.
6:11 error syntax error: mapping values are not allowed here (syntax) Reading taxonomy failed with the following error: 1 taxonomy with errors! Exiting.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 示例技能 YAML 规格 复制链接链接已复制到粘贴板!
技能分享类似问题并回答布局,作为知识的 YAML 文件。在 RHEL AI 上,合成数据生成(SDG)进程使用您的 qna.yaml seed 示例为模型创建大量智能数据来了解,而不是完全依赖于用户生成的数据。
问题、答案和上下文对的顺序不会影响 SDG 或培训流程。有多种类型的技术被分成不同的类别:自由、基础技巧。您可以在以下示例中看到每个类别的示例:
自由格式组成技能示例 qna.yaml 文件
组成技术示例 qna.yaml 文件
第 4 章 优化模型性能的 YAML 创建实践 复制链接链接已复制到粘贴板!
在为您的税务树 添加知识和为您的税务树 添加技能时所 参考的指南提供了创建知识和知识 YAML 文件的标准说明。但是,您可以通过多种方式改进 YAML 文件,以优化生成的复合数据并创建更高质量的模型。
YAML 文件的 context 字段中有不同和全面的内容
每个 上下文 块都包含文档中的各种信息和格式类型。这允许模型了解显示信息的不同方法。这些不同的信息表示类型包括:段落、不同类型的表、列表、程序和定义。
context 块应该是您的文档中的一个全面的示例。上下文 内容的总长度和 Q&A 对不应超过 750 令牌。
编写有效问题
问题应该与您希望模型可以回答的问题类型一致。每个问题都应该是唯一的,并在 上下文 字段中引用信息。包括完整句子问题可改进生成的复合数据,并改进模型响应质量。
编写有效答案
回答直接回答问题,并应反映您希望模型能够提供的回答类型。回答应处于完全句子,并参考原始问题。包括完整句子答案可提高生成的复合数据,并改进模型响应质量。
不应直接从 上下文 块直接复制答案,这可能导致模型学习提取而不是原因。
回答问题的信息必须在 上下文 块中。如果信息位于单独的上下文块中,或者根本没有引用,则模型可能会妨碍。
高质量问答对示例
- question: How many eggs are needed to make roughly 24 chocolate chip cookies? answer: You need around two eggs to make 24 chocolate chip cookies.
- question: How many eggs are needed to make roughly 24 chocolate chip cookies?
answer: You need around two eggs to make 24 chocolate chip cookies.
何时使用多个文档或多个 qna.yaml 文件
如果多个文档与类似的主题或域相关,建议使用单个 qna.yaml 文件。每个 qna.yaml 文件必须包含 singular 文档类型,您不能在 YAML 文件中混合使用文档类型。
如果文档不相关,建议使用单独的 qna.yaml 文件。
在 YAML 文件中添加链接
模型可以记住链接,因此可以将它们添加到 YAML 文件中。但是,建议避免在频繁变化时添加超链接。