一、执行


# 设置日志目录
export FD_LOG_DIR=/workspace/models/log

# 指定使用的 GPU 设备
export CUDA_VISIBLE_DEVICES=0,1,2,3

# 创建日志目录(如果不存在)
mkdir -p "$FD_LOG_DIR"

# 定义日志文件路径
LOG_FILE="$FD_LOG_DIR/fastdeploy_server_$(date +'%Y%m%d_%H%M%S').log"

# 启动服务并重定向输出到日志文件,后台运行
nohup python -m fastdeploy.entrypoints.openai.api_server \
--model /workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu \
--port 8180 \
--metrics-port 8181 \
--engine-worker-queue-port 8182 \
--gpu-memory-utilization 0.7 \
--max-model-len 8192 \
--max-num-seqs 32 \
--tensor-parallel-size 4 \
--reasoning-parser qwen3 > "$LOG_FILE" 2>&1 &

二、环境变量

🔹 1. CPU 与 BF16 相关


"FD_CPU_USE_BF16": lambda: os.getenv("FD_CPU_USE_BF16", "False"),
作用:是否在 CPU 上启用 BF16(BFloat16) 精度计算。
默认值:"False"
说明:
BF16 是一种半精度浮点格式,常用于加速推理,减少内存占用。
若设为 "True",则在支持 BF16 的 CPU(如 Intel AMX 支持的处理器)上启用 BF16 计算。


🔹 2. CUDA 架构构建目标


"FD_BUILDING_ARCS": lambda: os.getenv("FD_BUILDING_ARCS", "[]"),
作用:指定编译 FastDeploy 时针对的 CUDA 架构(Compute Capability)。
默认值:"[]"(空列表)
示例值:"[80, 90]" 表示支持 SM80(Ampere)、SM90(Hopper)架构。
说明:影响编译生成的 CUDA 二进制代码兼容性。

🔹 3. 日志目录


"FD_LOG_DIR": lambda: os.getenv("FD_LOG_DIR", "log"),
作用:指定日志文件的存储目录。
默认值:"log"
说明:所有运行日志将保存在此目录下。

🔹 4. 调试模式


"FD_DEBUG": lambda: os.getenv("FD_DEBUG", "0"),
作用:是否启用调试模式。
取值:"0"(关闭)、"1"(开启)
说明:开启后可能输出更详细的日志,用于调试问题。

🔹 5. 日志保留天数


"FD_LOG_BACKUP_COUNT": lambda: os.getenv("FD_LOG_BACKUP_COUNT", "7"),
作用:保留最近多少天的日志文件。
默认值:"7"(保留7天)
说明:配合日志轮转机制,防止磁盘被占满。

🔹 6. 模型下载源


"FD_MODEL_SOURCE": lambda: os.getenv("FD_MODEL_SOURCE", "AISTUDIO"),
作用:指定从哪个平台下载模型。
可选值:
"AISTUDIO":百度 AI Studio
"MODELSCOPE":魔搭(ModelScope)
"HUGGINGFACE":Hugging Face
默认值:"AISTUDIO"

🔹 7. 模型缓存目录


"FD_MODEL_CACHE": lambda: os.getenv("FD_MODEL_CACHE", None),
作用:模型下载后的本地缓存路径。
默认值:None(使用系统默认缓存路径)
说明:设置后可避免重复下载大模型。

🔹 8. 停止序列限制


"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"),
作用:
FD_MAX_STOP_SEQS_NUM:最多支持多少个“停止序列”(stop sequences),用于控制文本生成的终止。
FD_STOP_SEQS_MAX_LEN:每个停止序列的最大长度(字符数)。
说明:常用于 LLM 推理中,例如遇到“\n\n”或“###”时停止生成。

🔹 9. 可见 GPU 设备


"CUDA_VISIBLE_DEVICES": lambda: os.getenv("CUDA_VISIBLE_DEVICES", None),
作用:控制程序可见的 GPU 设备。
格式:用逗号分隔的设备 ID,如 "0,1,2"
说明:这是标准的 CUDA 环境变量,用于 GPU 资源隔离。

🔹 10. 使用 HuggingFace Tokenizer


"FD_USE_HF_TOKENIZER": lambda: os.getenv("FD_USE_HF_TOKENIZER", 0),
作用:是否使用 HuggingFace 提供的 tokenizer。
注意:默认值是 0(整数),但 os.getenv 返回字符串,这里可能应为 "0"。
说明:若为 1,则优先使用 HF 的分词器实现。

