使用Argo Workflows微調大語言模型
本文整理自:
KCD 2025 Beijing: Fine-tuning LLM with Argo Workflows: A Kubernetes-native Approach
1.在大語言模型上微調的挑戰
圖片
微調就是將特定的領域數據賦予到基礎的大模型中進行特定的調優。為什么要這樣做呢,這是因為基礎的大語言模型的設計較為通用,像一顆未經雕琢的寶石/百科全書,能夠給我們比較通用全面的回答,當面對一些特定領域的問題,比如金融,健康等領域,回答不夠精細化。通過微調,可以讓模型在特定領域達到出類拔萃的效果。比較典型的基礎大模型,比如 Deepseek R1、Qwen、Chart GPT 3。典型的調優過的模型比如 DeepSeek-Finance、SciBERT 等。
圖片
那微調時面對挑戰的是什么。第一個是需要管理非常多類型的異構資源,包括 CPU、GPU、DPU 等。
并且微調的過程也是非常昂貴。單次調優可能花費數萬元。第二是流程復雜:有多個階段,需要數據準備,訓練、評估等多個階段,并且可能有非常龐大的參數、海量的流程同時需要管理。如果說沒有一個高效的管理工具,那會導致我們的結果成本高,可信度低,事倍功半。
2.為什么使用 Argo Workflows
圖片
Argo Workflows 來自于 Argo 項目,Argo 項目由一系列高效的工具集組成,包括 Argo Workflows、Argo CD、Events、Rollout。
提供在 Kubernetes 任務管理、應用分發、事件、灰度策略等能力。Argo 社區也是 CNCF 最活躍的社區之一,在過去一年,超過 850 的貢獻者,排名第三,僅次于 Kubernetes、和 Opentelemetry。
Argo Workflows 是 Argo Projects 的核心項目,也是它第一個項目。主要的場景包括 Machine Learning Pipelines,大規模數據處理、基礎設施的自動化、以及 CI/CD 等。右邊是他的一個控制 UI。Argo Workflows 使用的場景非常廣泛、尤其在 AI/ML Pipeline 領域。
圖片
Argo Workflows 不僅自身在 MLOps 的場景應用廣泛,有大量的終端用戶使用。并且能夠支持了大量的流行的 AI 工具中的任務編排,比如 Kubeflow Pipelines、Metaflow、Numaflow 等。有超過 8k 家的公司使用 Argo 或者基于 Argo 的任務管理之上的ML工具。
可以說 Argo Workflows 已經成為了一個在 Kubernetes 上編排 AI/ML 任務的核心組件。
圖片
那為什么 Argo Workflows 在 AI/Fine-tuning 領域受到這么多的歡迎,主要原因包括:直接構建在 Kubernetes 之上,一個任務就是一個 Kubnertes 容器。擴展性強,可以并行啟動數千個任務。模板機制,標準化可重復性。豐富的重試機制,有效地提高任務容錯率。良好的可觀測性。使用起來非常簡易。支持 YAML/Python 語言,讓研究員和運維工程師都能很快的上手。
3.案例:使用 Argo Workflows基于 DeepSeek 進行 Finetune
圖片
首先看一下 Workflow 的定義,它被設計成一個 Kubernetes CRD,一個 Workflow 主要由兩個部分組成,一部分是任務之間的邏輯關系,可以是串行的step、或者復雜的 DAG,也可以是循環等等。
另一部分是 template,包含 image、command、resource 等定義,跟 container 的定義比較像,代表一個任務。這是一個工作流示例。
圖片
Fine-tuning LLM 的流程一般至少包含幾個部分。
首先是數據準備。需要從 HuggingFace 上下載數據集或者使用自己的數據集合,然后進行源數據的清洗,token 化等。第二是選擇 Base Model,可以是基礎的 DeepSeek-R1,或者是 DeepSeek-R1 在其他大模型上蒸餾出來的一些小模型。
第三是進行訓練:可以選擇是部分參數微調還是全參數微調整。消耗的時間和資源都不一樣。最后是進行模型評估。可以進行人工評估或者是參數評估。根據這些基礎材料我們準備我們的模型微調工作流。
圖片
將微調的流程整理成為上邊的一個流程。首先是數據準備階段,選用 haggface 上一個傳統中醫的數據集。
選用 DeepSeek-R1-Distill-Qwen-7B 的 4 bit 的模型。接下來是 tokennization 和 Prompt_Style,我們的提示詞是您是一個傳統中醫專家。
Train 階段使用 LoRA 技術,進行部分微調。最后會進行并行推理來比較在基礎模型和微調過的模型上做一個比較。提的問題一個經典問題,久咳不止怎么辦。
圖片
通過使用Python語言構建并提交上述的工作流,即可在 Argo-Server 控制臺獲取到如上的工作流,代碼也已經分享到上述的鏈接(https://github.com/AliyunContainerService/argo-workflow-examples/tree/main/fine-tune-with-argo),可以非常容易的進行復現。運行過程中可以隨時重啟、觀測整個工作流的運行狀況。流程執行完成后,可以看到在 fine-tune 之后,能夠看到模型的回答更接近我們的預想的方向。
4.總結與展望
圖片
總的來講使用這種方式,有以下一些優點:
節省成本。細粒度的控制任務。提高效率。當編寫完這樣一個流程之后,全程是自動化的,并且失敗也可以自動重試。
容易擴展:根據參數的不同容易擴展到不同的模型、數據集。
可重復:容易進行版本控制,運行狀態的復現定位。
圖片
構建完成這樣的標準流程之后,之后還可以基于 Argo Workflows 做什么來讓我們的工作流運行的更高效呢。
1)基于 Argo Workflows 實現自動化 CI/CD、和 Argo Events 集成,構建事件驅動的全自動化工作流,提升整體的研發效率。
2)和 Spark、Ray、Pytorch 等數據處理、AI框架相結合,構建統一的數據處理、機器學習訓練 Pipeline 平臺,讓一套架構服務于不同的團隊。