mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2026-04-23 17:11:21 +08:00
Sync v2.0 version of code to github repo
This commit is contained in:
@@ -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```:项目单测验证使用到的代码
|
||||
|
||||
@@ -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"),
|
||||
|
||||
}
|
||||
```
|
||||
@@ -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 启动及报错信息
|
||||
Reference in New Issue
Block a user