Google Colaboratoryで始めるLLMファインチューニング(2):Hugging Faceモデルダウンロード

前回は、Google Colab の始め方と使い方について解説していきました。ここでは、ファインチューニングするためのモデルをダウンロードするところの説明をしていきます。

Google Colab についてはこちらの記事を見てください。

Hugging Faceとは?

Hugging Faceは、AIモデルを自由に共有・利用できるプラットフォームです。「GitHubのAI版」とイメージするとわかりやすいでしょう。世界中の開発者や研究者が作成したAIモデルが公開されており、誰でも無料でダウンロードして使えます。

2025年1月時点で、100万以上のモデルが公開されています。
主なカテゴリは以下の通りです。

  • 自然言語処理: テキスト生成、翻訳、要約など(GPT、BERTなど)
  • 画像生成: テキストから画像を作成(Stable Diffusionなど)
  • 音声認識・生成: 音声のテキスト化、音声合成など
  • 画像認識: 物体検出、画像分類など

Hugging Faceでは、これらのモデルを簡単に使えるように「Transformers」や「Diffusers」といったPythonライブラリも提供しています。これらのライブラリを使うことで、数行のコードでAIモデルをダウンロードして実行できます。

公式サイト: https://huggingface.co/

それでは、実際にGoogle ColabでHugging Faceのモデルをダウンロードする方法を見ていきましょう。

Google ColabでHugging Faceモデルをダウンロードする2つの方法

Google ColabでHugging Faceのモデルをダウンロードする方法は大きく分けて2つあります。それぞれの特徴を理解して、目的に応じて使い分けましょう。

2つの方法の比較:

初めての方は、方法1のfrom_pretrainedがおすすめです。コードがシンプルで、すぐに使い始められます。

方法1:from_pretrainedで自動ダウンロード

最も簡単で一般的な方法です。Transformersライブラリのfrom_pretrained()メソッドを使うことで、モデルを自動的にダウンロードして読み込めます。

コード例(3ステップ)

# ステップ1: ライブラリのインストール
!pip install transformers
# ステップ2: モデルの読み込み(自動ダウンロード)
from transformers import AutoModel, AutoTokenizer

model_name = "bert-base-uncased"
model = AutoModel.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
# ステップ3: 動作確認
print("モデルのダウンロードが完了しました!")

初回実行時は、Hugging Faceから自動的にモデルファイルをダウンロードします。ダウンロード中はプログレスバーが表示され、進行状況を確認できます。

方法2:huggingface_hubで明示的ダウンロード

より細かい制御が必要な場合は、huggingface_hubライブラリを使います。ダウンロード先を指定したり、特定のファイルだけを取得したりできます。

snapshot_downloadの使い方

snapshot_download()を使うと、モデルのリポジトリ全体をまとめてダウンロードできます。

# ライブラリのインストール
!pip install huggingface_hub

# モデル全体をダウンロード
from huggingface_hub import snapshot_download

model_name = "bert-base-uncased"
local_dir = "./my_models/bert"

snapshot_download(
    repo_id=model_name,
    local_dir=local_dir,
    local_dir_use_symlinks=False
)

print(f"モデルを {local_dir} にダウンロードしました")

この方法を使うと、指定したディレクトリにモデルの全ファイルが保存されます。ファイル構成が明確に見えるため、どのファイルがダウンロードされたか確認しやすくなります。

実際にやってみよう

ここからは、実際にGoogle Colabを使ってLlama 3.1モデルをダウンロードしてみましょう。Llama 3.1は高性能な言語モデルで、ChatGPTに匹敵する性能を持ちながら、無料で使えます。
今回使用するモデルはmeta-llama/Llama-3.1-8B-Instructです。8B(80億)パラメータのモデルで、Google Colabの無料版でも動作します。

ステップ1:Google Colabを開く

まず、Google Colabの公式サイトにアクセスします。
詳しくは、以下の記事に書いているので見てください。

手順:

  1. ブラウザで https://colab.research.google.com/ にアクセス
  2. Googleアカウントでログイン(既にログイン済みの場合はスキップ)
  3. 画面左上の「ファイル」→「ノートブックを新規作成」をクリック

これで新しいノートブックが開きます。

【重要】GPUの設定:
Llama 3.1は大きなモデルなので、GPUが必須です。
必ず以下の設定を行ってください。

  1. 画面上部の「ランタイム」→「ランタイムのタイプを変更」をクリック
  2. 「ハードウェアアクセラレータ」のドロップダウンから「T4 GPU」を選択
  3. 「保存」をクリック

画面右上に「RAM」「ディスク」と並んで「GPU」が表示されていればOKです。

