FastDeploy2.0:環境變量的說明

一、執行


# 設置日志目錄
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 研究背景 在當今數字化時代,圖像作為一種重要的信息載體,廣泛存在于各類網站、社交媒體和在線平臺中。這些圖像數據涵蓋了從自然風光、人物肖像到商品展示、新聞事件等豐富內容,為數據分析和模式識別提供了寶貴的資源。隨著計算機視覺技術的快速發展,對大規模…

電感矩陣-信號完整性分析

電感矩陣:正如電容矩陣用于存儲許多信號路徑和返回路徑的所有電容量,我們也需要一個矩陣存儲許多導線的回路自感和回路互感值。需要牢記的是,這里的電感元件是回路電感。當信號沿傳輸線傳播時,電流回路沿信號路徑傳輸,然后立即從返…