Hugging Face の transformers
でローカルの LLM モデルを from_pretrained
で読み込もうとしたときに、
すでに重みファイルがあるのにエラーになることがあります。
ここでは、その主な原因と解決策をまとめます。
1. ローカルファイルだけを使う(公式推奨)
すでにモデル一式(pytorch_model.bin
, config.json
, tokenizer.json
など)がローカルにある場合、
ネットから取得しようとして失敗するのを防ぐために local_files_only=True
を指定します。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_dir = "/path/to/local/model_dir" # 保存済みのモデルフォルダ
tokenizer = AutoTokenizer.from_pretrained(model_dir, local_files_only=True)
model = AutoModelForCausalLM.from_pretrained(model_dir, local_files_only=True)
-
local_files_only=True
は「ローカルにあるファイルだけを使用する」設定です。 - 完全オフライン動作にするなら環境変数も活用できます。
export HF_HUB_OFFLINE=1
# 旧バージョンでは
# export TRANSFORMERS_OFFLINE=1
- まだローカルにファイルがない場合は、ネット接続できる環境で一度ダウンロードして
huggingface_hub.snapshot_download()
などで保存 → そのフォルダをfrom_pretrained
に渡す方法が確実です。
2. SSL エラーを回避する(ネット経由読み込み時)
社内プロキシや中間証明書の影響で
SSL: CERTIFICATE_VERIFY_FAILED
が出る場合の対処法です。
2-1. 証明書検証を無効化(応急処置)
import requests
from huggingface_hub import configure_http_backend
def backend_factory():
session = requests.Session()
session.verify = False # ← 証明書検証をオフ(自己責任)
return session
configure_http_backend(backend_factory=backend_factory)
セキュリティ上のリスクがあるため、本番環境では非推奨。
2-2. 環境変数で検証をスキップ(応急処置)
export CURL_CA_BUNDLE=""
こちらも検証を無効化するため、常用はおすすめしません。
2-3. 正攻法:社内 CA を追加
社内プロキシ(例:Cisco Umbrella)が TLS を中間復号している場合、
社内 CA 証明書を certifi
のルートストアに追加するのが本来の解決策です。
まとめ
-
ローカルにモデルがある場合 →
local_files_only=True
+ 必要ならHF_HUB_OFFLINE=1
を使うのが最も安全。 - ネット経由が必要だが証明書エラーになる場合 → 社内 CA を導入(推奨)、急ぎの場合のみ検証オフで回避。
-
from_pretrained
の詳細パラメータは公式ドキュメントを参照。