🤗

Hugging Faceのモデルダウンロード時にキャッシュ保存先ディレクトリに日本語ユーザー名があるとエラーが出ることがある

2024/11/30に公開

概要

タイトルの通りですがhugging faceでキャッシュ保存先に日本語ユーザー名が入るとエラーが出てしまう件についての対処法のメモです。今までhugging faceを使っていて今回初めて発生したためモデルを使用するライブラリ起因の可能性が高いです。
hugging faceからモデルをダウンロードする際に、キャッシュディレクトリはデフォルトでC:\Users\<ユーザー名>\.cache\huggingface\hubに作成されます。このユーザー名が日本語の場合、モデルを使用するライブラリがキャッシュを読み込む際にエンコードに失敗してNo such file or directoryになることがあるようです。キャッシュディレクトリを環境変数で指定することでエラーに対応することが出来ました。

発生環境

  • OS: Windows11
  • CLI: Powershell
  • python: 3.12.4
    • huggingface-hub: 0.26.2
    • deepsearch-glm: 0.26.1
      発生時はdeepsearch-glmという自然言語処理系のライブラリを使用していました。

エラー

以下のようにファイルが開けないときのエラーが出ましたが、実際にそのパスを見るとファイルの存在は確認できました。

RuntimeError: open file failed because of errno 2 on fopen: No such file or directory, file path: C:\Users\<日本語ユーザー名>\.cache\huggingface\hub\<ダウンロードされたモデルのパス>\model.pt

対処法

hugging faceのキャッシュディレクトリを環境変数で設定する。
以下で設定している変数値は日本語を含まなければなんでも大丈夫です。

スクリプト内で一時的に環境変数を変更する

import os, sys
os.environ["HF_HOME"] = "C:/huggingface_cache"

Windowsのシステム環境変数を追加する

  • Windows検索ボックスで「環境変数」で検索して「システム環境変数の編集」を開く
  • ユーザー環境変数またはシステム環境変数で「新規」ボタンを押し環境変数を追加
    • 変数名: HF_HOME
    • 変数値: C:\huggingface_cache

おわり

貸与PCで渡された時点で日本語ユーザー名が設定されているパターン、よくある。

ヘッドウォータース

Discussion