🔹 11. ZMQ 数据发送水位线


"FD_ZMQ_SNDHWM": lambda: os.getenv("FD_ZMQ_SNDHWM", 10000),
作用:设置 ZMQ(ZeroMQ)通信中发送队列的高水位线(High Water Mark)。
默认值:10000
说明:防止发送缓冲区无限增长,超过此值会丢弃旧消息或阻塞。

🔹 12. KV Cache 量化参数缓存目录


"FD_CACHE_PARAMS": lambda: os.getenv("FD_CACHE_PARAMS", "none"),
作用:用于缓存 KV Cache 量化相关参数的目录。
默认值:"none" 表示不缓存。

🔹 13. 注意力机制后端


"FD_ATTENTION_BACKEND": lambda: os.getenv("FD_ATTENTION_BACKEND", "APPEND_ATTN"),
可选值:
"NATIVE_ATTN":原生注意力
"APPEND_ATTN":追加式注意力(可能用于流式生成)
"MLA_ATTN":多头局部注意力(Multi-head Local Attention)
说明:选择不同的注意力实现方式,影响性能和内存使用。

🔹 14. 采样策略类


"FD_SAMPLING_CLASS": lambda: os.getenv("FD_SAMPLING_CLASS", "base"),
可选值:
"base":基础采样(如 greedy、top-k、top-p)
"base_non_truncated":非截断式基础采样
"air":可能是 Advanced Inference Resampling
"rejection":拒绝采样(Rejection Sampling)
说明:决定文本生成时的 token 采样策略。

🔹 15. MoE 后端实现


"FD_MOE_BACKEND": lambda: os.getenv("FD_MOE_BACKEND", "cutlass"),
作用:选择 Mixture of Experts (MoE) 模型的计算后端。
可选值:
"cutlass":NVIDIA Cutlass 库,高性能 CUDA 矩阵计算
"marlin":可能是量化推理优化库
"triton":使用 Triton 编写的 kernel
说明:影响 MoE 模型的推理效率。

🔹 16. 是否禁用请求重计算


"FD_DISABLED_RECOVER": lambda: os.getenv("FD_DISABLED_RECOVER", "0"),
作用:当 KV Cache 满时,是否禁用恢复/重计算机制。
默认值:"0"(不禁用,允许恢复)
说明:若禁用(设为 "1"),可能直接报错或丢弃请求。

🔹 17. Triton Kernel 缓存目录


"FD_TRITON_KERNEL_CACHE_DIR": lambda: os.getenv("FD_TRITON_KERNEL_CACHE_DIR", None),
作用:Triton 编译的 kernel 的缓存路径。
说明:避免重复编译,提升启动速度。

🔹 18. PD 解耦模式是否可变


"FD_PD_CHANGEABLE": lambda: os.getenv("FD_PD_CHANGEABLE", "0"),
作用:是否允许从“独立 PD 解耦”模式切换到“集中式推理”。
说明:PD 可能指 Pre-decoding 或 Parallel Decoding,用于加速生成。

🔹 19. 是否使用 fastsafetensor 加载权重


"FD_USE_FASTSAFETENSOR": lambda: os.getenv("FD_USE_FASTSAFETENSOR", "0"),
作用:是否使用 fastsafetensor 库快速加载 .safetensors 格式的模型权重。
优势:比标准方式更快,更安全(防止代码注入)。

🔹 20. 是否使用 DeepGemm(FP8 MoE)


"FD_USE_DEEP_GEMM": lambda: bool(int(os.getenv("FD_USE_DEEP_GEMM", "1"))),
作用:是否启用 DeepGemm(可能是针对 FP8 精度的 MoE 优化 GEMM 计算)。
转换逻辑:字符串 → int → bool
默认启用:"1" → True

🔹 21. 是否使用聚合发送


"FD_USE_AGGREGATE_SEND": lambda: bool(int(os.getenv("FD_USE_AGGREGATE_SEND", "0"))),
作用:是否将多个小消息聚合后一次性发送(用于通信优化)。
默认关闭:"0" → False
场景:分布式推理、多节点通信。

🔹 22-27. 分布式追踪(Tracing)配置


