跳至主要內容

範本

報價決定你拿到什麼硬體。範本決定上面跑什麼。部署時兩者都要有:你在市集中挑選報價,部署頁面會把它一路帶著走,同時讓你挑選範本。

範本是一份啟動配方​

範本是對「這台機器應該開機進入什麼」這個問題所存下的答案。它帶著:

部分它決定的事
映像檔與標籤要拉取的容器映像檔,也可以來自私有登錄檔。
啟動模式容器如何啟動,以及隨附哪些連接埠。
連接埠哪些容器連接埠會被發布,每個都附一個標籤。
環境交給容器的變數。值可以標示為機密。
啟動時腳本容器第一次啟動時在容器內執行的指令。之後再啟動不會重跑。
限制條件最低 CUDA 版本、最低 VRAM,以及部署頁面在讓你啟動前會檢查的其他硬體下限。

範本永遠不會指名某一台機器。它的限制條件是下限 — 最低 CUDA 版本、最低 VRAM — 而不是綁死的主機,所以同一個範本不用修改就能部署到 1× RTX 4090 或 8× H100 PCIe 上,只要兩者都跨過那些下限。這就是為什麼值得存一個範本,而不是每次都重新輸入同樣的設定。

啟動模式​

啟動模式是唯一會改變執行個體形態而非內容的欄位。

模式你會得到什麼
ssh一台 SSH 伺服器。系統會替你加上連接埠 22。
jupyterJupyterLab 加上一個 SSH shell。系統會替你加上連接埠 22 與 8080。
args映像檔本身的進入點,以你提供的引數執行。無互動介面。
vm完整的 KVM 虛擬機器。只能部署到支援 VM 的報價上。

ssh 與 jupyter 需要以 Superheat 基礎映像檔為基底的映像檔,因為這兩種模式仰賴基礎映像檔的進入點來啟動 SSH 常駐程式與 JupyterLab。args 與 vm 可以跑任何映像檔。請參閱啟動模式。

不論你的範本設定什麼,平台都會把自己的環境疊在上面,而且以疊上去的那層為準。你無法從範本覆寫 JupyterLab 權杖、執行個體存取權杖或 GPU 數量。環境變數說明平台控制了哪些部分。

可見性​

每個範本都是三種可見性層級之一。

可見性誰看得到誰能編輯
system所有人。這些是 Superheat 維護的精選起點。沒有人。系統範本透過 API 是不可變更的。
private只有擁有它的組織。這是你所建立的任何東西的預設值。該組織。
public所有人。任何帳號都可以讀取這份配方。擁有它的組織。

機密的環境值對擁有組織以外的任何人都會遮蔽,所以公開範本只會分享配方,不會洩漏其中內建的憑證。

你不能編輯不屬於你的系統範本或公開範本,但你可以複製任何你看得到的範本。副本會以 private 落在你的組織裡,由你自由修改。複製別人的範本會清空它的機密值與私有登錄檔憑證 — 這些要你自己填。

為什麼範本有兩個身分​

範本有一個固定的 id 和一個 hash_id。hash_id 是與啟動相關欄位的內容雜湊 — 映像檔、標籤、儲存庫、模式、引數、啟動時腳本、環境、連接埠、限制條件、Jupyter 目錄與 JupyterLab 開關,以及私有登錄檔使用者名稱 — 並加上 th_ 前綴。

只要其中任何一項改變,它就會重新產生;當擁有者編輯名稱、描述、readme、可見性或排序時,它維持不變。啟動配方有自己的身分,與存放它的那筆資料是分開的。

這個切分讓你有兩種方式指向一個範本:

你分享的東西行為
id跟著範本走。如果擁有者改變了它啟動的內容,你的連結就會啟動新的版本。
hash_id指向一份確切的配方。如果擁有者改變了它啟動的內容,舊的雜湊就再也解析不到。

當有人需要重現你的執行結果時,要用第二種。過期的雜湊連結會明確地失敗,而不是默默啟動一個已經不是你測過的東西。API 在 GET /v1/templates/by-hash/{hash_id} 解析它。

相關內容​