| 快速开始 | 部署DeepSeek | 部署Qwen3 | 版本日志 | English Document
fastllm是c++实现自有算子替代Pytorch的高性能全功能大模型推理库,可以推理Qwen, Llama, Phi等稠密模型,以及DeepSeek, Qwen-moe等moe模型
部署交流QQ群: 831641348
微信群:目前群聊超过200人,请添加小助手微信号fastllmxzs
加群:
由于目前PyPI限制库大小,安装包中不含CUDA依赖,安装ftllm之前建议先手动安装CUDA 12以上版本 (已安装cuda可跳过)
wget https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run
sudo sh cuda_12.8.1_570.124.06_linux.run
然后用pip安装,命令如下:
pip install ftllm -U
由于目前PyPI限制库大小,安装包中不含ROCM依赖,安装ftllm之前建议先手动安装ROCM 6.3.3 (若已安装ROCM可跳过)
wget wget https://repo.radeon.com/amdgpu-install/6.3.3/ubuntu/jammy/amdgpu-install_6.3.60303-1_all.deb
apt install ./amdgpu-install_6.3.60303-1_all.deb -y
amdgpu-install --usecase=hiplibsdk,rocm,dkms -y
然后用pip安装,命令如下:
pip install ftllm-rocm -U
第一次安装前需要安装依赖库:
pip install https://hf-mirror.com/fastllm/fastllmdepend-windows/resolve/main/ftllmdepend-0.0.0.1-py3-none-win_amd64.whl
然后用pip安装,命令如下:
pip install ftllm -U
Conda下安装有时候会出现环境错误,如果出现可以尝试在Conda外或使用venv等虚拟环境尝试
(若使用时报错,可参考ftllm报错 )
可以运行一个较小模型测试安装是否成功, 以Qwen/Qwen3-0.6B模型为例
ftllm run Qwen/Qwen3-0.6B
ftllm webui Qwen/Qwen3-0.6B
ftllm server Qwen/Qwen3-0.6B
基本的启动命令格式如下:
ftllm run Qwen/Qwen3-0.6B # 启动本地对话
ftllm webui Qwen/Qwen3-0.6B # 启动WebUI
ftllm server Qwen/Qwen3-0.6B # 启动API Server
根据你需要开启的服务,选择相应的命令。以 server
命令为例,格式如下:
ftllm server model
这里的model
可以是:
Qwen/Qwen3-0.6B
代表 千问3-0.6B模型/mnt/Qwen3-0.6B
,高速下载模型可以参考 模型下载无论是在线模型还是本地模型,目前支持以下几种格式 (均以在线模型举例,可以在Huggingface上搜到对应模型):
FP16
, BF16
格式的原始模型,例如Qwen/Qwen3-0.6B
FP8
格式的模型,例如Qwen/Qwen3-0.6B-FP8
AWQ
格式的模型,例如Qwen/Qwen3-14B-AWQ
Fastllm
格式的模型,例如fastllm/DeepSeek-V3-0324-INT4
。也可以下载原始模型后通过 模型导出 中的命令导出GGUF
格式的模型如果您是第一次使用ftllm,建议直接使用基本的启动命令启动,所有的参数都会自动设置。如果您希望继续调参,请参照下面的参数设置说明
当启动的模型为浮点精度时(BF16
, FP16
, FP8
)时,可以通过以下参数来设置模型的推理精度:
--dtype
:
int4g
int4
int8
fp8
float16
或其他支持的数据类型。--dtype int4
--moe_dtype
:
int4g
int4
int8
fp8
float16
或其他支持的数据类型。--moe_dtype int4
moe
结构的模型,这个参数不会生效命令示例:
ftllm server Qwen/Qwen3-0.6B --dtype int8
# 上面的命令会读取原始模型(这个模型是BF16精度),并在线量化为INT8精度推理
ftllm server deepseek-ai/DeepSeek-V3-0324 --dtype fp8 --moe_dtype int4
# 上面的命令会读取原始模型(这个模型是FP8精度),并使用FP8 + INT4的混合精度推理
若不设定这些参数,ftllm会使用模型中设定的精度来进行推理
若使用的模型已经是量化好的模型(例如AWQ模型,Fastllm导出的量化模型等),建议不指定这些参数
可以通过以下参数来设定执行推理的设备
--device
:
--device cpu
, --device cuda
cpu
使用cpu
推理cuda
使用gpu
推理numa
使用多路numa
节点加速推理,在多CPU的机器才会有提升multicuda
使用多设备张量并行推理
--device multicuda:0,1
--device multicuda:0,cpu
--device multicuda:0:4,1:5,cpu:1
(cuda:0
计算4/10, cuda:1
计算5/10, cpu
计算1/10)--moe_device
:
--moe_device cpu
, --moe_device numa
cpu
使用cpu
推理numa
使用多路numa
节点加速推理,在多CPU的机器才会有提升cuda
使用gpu
推理 (MOE层需要大量显存,一般不建议指定为cuda
)--device cuda --moe_device cpu
来实现MOE模型的单卡+CPU混合推理。
--device cuda --moe_device numa
来实现MOE模型的单卡+多NUMA节点加速推理
如果指定的模型不是moe
结构的模型,这个参数不会生效若不设定这些参数,会使用默认配置来推理,默认配置如下:
模型类型 | device | moe_device |
---|---|---|
稠密模型 | cuda | 不生效 |
MOE模型 | cuda | cpu |
对于发烧友而言,如果想更进一步榨干硬件,可以参考 混合推理指南
可以通过下列参数设置运行参数。
需要注意的是,速度和参数设置并不一定正相关,如果对性能要求高,可以多方向尝试一下
-t
或 --threads
:
device
为cpu
时,这个参数决定了推理使用的线程数device
为numa
时,推理线程数主要由环境变量FASTLLM_NUMA_THREADS
决定,threads
参数请设得小一点(推荐设为1)-t 27
例如我们在多CPU设备上用GPU + 多CPU混合部署一个MOE
模型fastllm/DeepSeek-V3-0324-INT4
,可以尝试这些命令:
export FASTLLM_NUMA_THREADS=27 && ftllm server fastllm/DeepSeek-V3-0324-INT4 --device cuda --moe_device numa -t 1
# 使用多numa推理,每个numa节点使用27个线程
export FASTLLM_NUMA_THREADS=16 && ftllm server fastllm/DeepSeek-V3-0324-INT4 --device cuda --moe_device numa -t 1
# 使用多numa推理,每个numa节点使用16个线程
numactl -C 0-31 -m 0 ftllm server fastllm/DeepSeek-V3-0324-INT4 --device cuda --moe_device cpu -t 27
# 绑定单numa节点,使用CPU推理,使用27线程
不同硬件上,不同参数发挥出的性能有很大不同。一般而言,CPU上使用的线程数不建议超过物理核数
--moe_experts
:
--moe_experts 6
--port
:
--port 8080
--help
:
ftllm server --help
--version
或 -v
:
ftllm -v
--hide_input
:
ftllm server --hide_input
--api_key
:
ftllm server --api_key xxxxxxxx
--max_token
:
ftllm webui --max_token
--think
:
ftllm webui --think
--cache_dir
:
ftllm --cache_dir /mnt
可以使用如下命令将模型下载到本地(使用高速镜像,无需科学上网)
ftllm download deepseek-ai/DeepSeek-R1
如果使用量化加载模型(如--dtype int4
),那么每次读取模型时会在线量化,读取速度较慢。
ftllm export 是一个用于导出和转换模型权重的工具。它支持将模型权重转换为不同的数据类型。以下是如何使用 ftllm export 的详细说明。
ftllm export <模型路径> -o <输出路径> --dtype <数据类型> -t <线程数>
ftllm export /mnt/DeepSeek-V3 -o /mnt/DeepSeek-V3-INT4 --dtype int4 -t 16
可以通过指定--moe_dtype
来实现混合精度,例如
ftllm export /mnt/DeepSeek-V3 -o /mnt/DeepSeek-V3-FP16INT4 --dtype float16 --moe_dtype int4 -t 16
导出后的模型使用方法和原始模型类似,使用导出模型时--dtype
参数将被忽略
例如
ftllm run /mnt/DeepSeek-V3-INT4/
如果需要运行更多早期的模型,请参考支持模型列表
若pip安装失败或有其它特殊需求,可以用源码编译安装 源码安装后如果需要卸载,方法和PIP安装一样
pip uninstall ftllm
建议使用cmake编译,需要提前安装gcc,g++ (建议9.4以上), make, cmake (建议3.23以上)
GPU编译需要提前安装好CUDA编译环境,建议使用尽可能新的CUDA版本
使用如下命令编译
bash install.sh -DUSE_CUDA=ON -D CMAKE_CUDA_COMPILER=$(which nvcc) # 编译GPU版本
# bash install.sh -DUSE_CUDA=ON -DCUDA_ARCH=89 -D CMAKE_CUDA_COMPILER=$(which nvcc) # 可以指定CUDA架构,如4090使用89架构
# bash install.sh # 仅编译CPU版本
其他不同平台的编译可参考文档
编译中遇到问题可参考 FAQ文档
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型