Llama.cpp ツールのメインマニュアル

Llama.cpp が提供するメイン ツールを使用すると、さまざまな LLaMA 言語モデルを簡単かつ効果的な方法で使用できます。これは、llama.cpp プロジェクトで使用するために特別に設計されています。

ここに画像の説明を挿入します

推奨: NSDT エディタを使用して、プログラム可能な 3D シーンをすばやく構築します

Llama.cpp のツール main は、より高速で低メモリの推論を実現するオプションの 4 ビット量子化サポートを備えたシンプルな C/C++ 実装を提供し、デスクトップ CPU 向けに最適化されています。このプログラムを使用すると、LLaMA モデルを使用したさまざまな推論タスクを実行できます。これには、ユーザーが指定したプロンプトに基づいてテキストを生成したり、チャットのような対話のための逆プロンプトを使用したりすることが含まれます。

1. クイックスタート

すぐに開始するには、次のコマンドを実行します。使用しているモデルへの正しいパスを使用していることを確認してください。

Unix ベースのシステム (Linux、macOS など):

./main -m models/7B/ggml-model.bin --prompt "Once upon a time"

ウィンドウズ:

main.exe -m models\7B\ggml-model.bin --prompt "Once upon a time"

インタラクティブなエクスペリエンスを実現するには、次のコマンドを試してください。

Unix ベースのシステム (Linux、MacOS など):

./main -m models/7B/ggml-model.bin -n -1 --color -r "User:" --in-prefix " " -i -p \
'User: Hi
AI: Hello. I am an AI chatbot. Would you like to talk?
User: Sure!
AI: What would you like to talk about?
User:'

ウィンドウズ:

main.exe -m models\7B\ggml-model.bin -n -1 --color -r "User:" --in-prefix " " -i -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"

次のコマンドは、起動プロンプトから「無限」のテキストを生成します (Ctrl-C を使用して停止できます)。

Unix ベースのシステム (Linux、MacOS など):

./main -m models/7B/ggml-model.bin --ignore-eos -n -1 --random-prompt

ウィンドウズ:

main.exe -m models\7B\ggml-model.bin --ignore-eos -n -1 --random-prompt

2. よく使用されるオプション

このセクションでは、LLaMA モデルでメイン プログラムを実行するための最も一般的なオプションについて説明します。

  • -m FNAME、--model FNAME: LLaMA モデル ファイルのパス (models/7B/ggml-model.bin など) を指定します。
  • -i、--interactive: プログラムを対話モードで実行すると、入力を直接提供してリアルタイムの応答を受け取ることができます。
  • -ins、--instruct: プログラムを命令モードで実行します。これは、Alpaca モデルを操作する場合に特に便利です。
  • -n N、--n-predict N: テキストを生成するときに予測するトークンの数を設定します。この値を調整すると、生成されるテキストの長さに影響する可能性があります。
  • -c N、--ctx-size N: プロンプト コンテキストのサイズを設定します。デフォルト値は 512 ですが、LLaMA モデルは 2048 のコンテキストで構築されており、より長い入力/推論でより良い結果が得られます。

3. 入力プロンプト

Llama.cpp のメイン プログラムは、入力プロンプトを使用して LLaMA モデルを操作するためのさまざまな方法を提供します。

  • –prompt プロンプト: コマンド ライン オプションとしてプロンプトを直接提供します。
  • –file FNAME: 1 つ以上のプロンプトを含むファイルを指定します。
  • –interactive-first: プログラムを対話モードで実行し、入力をすぐに待ちます。詳細については以下をご覧ください。
  • –random-prompt: ランダムなプロンプトで開始します。

4. モデルと対話する

Llama.cpp のメイン プログラムは、LLaMA モデルと対話するシームレスな方法を提供し、ユーザーがリアルタイムの会話に参加したり、特定のタスクの指示を提供したりできるようにします。インタラクティブ モードは、--interactive、--interactive-first、--instruct などのさまざまなオプションを使用してトリガーできます。

