bodaay/HuggingFaceModelDownloader

Simple go utility to download HuggingFace Models and Datasets

🤖 HuggingFace モデルダウンローダー (hfdownloader)

概要 – HuggingFace Hub からモデル、データセット、LoRA、Diffusers パイプラインなどを取得するための、高速で並列かつプロキシ対応のコマンドラインツール(Go で記述)。ファイルは標準の HF キャッシュに保存されるため、既存の Python ライブラリ(transformers、diffusers、llama.cpp バインディングなど)が自動的に見つけることができ、シンボリックリンク/ハードリンクによる人間が読みやすいビューも提供します。

なぜ重要か – 大規模なモデルファイルは数十ギガバイトになることがあります。hfdownloader は:

  • 各ファイルを最大 16 の並列接続に分割し、8 ファイルを同時にダウンロードできるため、実時間を大幅に短縮します。
  • 中断後自動的に再開し、LFS ファイルを SHA-256 で検証します。
  • 品質スター、RAM 見積もり、「推奨」量子化を表示するインタラクティブな GGUF ピッカーを提供し、量子化モデルの適切なバージョンを簡単に選択できます。
  • 完全な HTTP/SOCKS5 プロキシサポート、認証、CIDR バイパスルールにより、企業ファイアウォールの背後でも動作します。
  • グラフィカルインターフェースを好むユーザー向けに Web UI(リアルタイム進捗、キャッシュブラウザ、ミラー同期、設定)を提供します。
  • ミラー同期機能により、ローカルキャッシュを NAS、USB ドライブ、他のマシンにプッシュ/プルできます。エアギャップ環境やチーム環境に便利です。

入手方法

  • ワンライナーインストール(sudo 不要):bash <(curl -sSL https://g.bodaay.io/hfd) install
  • Linux、macOS、Windows 用のプリビルドバイナリは GitHub Releases ページにあります。
  • Go 1.25+ でソースからビルド:go build -o hfdownloader ./cmd/hfdownloader
  • Docker イメージ ghcr.io/bodaay/huggingfacemodeldownloader(キャッシュを保持するには ~/.cache/huggingface をマウント)。

典型的なコマンドラインのワークフロー

# リポジトリの内容を確認(インタラクティブ GGUF ピッカー)
hfdownloader analyze -i TheBloke/Mistral-7B-Instruct-v0.2-GGUF

# 特定の量子化をダウンロード(または複数)
hfdownloader download TheBloke/Mistral-7B-Instruct-v0.2-GGUF:q4_k_m
# または最大並列度ですべてをダウンロード
hfdownloader download TheBloke/Mistral-7B-Instruct-v0.2-GGUF -c 16 --max-active 8

# キャッシュ済みファイルを通常のディレクトリとしてエクスポート(llama.cpp、Ollama など用)
hfdownloader export TheBloke/Mistral-7B-Instruct-v0.2-GGUF ~/models/mistral

# Web UI を起動 (http://localhost:8080)
hfdownloader serve

主要な概念

  • ストレージモード 1 – HF キャッシュ(デフォルト) – ファイルは ~/.cache/huggingface/hub/...(コンテンツアドレス指定の blob)および ~/.cache/huggingface/models/ の下の人間が読みやすいシンボリックリンクツリーに配置されます。Python ツールはそのまま動作します。
  • ストレージモード 2 – フラットディレクトリ – --local-dir <path> またはレガシー -o <dir> を使用すると、実際のファイルを含むプレーンな <owner>/<repo>/ フォルダーが得られます。HF キャッシュレイアウトを理解しないツールに便利です。
  • マニフェスト(hfd.yaml) – ダウンロードのたびに、リポジトリ、コミット、選択したファイル、サイズ、使用した正確なコマンドを記述した小さな YAML ファイルが書き込まれます。hfdownloader list と hfdownloader info でこのメタデータを照会できます。
  • プロキシ設定 – コマンドごとに渡す(--proxy ...)か、~/.config/hfdownloader.yaml に保存できます。
  • ミラー同期 – 名前付きターゲットを定義し(hfdownloader mirror target add office /mnt/nas/hf-models)、push、pull、diff でキャッシュを同期します。

誰が使うべきか

  • 大型の GGUF、GPTQ、Diffusers モデルを定期的に取得する研究者やエンジニア。
  • 堅牢なプロキシ処理が必要な企業ネットワークのチーム。
  • シンボリックリンクの癖に対処せずに HF キャッシュの利便性を求める Windows または macOS ユーザー。
  • ダウンロードの監視と共有モデルキャッシュの管理に Web ダッシュボードを好む人。

ライセンス – Apache 2.0(個人・商用利用無料)。


クイックリンク

関連

  • Dispatch
  • プロジェクト
  • Dispatch
  • プロジェクト
  • Dispatch