ステップ2:Hugging Faceアクセストークンの取得

Llama 3.1はgatedモデルと呼ばれる特殊なモデルです。ダウンロードする前に、Hugging Faceでライセンスに同意し、アクセストークンを取得する必要があります。

2-1: Hugging Faceアカウントの作成
まだアカウントを持っていない場合は作成します。

  1. https://huggingface.co/ にアクセス
  2. 右上の「Sign Up」をクリック
  3. メールアドレスとパスワードを入力して登録

2-2: Llama 3.1へのアクセス申請

  1. https://huggingface.co/meta-llama/Llama-3.1-8B-Instruct にアクセス
  2. 必要ヶ所を入力する
  3. Metaのライセンス条項を読み、同意にチェックを入れる
  4. 「Submit」をクリック

承認は通常、数分以内に完了します。ページをリロードして、「You have been granted access to this model」と表示されればOKです。

2-3: アクセストークンの作成
以下がアクセストークンを作成する手順になります。

  1. Hugging Faceにログインした状態で、右上のアイコンをクリック
  2. 「Settings」を選択
  3. 左メニューから「Access Tokens」をクリック
  4. 「Create new token」ボタンをクリック
  5. トークンの名前を入力(例: colab_llama)
  6. 「Type」は「Read」を選択
  7. 「Generate token」をクリック

「Create new token」をクリックすると、以下の画像のような設定項目が出てきます。

上から順に概要を説明していきます。
Token typeは、以下の3つ選択できます。

Token name:
生成するトークンの名前を書く。

User permissions(ユーザー権限)は、7つ設定する箇所があります。以下にそれぞれの概要を書くので参考にしてください。

Repositories permissionsは、トークンに与える権限をを細かく設定する部分です。

Org permissionsとは、レベルの権限設定です。「設定されていなければなし」という意味は、ここで明示的に許可しない限り、このトークンには組織の権限がないということです。

これらの設定が終わり「Create token」をクリックすると、アクセストークンが発行されます。

表示されたトークンをコピーしてください。このトークンは二度と表示されないので、必ずメモ帳などに保存しておきましょう。
トークンはhf_xxxxxxxxxxxxxxxxxxのような形式です。

ステップ3:ライブラリをインストール

Colabのコードセルに以下のコードを入力して実行します。

# 必要なライブラリをインストール
!pip install transformers accelerate torch
# インストール確認
import transformers
print(f"Transformers version: {transformers.__version__}")
print("ライブラリのインストールが完了しました")

インストールには1-2分かかります。
最後にライブラリのインストールが完了しましたと表示されれば成功です。

ステップ4:Llama 3.1をダウンロードして実行

次に、実際にLlama 3.1をダウンロードしてみます。
新しいコードセルに以下をコードを1つずつ実行していってください。

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_name = "meta-llama/Llama-3.1-8B-Instruct"
# 【重要】ここに取得したトークンを入力してください
hf_token = "hf_xxxxxxxxxxxxxxxxxx"  # ステップ2で取得したトークンに置き換える

print("Llama 3.1をダウンロードしています...")
print("初回は約16GBのダウンロードが必要です(5-10分かかります)")
print("プログレスバーが表示されるので、しばらくお待ちください")
# モデルのダウンロード
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    token=hf_token,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

print("ダウンロード完了!")
print(f"モデル: {model_name}")
print(f"メモリ使用量: {torch.cuda.memory_allocated() / 1024**3:.2f} GB")

実行すると表示される情報:

ダウンロード完了!
モデル: meta-llama/Llama-3.1-8B-Instruct
メモリ使用量: 15.01 GB
メモリ使用量が15GB前後と表示されれば、正常にロードされています。

まとめ

この記事では、Google ColabでHugging Faceのモデルをダウンロードする方法とアクセストークンの取得方法について解説しました。次の記事では、今回ダウンロードしたLlama3.1を動かしてみたいと思います。

記事を読んでいただきありがとうございました。
質問やコメントがあれば、お気軽にお寄せください。

クラウドに出せないデータで、自社専用AIをつくる。
Nextorageでは、機密情報や社内ナレッジなど、クラウドサービスに出せないデータを活用して、自社専用AIを構築するためのオンプレミスAIソリューション 「aiDAPTIV+(アイダプティブ・プラス)」 を展開しています。

生成AIを業務で活用したい一方で、
「社外サービスに機密情報を入力できない」
「GPUコストが高く、導入・運用のハードルが高い」
「日本語業務で十分な精度を出したい」
といった課題を感じている企業・組織の方は、ぜひ以下からお問い合わせください。