4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

ファインチューニングしたモデルをOllamaなどで使いたい時にはみなさんどうしていますか?
今回はLLMモデルをGGUF形式に変換することで、Ollamaなどで使える形式にしてみました。
方法を忘れないようにこのブログに残しておきます。

GGUFとは?

GGUFは「GPT-Generated Unified Format」の略で、大規模言語モデル(LLM)のための形式です
llama.cppやOllamaで使う際にはこの形式に変換すると使えるようになります。

GGUF変換

では実際に変換していきましょう。GoogleColabを想定しています。
変換したものはHuggingfaceにPushするのでまずはログインしておきましょう。

!huggingface-cli login

必要なライブラリは以下。

!pip3 install -q -U accelerate transformers

まずは自前でチューニングしたモデルまたはGGUF形式に変換したいモデルを用意してください。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
model_id = "you-hf/your-model"
model = AutoModelForCausalLM.from_pretrained(model_id, device_map={"":0})
tokenizer = AutoTokenizer.from_pretrained(model_id, add_eos_token=True)

Pythonのロケール(locale)設定を変更して、文字エンコーディングを強制的にUTF-8に設定します。

import locale
def getpreferredencoding(do_setlocale = True):
  return "UTF-8"
locale.getpreferredencoding = getpreferredencoding

llama.cppをクローンします。

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

プロジェクトのセットアップと必要な依存関係のインストールを行います。

!cd llama.cpp && LLAMA_CUBLAS=1 make && pip install -r requirements/requirements-convert-hf-to-gguf.txt
from huggingface_hub import snapshot_download
base_model = "./original_model/"
quantized_path = "./quantized_model/"
#
snapshot_download(repo_id=model_id, local_dir=base_model , local_dir_use_symlinks=False)
original_model = quantized_path+'/your_model.gguf'

そしてconvert_hf_to_ggufでGGUF形式に変換します。

!python /content/llama.cpp/convert_hf_to_gguf.py ./original_model/ --outtype f16 --outfile ./quantized_model/your_model.gguf

それを最後にHuggingFaceにアップロードします。

from huggingface_hub import HfApi, HfFolder, create_repo, upload_file
model_path = "./quantized_model/your_model.gguf" # Your model's local path
repo_name = "your-model-name-qa-GGUF"  # Desired HF Hub repository name
repo_url = create_repo(repo_name, private=False)

これでHuggingFace上にGGUF形式のモデルがPushされました。
ぜひOllamaとかで使ってみてください。

最後に

Xやってるので気になる方はフォローお願いします。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?