Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

优化RAG服务的TTFT(Time to First Token) #7

Open
zhanghx0905 opened this issue Dec 12, 2024 · 1 comment
Open

优化RAG服务的TTFT(Time to First Token) #7

zhanghx0905 opened this issue Dec 12, 2024 · 1 comment

Comments

@zhanghx0905
Copy link

我正在使用 sglang 部署 Qwen-2.5 72B FP16 模型,部署环境为 4 块 PCIe A800 GPU。目前,我正在构建一个 RAG 应用,希望在 prompt 较长 (4000~10000 tokens or more) 时尽可能优化模型服务的 TTFT(Time to First Token)。在寻找解决方案时,我发现你们的项目中有一些关于 sglang 的基准测试参数,我对这些参数非常感兴趣,希望能了解更多细节。

  • 硬件: 4 块 PCIe A800 GPU

  • 模型: Qwen-2.5 72B FP16

  • 部署工具: sglang v0.4.0

    python -m sglang.launch_server --port 8080 --model-path /mnt/models --disable-radix-cache --tp 4 --chunked-prefill-size 2048 --disable-custom-all-reduce --max-num-reqs 40

我对以下参数特别感兴趣,希望你们解释一下为什么要这样设置,在我目前的配置中并没有尝试过这些选项。这样对优化TTFT是否有帮助?

  • --disable-radix-cache
  • --chunked-prefill-size 2048
  • --disable-custom-all-reduce

我计划在空闲时间在我的环境中运行基准测试,对比一下ZhiLight和sglang。

感谢你们提供的工具和资源,期待能从你们的经验中学习到更多!

@unix1986
Copy link
Collaborator

@zhanghx0905 这些参数是针对我们的环境和使用场景做的设置,简单解释下,详情可参考sglang相关文档和项目代码

  • --disable-radix-cache:关闭prefix cache,一方面我们循环使用压测数据,开启会命中cache,影响压测结果,另一方面,我们线上的场景不需要prefix cache,所以关闭后压测;
  • --chunked-prefill-size:对prefill的部分分chunk,本质是为了降低prefill对decode延迟的影响,这个对TTFT没有好处,可能会略微增加TTFT;
  • --disable-custom-all-reduce:关闭vLLM或sglang的自定义AllReduce Kernel,我们使用中发现,在A800 NVLink机器上服务经常会Hang住,使用这个选项,走标准的NCCL AllReduce不会卡主,但会稍微增加一些decode的延迟,总之,这些设置,是使用中比较适合我们实际环境的一些设置,你可以根据你的情况选择开启或关闭。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants