博客

  • XAgent:面向复杂任务解决的自主智能体

    XAgent 是一个开源的基于大型语言模型(LLM)的自主智能体,能够自动解决各种任务。它旨在成为一个通用的智能体,应用于各种任务。尽管 XAgent 目前仍处于早期阶段,我们正在不断努力改进它。

    我们的目标是创建一个可以解决任何给定任务的超级智能体。我们欢迎全职、兼职等各种形式的合作。如果您对智能体的前沿感兴趣,并希望加入我们实现真正的自主智能体,欢迎与我们联系。

    XAgent 特点

    XAgent 具有以下特点:

    • 自主性:XAgent 可以在没有人类参与的情况下自动解决各种任务。
    • 安全性:XAgent 被设计为安全运行。所有的行为都被限制在一个 Docker 容器内,不用担心您的主机环境受到影响。
    • 可扩展性:XAgent 被设计为可扩展的。您可以轻松地添加新的工具来增强智能体的能力,甚至是新的智能体!
    • GUI:XAgent 为用户提供了友好的 GUI 来与智能体交互。您也可以使用命令行界面与智能体交互。
    • 与人类的合作:XAgent 可以与您合作解决任务。它不仅有能力在行进中遵循您的指导来解决复杂的任务,而且在遇到挑战时还可以寻求您的帮助。

    工具服务器

    工具服务器为 XAgent 提供强大和安全的工具来解决任务的服务器。它是一个 Docker 容器,为 XAgent 提供一个安全的运行环境。目前,工具服务器提供以下工具:

    • 文件编辑器:提供一个文本编辑工具,可以写入、读取和修改文件。
    • Python笔记本:提供一个交互式的 Python 笔记本,可以运行 Python 代码来验证想法、绘制图形等。
    • 网页浏览器:提供一个网页浏览器,可以搜索和访问网页。
    • Shell:提供一个 bash shell 工具,可以执行任何 shell 命令,甚至安装程序和托管服务。
    • Rapid API:提供一个从 Rapid API 检索 API 并调用它们的工具,为 XAgent 提供了广泛的 API。

    快速开始

    首先,您需要安装 Docker 和 docker-compose。然后,您需要构建工具服务器的镜像。在 ToolServer 目录下,运行以下命令:

    cd ToolServer
    docker-compose up

    这将构建工具服务器的镜像并启动工具服务器的容器。如果您想在后台运行容器,请使用 docker-compose up -d

    在启动 ToolServer 后,您可以配置并运行 XAgent。首先,安装依赖项:

    pip install -r requirements.txt

    然后,您需要使用 config.yml 配置 XAgent 才能运行。请提供至少一个 OpenAI key,用于访问 OpenAI API。

    最后,运行 XAgent:

    python run.py --task "put your task here" --model "gpt-4"

    您可以使用参数 --upload_files 来指定提交给 XAgent 的文件。

    案例

    我们提供了一些使用 XAgent 解决任务的案例。您可以在 XAgent 官网上查看我们的在线演示。我们还提供了视频演示和使用 XAgent 的案例。

    案例1. 数据分析:展示双环机制的有效性

    在这个案例中,我们将展示 XAgent 如何利用双环机制来解决数据分析任务。我们将使用一个简单的数据集 iris.zip 上传到 XAgent,然后让 XAgent 分析数据集并生成一个报告。XAgent 将任务分解为 4 个子任务:数据理解,验证 Python 环境,编写数据分析代码,编写报告。

    案例2. 推荐:展示与人类的合作

    XAgent 拥有独特的能力,可以积极寻求人类协助并共同解决问题,持续重新定义着人类与智能体人合作的界限。如下方截图所示,用户寻求了 XAgent 的帮助,以推荐一些适合友好聚会的优秀餐厅,但未提供具体细节。识别到提供的信息不足,XAgent 利用了“请求人类帮助”工具,促使人类介入以获取用户的偏好位置、预算限制、烹饪偏好以及任何饮食限制。凭借这宝贵的反馈信息,XAgent 轻松地生成了定制的餐厅推荐,确保用户及其朋友们获得了个性化和令人满意的体验。

    案例3. 训练模型:高级工具使用者

    XAgent 不仅能处理琐碎任务,还可以在复杂任务中提供宝贵的帮助,比如模型训练。在这里,我们展示了一个用户希望分析电影评论并评估特定电影周围公众情感的情景。作为回应,XAgent 迅速启动了下载 IMDB 数据集的过程,以训练一款先进的 BERT 模型。拥有了这个训练有素的 BERT 模型,XAgent 能够轻松地应对电影评论的复杂细节,提供关于公众对各种电影看法的见解性预测。

    评测

    我们进行了人类偏好评估,以评估 XAgent 的性能。我们为评估准备了超过 50 个现实世界的复杂任务,可以分为 5 个类别:搜索与报告,编码与开发,数据分析,数学和生活助手。我们将 XAgent 的结果与 AutoGPT 进行比较,结果显示 XAgent 完全胜过 AutoGPT。

    博客

    我们的官方博客在这里

    引用

    如果您发现我们的仓库对您有帮助,希望您能引用我们的论文:

    @misc{xagent2023,
          title={XAgent: An Autonomous Agent for Complex Task Solving}, 
          author={XAgent Team},
          year={2023},
    }

    以上就是 XAgent 的详细介绍和使用案例,希望对您有所帮助。

  • vLLM:让大型模型推理更快的工具

    今天,我要给大家介绍一款名为vLLM的神奇工具。它的主要功能是加速大型语言模型(如OpenAI的GPT-3)的推理速度。如果你是NLP(自然语言处理)领域的研究员或开发者,我相信这个工具可能会对你的工作有所帮助。

    为什么我们需要vLLM?

    在大规模语言模型运行时,我们常常遇到一个问题:显存不足。这是因为在生成新的单词或者词语(token)时,我们需要存储一些称为 keys 和 values的数据(我们可以把它们看作是模型用来生成新token的”记忆”)在GPU的显存中。然而,这些数据通常非常大,而且大小也会不断变化,这使得显存管理变得困难。传统的管理方式往往会造成显存的60%-80%的浪费。

    这就是vLLM要解决的问题。它引入了一种名为PagedAttention的新技术,可以有效地管理这些keys和values,使得显存的使用效率接近最优(浪费比例低于4%)。这样一来,我们就可以使用更大的数据批次进行运算,从而提高GPU的并行计算能力。

    vLLM的核心技术:PagedAttention

    PagedAttention的工作原理受到了操作系统中虚拟内存和分页的启发。它将每个序列的数据划分为块,每个块包含固定数量的keys和values。这些块不需要连续的内存,因此可以更灵活地对它们进行管理。

    此外,PagedAttention还支持内存共享,也就是说,当用一个提示生成多个不同的序列时,可以共享计算量和显存。这种内存共享机制可以大幅降低显存需求(最高可降低55%),从而进一步提升推理速度。

    如何使用vLLM?

    vLLM的使用非常简单。首先,使用pip命令安装vLLM:

    pip install vllm

    然后,你就可以使用vLLM来生成文本了:

    from vllm import LLM
    
    prompts = ["Hello, my name is", "The capital of France is"]  # 提示
    llm = LLM(model="lmsys/vicuna-7b-v1.3")  # 创建一个LLM
    outputs = llm.generate(prompts)  # 从提示生成文本

    vLLM也支持在线服务。你可以使用以下命令启动一个在线服务:

    python -m vllm.entrypoints.openai.api_server --model lmsys/vicuna-7b-v1.3

    然后,你就可以通过HTTP请求来调用这个服务了:

    curl http://localhost:8000/v1/completions \
        -H "Content-Type: application/json" \
        -d '{
            "model": "lmsys/vicuna-7b-v1.3",
            "prompt": "San Francisco is a",
            "max_tokens": 7,
            "temperature": 0
        }'

    如果你对vLLM感兴趣,可以在这里查阅更多信息。希望这个工具能对你的工作或学习有所帮助!

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网
Page Stats: PV: 1 | UV: 1
Last updated: 2025-04-12 01:43:42