《駱庚《如何快速搭建LLM生產級應用》.pdf》由會員分享,可在線閱讀,更多相關《駱庚《如何快速搭建LLM生產級應用》.pdf(45頁珍藏版)》請在三個皮匠報告上搜索。
1、如何快速搭建如何快速搭建LLMLLM生產級生產級應用應用網易云音樂 模型工程團隊負責人 駱庚0303內容內容總結總結相關技術點的總結0202LLMOpsLLMOps實踐實踐指南指南LLMOps的基本步驟與網易云音樂的實踐0101背景概覽背景概覽大語言模型和LLMOps背景介紹目錄目錄1 1背景概覽背景概覽大語言模型大語言模型綜述綜述生成式生成式AIAI迅速迅速發展發展LLMOps-LLMOps-讓讓LLMLLM快速應用到生產環境快速應用到生產環境什么是什么是LLMOps?LLMOps?LLMOps是大語言模型在MLOps基礎上的延伸,覆蓋了大語言模型的開發、部署、應用、維護和優化等一整套流程。
2、LLMLLM的的Prompt vs Prompt vs F Finetuninginetuning核心內容核心內容數據工具:數據工具:語料管理、Prompt管理。模型工具:模型工具:模型訓練、模型微調。部署工具:部署工具:服務部署、Prompt編排、模型部署。迭代工具:迭代工具:評測、標注、持續監控。2 2LLMOpsLLMOps實踐實踐指指南南大綱大綱 模型。模型。PromptPrompt。測試。測試。部署。部署。效果評估效果評估&持續改進。持續改進。模型模型-選擇適合你的模型選擇適合你的模型模型效果成本服務性能安全性迭代性ChatGPT好高差(境外)中(監管)差ChatGLM中中好(私有化
3、)中(V2可商用)中(SFT)LLaMA差(中文)中好(私有化)中(V2可商用)中(SFT)伏羲玉言中中好(私有化)好(可商用)好(預訓練)核心關注點核心關注點模型效果:模型效果:是否滿足業務需求。成本:成本:使用成本、研發成本、部署成本。服務性能:服務性能:是否2C、QPS/RT。安全性:安全性:是否合規、是否有商業化授權。迭代性:迭代性:是否可以進行模型微調。通過開源評測排行榜發掘新模型通過開源評測排行榜發掘新模型大語言模型開源評測排行榜大語言模型開源評測排行榜SuperCLUE瑯琊榜UC伯克利LLM排行榜Huggingface LLM Benchmark開源中文大模型總覽開源中文大模型總
4、覽Tokenizer Tokenizer 模型詞表大小中文平均token數中文處理時間(s)英文平均token數英文處理時間(s)ChatGLM-6B1303440.5515.910.1920.84Bloom2506800.539.870.2215.60LLaMA320001.4512.600.2519.40Chinese-LLaMA499530.628.650.24919.12核心關注點核心關注點Tokenizer的詞表大小會影響推理速度。Tokenizer的詞表構成會影響模型效果。想要好的中文模型效果,得對詞表進行中文詞匯擴充。LLAMA LLAMA 中文化的必經之路:中文化的必經之路:擴
5、充中文詞匯擴充中文詞匯token-token-使用大規模中文語料庫使用大規模中文語料庫 pre-training pre-training 基座基座LLAMA -Instruction Fine-tuningLLAMA -Instruction Fine-tuning模型選擇模型選擇-案例案例模型模型-一些建議一些建議 新嘗試一個業務場景,可以用新嘗試一個業務場景,可以用ChatgptChatgpt來判斷來判斷LLMLLM能達到的效果。能達到的效果。如果你是內部的如果你是內部的2B2B業務,業務,ChatgptChatgpt往往是最簡單高效的選擇。往往是最簡單高效的選擇。開源社區發展非???,請
6、做好準備隨時更換你的模型。開源社區發展非???,請做好準備隨時更換你的模型。在垂類場景,效果差距往往提現在在垂類場景,效果差距往往提現在SFTSFT數據的積累而不是基座模型的選擇。數據的積累而不是基座模型的選擇。大綱大綱 模型。模型。PromptPrompt。測試。測試。部署。部署。效果評估效果評估&持續改進。持續改進。Prompt-Prompt is all you havePrompt-Prompt is all you have什么是什么是Prompt EngineeringPrompt Engineering?簡單理解Prompt 就是給AI 的指令。Prompt Engineering
7、則是通過設計和改進prompt來提高LLM的表現。Prompt-Prompt-案例案例指令明確與任務拆解指令明確與任務拆解指令清晰無歧義。信息完整。復雜任務拆解為多個簡單子任務。明確任務明確任務Few-shot promptingFew-shot prompting任務拆解任務拆解PromptPrompt管理管理&編排編排核心關注點核心關注點歷史的Prompt要能存儲、跟蹤和迭代。建立Prompt共享庫,群策群力。有能快速嘗試Prompt效果的工具。使用使用DifyDify快速搭建一個歌曲打標的快速搭建一個歌曲打標的PromptPrompt編排案例編排案例PromptPrompt管理平臺管理平
8、臺策略策略-LLM+-LLM+知識庫知識庫LLM+LLM+知識庫優勢知識庫優勢增強業務事實性,不易出現模型幻覺。數據可以實時更新。顯性知識,可控性更高。成本低,靈活性更高。LLM+PromptLLM+Prompt能否解決所有問題?能否解決所有問題?NO!NO!LLM+LLM+知識庫知識庫-案例案例只用只用LLMLLM的時候,容易出現事實性錯誤!的時候,容易出現事實性錯誤!加上知識庫檢索可以避免加上知識庫檢索可以避免LLMLLM出現事實性問題。出現事實性問題。Prompt-Prompt-一些建議一些建議 PromptPrompt的好壞直接決定了的好壞直接決定了LLMLLM的效果。的效果。Prom
9、ptPrompt是一種資產,需要管理和積累是一種資產,需要管理和積累。請時刻保持對請時刻保持對PromptPrompt的學習。的學習。在一些非常嚴謹的問題上,規則策略往往比在一些非常嚴謹的問題上,規則策略往往比PromptPrompt更好用。更好用。大綱大綱 模型。模型。PromptPrompt。測試。測試。部署。部署。效果評估效果評估&持續改進。持續改進。測試測試-評測是評測是LLMLLM迭代的尺子迭代的尺子 C-Eval包括1.3w+選擇題,涵蓋了52個不同的學科和四個難度級別 LLMLLM不是絕對準確,會犯很多錯誤,需要即使發現并糾正它們。不是絕對準確,會犯很多錯誤,需要即使發現并糾正它
10、們。測試為模型迭代提供評價標準。測試為模型迭代提供評價標準。通用評測全而不專,不能反饋垂類業務的模型能力。通用評測全而不專,不能反饋垂類業務的模型能力。測試測試-如何定義測試指標如何定義測試指標測試測試-人工評測人工評測通過人工標注的形式進行新老模型通過人工標注的形式進行新老模型side by sideside by side評測。評測。優勢優勢評測準確性高。有對垂類業務的理解。劣勢劣勢成本高、時耗長。不可持續。新人需要培訓。測試測試-自動化評測自動化評測使用使用auto-evaluatorauto-evaluator進行自動化評測。進行自動化評測。優勢優勢效率高、成本可控。自動化、可持續。劣
11、勢劣勢有一定的錯誤率。需要迭代評測Case。測試測試-案例案例如何構建自動化評測流程人工沉淀badcase類別。形成標準評測集。使用其他LLM作為裁判。統計評測結果。根據評測結果反饋補充評測集。測試測試-一些建議一些建議 形成標準化測試是形成標準化測試是LLMLLM應用的重要環節,有助于形成飛輪效應。應用的重要環節,有助于形成飛輪效應。在垂類業務上,評測集的積累也是一種資產。在垂類業務上,評測集的積累也是一種資產??梢酝ㄟ^其他可以通過其他LLMLLM幫助實現自動化評測。幫助實現自動化評測。大綱大綱 模型。模型。PromptPrompt。測試。測試。部署。部署。效果評估效果評估&持續改進。持續改
12、進。部署部署-DevOps+MLOps -DevOps+MLOps 通過通過APIAPI調用調用LLM-DevOpsLLM-DevOps。私有化部署私有化部署LLM-MLOpsLLM-MLOps。部署成本部署成本推理性能推理性能LLMLLM部署難點:部署難點:LLMLLM部署部署-成本估算成本估算模型參數量(B)顯存大?。℅B)備注BERT0.1020.4097參數為FP32精度Chat-GLM6.2512.51(半張A100)參數為FP16精度LLaMA1328(1張A100)參數為FP16精度GPT-3175FP32-700(18張A100)FP16-350(9張A100)量化后模型性能和
13、大小需要權衡公式:部署顯存(單位公式:部署顯存(單位GBGB)=參數量(單位參數量(單位B B)*A A說明:參數精度說明:參數精度FP32FP32時時A=4A=4;參數精度參數精度FP16FP16時時A=2A=2;在在Chat-GLM-6BChat-GLM-6B模型上實測,顯存推算基本符合公式。模型上實測,顯存推算基本符合公式。TipsTips:模型推理服務高可用需要雙節點。測試/預發等驗證環境也需要對應規格機器才能部署。在吞吐量量不大的場景部署推理服務會造成GPU資源的浪費。LLMLLM部署部署-推理優化推理優化算法層面算法層面軟件層面軟件層面硬件層面硬件層面模型量化。模型蒸餾。計算圖優化
14、。模型編譯。FP8(NVIDIA從H系列開始支持FP8,兼有FP16的穩定性和INT8的速度)。下圖為下圖為GPT2GPT2模型通過轉換為模型通過轉換為ONNXONNX模型適配模型適配CUDACUDA內核實現推理加速的效果。內核實現推理加速的效果。FasterTransformerFasterTransformer實現了大量的實現了大量的OpOp層面的層面的Kernel FusionKernel Fusion,并且使用近似計算,并且使用近似計算優化了一些圖計算過程。優化了一些圖計算過程。下圖為下圖為BERTBERT模型在模型在FasterTransformerFasterTransformer
15、上應用的加速效上應用的加速效果。果。LLMLLM部署部署-案例案例公司硬件顯存/內存性能備注官方CPU32G1-2 token/s(batchsize=1)CPU上部署基本是只能做實驗環境。官方A10012G30 token/s(batchsize=1)GPU上部署可以達到生產級性能。云音樂A100 40G16G66 token/s(batchsize=1)ONNX+TensorRT推理加速。社區某項目A100 40G32G71 token/s(batchsize=1)TensorRT改造。某開源模型推理性能情況對比:某開源模型推理性能情況對比:結論:結論:大模型推理在企業級的應用中,必須使用
16、GPU部署。在不考慮量化的情況下(模型效果會有損失),目前做軟件層面的推理優化是比較靠譜的。不同場景使用的batchsize是不同的,對整體吞吐的影響是比較大的。使用TensorRT對推理加速會帶來顯存的翻倍,資源的消耗需要關注。ONNX+ONNX+TensorRTTensorRT適配適配改改造造部署部署-一些建議一些建議 結合云原生生態,能有效提升部署效率。結合云原生生態,能有效提升部署效率。開源基座模型的推理加速可以跟著社區走。開源基座模型的推理加速可以跟著社區走。請思考你的優化目標是吞吐量還是延遲?請思考你的優化目標是吞吐量還是延遲?請根據你的硬件資源和業務規模選擇部署方案。請根據你的硬
17、件資源和業務規模選擇部署方案。大綱大綱 模型。模型。PromptPrompt。測試。測試。部署。部署。效果評估效果評估&持續改進。持續改進。評估評估&改進改進-讓飛輪轉起來讓飛輪轉起來通過效果評估發現問題。通過效果評估發現問題。策略問題策略問題-優化優化PromptPrompt或者調整策略?;蛘哒{整策略。模型問題模型問題-模型微調。模型微調。不同不同LLMLLM迭代方式的成本差異迭代方式的成本差異評估評估&改進改進-效果評估效果評估效果評估方法:效果評估方法:人工標注人工標注用戶反饋用戶反饋業務指標業務指標BadcaseBadcase挖掘挖掘案例:案例:DifyDify中通過數據回流人工標注的
18、方式做效果評估中通過數據回流人工標注的方式做效果評估評估評估&改進改進-模型微調模型微調 模型微調迭代流程:模型微調迭代流程:Supervised fine-tuningSupervised fine-tuning讓通用大語言模型能夠學習垂類知識。指令精調提升模型準確度。比預訓練更少的樣本量和訓練成本。SFTSFTRLHFRLHF模型微調模型微調-技術要點技術要點 并行計算并行計算顯存優化顯存優化參數高效微調參數高效微調數據并行。模型并行。流水線并行。ZeRO(零冗余優化器)。ZeRO-Offload。activation checkpoint。Adapter。LoRA。P-tuning。下圖
19、是下圖是7.5B7.5B參數量的模型在參數量的模型在6464卡下的顯存占用情況,如果改為卡下的顯存占用情況,如果改為4 4卡按照公式計算卡按照公式計算則可得出顯存分別占用:則可得出顯存分別占用:52.5GB52.5GB、41.25GB41.25GB、30GB30GB。(所以使用。(所以使用4 4張張A100A100就可就可以在以在ZeRO3ZeRO3方案下訓練方案下訓練7.5B7.5B模型,但是通信比會放大導致速度變慢)模型,但是通信比會放大導致速度變慢)PEFTPEFT:針對特定任務微調,減少訓練權重,:針對特定任務微調,減少訓練權重,提升訓練速度,降低計算成本。提升訓練速度,降低計算成本。
20、模型微調模型微調-數據為先數據為先 Prompt工程+規則過濾通過簡單的規則篩選過濾語料集,適配不同的prompt工程來完成對應目標。在線反饋+人工精標通過評測和標注系統,發現goodcase和badcase,并強化相關語料。Chatgpt潤色使用Chatgpt在基礎語料集上潤色和去噪聲。真實場景樣本來源于業務真實場景的語料樣本,最具效果但是數量比較少。Chatgpt生成通過Few-shot能力,使用Chatgpt擴展語料集(alpaca使用self-instruct方式構建語料)。開源語料&爬蟲通過爬蟲或者開源語料庫補充語料樣本,數據量大多樣性強,但是需要篩選。樣本質量樣本數量LLMLLM微
21、調微調80%80%的工作量是對語料數據的處理!的工作量是對語料數據的處理!評估評估&改進改進-一些建議一些建議 人工反饋是最有效的評估。人工反饋是最有效的評估。PromptPrompt和策略是高頻迭代,而模型微調是低頻迭代。和策略是高頻迭代,而模型微調是低頻迭代。模型微調最重要的工作是語料的積累。模型微調最重要的工作是語料的積累。預訓練需要語料的數量,而預訓練需要語料的數量,而SFTSFT需要語料的質量。需要語料的質量。3 3內容內容總結總結總結總結-LLM-LLM應用迭代全流程應用迭代全流程模型:選擇適合你的模型。模型:選擇適合你的模型。PromptPrompt:Prompt is all you havePrompt is all you have。測試:評測是測試:評測是LLMLLM迭代的尺子。迭代的尺子。部署:部署:DevOps+MLOpsDevOps+MLOps。評價評價&改進:讓飛輪轉起來。改進:讓飛輪轉起來。謝謝 謝謝 觀觀 看THANKS