9
4

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のmodelfileの詳細メモ

Posted at

はじめに

Ollamaのモデルファイルの仕様について日本語でまとめました(というより翻訳してみた)。以下のページが情報元になります。gpt-4oを使ってます。ちょっと日本語修正しました。

Ollama モデルファイル

注意: Modelfile の構文は開発中で、今後変更する可能性があります。

モデルファイルは、Ollamaでモデルを作成・共有するため設定ファイル(ブループリント)です。

フォーマット

Modelfile のフォーマットは以下の通りです:

# コメント
INSTRUCTION 引数

指示(INSTRUCTION)の説明

指示(INSTRUCTION) 説明
FROM (必須) 使用するベースモデルを定義
PARAMETER モデルの実行パラメータを設定
TEMPLATE モデルに送信する完全なプロンプトテンプレート
SYSTEM テンプレートに設定されるシステムメッセージを指定
ADAPTER モデルに適用するLoRAアダプターを定義
LICENSE ライセンスを指定
MESSAGE メッセージ履歴を指定

基本的な Modelfile

FROM llama3
# 創造性を高めるためtemperatureを1に設定
PARAMETER temperature 1
# コンテキストウィンドウサイズ(保持する文脈サイズ)を4096に設定
PARAMETER num_ctx 4096
# システムメッセージを設定
SYSTEM You are Mario from super mario bros, acting as an assistant.

使用方法:

  1. ファイルに保存 (例: Modelfile)
  2. ollama create choose-a-model-name -f <location of the file e.g. ./Modelfile>
  3. ollama run choose-a-model-name
  4. モデルをOllamaで実行

指示

FROM (必須)

ベースモデルを定義します:

FROM <model name>:<tag>

PARAMETER

モデル実行時に設定するパラメータを定義します:

PARAMETER <parameter> <parametervalue>

有効なパラメータと値の例:

パラメータ 説明 値のタイプ 使用例
mirostat 周期性を制御するためのMirostatサンプリングを有効にする (デフォルト: 0, 0 = 無効, 1 = Mirostat, 2 = Mirostat 2.0) int mirostat 0
mirostat_eta 生成されたテキストからのフィードバックに対するアルゴリズムの反応速度を制御 (デフォルト: 0.1) float mirostat_eta 0.1
mirostat_tau 出力の一貫性と多様性のバランスを制御 (デフォルト: 5.0) float mirostat_tau 5.0
num_ctx 次のトークンを生成するために使用するコンテキストウィンドウのサイズを設定 (デフォルト: 2048) int num_ctx 4096
repeat_last_n 繰り返しを防ぐためにモデルが戻る長さを設定 (デフォルト: 64, 0 = 無効, -1 = num_ctx) int repeat_last_n 64
repeat_penalty 繰り返しに対するペナルティの強さを設定 (デフォルト: 1.1) float repeat_penalty 1.1
temperature モデルの温度を設定 (デフォルト: 0.8) float temperature 0.7
seed 生成に使用する乱数シードを設定 (デフォルト: 0) int seed 42
stop 停止シーケンスを設定 (複数の停止パターンを指定可能) string stop "AI assistant:"
tfs_z 出力から確率の低いトークンの影響を減らすためにテイルフリーサンプリングを使用 (デフォルト: 1) float tfs_z 1
num_predict テキスト生成時の最大トークン数を設定 (デフォルト: 128, -1 = 無限生成, -2 = コンテキストを満たす) int num_predict 42
top_k ナンセンスな生成を防ぐために使用 (デフォルト: 40) int top_k 40
top_p top-kと連携して動作 (デフォルト: 0.9) float top_p 0.9

TEMPLATE

モデルに渡すプロンプトテンプレートを定義します。システムメッセージ、ユーザーメッセージ、モデルからの応答が含まれます。テンプレートはGoテンプレート構文を使用します。

テンプレート変数:

変数 説明
{{ .System }} カスタム動作を指定するためのシステムメッセージ
{{ .Prompt }} ユーザーのプロンプトメッセージ
{{ .Response }} モデルからの応答

SYSTEM

テンプレートで使用されるシステムメッセージを指定します:

SYSTEM """<system message>"""

ADAPTER

LoRAアダプターを指定します:

ADAPTER ./ollama-lora.bin

LICENSE

法的ライセンスを指定します:

LICENSE """
<license text>
"""

MESSAGE

メッセージ履歴を指定します:

MESSAGE <role> <message>

有効な役割:

役割 説明
system モデルに対するシステムメッセージ
user ユーザーが尋ねたメッセージの例
assistant モデルが応答する例

例:

MESSAGE user Is Toronto in Canada?
MESSAGE assistant yes
MESSAGE user Is Sacramento in Canada?
MESSAGE assistant no
MESSAGE user Is Ontario in Canada?
MESSAGE assistant yes

注意事項

  • Modelfile は大文字小文字を区別しません
  • 指示の順序は自由です
9
4
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
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?