AIOS(LLM Agent Operating System)是一个将大型语言模型(LLM)嵌入到操作系统(OS)中的代理操作系统,旨在实现一个“有灵魂”的操作系统,这是向通用人工智能(AGI)迈出的重要一步。AIOS 的设计目标是优化资源分配、促进代理之间的上下文切换、支持代理的并发执行、为代理提供工具服务、维护代理的访问控制,并为LLM代理开发者提供丰富的工具集。

AIOS 架构

关于 AiOS - 图1

最新动态

  • 2024-04-14 🚀 AIOS 目前支持生成中断(针对开源的 LLMs)和定制控制台记录器。欢迎尝试!
  • 2024-04-05 🛠️ AIOS 代码库已更新,增加了 shell 模拟器、快速 API 调用和预提交测试用例。请查看 CONTRIBUTE 了解如何测试你贡献的代码并创建拉取请求。
  • 2024-04-02 🌟 AIOS Discord 社区 已经建立。欢迎加入社区进行讨论、头脑风暴、开发,或随意聊天!
  • 2024-03-25 ✈️ 我们的论文 AIOS: LLM Agent Operating System 发布,AIOS 仓库正式启动!
  • 2023-12-06 📋 经过几个月的工作,我们的视角论文 LLM as OS, Agents as Apps: Envisioning AIOS, Agents and the AIOS-Agent Ecosystem 正式发布。

    开始使用

    安装

    1. git clone https://github.com/agiresearch/AIOS.git
    确保你安装了 Python >= 3.9 且 <= 3.11。使用 pip 安装所需的包:
    1. pip install -r requirements.txt

    使用

    如果你使用来自 huggingface 的开源模型,你需要设置你的 Hugging Face token 和缓存目录:
    1. export HUGGING_FACE_HUB_TOKEN=<YOUR READ TOKEN>
    2. export HF_HOME=<YOUR CACHE DIRECTORY>
    如果你使用 LLM API,你需要设置你的 API 密钥,如 OpenAI API KeyGemini API Key
    1. export OPENAI_API_KEY=<YOUR OPENAI API KEY>
    2. export GEMINI_API_KEY=<YOUR GEMINI API KEY>
    我们提供了两种模式来运行 AIOS:交互模式和部署模式。

    交互模式

    在交互模式下,你可以与 AIOS 交互,查看运行多个代理的每个步骤的输出。 对于开源的 LLMs,你需要设置你想要使用的 LLM 的名称、最大 GPU 内存、评估设备和生成的新令牌的最大长度:
    1. # 对于开源的 LLMs
    2. python main.py --llm_name <llm_name> --max_gpu_memory <max_gpu_memory> --eval_device <eval_device> --max_new_tokens <max_new_tokens>
    3. # 以 Gemma-2b-it 为例
    4. python main.py --llm_name gemma-2b-it --max_gpu_memory '{"0": "24GB"}' --eval_device "cuda:0" --max_new_tokens 256
    对于闭源的 LLMs,你只需要设置 LLM 的名称:
    1. # 对于闭源的 LLMs
    2. python main.py --llm_name <llm_name>
    3. # 以 gpt-4 为例
    4. python main.py --llm_name gpt-4

    部署模式

    在部署模式下,运行代理的输出存储在文件中。在这种模式下,提供了多个命令来运行代理并查看代理的资源使用情况(例如,run \: \, print agent)。 与交互模式不同,你需要将所有默认记录器设置为文件记录器:
    1. # 对于开源的 LLMs
    2. python simulator.py --llm_name <llm_name> --max_gpu_memory <max_gpu_memory> --eval_device <eval_device> --max_new_tokens <max_new_tokens> --scheduler_log_mode file --agent_log_mode file --llm_kernel_log_mode file
    3. # 以 Gemma-2b-it 为例
    4. python simulator.py --llm_name gemma-2b-it --max_gpu_memory '{"0": "24GB"}' --eval_device "cuda:0" --max_new_tokens 256 --scheduler_log_mode file --agent_log_mode file --llm_kernel_log_mode file
    1. # 对于闭源的 LLMs
    2. python simulator.py --llm_name <llm_name> --scheduler_log_mode file --agent_log_mode file --llm_kernel_log_mode file
    3. # 以 gpt-4 为例
    4. python simulator.py --llm_name gpt-4 --scheduler_log_mode file --agent_log_mode file --llm_kernel_log_mode file

    支持的 LLM 后端

LLM 名称 开源 公司
gemma-2b-it Google
gemma-1.1-7b-it Google
Mistral-7B-Instruct-v0.2 Mistral AI
Mixtral-8x7B-Instruct-v0.1 Mistral AI
Mixtral-8x22B-Instruct-v0.1 Mistral AI
Meta-Llama-3-8B-Instruct Meta
Meta-Llama-3-70B-Instruct Meta
gemini-pro Google
gpt-3.5-turbo OpenAI
gpt-4 OpenAI

参考文献

  1. @article{mei2024aios,
  2. title={AIOS: LLM Agent Operating System},
  3. author={Mei, Kai and Li, Zelong and Xu, Shuyuan and Ye, Ruosong and Ge, Yingqiang and Zhang, Yongfeng}
  4. journal={arXiv:2403.16971},
  5. year={2024}
  6. }
  7. @article{ge2023llm,
  8. title={LLM as OS, Agents as Apps: Envisioning AIOS, Agents and the AIOS-Agent Ecosystem},
  9. author={Ge, Yingqiang and Ren, Yujie and Hua, Wenyue and Xu, Shuyuan and Tan, Juntao and Zhang, Yongfeng},
  10. journal={arXiv:2312.03815},
  11. year={2023}
  12. }

贡献

AIOS 致力于以系统化的方式促进 LLM 代理的开发和部署,我们始终欢迎合作者和贡献,以培养一个协调、有效和高效的 AIOS-代理生态系统!

有关如何贡献的详细信息,请参见 CONTRIBUTE。如果你想为代码库做出贡献,提交问题拉取请求 总是受欢迎的!

Discord 频道

如果你想加入社区,提问,与同行交流,了解或提出新功能,并参与未来发展,请加入我们的 Discord 社区

联系

对于与 AIOS 开发相关的问题,我们鼓励提交 问题拉取请求,或在 AIOS Discord 频道 中发起讨论。对于其他问题,请联系 Kai Mei (marknju2018@gmail.com) 和 Yongfeng Zhang (yongfeng@email.com)。

AIOS 贡献者

AIOS contributors