対話型モードでは、ユーザーはプロセスに入力を注入することでテキスト生成に参加できます。ユーザーはいつでも Ctrl+C を押して入力を挿入して入力し、Return キーを押してそれを LLaMA モデルに送信できます。入力を確定せずに追加の行を送信するには、バックスラッシュ ( ) を使用して現在の行を終了し、入力を続けることができます。

4.1 インタラクションオプション

  • -i、--interactive: プログラムを対話モードで実行し、ユーザーがリアルタイムの対話に参加したり、モデルに特定の指示を提供したりできるようにします。
  • –interactive-first: プログラムを対話モードで実行し、テキスト生成を開始する直前にユーザー入力を待ちます。
  • -ins、--instruct: プログラムを命令モードで実行します。これは、ユーザーの指示に従ってタスクを完了するのが得意な Alpaca モデル向けに特別に設計されています。
  • –color: カラー出力を有効にして、プロンプト、ユーザー入力、生成されたテキストを視覚的に区別します。
    これらのインタラクション オプションを理解して活用することで、LLaMA モデルを使用して、テキスト生成プロセスを特定のニーズに合わせて調整する魅力的で動的なエクスペリエンスを作成できます。

4.2 逆プロンプト

バックプロンプトは、特定のテキスト文字列が見つかったときにテキスト生成を一時停止することで、LLaMA モデルを使用してチャットのようなエクスペリエンスを作成する強力な方法です。

  • -r PROMPT、--reverse-prompt PROMPT: テキスト生成を一時停止し、対話モードに切り替えるには、1 つ以上の逆プロンプトを指定します。たとえば、 -r "User:" を使用すると、ユーザーが話す番になったときにいつでも会話に戻ることができます。これは、よりインタラクティブで会話的なエクスペリエンスを作成するのに役立ちます。ただし、スペースで終わっている場合、逆ヒントは機能しません。
    この制限を克服するには、 --in-prefix フラグを使用して、リバース プロンプトの後にスペースまたはその他の文字を追加します。

4.3 インプレフィックス

–in-prefix フラグは入力にプレフィックスを追加するために使用され、主にリバース プロンプトの後にスペースを挿入するために使用されます。以下は、--in-prefix フラグを --reverse-prompt フラグとともに使用する方法の例です。

./main -r "User:" --in-prefix " "

4.4 インサフィックス

  • –in-suffix フラグは、入力後にサフィックスを追加するために使用されます。これは、ユーザー入力の後に「アシスタント:」プロンプトを追加する場合に便利です。これは、ユーザー入力の末尾の改行文字 (\n) の後に自動的に追加されます。以下は、 --in-suffix フラグを --reverse-prompt フラグとともに使用する方法の例です。
./main -r "User:" --in-prefix " " --in-suffix "Assistant:"

4.5 コマンドモード

ディレクティブ パターンは、ユーザーの指示に従って特定のタスクを実行するように設計された Alpaca モデルを操作する場合に特に便利です。

  • -ins、-instruct: 命令モードを有効にして、Alpaca モデルの機能を利用し、ユーザーが提供した命令に従ってタスクを完了します。

