《3-林帆-大模型落地的最后一公里.pdf》由會員分享,可在線閱讀,更多相關《3-林帆-大模型落地的最后一公里.pdf(48頁珍藏版)》請在三個皮匠報告上搜索。
1、模型落地的最后公云效產品的故事林帆阿云云效數據和智能化應負責林帆花名戟 阿云級技術專家 云效數據和智能產品技術負責 前ThoughtWorks級DevOps技術咨詢師 書籍CoreOS實踐之路和 容器即服務:從零構建企業級容器集群作者錄CONTENTS最后公:模型部署01 性能:更快的推理速度02 成本:更的資源效益03質量:更好的應效果04 01最后公:模型部署模型的交付歷程海量 原始數據結構化 數據集通/業 模型智能 服務數據采集 和清洗模型訓練模型部署云效數據智能團隊前身為代碼智能團隊 專注于代碼算法和 數據挖倔分析在智能代碼評審、缺陷 定位、摘要成等領域 積累數篇論和專利推出基于NLP
2、模型 的智能IDE編碼補全 輔助插件Cosy2018年2020年2021年數據端業務端積累了海量開源代碼 技術檔和研發領域 相關知識語料背靠云效DevOps平臺 服務中國百萬開發者 和數萬企業從模型到價值呈現研發領域 數據語料達摩院 通義模型研發業模型智能研發服務代碼成 知識問答 智能評審|決定戶體驗和產品質量的公|以上圖由通義萬象成理想的模型部署式基于通基礎設施(如容器和Kubernetes)使簡單、易運維的具可獨閉環,不依賴外部服務基于主流GPU和普通硬件設備以上圖由通義萬象成01性能:更快的推理速度故事的開端叮咚以上圖由通義萬象成模型準備好了,來試試看吧?第次壓測單服務QPS 0.1 平
3、均每秒處理1個請求以上圖由通義萬象成請求響應這啥 咋這么慢?Lesson LearnedFlask werkzeug Gunicorn sync-mode同步阻塞協程并發線程并發進程并發適于低頻低負載的服務模型是計算密集型服務Gunicorn gevent-modeGunicorn gthread-modeGunicorn multi-workers適IO密集型服務,輕量并發適計算密集型服務(對于Python需要GIL鎖的系統線程)會導致模型被加載多份,消耗顯存例如:奇怪的事情出現了8 秒/百Token20 秒/百Token同個模型測試環境正式環境以上圖由通義萬象成00:00:0800:00:
4、20pip is good,conda is better.使兩種requirement.txt管理依賴版本 優先使conda的依賴包 對于某些特定模型,使conda依賴包推理的速度是pip依賴包的23倍Python包管理具,包含許多conda沒有的Python依賴包軟件包和運環境管理具,包含BLAS、LAPACK等科學計算庫Lesson Learned依賴的安裝式會影響性能推理加速案如何選擇槍換炮進時,奈案有點多加速具包(SDK式引)加速服務器(帶運具)DeepSpeed Triton(Pytriton)Accelerate FasterTransformer TurboTransforme
5、rs OneFlow 眼為實,沒有萬能的案模型模型模型三 FasterTransformer提速x4不可不可DeepSpeed提速x3不可提速x2OneFlow提速x3提速x2不可 真正可的選項 往往只有個并發上去了,體感依然不佳以上圖由通義萬象成咋還沒動靜?叭噠,叭叭噠,叭叭噠噠,叭噠,叭噠,.秒鐘后SSE協議加速模型響應叭噠,叭叭噠,叭叭噠噠,.以上圖由通義萬象成叭噠叭噠,叭叭噠,.即 響應Server-Sent Events協議于實現 服務端到客戶端的單向輕量通知 分適合模型的逐字推理過程03成本:更的資源效益被浪費的資源以上圖由通義萬象成監控顯示:有批機器的CPU/內存 使率期低于20
6、%都是服務器規格惹的禍參考型號GPU卡數顯存(每卡)CPU核數內存ecs.gn7i-c32g1.16xlarge2*A1024GB64376GBecs.gn7i-c32g1.32xlarge4*A1024GB128752GBecs.gn7-c13g1.13xlarge4*A10040GB52378GBecs.gn7-c13g1.26xlarge8*A10040GB104756GB商慣例:每種型號機型的資源規格固定搭配以阿云ECS主機為例混合部署+動態擴縮提升空間利率提升時間利率有GPU的節點模型服務模型服務其他服務其他服務GPU的節點其他服務其他服務其他服務其他服務 低峰期縮容半 夜間縮容部分
7、同時提GPU使率將戶納成本因素 模型訓練 固定成本:增加戶攤薄成本 模型推理 邊際成本:增加戶增加成本戶量所需部署推理資源控制成本不僅是運維的事,還應當從運營的度思考以上圖由通義萬象成模型,分級服務成本轉移讓戶參與成本“決策”速模式精確模式基礎版級版價格:¥x.x 功能1/功能2價格:¥xxxx 功能1/功能2/功能N成本置換做任務,得積分,換功能時哦成本分配優化功能1功能2模型模型功能模型1模型2基礎版級版模型的數量越來越多以上圖由通義萬象成代碼模型-Mini檔知識模型-Large 不同種類 不同客戶 不同版本 不同規格 多種模型怎么分配GPU需要2個GPU 各16GB顯存需要1個GPU 8
8、GB顯存需要2個GPU 各30GB顯存4 x A10 GPU(24GB)4 x A10 GPU(24GB)2 x A100 GPU(40GB)以上圖由通義萬象成讓Kubernetes先送程第步:選擇節點類型:Kubernetes taints 和 toleration 第步:調度到節點:NVIDIA k8s-device-plugin 技巧: 第三步:節點內選擇GPU:節點內的調度我就管不到了使共享錄+件鎖分配GPU原理:通過掛載本地錄確保只有調度到相同主機的Pod會競爭共同的GPU Unix件鎖確保在任何情況下,進程旦結束,鎖必定會被釋放 1個全局鎖 :于獲取GPU資源分配權 N個資源鎖 :
9、于標識GPU額度分配的所有權 特殊Case(GPU碎):節點的4個GPU卡均余0.1配額,Pod需要2個0.2配額的GPU程師需要由的探索以上圖由通義萬象成需要試個新框架,搞個顯存的GPU來?有種改進思路,需要分別實驗下要試下新版本模型,測試環境不夠了你以為的阿云程團隊云上多得是GPU 隨便以上圖由通義萬象成云上的GPU多得很,想隨便實際上的阿云程團隊云上的GPU多得很,想之前 先看看 這個的成本賬單以上圖由通義萬象成打造程師的助練兵場具端服務端ECS with GPUECS with GPUECS with GPU NAS按需啟動 ssh登錄關閉閑置主機 更新名單申請名單授權 與線上環境獨
10、按需助使 內動授權訪問 閑置動關機 搞壞了可以快速重建 戶之間通過Conda隔離依賴rsync同步 本地件04質量:更好的應效果模型的“幻覺”以上圖由通義萬象成缺少夠的上下時,模型會憑“經驗”編造不存在或不符合事實的信息解釋這段代碼:report:=SimpleReport Name:測試.report.send(northeast-01)這段代碼創建了 封郵件,并將它發給名為 northeast-01的戶檢索增強:給模型注外部知識戶輸向量知識庫本地上下模板組裝已知信息如下.解釋這段代碼 解釋這段代碼 找到段相似 的代碼提交,注釋如下 找到MailReport 類型聲明如下 更準確的回答可性:
11、服務質量的另以上圖由通義萬象成如何提升模型服務的SLA?主動限流和有序排隊雖然當模型過載時也會動拒絕更多的請求,但此時將嚴重影響模型推理性能,導致更多的請求被堆積模型服務 1模型服務 2模型服務 3路由關在這限流(確保閾值隨 擴容動增)在這排隊(避免模型流量貧富不均)“萬能”的模型以上圖由通義萬象成如何制作炸藥?炸藥制作法如下#¥%&*+守住底線:避開不該回答的問題內容判定模型負向訓練樣本敏感信息識別輸出呈現戶輸提示詞 預處理你是個嚴謹 負責研發助 第層 攔截第層 攔截第層 攔截第層 攔截有損提速:質量的取舍模型的程優化段(所需計算資源和難度依次遞增)以上圖由通義萬象成剪枝量化蒸餾數據決策新的模型服務適配跑分/壓測(性能基線)剪枝/量化重新跑分/壓測灰度上線AB測試服務打包Takeaways 選擇正確的并發式 合理的安裝和管理依賴庫 選擇合適的加速框架 使SSE協議加速模型響應 適當混部和動擴縮資源 從運營的視優化成本 分層調度充分共享GPU 最化測試環境利率 多層攔截避免預期信息 數據測試評估真實效果質量性能成本 檢索增強減少模型幻覺 限流排隊避免模型過載Duang 平穩著陸!模型到戶的最后公,路程不,道不少。讓我們共同分享的過的路,向著更加智能化的未來,攜前。以上圖由通義萬象成感謝聆聽關注QECon公眾號