器學(xué)習(xí)模型容器化部署上線)
Cog CLI 完整實操指南5 分鐘把機(jī)器學(xué)習(xí)模型容器化部署上線【免費下載鏈接】cogContainers for machine learning項目地址: https://gitcode.com/GitHub_Trending/co/cogCog CLI是容器化機(jī)器學(xué)習(xí)模型部署的命令行工具你只需用 Python 寫模型代碼它負(fù)責(zé)裝依賴、建環(huán)境、打包鏡像、起服務(wù)。跟著走一遍5 分鐘就能完成從 init 到 push 的全流程不用自己手寫 Docker 鏡像。新項目怎么起步一條命令 init它解決的問題手寫第一份cog.yaml容易把字段寫錯。cog init會在當(dāng)前目錄生成三個文件cog.yaml環(huán)境配置Python 版本、依賴文件、是否需要 GPU、run.py模型入口一個帶setup()和run()的Runner類骨架、requirements.txt。模板直接嵌在二進(jìn)制里斷網(wǎng)也能用。?? 這里有個坑它不會覆蓋已存在的文件目錄里已有run.py時會提示Skipped existing直接跳過——想重來就先換個干凈目錄。本地第一次預(yù)測怎么跑cog run它解決的問題不想在宿主機(jī)裝 torch 和一堆依賴。模型代碼全部跑在容器里你機(jī)器上只要有 Docker 就行。CLI 一條鏈路搞定解析輸入 → 自動構(gòu)建鏡像 → 起容器 → 發(fā)一次 HTTP 預(yù)測請求 → 停容器。cog run -i imagekodim24.png -i blur8前綴表示值是個本地文件CLI 會讀文件再傳給容器不加會被當(dāng)成普通字符串。輸出按模型聲明的類型呈現(xiàn)字符串直接打印文件輸出自動寫到本地磁盤數(shù)字和對象輸出格式化 JSON。上面這條跑的就是倉庫里 examples/blur/ 的圖像模糊模型處理完長這樣 也可以直接對已構(gòu)建好的鏡像跑預(yù)測把鏡像引用作為第一個參數(shù)傳進(jìn)去跳過本地構(gòu)建拉下來就能用?? 90% 的人第一次會在這里卡住輸入校驗發(fā)生在構(gòu)建之前-i blurabc這種類型錯誤會當(dāng)場報錯、容器根本沒啟動。先別慌這是故意的——省掉你等幾分鐘構(gòu)建的冤枉時間。調(diào)試容器環(huán)境cog exec 和 cog servecog exec先查環(huán)境再查代碼它解決的問題模型起不來第一步是確認(rèn)容器里依賴裝沒裝齊、CUDA 能不能用。cog exec python -c import torch; print(torch.cuda.is_available())當(dāng)前目錄會以卷的形式掛到容器內(nèi)的/src工作目錄也設(shè)在那里感覺就像在項目目錄里直接敲命令。要跑 Web 服務(wù)就加-p 8888把端口發(fā)布出來。cog serve用和生產(chǎn)一樣的 HTTP 接口調(diào)模型它解決的問題上線前想驗證真實調(diào)用鏈路。cog serve默認(rèn)在宿主機(jī) 8393 端口監(jiān)聽起來之后POST /predictions就能發(fā)預(yù)測/openapi.json看接口規(guī)范/health-check看健康狀態(tài)。本地開發(fā)時源碼是卷掛載進(jìn)容器的改代碼重啟即生效不用重新構(gòu)建。想深挖實現(xiàn)可以看 pkg/cli/serve.go。構(gòu)建產(chǎn)物cog build 怎么打鏡像它解決的問題只想要鏡像、不想要預(yù)測結(jié)果比如推到registry或交給 CI。cog build -t my-model構(gòu)建時會順帶基于 Python 類型注解靜態(tài)分析出生成的OpenAPI Schema寫進(jìn)鏡像 label——部署方不用起容器就能預(yù)校驗輸入類型。鏡像命名優(yōu)先級-t標(biāo)簽 cog.yaml里的image字段 按項目目錄生成的默認(rèn)名。上線部署cog push 構(gòu)建并推送它解決的問題把模型從本地一次性推上 registry拿到線上模型地址。cog push r8.im/your-username/my-model兩個細(xì)節(jié)值得知道一是構(gòu)建開始前會先校驗?zāi)繕?biāo)引用COG_MODEL環(huán)境變量和cog.yaml的model字段沖突會當(dāng)場報出而不是讓你白等幾分鐘構(gòu)建二是推送成功后會打印 digest 固定的引用直接復(fù)制就能用。?? 第一次 push 大概率失敗你沒登錄。先執(zhí)行cog login輸入 tokenCI 場景用cog login --token-stdin從標(biāo)準(zhǔn)輸入傳免得卡在交互提示上。新手最容易卡住的 3 個點速查坑現(xiàn)象解法端口混淆curl 5000 沒反應(yīng)5000 是容器內(nèi)端口宿主機(jī)默認(rèn)監(jiān)聽 8393GPU 沒生效日志出現(xiàn) Missing device drivernvidia 驅(qū)動沒裝CLI 會自動去掉 GPU 重試文件傳成字符串模型里收到的是路徑文本路徑前加-i imagephoto.jpg收尾一句話cog init起步cog run/cog serve/cog exec開發(fā)調(diào)試cog build出產(chǎn)物cog push上線整條鏈路 5 條命令模型代碼自始至終不在宿主機(jī)上執(zhí)行。環(huán)境、依賴、CUDA 版本全部鎖在容器鏡像里——這就是本地跑通即線上運行?!久赓M下載鏈接】cogContainers for machine learning項目地址: https://gitcode.com/GitHub_Trending/co/cog創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考