目次
Safetensorsの重みからfine-tunedアダプターをインポートする
まず、ファインチューニングに使用したベースモデルを指定するFROMコマンドと、Safetensorsアダプターが格納されているディレクトリを指定するADAPTERコマンドを含むModelfileを作成します:
dockerfile
FROM <base model name>
ADAPTER /path/to/safetensors/adapter/directoryFROMコマンドには、アダプターの作成に使用したものと同じベースモデルを指定してください。そうしないと不安定な結果が得られる可能性があります。ほとんどのフレームワークは異なる量子化手法を使用しているため、非量子化(つまり非QLoRA)のアダプターを使用することをお勧めします。アダプターがModelfileと同じディレクトリにある場合は、ADAPTER .を使用してアダプターパスを指定してください。
次に、Modelfileを作成したディレクトリでollama createを実行します:
shell
ollama create my-model最後に、モデルをテストします:
shell
ollama run my-modelOllamaは、複数の異なるモデルアーキテクチャに基づくアダプターのインポートをサポートしています。以下を含みます:
- Llama(Llama 2、Llama 3、Llama 3.1、Llama 3.2を含む)
- Mistral(Mistral 1、Mistral 2、Mixtralを含む)
- Gemma(Gemma 1、Gemma 2を含む)
Safetensors形式でアダプターを出力できるファインチューニングフレームワークまたはツールを使用してアダプターを作成できます。以下は例です:
- Hugging Face ファインチューニングフレームワーク
- Unsloth
- MLX
Safetensorsの重みからモデルをインポートする
まず、Safetensorsの重みが格納されているディレクトリを指定するFROMコマンドを含むModelfileを作成します:
dockerfile
FROM /path/to/safetensors/directory重みと同じディレクトリにModelfileを作成する場合は、FROM .コマンドを使用できます。
次に、Modelfileを作成したディレクトリでollama createコマンドを実行します:
shell
ollama create my-model最後にモデルをテストします:
shell
ollama run my-modelOllamaは、複数の異なるアーキテクチャのモデルのインポートをサポートしています。以下を含みます:
- Llama(Llama 2、Llama 3、Llama 3.1、Llama 3.2を含む)
- Mistral(Mistral 1、Mistral 2、Mixtralを含む)
- Gemma(Gemma 1、Gemma 2を含む)
- Phi3
これには、ファウンデーションモデル自体のインポートだけでなく、ファウンデーションモデルと_fused_(融合)されたfine-tunedモデルのインポートも含まれます。
GGUFベースのモデルまたはアダプターのインポート
GGUFベースのモデルまたはアダプターをお持ちの場合は、Ollamaにインポートすることが可能です。GGUFモデルまたはアダプターは以下の方法で取得できます:
- Llama.cppの
convert_hf_to_gguf.pyを使用してSafetensorsモデルを変換する - Llama.cppの
convert_lora_to_gguf.pyを使用してSafetensorsアダプターを変換する - HuggingFaceなどのサイトからモデルまたはアダプターをダウンロードする
GGUFモデルをインポートするには、以下を含むModelfileを作成します:
dockerfile
FROM /path/to/file.ggufGGUFアダプターの場合は、以下の内容のModelfileを作成します:
dockerfile
FROM <model name>
ADAPTER /path/to/file.ggufGGUFアダプターをインポートする際は、アダプターの作成に使用したものと同じベースモデルを使用することが重要です。以下のいずれかを使用できます:
- Ollamaのモデル
- GGUFファイル
- Safetensorsベースのモデル
Modelfileの作成が完了したら、ollama createコマンドを使用してモデルをビルドします。
shell
ollama create my-modelモデルの量子化
モデルを量子化することで、実行速度を向上させ、メモリ消費量を削減できますが、精度は低下します。これにより、より低スペックなハードウェアでもモデルを実行できるようになります。
Ollamaは、ollama createコマンドの-q/--quantizeフラグを使用して、FP16およびFP32ベースのモデルを異なる量子化レベルに量子化できます。
まず、量子化したいFP16またはFP32ベースのモデルを指定したModelfileを作成します。
dockerfile
FROM /path/to/my/gemma/f16/model次にollama createを使用して量子化されたモデルを作成します。
shell
$ ollama create --quantize q4_K_M mymodel
transferring model data
quantizing F16 model to Q4_K_M
creating new layer sha256:735e246cc1abfd06e9cdcf95504d6789a6cd1ad7577108a70d9902fef503c1bd
creating new layer sha256:0853f0ad24e5865173bbf9ffcc7b0f5d56b66fd690ab1009867e45e7d2c4db0f
writing manifest
successサポートされている量子化
q8_0
K-means量子化
q4_K_Sq4_K_M
ollama.comでモデルを共有する
作成したモデルをollama.comにプッシュすることで、他のユーザーが試せるように共有できます。
まず、ブラウザでOllamaサインアップページにアクセスしてください。すでにアカウントをお持ちの場合は、このステップをスキップできます。

モデル名の一部としてUsername(ユーザー名)フィールドが使用されます(例:jmorganca/mymodel)。そのため、選択したユーザー名に問題がないことを確認してください。
アカウントを作成し、サインインしたら、Ollamaキー設定ページに移動してください。
ページの指示に従って、Ollama公開鍵の保存場所を確認してください。

Ollama公開鍵を追加ボタンをクリックし、Ollama公開鍵の内容をテキストフィールドにコピーして貼り付けてください。
ollama.comにモデルをプッシュするには、まずモデル名がユーザー名で正しく命名されていることを確認してください。正しい名前を付けるために、ollama cpコマンドを使用してモデルをコピーする必要がある場合があります。モデル名に問題がなくなったら、ollama pushコマンドを使用してollama.comにプッシュしてください。
shell
ollama cp mymodel myuser/mymodel
ollama push myuser/mymodelモデルのプッシュが完了したら、他のユーザーは以下のコマンドを使用してモデルをプルして実行できます:
shell
ollama run myuser/mymodel