ml-recurrent-drafter:加速大型语言模型解码的强大工具

ml-recurrent-drafter:加速大型语言模型解码的强大工具

ml-recurrent-drafter ml-recurrent-drafter 项目地址: https://gitcode.com/gh_mirrors/ml/ml-recurrent-drafter

项目介绍

ml-recurrent-drafter 是一个开源软件项目,旨在为大型语言模型提供快速推测解码功能。该项目的核心是一个创新的解码器——Recurrent Drafter,它通过高效地生成文本序列,为研究人员和开发者提供了一种新的优化方案。ml-recurrent-drafter 伴随一篇研究论文发布,该论文详细介绍了其设计原理和实验结果。

项目技术分析

ml-recurrent-drafter 基于深度学习框架 PyTorch 开发,支持使用当代 CUDA GPU 进行分布式数据并行训练。项目依赖于多个关键组件,包括预训练的 Vicuna 模型、ShareGPT 和 Alpaca 数据集等。其安装过程简单,通过 pip 命令即可快速配置开发环境。

项目的训练脚本 train.py 通过固定基础模型的参数,仅调整 drafter 的参数,从而在 ShareGPT 数据集上完成训练。这一过程在配备 8 个 H100 GPUs 的计算机上大约需要 1.5 小时。

项目及技术应用场景

ml-recurrent-drafter 的主要应用场景是大型语言模型中的文本生成任务。它特别适用于需要快速响应和高效率解码的场景,如在线聊天机器人、自动问答系统和内容生成工具。以下是几个具体的应用场景:

  1. 在线聊天机器人:在实时对话中,快速生成自然、连贯的回复。
  2. 自动问答系统:在用户提出问题后,迅速提供准确的答案。
  3. 内容生成工具:为博客、新闻稿和其他文档提供高质量的自动内容生成。

项目特点

ml-recurrent-drafter 具有以下显著特点:

  • 高效性:利用推测解码技术,显著提高生成文本的速度。
  • 灵活性:支持多种解码策略,包括贪心搜索和非贪心搜索。
  • 易用性:通过简洁的命令行界面,方便用户进行交互式生成和批量推理。
  • 可扩展性:支持在多 GPU 环境下进行训练,适应不同规模的数据集和模型。

安装与使用

安装 ml-recurrent-drafter 非常简单,只需执行以下命令:

pip install --no-binary=protobuf -e ".[dev,train]"

安装完成后,可以使用以下命令运行单元测试:

pytest -n 8 --disable-warnings -s

训练与推理

训练 ml-recurrent-drafter 需要一个或多个当代 CUDA GPU。以下是启动训练的命令:

./recurrent_drafting/cmd/train.sh

推理时,可以使用 cmd/generate.py 脚本进行交互式生成或批量推理。以下是一个示例命令:

python3 -m recurrent_drafting.cmd.generate \
    --hf_tokenizer=lmsys/vicuna-7b-v1.3 \
    --hf_llm=lmsys/vicuna-7b-v1.3 \
    --hf_drafter=$HOME/m/redrafter \
    --eval_mt_bench=True \
    --max_prompt_length=500 \
    --max_generation_length=2048 \
    --beam_width=45 \
    --beam_length=5 \
    --greedy_search=True \
    --batch_size=8 \
    --dtype=bf16

文档与引用

ml-recurrent-drafter 的详细文档可以在其官方文档网站上找到。如果这个项目对你的工作有所帮助,请引用以下论文:

@article{zhang2024recurrent,
  title={Recurrent Drafter for Fast Speculative Decoding in Large Language Models},
  author={Aonan Zhang and Chong Wang and Yi Wang and Xuanyu Zhang and Yunfei Cheng},
  journal={arXiv:2403.09919},
  year={2024},
  url={https://arxiv.org/abs/2403.09919},
  doi={10.48550/arXiv.2403.09919}
}

ml-recurrent-drafter 是一个强大且高效的工具,为大型语言模型解码提供了新的解决方案。无论你是研究人员还是开发者,都可以尝试使用这个项目来提升你的文本生成任务性能。

ml-recurrent-drafter ml-recurrent-drafter 项目地址: https://gitcode.com/gh_mirrors/ml/ml-recurrent-drafter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郁如炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值