Hugging Face 的 transformers 程式庫提供模型實作、前處理工具、訓練整合功能,以及便於載入預訓練模型的 API。相容的模型儲存庫是一組經過版本控管的模型成品與設定檔,讓程式庫能夠重建模型及其輸入。
儲存庫內容 #
典型儲存庫包含模型設定,例如 config.json;以支援格式儲存的權重,例如 model.safetensors;以及前處理成品。文字模型通常包含分詞器檔案;視覺、音訊與多模態模型則可能包含影像、特徵擷取器、處理器或生成設定檔。
設定會識別架構與超參數。權重檔案保存學習到的參數。前處理檔案同樣重要:使用不同的分詞器詞彙、正規化規則或影像尺寸,可能會使有效的權重產生錯誤結果。
對於下載的權重檔案,應盡可能使用 safetensors,因為其格式在反序列化期間不會執行 Python 程式碼。應將來自不受信任來源的 pickle 序列化 PyTorch 成品視為不安全。
載入儲存庫 #
Auto 類別會檢查儲存庫中繼資料,並選擇適當的實作:
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("organization/model-name")
model = AutoModel.from_pretrained("organization/model-name")如果儲存庫提供相符的任務 head,應使用 AutoModelForSequenceClassification 等任務專用變體。在需要可重現性的應用程式中,請固定版本或提交雜湊,以避免儲存庫分支的變動在部署中悄然造成變更。
Pipeline 與較低階 API #
pipeline() 是適合探索與簡單應用程式的高階介面。較低階的 API 可對分詞、批次處理、裝置、生成設定與後處理提供更多控制:
inputs = tokenizer("A short example", return_tensors="pt")
outputs = model(**inputs)抽象層級的選擇是設計決策,而非品質評斷。Pipeline 能減少樣板程式碼;當應用程式需要明確控制或自訂行為時,直接呼叫模型更為合適。
發布模型 #
發布前,應包含足夠的中繼資料,讓其他使用者能夠重現推論:架構設定、權重、必要的分詞器或處理器檔案、授權條款、預期任務、限制,以及範例。除非確有必要,否則不要要求任意遠端程式碼;啟用遠端程式碼的使用者應先審查並固定相關程式碼,因為它會在其 Python 環境中執行。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)