订阅内容

人们说到人工智能(AI)时,一般是指聊天机器人与大语言模型(LLM)的结合体,前者负责提供输入和输出,后者则提供数据,使聊天机器人能够遣词造句。缺少 LLM,AI 的实用性将大打折扣,这也是为何关于 AI 合法性和伦理性的讨论大多集中在生成式 AI 所依赖的“知识”构建上。如何才能确保生成式 AI 在构建答案时使用的数据是可靠、可信的,且不涉及版权问题?审计或定制 AI 知识库的最佳途径是利用开源资源,而这正是 InstructLab 项目所能提供的。

什么是 InstructLab?

InstructLab 是一个开源 AI 项目,提倡通过开放性贡献来实现通用模型构建。它的目标很明确,就是要让任何人都能给塑造生成式 AI,无论您是因为担心知识产权和版权、隐私、可靠性、专业知识、可访问性还是其他任何原因而需要开源 LLM。设计一个全面的 LLM 是一项艰巨的任务,因此,构建开放 LLM 的最佳途径是在开放的环境下进行。由于 InstructLab 是开源的,您不仅可以参与贡献,还能助力推动开源语言模型成为生成式 AI 的首选方案。您可以通过以下三种方式立即开始使用 InstructLab。

分享您的专业知识

AI 在构建其回复时会依赖概率,每个答案都以事实信息为模型基础。AI 用到的事实集合是 LLM 的一部分。InstructLab 要成为 AI 驱动内容的最佳根基,就要提供一个全面的 LLM。构建 LLM 需要构建一个包含可靠内容的数据库。在 InstructLab 的术语里,这叫做分类法,主要包括技能和知识两大类。

InstructLab 里的技能是可操作的。为 InstructLab 创建技能时,您在教它如何做一些具体的事,例如在保持意思不变的情况下重新排列句子里的词语、找两个押韵的词语,或者把英文字符串转成驼峰式大小写。

知识是一组事实,并标明可靠的来源。在为语言模型创建知识时,您是在为模型提供数据,它可以用来回答直接的问题。

技能和知识都以 YAML (又一种标记语言)的形式存储,YAML 是一种极简文件格式,由键值对(“映射”)和列表(“序列”)组成。以下是用一个 YAML 表示知识的简单示例:

---
version: 2
created_by: tux
domain: flowers
seed_examples:
 - answer: 'A carnation is a herbaceous perennial plant.'
   question: 'What kind of plant is a carnation?'
 - answer: 'Dianthus caryophyllus'
   question: 'What is the scientific name for a carnation?'
task_description: 'teach a language model about carnations'
document:
 repo: https://github.com/juliadenham/Summit_knowledge
 commit: 195fc4d83a40d8a1b60062e66e06cfc0bc9c8d35
 patterns:
   - dianthus_caryophyllus.md

以下是将技能表示为 YAML 的简单示例:

---
version: 2
task_description: 'Teach the model how to rhyme.'
created_by: juliadenham
seed_examples:
 - question: What are 5 words that rhyme with horn?
   answer: warn, torn, born, thorn, and corn.
 - question: What are 5 words that rhyme with cat?
   answer: bat, gnat, rat, vat, and mat.
 - question: What are 5 words that rhyme with poor?
   answer: door, shore, core, bore, and tore.
 - question: What are 5 words that rhyme with bank?
   answer: tank, rank, prank, sank, and drank.
 - question: What are 5 words that rhyme with bake?
   answer: wake, lake, steak, make, and quake.

比较一下知识和技能的 YAML 示例就会发现,知识包含特定主题的可验证数据,技能包含特定任务的示例。

阅读贡献指南后,您可以创建自己的 qna.yaml 文件,并将它提交到 InstructLab 以纳入 LLM 中。您可能需要修改一下您的成果,确保它能被处理并整合到项目中,熟悉 yamllint 等工具很有用。只需稍加努力,您就可以为开源 AI 做出有意义的贡献。

使用 ilab 命令在本地运行 AI

设置 AI 是一个相当复杂的手动过程,但有了 InstructLab,这比您想象得要容易。您需要熟悉虚拟环境pip 等 Python 工具,并且必须熟练掌握 Bash 等终端环境。您还必须在系统上设置 CUDA(或类似的并行计算框架),并且有充足的磁盘空间(LLM 需要 5 GB,并且会不断增加)。

按照 InstructLab 存储库上的安装指南进行操作,然后与 AI 和 InstructLab 模型交互,再报告错误和功能请求。

贡献代码

目前, InstructLab 项目包含 12 个存储库。其中包括命令行界面 ilab、用于生成合成数据的 Python 库、设计文档、分类法文件,以及用于分类法 YAML 的 JSON 模式等。如果您是程序员,那么您可能会在未关闭的错误报告中发现问题或功能请求,您可以帮忙解决。

对于您的第一个贡献,通常有必要解决一个小问题:预计您将把大部分时间用于了解开发团队的流程。仅需要简单修复的错误被标记为 good first issue,因此在寻找好的入手点时,请使用 is:open is:issue label:"good first issue 作为过滤条件。还有一份面向首次贡献者的指南 ,其中详细说明了如何设置您的开发环境,以及同样重要的,如何在请求合并之前测试您的新代码。

开源 AI 触手可及,与任何形式的开源一样,它有望将 AI 的控制权和条款交到用户手中。如果您从事的是专业领域,通用 AI 可能不具备对您的用户有用的知识或技能。如果您要处理敏感数据,那么通用 AI 甚至可能无法访问您的用户所需的信息。借助 InstructLab,您可以帮助构建通用且开放的 LLM,甚至可以构建自己的 LLM。无论您的目标是什么,立即开始使用 InstructLab 吧


关于作者

Seth Kenlon is a Linux geek, open source enthusiast, free culture advocate, and tabletop gamer. Between gigs in the film industry and the tech industry (not necessarily exclusive of one another), he likes to design games and hack on code (also not necessarily exclusive of one another).

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Original series icon

原创节目

关于企业技术领域的创客和领导者们有趣的故事