LLM 操作系统图解:一种实现视角

社区文章 发布于 2023 年 12 月 3 日

这篇博客文章探讨了将大型语言模型 (LLM) 实现为操作系统的可能性,灵感来自 Andrej Karpathy 关于人工智能类似于操作系统的愿景,类似于钢铁侠中的贾维斯。本文重点关注实际考量,提出了一种在终端会话中集成 LLM 的应用层方法。一种新颖的方法涉及将状态机注入解码过程,从而实现实时代码执行和交互。此外,本文提出了“**系统反馈强化学习 (RLSF)**”,这是一种应用于代码生成任务的强化学习技术。该方法利用奖励模型通过 Python 子进程执行来评估代码的正确性,从而提高 LLM 的性能。这些发现为 LLM 的动态控制及其在编码任务之外的潜在应用提供了见解。

预备知识:

  1. **状态机**:状态机是一种用于设计算法的数学抽象。状态机读取一组输入并根据这些输入改变到不同的状态。状态是对等待执行转换的系统状态的描述。转换是在满足条件或收到事件时执行的一组操作。在状态图中,圆圈表示每个可能的状态,箭头表示状态之间的转换。

  2. **受限解码**:受限解码是一种在自然语言处理和序列生成任务中使用的技术,包括涉及大型语言模型 (LLM) 的任务。在受限解码中,序列的生成受到某些约束或条件的指导或限制。当您希望控制或影响语言模型的输出以满足特定要求或标准时,此方法特别有用。

实现 LLM OS 的一个主要挑战是建立操作系统与 LLM 之间的链接,以确保训练遵循负责任 AI 的原则。

LLM 应该放在哪里?担忧、可能性和局限性

想象一下未来像贾维斯一样的人工智能。它将能够搜索互联网,访问磁盘上的本地文件、视频和图像,并执行程序。它应该放在哪里?在内核级别?在 Python 级别?

**在内核级别**:考虑将我们先进的语言模型与 Linux 内核集成。这将使人工智能能够全面访问操作系统的核心功能。然而,重要的是要认识到大型语言模型 (LLM) 旨在进行类似人类的交互,而不是复杂的编码任务。虽然将模型嵌入内核级别提供了理解和控制详细系统操作的优势,但也引发了有效的安全担忧。负责任的开发至关重要,以确保人工智能不断发展的决策能力不会无意中损害系统完整性。

**在应用级别**:或者,我们可以将 LLM 定位在应用级别,在终端会话中无缝运行。利用编程语言(如 Python)的抽象,可以对 AI 进行最佳控制。这种方法便于 LLM OS 的轻松更新和广泛定制。

走向实现:在解码器中注入状态机

以下是解码器模型中生成过程的工作原理图示。

大型语言模型 (LLM) 与操作系统 (OS) 的无缝交互可以通过策略性地注入状态机来实现。通过这种方法,可以动态控制模型的行为,增强其与操作系统交互的能力。特别是,特殊令牌的注入充当触发器,通过子进程促进与 Python 解释器的交互。

为了说明这个概念,考虑 LLM 任务是生成前 N 个自然数之和的场景。在这里,我要求模型在响应期间将生成的代码封装在指定的特殊令牌 [CODE] 和 [/CODE] 中。状态机在生成 [CODE] 令牌时被激活,开始在缓冲区中收集生成的代码。

随后生成 [/CODE] 令牌时,状态机协调生成过程的临时暂停。此间隙允许调用 Python 子进程来执行收集到的代码。然后将此执行的输出附加到当前缓存。恢复生成过程,此技术使模型能够实时动态学习程序执行行为。

在本博客的以下部分中,我们将更深入地探讨这项创新技术如何使模型能够即时适应和完善其程序执行理解。

image/png

以下是状态机的图示,它可以通过 Python 子进程执行各种操作,例如数据库查询、访问文件系统甚至互联网搜索。

image/png

Python 编程语言拥有一个强大的生态系统,它开启了无数的可能性,尤其是通过子进程利用时。通过使用子进程,我们可以无缝执行 Shell 或编程语言代码,从而扩展我们应用程序的功能。Python 的多功能性扩展到互联网访问,我们可以利用 requests 和 urllib 等强大的库。此功能允许大型语言模型 (LLM) 与在线资源动态交互。此外,命令行包(例如 Google 提供的包)的集成进一步增强了 LLM 从网络获取信息的能力。Python 复杂的 文件处理实用程序使 LLM 能够根据用户的请求导航和操作文件和多媒体。此功能超越了纯文本交互,提供了丰富、多模式的体验。多模式模型的加入进一步增强了 LLM 解释和响应各种用户输入的能力。

针对操作系统用例调整 LLM:一个强化学习问题:

想象一下,你面临一个具有挑战性的编程问题,并寻求大型语言模型 (LLM) 的帮助来生成解决方案。传统上,这个过程包括向 LLM 阐述问题,接收生成的代码,手动检查其正确性,并迭代地提供反馈以解决错误。

现在,让我们将这个过程重塑为强化学习 (RL) 挑战,将我们的 LLM 视为在计算机进程领域中导航的智能体。在这个 RL 框架中,智能体的目标是生成代码,并接受正确性审查。

为了增强这个代码生成过程,我们利用了 RL 中的一个基本概念——奖励模型。该模型根据执行结果量化生成代码的质量。通过训练奖励模型,LLM 会因为生成不正确的代码而受到系统性惩罚,从而无需人工干预。

我称这项技术为**系统反馈强化学习 (RLSF)**。这项技术不仅可以应用于改进 LLM 在代码生成任务上的表现,还可以应用于状态机图中所示的各种任务。

结语

我发表这篇博客文章的原因是,我认为将 LLM 与操作系统集成的讨论应该是开放的。它应该在开源环境中负责任地开发。如果未来有这样的倡议,我很乐意参与合作!在这个阶段,由于缺乏计算资源,我无法获得我讨论的方法的工作原型。

想象一下一个基于 HuggingFace transformer 的 LLM 管道构建的操作系统。这种设置不仅能轻松集成新模型,还能确保系统适应该领域的最新进展。LLM 可以通过充当智能界面,为我们的操作系统增加一层新的可访问性。

致谢

Ravindra MajumdarSunil Mallya 感谢他们向我介绍了受限解码的概念。

社区

注册登录发表评论