如何构建分类标准,以便 InstructLab

分类法是一个文件目录,其中包含您输入到模型中的数据。 它采用层叠式结构,分类“树”的每个子目录或“分支”都以“叶节点”结束,“叶节点”是一组包含相关数据的文件。 您可以通过添加全新的“分支”或在现有的 qna.yaml 文件中添加新数据来为分类法做出贡献。 有关分类结构的更多信息,请参阅 InstructLab 文档中的“关于 InstructLab 分类标准”。 您还可以 在 GitHub 上查看 InstructLab 分类法。

有关创建或添加分类标准的步骤,请参阅 准备分类标准。

分类数据

分类法中有三类数据。

Knowledge
有教科书或百科全书等资料来源支持的数据和事实。 在分类法中添加知识时,必须引用一个单独的知识文档,该文档存在于分类法目录之外,并充当真相源。
+ 基本技能
基本技能,如数学、语言和编程,可用于获取更多知识。 这些技能通常是利用公共数据开发的。
作曲技巧
结合知识和基础技能完成更复杂任务的技能,如股票市场分析。

有关类别的更多信息,请参阅 InstructLab 文档中的 什么是 "技能"? 什么是 "知识"?

分类文件

每个“叶节点”需要两种类型的数据文件。

qna.yaml
包括与知识文档中的信息相关的问题和答案。 问题和答案以键/值对的形式组织。
attribution.txt
包括添加到 qna.yaml 文件中的信息来源。 这是可选项,但对于向开源的 InstructLab 分类法资源库投稿是必需的。

知识文件

添加到分类法中的任何知识都必须有知识文件作为支持,知识文件是输入到模型中的信息的真实来源。 该文件必须是 Markdown 文件,存在于与分类标准不同的目录中。 您可以在 qna.yaml 文件的 document_outline 部分引用知识文件及其存储目录。 有关知识文档的更多信息和示例,请参阅 准备知识文档和 知识文档文件参考示例。

知识 qna.yaml 文件

知识 qna.yaml 文件包括基于相关知识文件信息的问题和答案。 问题和答案以键/值对的形式存储,每个 qna.yaml 文件至少需要五个键/值对。 在 qna.yaml 文件末尾的 document_outline 部分,您必须引用知识文件及其存储目录。 有关 qna.yaml 文件的全部要求和知识贡献示例,请参阅 模板 qna.yaml 文件和 知识提交示例。

技能 qna.yaml 文件

技能 qna.yaml 包含教授简单任务的问题和答案。 例如,在教一个模型押韵时,您可能会提出一个问题,如 What are 5 words that rhyme with skill?,答案是 spill, mill, drill, fill, chill。 问题和答案以键/值对的形式存储,每个 qna.yaml 文件至少需要五个键/值对。

您添加的技能可以是“接地”的,这意味着它们需要额外的输入来添加上下文;也可以是“非接地”的,这意味着它们不需要任何额外的上下文。 对于基础技能,可在 qna.yaml 文件中通过 context 字段添加上下文。 在分类法中添加基础技能时,该技能必须位于以 grounded 开头的分支上,如 grounded/games/sudoku。

有关 qna.yaml 的完整要求和技能贡献示例,请参阅 InstructLab 文档中的 技能文件。 请注意,添加技能时无需添加单独的文档。