言語モデルollamaのパラメーター調整
この記事ではローカル環境で使えるollamaのパラメータ調整や便利な使い方についてご紹介します。
ollamaのインストール方法はこちら。
パラメーターの説明は調べても専門用語が多くてよく分からない。
例えば num_ctxは
で結局何?ってなりますよね。
そこで、実際にパラメーターを変えながら検証した結果を分かりやすくお伝えします。
parameter設定方法
ollamaを起動して
/set parameter
とするとパラメーター一覧が出てきます。
> ollama run gemma2
>>> /set parameter
Available Parameters:
/set parameter seed <int> Random number seed
/set parameter num_predict <int> Max number of tokens to predict
/set parameter top_k <int> Pick from top k num of tokens
/set parameter top_p <float> Pick token based on sum of probabilities
/set parameter min_p <float> Pick token based on top token probability * min_p
/set parameter num_ctx <int> Set the context size
/set parameter temperature <float> Set creativity level
/set parameter repeat_penalty <float> How strongly to penalize repetitions
/set parameter repeat_last_n <int> Set how far back to look for repetitions
/set parameter num_gpu <int> The number of layers to send to the GPU
/set parameter stop <string> <string> ... Set the stop parameters
例えば、次のように設定します
/set parameter temperature 0.8
個々のパラメーター説明
seed
回答をランダムにするための初期値のようなものです。設定不要num_predict
ollamaが生成する回答の長さ。設定不要、最大を意味する -1 としておけばいいtop_k
回答の候補があった時、上位何番目までの候補から回答を選ぶか。
小さい方が理想的な回答になるが、いつも似たような回答になる。
大きい方がいろいろな回答を生成するが、的外れな回答になる事もある。
デフォルト:40top_p
設定不要min_p
設定を変えても変化がよくわからないnum_ctx
どれぐらいしっかり考えて回答を作るか。デフォルトは2048。
4096や8192にするとより深く考えて回答をするが、生成時間が長くなる。temperature
創造力豊かな回答を生成する。デフォルト:0.7。
0~1の間で設定。1にすると創造力が豊かになる。
しかし、設定を変えても変化はよく分からなかった。repeat_penalty
繰り返し回答を防止する。デフォルト1.1。
設定不要、回答の繰り返しが気になるようであれば 1.5ぐらいにしてみる。repeat_last_n
繰り返し回答を防止する。
設定を変えても変化がよくわからないnum_gpu
GPUグラフィックカードを搭載している場合の使用する数。設定不要。
0にするとCPUのみで動作する。
GPUを何か他の用途で使っている場合は 0 にする。
systemプロンプト
起動時にあらかじめ読み込んでおくプロンプト。
例えば
/set system あなたはプロのコピーライターです。
長いプロンプトを入れたい場合は"""ダブルクォーテーションを3つ付けます。
>>> /set system """あなたは教師です。
私の質問に対して箇条書きで回答してください。
小学生にも分かる易しい表現を用いてください。
回答は300字程度で回答してください。"""
調整したモデルを保存する
パラメータやシステムプロンプトを調整したら保存しておきます。
正確には一連のセッションが保存されるので、パラメーターとシステムプロンプトを入れたらsaveしておくのがお勧めです。
モデル名は自由につけてください。
>>> /save your_model
次回からはollamaをこの名前で起動します
> ollama run your_model
複数行のプロンプト
パラメーターとは関係ありませんが。複数行にまたがるプロンプトを入力したい場合は。
"""ダブルクォーテーションを3つ付けます。
>>> """"あなたはプロの小説家です。
ミステリー小説のアイデアを考えてください。
個性豊かな主人公を登場させてください。"""
まとめ
パラメータの説明を行いました。
デフォルトでも問題はなさそうですが、使う機会があるかもしれません。
また、モデルによってもパラメーターの効き方が異なるので自分のよく使うモデルで試してみてください。