LLMCompiler 项目介绍
什么是 LLMCompiler?
LLMCompiler 是一个旨在实现并行函数调用的高效编排框架。它能够自动识别哪些任务可以同时执行,哪些任务是相互依赖的,从而优化大型语言模型(LLMs)的运作。这些模型包括开源和闭源模型。通过这种方式,LLMCompiler 可以在不降低准确性的前提下提升计算速度、降低成本。
项目的核心功能
多任务并行执行
LLMCompiler 的最大特色在于它能够将复杂问题分解为多个可以并行处理的任务。这一功能的核心在于,它可以自行决策并行与否的执行方式,而这通常是现有方法的一个瓶颈。传统的方法通常需要每个函数逐步进行推理和作用,这可能导致高延时和部分不准确。LLMCompiler 通过并行调度解决了这些问题。
自动优化
使用者只需指定所需的工具以及选择性地提供一些上下文示例,LLMCompiler 就能自动计算出一个优化的函数调用编排。这其中可能包括开源模型如 LLaMA,或是像 OpenAI 的 GPT 模型那样的闭源选项。
使用方法
安装步骤
- 创建一个 Conda 环境并安装所需依赖:
conda create --name llmcompiler python=3.10 -y
conda activate llmcompiler
- 克隆项目并安装更多依赖:
git clone https://github.com/SqueezeAILab/LLMCompiler
cd LLMCompiler
pip install -r requirements.txt
运行示例
要复现论文中的评估结果,可以运行以下命令。同时需在环境中注册您的 OpenAI API key:
export OPENAI_API_KEY="sk-xxx"
python run_llm_compiler.py --benchmark {benchmark-name} --store {store-path} [--logging] [--stream]
对于采用 vLLM 框架的自定义模型,可以参考 vLLM 文档。
常用参数
--benchmark
: 基准测试名称,如hotpotqa
。--store
: 结果存储的路径。--logging
: (可选)启用日志记录。--stream
: (可选,推荐)启用任务流式传输以提高延迟。
最新动态
- 2023年7月9日:盛行的开源模型已经支持 Friendli 终端点。
- 2023年2月13日:LLMCompiler 可以在 LangChain 的 LangGraph 框架中使用。
- 2022年12月29日:LLMCompiler 已在 LlamaIndex 上供用户使用。
自定义基准测试
为了在自定义基准测试或使用场景中应用 LLMCompiler,用户需提供函数及其描述,并编写示例提示。参考项目中的配置文件如 configs/hotpotqa
等。
未来计划
团队计划更新以下功能:
- 论文中使用的 Tree-of-Thoughts 评估程序
希望本项目能为需要并行函数调用的任务提供一项创新性解决方案,并期待关于项目使用经验的反馈。对于学术用途,请引用相关论文。