当前位置:首页>Linux>FastLLM在Linux上安装与使用指南

FastLLM在Linux上安装与使用指南

  • 2026-10-11 06:17:04
FastLLM在Linux上安装与使用指南

1. 环境准备

  • 操作系统:Linux (如 Ubuntu 20.04/22.04)
  • GPU:NVIDIA 显卡,建议显存 ≥ 8GB
  • 驱动与 CUDA:已安装 NVIDIA 驱动 (≥ 525) 和 CUDA Toolkit (≥ 11.8)
  • Python:3.10 及以上(推荐使用 conda 虚拟环境,以上驱动就都不是问题了)

2. 安装 FastLLM

# 创建并激活虚拟环境(可选),python版本3.10~3.12皆可conda create -n ftllm python=3.10 -yconda activate ftllm# 可设置镜像加速pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple# 安装 FastLLM(从 PyPI)pip install ftllm -U

如需最新特性或预发布版,可参考 FastLLM GitHub 从源码编译。

3. 模型选择建议

模型
架构
大小
推荐场景
Qwen/Qwen3-14B-FP8
Dense
16B / 16 GB
✅ 头部消费级单卡的最佳选择,速度快、稳定
Qwen/Qwen3.5-30B-A3B
MoE
总30B,激活3B
低显存高容量(需确认是否在 HF 上可用)
Qwen/Qwen3-14B-AWQ
Dense
14B (INT4)
不推荐,FastLLM 对 AWQ 支持可能有问题

已测试 Qwen/Qwen3-14B-FP8 模型运行良好,以下以它为例。

4. 启动模型服务 (Server 模式)

ftllm server Qwen/Qwen3-14B-FP8 \  --dtype fp8 \  --gpu_mem_ratio 0.85 \  --kv_cache_limit 16384 \  --max_batch 4

参数说明:

  • --dtype fp8 :使用 FP8 量化权重(模型原名含 FP8,必须指定)
  • --gpu_mem_ratio 0.85 :使用 85% 的 GPU 显存
  • --kv_cache_limit 16384 :KV Cache 上限(token 数),可根据需要调整(数值越大能处理的上下文越长,但显存占用更高)
  • --max_batch 4 :最大并发批处理数

服务启动后会监听 http://0.0.0.0:8080。

4.1 密集模型示例:Qwen3-14B-FP8

ftllm server Qwen/Qwen3-14B-FP8 \  --dtype fp8 \  --gpu_mem_ratio 0.85 \  --kv_cache_limit 98304 \  --max_batch 2
  • 全量 14B 模型在 FP8 下仅约 14 GB。
  • 测试解码速度约 77 tokens/s,响应极快。

4.2 MoE 模型示例:Qwen3.5-35B-A3B-FP8

ftllm server Qwen3.5-35B-A3B-FP8 \  --dtype fp8 \  --moe_dtype int4 \  --gpu_mem_ratio 0.8 \  --kv_cache_limit 32768 \  --max_batch 2

参数解析:

  • --dtype fp8:主干权重保持原始 FP8 格式。不能对 FP8 模型使用 --dtype int4,否则会触发数据类型不匹配错误。
  • --moe_dtype int4:单独将专家权重量化为 INT4,有效降低显存占用,而精度损失可控。如非必要,不要在线进行量化,速度慢还易出错。
  • --kv_cache_limit 32768:因为 MoE 激活参数极少,显存占用极低(本例中 context usage 仅 1.9%),可以大胆设置超大上下文窗口。
  • 测试生成速度约 17~18 tokens/s,适合需要处理长文档或复杂推理的场景。

5. 测试服务是否正常

5.1 检查端口占用

ss -tlnp | grep 8080

5.2 curl 调用

curl http://localhost:8080/v1/chat/completions \  -H "Content-Type: application/json" \  -d '{    "model": "qwen",    "messages": [{"role": "user", "content": "你好,请介绍一下你自己"}],    "stream": false  }'

若返回 JSON 应答,即成功。

5.3 查看模型列表

curl http://localhost:8080/v1/models

6. 性能监控

  • GPU 显存/使用率:nvidia-smi 或 watch -n 1 nvidia-smi

  • CPU/内存:htop、free -h、lscpu

    free -h        # 查看内存总量与使用nproc# 查看逻辑核心数lscpu          # CPU 详细信息

日志速度指标:

  • [Prompt] ... Speed: X tokens/s:输入处理速度,长文本会逐渐下降属正常。
  • [Decode] alive=1 ... Speed: Y tokens/s:生成速度,稳定值即实际体感速度。
  • context usages: Z%:当前已用 KV Cache 百分比。若 Z 很小(如 1.9%),说明 --kv_cache_limit 远未用满,可以大幅提升以支持更长上下文。

7. 常见错误及处理

错误信息
原因
解决方法
out of memory
 (CUDA)
显存不足
① 降低 --gpu_mem_ratio② 减小 --kv_cache_limit③ 使用 --dtype int4 全量化④ 换更小的模型(如 7B)
unsupport src dtype I32
加载了不兼容的量化格式(如 GPTQ/AWQ)
换用 FP8 或原始模型,或确认 FastLLM 支持该格式
ftllm server
 找不到模型
模型路径或 HuggingFace 名称错误
使用完整 HF 名称如 Qwen/Qwen3-14B-FP8,或在 HF-Mirror 可用时设置环境变量 HF_ENDPOINT=https://hf-mirror.com
CPU 负载过高(MoE 模型)
使用了 --moe_device CPU
密集模型无需此参数;MoE 模型可尝试全 INT4 量化以留在 GPU
Linear error: unsupport weight's dataType... int4_perchannel
对 FP8 模型使用了 --dtype int4,造成线性层数据类型不兼容
将 --dtype 改为 fp8,专家部分可用 --moe_dtype int4

8. 以交互对话模式运行(Run 模式,仅测试用)

ftllm run Qwen/Qwen3-14B-FP8 --dtype fp8

输入文本即可对话,clear 清空记录,stop 退出。


📌 小结

  • 首选模型:Qwen/Qwen3-14B-FP8
  • 启动命令:ftllm server Qwen/Qwen3-14B-FP8 --dtype fp8 --gpu_mem_ratio 0.85 --kv_cache_limit 16384 --max_batch 4
  • 服务地址:http://localhost:8080

最新文章

随机文章