Skeleton-of-Thought (SoT) 项目使用教程
1. 项目介绍
Skeleton-of-Thought (SoT) 是一个旨在减少大型语言模型(LLMs)端到端生成延迟的项目。当前大多数最先进的LLMs采用顺序解码方法,这导致了高生成延迟。SoT 通过模拟人类的思考和写作过程,首先引导LLMs生成答案的骨架,然后进行并行API调用或批量解码,以并行完成每个骨架点的内容。这不仅提供了显著的速度提升,还可能在某些问题类别上提高答案质量。
2. 项目快速启动
安装
首先,确保你使用的是 Python 3.8 到 3.10 版本。然后,通过以下命令安装项目:
pip install -e .
配置环境变量
对于使用 GPT-4 和 GPT-3.5 的 API,你需要设置相应的环境变量:
export OPENAI_API_KEY=<API key>
export ENGINE=<engine>
export API_BASE=<API base>
启动 Gradio 演示
在 demo/
目录下运行以下命令来启动 Gradio 演示:
# 启动控制器
python controller.py
# 启动模型工作器
CUDA_VISIBLE_DEVICES=0 python model_worker.py --model-path <MODEL_NAME> --controller http://0.0.0.0:21001 --port 31000 --worker http://0.0.0.0:31000
# 启动 Gradio 网页演示
python gradio_web_server_multi.py
3. 应用案例和最佳实践
案例1:并行解码加速
SoT 通过并行解码显著减少了生成延迟。例如,在一个需要生成多个段落的长文本任务中,SoT 可以并行生成每个段落的骨架,然后并行填充内容,从而大大缩短了生成时间。
案例2:提高答案质量
在某些问题类别中,SoT 不仅提高了生成速度,还可能提高答案质量。例如,在需要详细解释的问题中,SoT 生成的骨架可以帮助模型更好地组织答案结构,从而生成更高质量的内容。
4. 典型生态项目
FastChat
FastChat 是一个基于 SoT 的快速聊天机器人框架,支持多种开源模型。它利用 SoT 的并行解码能力,提供了高效的聊天体验。
LLMZoo
LLMZoo 是一个大语言模型评估平台,集成了 SoT 作为其核心解码技术之一。通过 SoT,LLMZoo 能够更快速地生成和评估模型输出。
通过以上步骤,你可以快速上手并应用 Skeleton-of-Thought (SoT) 项目,享受其带来的高效和高质量的生成体验。