"TRACES_ENABLE": lambda: os.getenv("TRACES_ENABLE", "false"),"FD_SERVICE_NAME": lambda: os.getenv("FD_SERVICE_NAME", "FastDeploy"),"FD_HOST_NAME": lambda: os.getenv("FD_HOST_NAME", "localhost"),"TRACES_EXPORTER": lambda: os.getenv("TRACES_EXPORTER", "console"),"EXPORTER_OTLP_ENDPOINT": lambda: os.getenv("EXPORTER_OTLP_ENDPOINT"),"EXPORTER_OTLP_HEADERS": lambda: os.getenv("EXPORTER_OTLP_HEADERS"),
作用:集成 OpenTelemetry 等分布式追踪系统。
说明:
TRACES_ENABLE: 是否开启追踪。
FD_SERVICE_NAME: 服务名。
FD_HOST_NAME: 主机名。
TRACES_EXPORTER: 追踪数据输出方式(如 console, otlp, jaeger)。
EXPORTER_OTLP_ENDPOINT: OTLP 服务地址(如 http://localhost:4317)。
EXPORTER_OTLP_HEADERS: 发送 OTLP 请求时的头部(如认证信息)。

🔹 28. 启用 V1 版本的 KV Cache 调度器


"ENABLE_V1_KVCACHE_SCHEDULER": lambda: int(os.getenv("ENABLE_V1_KVCACHE_SCHEDULER", "0")),
作用:是否启用新版(v1)的 KV Cache 块调度器。
特点:无需设置 kv_cache_ratio,更智能地管理显存。
默认关闭:"0"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92131.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92131.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92131.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言:指针(1-2)

5. 指针运算指针的基本运算有三种,分别是:指针-整数指针-指针指针的关系运算5.1 指针运算在上面,我们知道,数组在内存中是连续存放的,只要知道第一个元素的地址,顺藤摸瓜就能找到后面的所有元素。那么&…

【多模态】DPO学习笔记

DPO学习笔记1 原理1.0 名词1.1 preference model1.2 RLHF1.3 从RLHF到DPOA.解的最优形式B. DPO下参数估计C. DPO下梯度更新D. DPO训练的稳定性2 源代码2.1 数据集构成2.2 计算log prob2.3 DPO loss1 原理 1.0 名词 preference model:对人类偏好进行建模&#xff0…

2025最新、UI媲美豆包、DeepSeek等AI大厂的AIGC系统 - IMYAI源码部署教程

IMYAI 系统部署与使用手册 一、系统演示 🔹 快速体验 前端演示地址:https://super.imyaigc.com后台演示地址:https://super.imyaigc.com/settings 🔹 技术架构 前端:Vite Vue3 NaiveUI TailwindCSS Plyr后端&…

【关于Java的反射】

在 Java 编程中,反射(Reflection) 是一个非常强大的工具,它允许你在运行时动态地获取类的信息、创建对象、调用方法和访问字段。虽然反射功能强大,但它也有一些局限性和性能开销,因此需要谨慎使用。一、什么…

Gitee推出“移动软件工厂“解决方案 解决嵌入式与涉密场景研发困局

Gitee推出"移动软件工厂"解决方案 破解嵌入式与涉密场景研发困局 随着数字化转型浪潮的推进,软件开发正面临着前所未有的复杂环境挑战。特别是在嵌入式系统、FPGA开发以及涉密信息系统等特殊场景下,研发团队往往需要在高安全要求与有限网络环境…

低功耗16*8位四线串行8*4按键阵矩LED驱动专用电路

概述:PC0340是占空比可调的LED显示控制驱动电路。由16根段输出、8根位输出、数字接口、数据锁存器、显示存储器、键扫描电路及相关控制电路组成了一个高可靠性的单片机外围LED驱动电路。串行数据通过4线串行接口输入到PC0340,采用LQFP44L的封装形式。本产…

通过自定义注解加aop切面实现权限控制

前言:自定义注解,通过aop切面前置通知,对请求接口进行权限控制1,创建枚举类package org.springblade.sample.annotationCommon;import lombok.AllArgsConstructor; import lombok.Getter;import java.util.Arrays; import java.ut…

IDS知识点

在网络安全工程师、系统运维工程师等岗位的面试中,​​IDS(Intrusion Detection System,入侵检测系统)​​ 是高频考点,尤其是对网络安全防护、安全监控类岗位。以下是IDS的核心考点和必须掌握的知识点,按优…

Adobe Analytics 数据分析平台|全渠道客户行为分析与体验优化

Adobe Analytics 是业界领先的数据分析平台,帮助企业实时追踪客户行为,整合多渠道数据,通过强大的分析与可视化工具深入分析客户旅程,优化数字体验。结合 Adobe Experience Cloud,Adobe Analytics 成为推动数字化增长和…

【轮播图】H5端轮播图、横向滑动、划屏效果实现方案——Vue3+CSS position/CSS scroller

文章目录定位实现滑屏效果前置知识CSS: touch-action属性CSS: transform属性触摸事件forEach回调占位符准备阶段实现移动效果实现跟手效果触摸结束优化完整代码滚动实现滑屏效果前置知识CSS: scroll-snap-type属性准备阶段实现滑动效果实现吸附效果滚动条隐藏存在问题完整代码s…

忘记了WordPress管理员密码的找回方法

WordPress管理员密码找回方法 如果您忘记了WordPress管理员密码,可以通过以下几种方法找回或重置: 方法1:通过电子邮件重置(最简单) 访问您的WordPress登录页面(通常是wodepress.com/wp-admin或wodepress.com/wp-login.php) 点击”忘记密…

RAFT:让语言模型更聪明地用文档答题

RAFT:让语言模型更聪明地用文档答题 作者注: 本文旨在面向零基础读者介绍 UC Berkeley 提出的 RAFT(Retrieval-Augmented Fine-Tuning)方法。它是一种训练语言模型的新方式,让模型更好地利用“外部知识”——比如文档、…

【紧急预警】NVIDIA Triton推理服务器漏洞链可导致RCE!

2025 年 8 月 4 日消息,NVIDIA 旗下的 Triton 推理服务器(一款支持 Windows 和 Linux 系统、用于大规模运行 AI 模型的开源平台)被曝出一系列安全漏洞。这些漏洞一旦被利用,攻击者有可能完全接管存在漏洞的服务器。 Wiz 安全公司…

基于深度学习的医学图像分析:使用PixelCNN实现医学图像生成

前言 医学图像分析是计算机视觉领域中的一个重要应用,特别是在医学图像生成任务中,深度学习技术已经取得了显著的进展。医学图像生成是指通过深度学习模型生成医学图像,这对于医学研究、疾病模拟和图像增强等任务具有重要意义。近年来&#x…

React ahooks——副作用类hooks之useDebounceFn

useDebounceFn 是 ahooks 提供的用于函数防抖的 Hook,它可以确保一个函数在连续触发时只执行最后一次。一、基本用法import { useDebounceFn } from ahooks; import { Button } from antd;const Demo () > {const { run } useDebounceFn(() > {console.log(…

【机器学习深度学习】 知识蒸馏

目录 前言 一、什么是知识蒸馏? 二、知识蒸馏的核心意义 2.1 降低算力与成本 2.2 加速推理与边缘部署 2.3 推动行业应用落地 2.4 技术自主可控 三、知识蒸馏的本质:大模型的知识传承 四、知识蒸馏的“四重红利” 五、DeepSeek的知识蒸馏实践 …

Python高级编程与实践:Python高级数据结构与编程技巧

高级数据结构:掌握Python中的高效编程技巧 学习目标 通过本课程,学员将深入了解Python中的高级数据结构,包括列表推导式、字典推导式、集合推导式和生成器表达式。学员将学习如何利用这些结构来编写更简洁、更高效的代码,并了解它…

【C++】Stack and Queue and Functor

本文是小编巩固自身而作,如有错误,欢迎指出!本次我们介绍STL中的stack和queue和其相关的一些容器和仿函数一.stack and queue1.适配器stack和queue其实不是真正意义上的容器,而是容器适配器,而容器适配器又是什么呢&am…

Python爬虫实战:研究OpenCV技术构建图像数据处理系统

1. 引言 1.1 研究背景 在当今数字化时代,图像作为一种重要的信息载体,广泛存在于各类网站、社交媒体和在线平台中。这些图像数据涵盖了从自然风光、人物肖像到商品展示、新闻事件等丰富内容,为数据分析和模式识别提供了宝贵的资源。随着计算机视觉技术的快速发展,对大规模…

电感矩阵-信号完整性分析

电感矩阵:正如电容矩阵用于存储许多信号路径和返回路径的所有电容量,我们也需要一个矩阵存储许多导线的回路自感和回路互感值。需要牢记的是,这里的电感元件是回路电感。当信号沿传输线传播时,电流回路沿信号路径传输,然后立即从返…