Sync v2.0 version of code to github repo

This commit is contained in:
Jiang-Jia-Jun
2025-06-29 23:29:37 +00:00
parent d151496038
commit 92c2cfa2e7
597 changed files with 78776 additions and 22905 deletions
+25
View File
@@ -0,0 +1,25 @@
# 代码说明
下边按照目录结构来介绍一下每个 FastDeploy 的代码结构及代码功能。
- ```custom_ops```:存放 FastDeploy 运行大模型所使用到的 C++ 算子,不同硬件下的算子放置到对应的目录下(cpu_ops/gpu_ops),根目录下的 setup_*.py 文件用来编译上述 C++ 代码的算子。
- ```dockerfiles```:存放运行 FastDeploy 的环境镜像 dockerfile。
- ```docs```FastDeploy 代码库有关的说明文档。
- ```fastdeploy```
- ```agent```:大模型服务启动使用到的脚本
- ```cache_manager```:大模型缓存管理模块
- ```engine```:管理大模型整体执行引擎类有关代码
- ```entrypoints```:用户入口调用接口
- ```input```:用户输入处理模块,包括预处理,多模态输入处理,tokenize 等功能
- ```model_executor```
- ```layers```:大模型组网需要用到的 layer 模块
- ```model_runner```:模型推理执行模块
- ```models```FastDeploy 内置的大模型类模块
- ```ops```:由 custom_ops 编译后可供 python 调用的算子模块,不同硬件平台的算子放置到对应的目录里
- ```output```:大模型输出有关处理
- ```platforms```:与底层硬件功能支持有关的平台模块
- ```scheduler```:大模型请求调度模块
- ```metrics```:用于收集、管理和导出 Prometheus 指标的核心组件,负责记录系统运行时的关键性能数据(如请求延迟、资源使用率、成功请求数等)
- ```splitwise```: 分离式部署相关模块
- ```scripts```/```tools```FastDeploy 用于执行功能的辅助脚本,比如编译,单测执行,代码风格纠正等
- ```test```:项目单测验证使用到的代码
+70
View File
@@ -0,0 +1,70 @@
# FastDeploy 环境变量说明
FastDeploy 的环境变量保存在了代码库根目录下 fastdeploy/envs.py 文件中,以下是其对应的中文版说明:
```python
environment_variables: dict[str, Callable[[], Any]] = {
# 构建 FastDeploy 时使用的 CUDA 架构版本,这是一个字符串列表,例如[80,90]
"FD_BUILDING_ARCS":
lambda: os.getenv("FD_BUILDING_ARCS", "[]"),
# 日志目录
"FD_LOG_DIR":
lambda: os.getenv("FD_LOG_DIR", "log"),
# 是否启用调试模式,可设置为 0 或 1
"FD_DEBUG":
lambda: os.getenv("FD_DEBUG", "0"),
# FastDeploy 日志保留天数
"FD_LOG_BACKUP_COUNT":
lambda: os.getenv("FD_LOG_BACKUP_COUNT", "7"),
# 模型下载缓存目录
"FD_MODEL_CACHE":
lambda: os.getenv("FD_MODEL_CACHE", None),
# 停止序列的最大数量
"FD_MAX_STOP_SEQS_NUM":
lambda: os.getenv("FD_MAX_STOP_SEQS_NUM", "5"),
# 停止序列的最大长度
"FD_STOP_SEQS_MAX_LEN":
lambda: os.getenv("FD_STOP_SEQS_MAX_LEN", "8"),
# 将要使用的GPU设备,这是一个用逗号分隔的字符串,例如 0,1,2
"CUDA_VISIBLE_DEVICES":
lambda: os.getenv("CUDA_VISIBLE_DEVICES", None),
# 是否使用 HuggingFace 分词器
"FD_USE_HF_TOKENIZER":
lambda: os.getenv("FD_USE_HF_TOKENIZER", 0),
# 设置 ZMQ 初始化期间接收数据的高水位标记(HWM)
"FD_ZMQ_SNDHWM":
lambda: os.getenv("FD_ZMQ_SNDHWM", 10000),
# 缓存 KV 量化参数的目录
"FD_CACHE_PARAMS":
lambda: os.getenv("FD_CACHE_PARAMS", "none"),
# 设置注意力机制后端,当前可设置为 "NATIVE_ATTN"、"APPEND_ATTN" 或 "MLA_ATTN"
"FD_ATTENTION_BACKEND":
lambda: os.getenv("FD_ATTENTION_BACKEND", "APPEND_ATTN"),
# 设置采样类别,当前可设置为 "base"、"air" 或 "rejection"
"FD_SAMPLING_CLASS":
lambda: os.getenv("FD_SAMPLING_CLASS", "base"),
# 设置MoE后端,当前可设置为 "cutlass"、"marlin" 或 "triton"
"FD_MOE_BACKEND":
lambda: os.getenv("FD_MOE_BACKEND", "cutlass"),
# 设置 Triton 内核 JIT 编译目录
"FD_TRITON_KERNEL_CACHE_DIR":
lambda: os.getenv("FD_TRITON_KERNEL_CACHE_DIR", None),
# 是否从单机 PD 分离转换为集中式推理
"FD_PD_CHANGEABLE":
lambda: os.getenv("FD_PD_CHANGEABLE", "1"),
}
```
+44
View File
@@ -0,0 +1,44 @@
# 日志说明
FastDeploy 在部署过程中,会产生如下日志文件,各日志含义说明
默认日志目录为执行目录下的 `log` 文件夹,若需要指定可设置环境变量 `FD_LOG_DIR`
## 推理服务日志
* `backup_env.*.json` : 记录当前实例启动时设置的环境变量,文件个数与卡数相同
* `envlog.*` : 记录当前实例启动时设置的环境变量,文件个数与卡数相同
* `console.log` : 记录模型启动耗时等信息,该日志信息会被打印到控制台
* `data_processor.log` : 记录输入数据及输出输出编码解码的内容
* `fastdeploy.log` : 记录当前实例启动的各个 config 的信息,运行中记录用户请求的 request 及 response 信息
* `workerlog.*` : 记录模型启动加载进度及推理算子报错信息,每个卡对应一个文件
* `worker_process.log` : 记录引擎每一轮推理的数据
* `prefix_cache_manager.log` : 记录每一个请求分配 KV Cache 的逻辑索引,以及当前请求的命中情况
* `launch_worker.log` : 记录模型启动信息及报错信息
* `gpu_worker.log` : 记录 profile 时计算 KV Cache block 数目的信息
* `gpu_model_runner.log` : 当前的模型信息及加载时间
## 在线推理客户端日志
* `api_server.log` : 记录启动参数,及接收到的请求信息
## 调度器日志
* `scheduler.log` : 记录调度器的信息包含当前结点的信息,每条请求分配的信息
## 投机解码日志
* `speculate.log` : 投机解码相关信息
## Prefix Caching 相关日志
* `cache_queue_manager.log` : 记录启动参数,及接收到的请求信息
* `cache_transfer_manager.log` : 记录启动参数,及接收到的请求信息
* `cache_queue_manager.log` : 记录启动参数,及接收到的请求信息
* `launch_cache_manager.log` : 启动 cache transfer 记录启动参数,报错信息
## PD 分离相关日志
* `cache_messager.log` : 记录P 实例使用的传输协议及传输信息
* `splitwise_connector.log` : 记录收到 P/D 发送的数据,及建联信息
## CudaGraph 相关日志
* `cudagraph_piecewise_backend.log` : 记录 cuda graph 启动及报错信息