技術的な詳細: ユーザーの入力には、内部的に逆プロンプト (またはデフォルトの ### 命令: ) が接頭辞として付けられ、その後に ### 応答: が続きます (何も入力せずに Return キーを押して、より長い応答の生成を続行しない限り)。

これらのインタラクション オプションを理解して活用することで、LLaMA モデルを使用して、テキスト生成プロセスを特定のニーズに合わせて調整する魅力的で動的なエクスペリエンスを作成できます。

5. コンテキスト管理

テキスト生成中、LLaMA モデルのコンテキスト サイズは制限されています。つまり、入力テキストおよび生成テキスト内の特定の数のトークンしか考慮できません。コンテキストがいっぱいになると、モデルが内部的にリセットされ、会話や指示の最初から一部の情報が失われる可能性があります。コンテキスト管理オプションは、このような状況での連続性と一貫性を維持するのに役立ちます。

5.1 コンテキストのサイズ

  • –ctx-size オプションを使用すると、テキスト生成中に LLaMA モデルによって使用されるプロンプト コンテキストのサイズを設定できます。コンテキスト サイズが大きいほど、モデルがより深く理解し、より長い入力や会話に対する応答を生成するのに役立ちます。

  • -c N、--ctx-size N: プロンプト コンテキストのサイズを設定します (デフォルト: 512)。LLaMA モデルは 2048 コンテキストに基づいて構築されており、より長い入力/推論で最良の結果が得られます。ただし、コンテキスト サイズを 2048 を超えて増やすと、予期しない結果が発生する可能性があります。

5.2 拡張コンテキストサイズ

一部の微調整モデルは、RoPE をスケーリングすることでコンテキストの長さを拡張します。たとえば、元の事前学習済みモデルのコンテキスト長 (最大シーケンス長) が 4096 (4k) で、微調整されたモデルのコンテキスト長が 32k であるとします。これはスケーリング係数 8 であり、上記の --ctx-size を 32768 (32k) に設定し、--rope-scale を 8 に設定することで機能するはずです。

  • –rope-scale N: ここで、N はモデルを微調整するために使用される線形スケーリング係数です。

5.3 リマインダーを保持する

–keep オプションを使用すると、モデルがコンテキストから外れて実行されたときに、ユーザーが元のプロンプトを保持できるようになり、最初の指示または会話トピックへの接続が確実に維持されます。

  • –keep N: モデルが内部コンテキストをリセットするときに保持する最初のヒント内のトークンの数を指定します。デフォルトでは、この値は 0 に設定されています (トークンは保持されないことを意味します)。最初のプロンプトからのすべてのトークンを保持するには、-1 を使用します。
    --ctx-size や --keep などのコンテキスト管理オプションを利用すると、LLaMA モデルとのより一貫した対話を維持でき、生成されたテキストが元のプロンプトまたはダイアログとの関連性を維持できるようになります。

6. 関連オプションの生成

次のオプションを使用すると、テキスト生成プロセスを制御し、生成されるテキストの多様性、創造性、品質をニーズに合わせて微調整できます。これらのオプションを調整し、さまざまな値の組み合わせを試すことで、特定の使用例に最適な設定を見つけることができます。

6.1 予測するトークンの数

  • -n N、--n-predict N: テキスト生成時に予測するトークンの数を設定します (デフォルト: 128、-1 = 無限、-2 = コンテキストが満たされるまで)

–n-predict オプションは、入力プロンプトに応答してモデルによって生成されるマーカーの数を制御します。この値を調整すると、生成されるテキストの長さに影響を与えることができます。値を大きくするとテキストが長くなり、値を小さくするとテキストが短くなります。

値 -1 を指定すると、コンテキスト ウィンドウが制限されている場合でも、無制限のテキスト生成が有効になります。コンテキスト ウィンドウがいっぱいになると、一部の古いトークン (--n-keep 後のトークンの半分) が破棄されます。その後、生成を再開する前にコンテキストを再評価する必要があります。大規模なモデルや大きなコンテキスト ウィンドウでは、これにより出力が大幅に一時停止します。

一時停止したくない場合は、値 -2 を指定すると、コンテキストがいっぱいになるとすぐに生成が停止します。

シーケンス終了 (EOS) マーカーまたはリバース プロンプトが発生した場合、生成されるテキストは指定されたトークンの数より短くなる可能性があることに注意してください。対話モードでは、テキストの生成が一時停止され、制御がユーザーに返されます。非対話モードでは、プログラムは終了します。どちらの場合も、指定された n 予測値に達する前にテキスト生成が停止する可能性があります。シーケンスの終了を自動的に生成せずにモデルの実行を継続したい場合は、 --ignore-eos パラメーターを使用できます。

6.2 温度

  • –temp N: 生成されるテキストのランダム性を調整します (デフォルト: 0.8)。

温度は、生成されるテキストのランダム性を制御するハイパーパラメーターです。これは、モデル出力トークンの確率分布に影響します。温度が高いと (例: 1.5)、出力はよりランダムで創造的になりますが、温度が低いと (例: 0.5)、出力はより焦点が絞られ、決定的で保守的になります。デフォルト値は 0.8 で、ランダム性と決定性のバランスが取れています。極端な場合、温度が 0 の場合、常に最も可能性の高い次のマークが選択され、実行のたびに同じ出力が生成されます。

使用例: --temp 0.5

6.3 懲罰の繰り返し

  • –repeat-penalty N: 生成されたテキスト内のトークン シーケンスの繰り返しを制御します (デフォルト: 1.1)。
  • –repeat-last-n N: 最後の n 個のトークンの繰り返しにペナルティを与えるために使用します (デフォルト: 64、0 = 無効、-1 = ctx-size)。
  • –no-penalize-nl: ペナルティを重複して適用する場合、改行マーカーのペナルティを無効にします。

繰り返しペナルティ オプションは、モデルが繰り返しまたは単調なテキストを生成するのを防ぐのに役立ちます。値が大きいほど (1.5 など)、重複に対するペナルティがより厳しくなり、値が小さいほど (0.9 など) より緩やかになります。デフォルト値は 1.1 です。

[Repeat-last-n] オプションは、重複にペナルティを与えることを考慮する履歴内のマークの数を制御します。値を大きくすると、重複を防ぐために生成されたテキストがさらに詳しく調べられ、値が小さくすると、最新のタグのみが考慮されます。値 0 はペナルティを無効にし、値 -1 はマーカーの数をコンテキスト サイズ (ctx-size) に等しく設定します。

重複したペナルティを適用するときに、 --no-penalize-nl オプションを使用して改行ペナルティを無効にします。このオプションは、チャットの会話、対話、コード、詩、または改行が構造や書式設定において重要な役割を果たすテキストを生成する場合に特に便利です。改行ペナルティを無効にすると、これらの特定の使用例で自然なフローと期待される書式を維持するのに役立ちます。

使用例: --repeat-penalty 1.15 --repeat-last-n 128 --no-penalize-nl

6.4 Top-K サンプリング

  • –top-k N: 次のマーカーの選択を、最も可能性の高い K 個のマーカーに制限します (デフォルト: 40)。

Top-k サンプリングは、モデルによって予測された最も可能性の高い上位 k 個のトークンからのみ次のトークンを選択するテキスト生成方法です。これは、確率の低いトークンや無意味なトークンが生成されるリスクを軽減するのに役立ちますが、出力の多様性を制限する可能性もあります。top-k の値が大きいほど (100 など)、より多くのトークンが考慮され、より多様なテキストが生成されます。一方、値が小さい (10 など) と、最も可能性の高いトークンに焦点が当てられ、より保守的なテキストが生成されます。デフォルト値は 40 です。

使用例: --top-k 30

6.5 トップ-Pサンプリング

  • –top-p N: 次のマーカーの選択を、累積確率がしきい値 P (デフォルト: 0.9) を超えるマーカーのサブセットに制限します。

Top-p サンプリング (コア サンプリングとも呼ばれます) は、トークンのサブセットから少なくとも p の累積確率で次のトークンを選択する別のテキスト生成方法です。この方法では、トークンの確率とサンプリングされたトークンの数を考慮することで、多様性と品質のバランスを実現します。top-p の値が大きいほど (0.95 など)、より多様なテキストが生成され、値が小さいほど (0.5 など)、焦点が絞られた保守的なテキストが生成されます。デフォルト値は 0.9 です。

使用例: --top-p 0.95

6.6 テールレスサンプリング (TFS)

  • –tfs N: パラメータ z でテールレス サンプリングを有効にします (デフォルト: 1.0、1.0 = 無効)。

Tailless Sampling (TFS) は、関連性が低い、一貫性が低い、または無意味である可能性の低いトークンが出力に与える影響を軽減することを目的としたテキスト生成手法です。Top-P と同様に、最も可能性の高いタグのほとんどを動的に決定しようとします。しかし、TFS は確率の二次導関数に基づいてロジットをフィルターで除外します。二次導関数の合計がパラメーター z に達したら、マーカーの追加を停止します。簡単に言うと、TFS はトークンの確率がどれだけ早く減少するかを調べ、パラメーター z を使用して可能性の低いトークンの末尾を切り取ります。z の一般的な値は 0.9 ~ 0.95 の範囲です。値 1.0 にはすべてのトークンが含まれ、TFS の効果が無効になります。

使用例: --tfs 0.95

6.6 局所的な典型的なサンプリング

  • –typical N: パラメータ p でローカルの標準サンプリングを有効にします (デフォルト: 1.0、1.0 = 無効)。

ローカル正規サンプリングは、周囲のコンテキストに基づいて典型的なトークンまたは予想されるトークンをサンプリングすることにより、コンテキスト的に一貫した多様なテキストの生成を容易にします。パラメーター p を 0 から 1 の間に設定することにより、ローカルで一貫したテキストと多様なテキストの生成の間のバランスを制御できます。1 に近い値はより文脈的に一貫したマークアップを促進し、0 に近い値はより多様なマークアップを促進します。値を 1 にすると、ローカルの標準サンプリングが無効になります。

使用例: --代表的な 0.9

6.7 マイクロスタットのサンプリング

  • –mirostat N: Mirostat のサンプリングを有効にし、テキスト生成中の難読化を制御します (デフォルト: 0、0 = 無効、1 = Mirostat、2 = Mirostat 2.0)。
  • –mirostat-lr N: Mirostat の学習率、パラメーター eta を設定します (デフォルト: 0.1)。
  • –mirostat-ent N: Mirostat のターゲット エントロピー、パラメーター tau を設定します (デフォルト: 5.0)。

Mirostat は、テキスト生成中に、生成されたテキストの品質を望ましい範囲内にプロアクティブに維持するアルゴリズムです。一貫性と多様性のバランスをとり、過剰な繰り返し (退屈の罠) や一貫性のなさ (乱雑な罠) による低品質の出力を回避することを目的としています。

–mirostat-lr オプションは、Mirostat の学習率 (eta) を設定します。学習率は、生成されたテキスト フィードバックに対してアルゴリズムがどれだけ早く応答するかに影響します。学習率が低いと調整が遅くなり、学習率が高いとアルゴリズムの応答性が高くなります。デフォルト値は 0.1 です。

–mirostat-ent オプションは、生成されるテキストの望ましいパープレキシティ値を表す Mirostat ターゲット エントロピー (タウ) を設定します。ターゲット エントロピーを調整すると、生成されるテキストの一貫性と多様性の間のバランスを制御できます。値が低いほど、テキストはより集中的で一貫性のあるものになりますが、値が高いほど、テキストはより多様になり、一貫性が低下する可能性があります。デフォルト値は 5.0 です。

使用例: --mirostat 2 --mirostat-lr 0.05 --mirostat-ent 3.0

6.8 ロジット偏差

  • -l TOKEN_ID(+/-)BIAS、--logit-bias TOKEN_ID(+/-)BIAS: 生成されたテキスト補完にトークンが表示される可能性を変更します。

ロジット バイアス オプションを使用すると、生成されたテキストに特定のマーカーが表示される可能性を手動で調整できます。トークン ID と正または負のバイアス値を指定することにより、そのトークンが生成される確率を増減できます。

たとえば、「He​​llo」というタグが付けられる可能性を高めるには --logit-bias 15043+1 を使用し、可能性を下げるには --logit-bias 15043-1 を使用します。負の無限大の値を使用すると、 --logit-bias 15043-inf により、トークン Hello が生成されなくなります。

より実用的な使用例は、-l 29905-inf を使用して \token(29905) を負の無限大に設定することで、\code{begin} と \code{end} が生成されないようにすることです。これは、LLaMA モデル推論に LaTeX コードが遍在しているためです。

使用例: --logit-bias 29905-inf

6.9 RNG シード

  • -s SEED、--seed SEED: 乱数生成器 (RNG) シードを設定します (デフォルト: -1、-1 = ランダム シード)。

RNG シードは、テキスト生成プロセスに影響を与える乱数ジェネレーターを初期化するために使用されます。特定のシード値を設定すると、同じ入力と設定を使用した複数の実行で一貫性のある再現可能な結果を​​達成できます。これは、生成されたテキストに対するさまざまなオプションの影響をテスト、デバッグ、または比較して、いつ分岐するかを理解するのに役立ちます。シードが 0 未満の値に設定されている場合、ランダムなシードが使用され、実行ごとに異なる出力が生成されます。

7. パフォーマンスのチューニングとメモリのオプション

これらのオプションは、LLaMA モデルのパフォーマンスとメモリ使用量の向上に役立ちます。これらの設定を調整することで、システムの機能に合わせてモデルの動作を微調整し、特定のユースケースに最適なパフォーマンスを実現できます。

7.1 スレッド数

  • -t N、--threads N: 計算中に使用されるスレッドの数を設定します。最高のパフォーマンスを得るには、この値をシステムの物理 CPU コアの数 (論理コアの数ではない) に設定することをお勧めします。正しい数のスレッドを使用すると、パフォーマンスが大幅に向上します。

7.2 メモリロックモデル

  • –mlock: メモリ内のモデルをロックして、メモリ マッピング中にモデルがスワップアウトされないようにします。これによりパフォーマンスは向上しますが、実行にはより多くの RAM が必要になり、モデルが RAM にロードされるときにロード時間が遅くなり、メモリ マッピングの利点の一部が犠牲になる可能性があります。

7.3 メモリマッピングがない

  • –no-mmap: モデルをメモリマップしません。デフォルトでは、モデルはメモリにマップされるため、システムは必要に応じてモデルの必要な部分のみをロードできます。ただし、モデルが RAM の合計量より大きい場合、またはシステムの使用可能なメモリが少ない場合、mmap を使用するとページアウトのリスクが高まり、パフォーマンスに悪影響を及ぼす可能性があります。mmap を無効にするとロード時間が遅くなりますが、--mlock が使用されていない場合はページ出力が減少する可能性があります。モデルが RAM の合計量より大きい場合、mmap をオフにしてもモデルはまったく読み込まれないことに注意してください。

7.4 NUMA サポート

  • –uma: 不均一なメモリ アクセスを持つ一部のシステムを支援する最適化を試みます。現在、これには、各 NUMA ノードのコアに同じ割合のスレッドを固定すること、mmap のプリフェッチと先読みを無効にすることが含まれます。後者では、マップされたページが一度にではなく最初のアクセスで失敗し、スレッドを NUMA ノードに固定することと組み合わせることで、より多くのページがそれらを使用する NUMA ノード上に存在することになります。
    以前にこのオプションを使用せずに実行したことなどにより、モデルがすでにシステム ページ キャッシュにある場合は、最初にページ キャッシュを削除しない限り、効果はほとんどないことに注意してください。これは、システムを再起動するか、Linux の root として /proc/sys/vm/drop_caches に「3」を書き込むことで実行できます。

7.5 メモリ浮動小数点 32 ビット

  • –memory-f32: メモリ キーと値に 16 ビット浮動小数点の代わりに 32 ビット浮動小数点を使用します。これにより、コンテキスト メモリ要件とキャッシュされたヒント ファイルのサイズが 2 倍になりましたが、目に見える形でビルド品質が向上したようには見えませんでした。お勧めしません。

7.6 バッチサイズ

  • -b N、--batch-size N: プロンプト処理のバッチ サイズを設定します (デフォルト: 512)。この大きなバッチ サイズは、ビルド中に BLAS をインストールして有効にするユーザーに利益をもたらします。BLAS を有効にしていない場合 (「BLAS=0」)、場合によっては、より小さい数値 (8 など) を使用して、評価時にプロンプ​​トの進行状況を確認できます。

7.7 プロンプトキャッシュ

  • --prompt-cache FNAME: 最初のプロンプトの後にモデルの状態をキャッシュするファイルを指定します。これにより、長いプロンプトを使用する場合、起動時間を大幅に短縮できます。このファイルは最初の実行時に作成され、その後の実行で再利用および更新されます。注: キャッシュを復元するというプロンプトは、セッションが保存されたときの正確な状態を復元することを意味するものではありません。したがって、特定のシードを指定した場合でも、元の世代と同じトークンのシーケンスを取得できるという保証はありません。

7.8 文法

  • –grammar GRAMMAR、–grammar-file FILE: 文法 (インラインまたはファイルで定義) を指定して、モデルの出力を特定の形式に制限します。たとえば、モデルに JSON を出力させたり、絵文字のみで話すように強制したりできます。構文の詳細については、GBNF ガイドを参照してください。

7.8 定量化

パフォーマンスを大幅に向上させ、メモリ使用量を削減できる 4 ビット量子化については、llama.cpp のメイン README を参照してください。

8. その他のオプション

これらのオプションは、LLaMA モデルの実行時に追加の機能とカスタマイズを提供します。

  • -h、--help: 利用可能なすべてのオプションとそのデフォルト値を示すヘルプ メッセージを表示します。これは、最新のオプションとデフォルト値を確認する場合に特に役立ちます。これらは頻繁に変更され、このドキュメントの情報が古くなっている可能性があるためです。
  • –verbose-prompt: テキストを生成する前にプロンプ​​トを出力します。
  • –mtest: 一連のテストを実行してモデルの機能をテストし、モデルが適切に動作していることを確認します。
  • -ngl N、--n-gpu-layers N: 適切なサポート (現在 CLBlast または cuBLAS) を使用してコンパイルすると、このオプションを使用すると、一部のレイヤーを計算のために GPU にオフロードできます。通常、パフォーマンスが向上します。
  • -mg i、--main-gpu i: 複数の GPU を使用する場合、このオプションは、計算をすべての GPU に分割するオーバーヘッドが価値のない小さなテンソルにどの GPU が使用されるかを制御します。関連する GPU は、一時的な結果用のスクラッチ バッファを保存するために若干多くの VRAM を使用します。デフォルトでは GPU 0 が使用されます。cuBLASが必要です。
  • -ts SPLIT、--tensor-split SPLIT: 複数の GPU を使用する場合、このオプションは、テンソルをすべての GPU に分割する大きさを制御します。SPLIT は、各 GPU が順番にフェッチするデータの割合を指定する、負でない値のカンマ区切りのリストです。たとえば、「3,2」では、データの 60% が GPU 0 に割り当てられ、40% が GPU 1 に割り当てられます。デフォルトでは、データは VRAM に比例して分割されますが、これはパフォーマンスにとって最適ではない可能性があります。cuBLASが必要です。
  • -lv、--low-vram: 一時的な結果を保持するために VRAM スクラッチ バッファを割り当てません。パフォーマンス、特にインスタント処理速度を犠牲にして、VRAM の使用量を削減します。cuBLASが必要です。
  • --lora FNAME: LoRA (低次適応) アダプターをモデルに適用します (--no-mmap を意味します)。これにより、事前トレーニングされたモデルを特定のタスクまたはドメインに適応させることができます。
  • –lora-base FNAME: LoRA アダプターによって変更されるレイヤーの基礎として使用されるオプションのモデル。このフラグは --lora フラグと組み合わせて使用​​され、適応する基本モデルを指定します。

元のリンク: Llama.cpp ツールのメイン マニュアル - BimAnt

おすすめ

転載: blog.csdn.net/shebao3333/article/details/132895064