Google ColabでHuggingfaceモデルをGGUFに変換する方法

AI・機械学習

この記事では、Google Colabを使用して、Huggingfaceのモデル(今回は「DeepSeek-R1日本語モデル」)をGGUF(Google Generalized Unified Format)形式に変換する方法を説明します。これにより、モデルの効率的な利用やインターフェースの統一が可能になります。

必要なライブラリのインストール

まず、Huggingface Hubのライブラリをインストールします。このライブラリは、Huggingfaceのリポジトリからモデルをダウンロードするために必要です。

!pip install huggingface_hub

Huggingfaceからモデルをダウンロード

次に、huggingface_hubを使用して、特定のモデル(ここでは「DeepSeek-R1-Distill-Qwen-14B-Japanese」)をローカルにダウンロードします。snapshot_download関数を使用して、モデルを指定のローカルディレクトリに保存します。

from huggingface_hub import snapshot_download

model_id = "cyberagent/DeepSeek-R1-Distill-Qwen-14B-Japanese"
snapshot_download(repo_id=model_id, local_dir="DeepSeek-R1-Distill-Qwen-14B-Japanese",
                  local_dir_use_symlinks=False, revision="main")

ここでは、repo_idとしてHuggingface上のモデルIDを指定し、local_dirに保存先ディレクトリを指定します。revision="main"は、モデルの最新の安定版を指定します。

llama.cppをクローン

GGUF形式に変換するためには、llama.cppリポジトリをクローンして、変換スクリプトを実行する必要があります。git cloneコマンドでこのリポジトリをダウンロードします。

!git clone https://github.com/ggerganov/llama.cpp.git

モデルをGGUF形式に変換

llama.cppリポジトリ内の変換スクリプトを使用して、ダウンロードしたHuggingfaceのモデルをGGUF形式に変換します。変換コマンドは以下の通りです。

!python llama.cpp/convert_hf_to_gguf.py DeepSeek-R1-Distill-Qwen-14B-Japanese \
  --outfile DeepSeek-R1-Distill-Qwen-14B-Japanese.gguf \
  --outtype q8_0

ここで重要なのは、--outfileオプションで出力ファイル名を指定することです。--outtype q8_0オプションは、出力形式を指定します。q8_0は8ビットの量子化を意味しており、モデルのサイズを小さくするために使用されます。

これが成功するとDeepSeek-R1-Distill-Qwen-14B-Japanese.ggufが生成されます。

この操作だけであれば、GPUを使わなくてもCPUで可能です。

ファイルが大きくなるので、ローカルで変換作業は行ったほうがよいかもしれません。

すでにGGUFに変換してくださっている方もいるので、自分でやりたい場合以外はこちらを使うのがよさそうです。

これらを読み込んで使う方法については以下の記事で紹介しています。

タイトルとURLをコピーしました