見出し画像

言語モデルollamaのパラメーター調整


この記事ではローカル環境で使えるollamaのパラメータ調整や便利な使い方についてご紹介します。

ollamaのインストール方法はこちら。

パラメーターの説明は調べても専門用語が多くてよく分からない。
例えば num_ctxは

num_ctxは、Ollamaのモデルが使用するコンテキストウィンドウのサイズを指定するパラメータです。このパラメータは、モデルが次のトークンを生成する際に考慮するトークンの数を決定します。例えば、num_ctxを4096に設定すると、モデルは最大4096トークンのコンテキストを使用して次のトークンを生成します

で結局何?ってなりますよね。
そこで、実際にパラメーターを変えながら検証した結果を分かりやすくお伝えします。

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
    回答の候補があった時、上位何番目までの候補から回答を選ぶか。
    小さい方が理想的な回答になるが、いつも似たような回答になる。
    大きい方がいろいろな回答を生成するが、的外れな回答になる事もある。
    デフォルト:40

  • top_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つ付けます。

>>> """"あなたはプロの小説家です。
  ミステリー小説のアイデアを考えてください。
  個性豊かな主人公を登場させてください。"""

まとめ

パラメータの説明を行いました。
デフォルトでも問題はなさそうですが、使う機会があるかもしれません。
また、モデルによってもパラメーターの効き方が異なるので自分のよく使うモデルで試してみてください。


いいなと思ったら応援しよう!