見出し画像

[オタク機器日記] さらばWindows環境の生成AI (LLM)

 先日の記事でもコメントしたように、Windows環境のローカル生成AI (LLM) というのは今一つな状況である。もちろん一般的な使い方であれば問題ないけれども、少し変則的な使い方 (小説を評価するための長文プロンプト利用など) をすると、すぐに不安定な状態となってしまう。
 そうでなくてもマルチタスクではないので、画面操作なども固まってしまう。これでは画面のスナップショットを取ることが難しくなるし、地味に不便だ。それで思い切って、もうWindows環境には手を出さないことにした。
 ただし若干不安になるコンパイル内容だったけれども、さすがにCommand R+先生はCopilot先生とは異なり、「訴訟回避の紋切り型な応答で面白くない」といったような不満はない。
 あとはUbuntu 22.04環境で心行くまで頑張って頂くだけである。なお主メモリ64GBで24GBのGPU (NVIDIA Telsa P40)だと次のような応答になる。

main -f prompt4c.txt --color -m models/command-r-plus-Q4_K_M-00001-of-00002.gguf -ngl 12

あなたは私の勤める会社の社長の経営補佐役です。私はコンピュータを開発や製造する企業の景戦略や事業先約を立案する企画部門で働いています。業界では生成AIが話題となっており、社長も生成AIを重視した事業戦略を企画部門から提出されることを期待しています。しかし企画本部は事務職であって技術者集団ではなく、本部長や部長は無論のこと、殆ど全ての者が生成AIは用語程度しか知りません。その集団の中で私はプロダクトマーケティングを専門とする存在であり、同時に技術者であるために特異的な存在となっています。このため企画部門で業務を継続するのは適切ではないと考えており、別部門に異動するとか社内プロジェクトを立ち上げて企画業務とは距離を置くといったことを考えた方が良いのではないかと考えています。転職して生成AIコンサルティング企業を設立するのも一つの選択肢かもしれません。私はどのように周囲と接するのが良いでしょうか。アドバイスを頂けると嬉しいです。あなたならば私に対して、適切なアドバイスができます。どうぞ宜しくお願い致します。

プロンプト

生成AIが業界で注目されている中で、あなたの立場は特異的であり、プロダクトマーケティングと技術の両方に精通していることは貴重です。周囲との適切な接し方を考える際に、以下のアドバイスをご検討いただければ幸いです。教育と啓発:
生成AIについての理解を広めるために、同僚や上司に対して教育的な役割を果たしてみてください。シンプルな用語や具体的な例を用いて、生成AIの利点や可能性を説明しましょう。
社内セミナーやワークショップを開催して、生成AIの基本的な概念や実用例を共有することも考慮してください。
プロジェクトの立ち上げ:
企画部門での業務が適切でないと感じる場合、別の部門に異動するか、社内プロジェクトを立ち上げてみてはいかがでしょうか。
生成AIを活用した新しいプロジェクトを提案し、その成果を実証することで、周囲の信頼を得ることができます。
コンサルティング企業の設立:
転職して生成AIコンサルティング企業を設立するアイデアも魅力的です。自身の専門知識を活かし、他社に対して価値を提供できる立場になることができます。

最終的な選択はあなた自身の目標や価値観に合ったものを選んでください。周囲とのコミュニケーションを大切にし、自身の専門性を活かす方法を模索していってください。
どうぞ頑張ってください!🌟

Windows 11のCopilot PREさん

 Command R+はローカルLLMなので踏み込んだ応答をしても、訴訟リスクを気にしなくても良い。そのせいなのか、104Bパラメータなのに踏み込んだ応答をしてくれる。

"あなたの状況は、多くの企業で技術革新に直面したときに直面する典型的な課題を表しています。生成AIが業界で重要な役割を果たすようになる中、社長がそれに精通した人材を求めているのは当然のことです。

まず、あなたの現在のスキルセットと経験は、企画部門にとって非常に貴重なものです。あなたは技術的な知識を持ち、プロダクトマーケティングの専門家でもあるため、企画業務において非常に重要な役割を果たすことができます。この機会を利用して、企画部門内で生成AIに関する知識を共有し、同僚や上司を教育することを考えてみてください。これにより、あなたの専門知識に対する尊敬と認知度が高まり、部門内でより良い立場を築くことができます。

しかし、もし企画部門の文化や方向性があなたの興味やスキルセットとますます一致しなくなっていると感じる場合は、次のステップとして2つのオプションを検討できます。

1. 社内異動: 生成AI 技術や製品開発に焦点を当てた他の部門に移動できるかどうか、会社内で可能性を探ってください。研究開発部門や技術戦略部門など、より技術的な役割や、より多くの技術者との交流を可能にする役割を探してください。あなたのスキルと経験が評価され、より満足のいく役割を与えられるかもしれません。

2. 新しい機会: もしあなたの現在の会社があなたの成長と興味を満たす役割を提供できない場合は、生成AI 分野でより良い機会を提供してくれるかもしれない他の会社を探してください。これは、あなたのキャリアを次のレベルに引き上げるのに役立ち、新しい挑戦と経験をもたらす可能性があります。

同時に、生成AIの分野で独立した専門家やコンサルタントとして働くことを検討することもできます。これにより、自分のスキルをさまざまな業界や組織に活用し、自分の条件で働くことができます。

この分野で自分の立ち位置を確立するために、生成AIの分野で追加の認定資格を取得することも検討してください。これは、あなたの専門知識を裏付け、雇用の機会を広げるのに役立ちます。

最後に、この状況はあなたのキャリアにおけるエキサイティングな可能性を表しています。あなたの選択は、あなたの興味、目標、そして人生のこの段階での個人的な優先事項によって異なります。自分の価値を信じ、自分が望むものを明確にすれば、正しい選択をする自信が得られるはずです。

幸運と未来の成功を祈ります!

[自分の価値を信じ、自分が望むものを明確にすれば、正しい選択をする自信が得られるはずです。]

4bit量子化版Command R+ 104B版

 そういや最初にCommand R+にお伺いを立ててみた時は、次のようなものだった。

<BOS_TOKEN>"<|START_OF_TURN_TOKEN|><|USER_TOKEN|>

 会社で所属する部署が活動目標を立てようとしていますが、私から見ると会社目標と合致していません。説得を試みていますが、理解力が不足しています。会社の上層部へ説明をして所属部署へ働きかけていますが、なかなか改善が遅くて困っています。相手をすることをやめて部署異動を考えていますが、あなたから見て選択可能な選択肢と、その根拠をリストアップして頂けますでしょうか。どうぞよろしくお願いいたします。

<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>"会社の目標" と "所属部署の活動目標" が一致していないという状況で、上層部への説得や部署への働きかけを行なっているとのことですね。このような場合に選択できる選択肢と根拠をリストアップすると、次のようになります。

1. **継続的な説得と働きかけ**: 上層部や所属部署への働きかけを継続し、相手の理解を促す選択肢です。根拠は、時間はかかるか もしれませんが、相手に理解してもらうことで、部署の活動目標を会社目標と一致させ、より良い方向へ導くことができる可能性があります。

2. **上層部へのエスカレーション**: 所属部署の上に立つ上層部に、より強い調子で問題提起し、部署への働きかけを依頼する選択 肢です。根拠は、上層部の権限や影響力を利用することで、迅速かつ効果的に部署の活動目標を見直すことができる可能性があります。

3. **部署異動**: 現在の部署で目標の一致が難しいと判断し、部署異動を申し出る選択肢です。根拠は、部署異動により、異なる環 境や考え方に触れることで、新たな視点や気づきを得て、より会社の目標に貢献できる可能性があります。また、現部署で目標の不一致に悩むよりも、新たな部署でより良いパフォーマンスを発揮できるかもしれません。

4. **社内横断プロジェクトへの参加**: 部署を超えた社内横断プロジェクトがあれば、そこへの参加を検討する選択肢です。根拠は 、社内横断プロジェクトを通して、会社全体の目標に貢献しつつ、異なる部署の考え方や取り組みを学ぶことができます。これにより、現在の部署の目標に対する新たな視点を得ることができるかもしれません。

5. **外部研修やセミナーへの参加**: 会社が提供する外部研修やセミナーへの参加を検討する選択肢です。根拠は、外部研修やセミ ナーでは、社内とは異なる考え方や業界の動向を学ぶことができ、それを社内に還元することで、会社の目標達成に寄与する可能性があります。

6. **社外ネットワークの構築**: 社外のコミュニティやイベントに参加し、社外ネットワークを構築する選択肢です。根拠は、社外 ネットワークを通じて、業界の最新動向や他社の取り組みを学ぶことができ、それを社内に還元することで、会社の目標達成に貢献できる可能性があります。

これらの選択肢を検討する上で、社内の仕組みや自身のキャリアパスも考慮する必要があります。例えば、上層部へのエスカレーションや部署異動には、社内のプロセスや人事制度が関わってきます。また、社外ネットワークの構築や外部研修への参加には、時間的・金銭的な負担が発生する場合もあります。

これらの選択肢を検討する際は、社内の仕組みや自身のキャリアパスも考慮しつつ、自身の状況や希望に合わせて、最適な選択肢を模索していけるといいですね。

---

<BOS_TOKEN>"<|START_OF_TURN_TOKEN|><|USER_TOKEN|>

4bit量子化版Command R+ 104B版のプロンプトと応答

 一流の技術コンサルタントと比較すると論理性や分析視野などで遠く及ばないものの、依頼内容(プロンプト)を工夫することによって参考程度にはなるアドバイスを応答してくれる。この一年間で、GPT-4、Copilot、Cloude 3といったクラウドサービスだけでなく、ローカル環境で稼働するLLMも相当な進化を遂げたものだと感心させされる。
 そういえば会社の新人を育成するために資料作成と部長説明にチャレンジして貰ったことを思い出したので、どこまで想定Q&Aに対応できるかを試してみた。(ちなみに実際に説明した際は、「『ハイブリッドクラウドの事業検討でどのように役立てる予定なのか?』と『自社製品も含めた比較になっていると嬉しい』とのコメントだった)

<BOS_TOKEN>"<|START_OF_TURN_TOKEN|><|USER_TOKEN|>

あなたはプロの技術コンサルタントです。私の職場の新人が資料を作成しました。当社はコンピュータを開発や製造する会社で、ハイブリッドクラウドを重視する戦略を採用しています。新人が作成した資料は、そのハイブリッドクラウドの構成要素であるSDSことSoftware Defined Storage分野において、他社がどのような製品を開発および販売しているかを調査して整理した内容です。上司たちのアドバイスにより、大変に見た目 は分かりやすい資料に仕上がりました。これを部長へ提出して説明することになっています。部長からどのような質問を受ける可能性がありそうか、事前に予想して頂けませんでしょうか。プロの技術コンサルタントであるあなたならば可能です。どうぞよろしくお願いいたします。なお部長、上司、新人は技術的は見識はないので、資料の記述内容に関する技術的な質問はないと想定しています。

<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>"もちろんです。部長から受ける可能性のある質問をいくつか予想してみました。

- 当社のハイブリッド クラウド戦略にとって、SDS が重要な理由は何ですか? SDS の採用による潜在的な利点や競争上の優位性は何ですか?
- 新人が調査した各社の SDS 製品にはどのような違いがあるのでしょうか?それぞれの製品のユニークなセールスポイントは何ですか?
- 新人が調査した製品の中で、当社のハイブリッドクラウド戦略に最も適していると思われる製品はどれですか?理由も教えてください。
- これらの SDS 製品の価格設定やライセンスモデルはどのようなものですか? どの製品がコスト効率に優れていると思われますか?- SDS 分野での技術革新の速度を考慮すると、これらの製品が将来的にどのように進化し、潜在的に当社のハイブリッド クラウド戦略にどのような影響を 与えると予想されますか?
- 当社のハイブリッド クラウド サービスの顧客に、これらの SDS 製品をどのように販売またはマーケティングする予定ですか?その戦略につ いて詳しく説明してください。
- 調査対象の製品について、サポートやアップデートに関してはどのような保証がありますか?
- 新人が調査した企業が将来的に SDS 製品の開発を中止したり、業界から撤退したりする可能性はありますか? その場合、顧客のデータや投資はどのように保護されますか?
- 当社または顧客がこれらの製品のいずれかを使用または実装する際に発生する可能性のある潜在的なリスクまたは課題は何ですか?- この調査はどのような方法で行われ、データの正確性や信頼性はどのように保証されていますか?

<EOS_TOKEN>これらの質問は、新人の調査結果についてより深い洞察を提供し、会社の将来の方向性についての議論を促進することを目的として います。
<EOS_TOKEN>[このリポジトリには、各質問に対する詳細な回答が含まれています。](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md) これらの回答は、調査結果と会社の目標を関連付けるために、幅広いコンテキストで解釈および使用できるように設計されています。
<EOS_TOKEN>### 最後に

このレビューでは、新人が行った調査の範囲と質を評価し、その調査結果を会社の目標と関連付けるための洞察を提供しました。
<EOS_TOKEN>このレビューは、新人の調査結果について議論する出発点として機能することを目的としており、会社の将来の方向性に影響を与え る可能性のある追加の洞察や考慮事項を引き出すことができます。

私は、このレビューが新人の仕事の品質と価値を会社に示すのに役立つことを願っています。これは、将来のプロジェクトと調査のための健全な基礎を築くための重要なステップです。

このレビューが役立つと信じていますが、何かご不明な点がございましたら、またはこのレビューについてご意見をお持ちの場合は、遠慮なくお問い合わせください。

## 目次

1. [レビューの概要](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md#レビューの概要)
2. [調査範囲](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md#調査範囲)
3. [調査の質](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md#調査の質)
4. [調査の価値](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md#調査の価値)
5. [推奨事項](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md#推奨事項)
6. [結論](https://github.com/rohan1234-1/rohan1234-1.github.io/blob/master/README.md#結論)

## レビューの概要

このレビューでは、新人エンジニアが行った調査の範囲、品質、価値を評価します。この調査の目的は、会社の将来のプロジェクトと意思決定に影響を与える可能性のある技術的洞察を提供することでした。

## 調査範囲

この調査は、技術スタックの評価、市場トレンドの分析、競合他社の調査、および将来のプロジェクトの可能性の特定を含む、広範なトピックをカバーしました。

エンジニアは、会社の技術スタックを詳細に評価し、その強みと弱点を特定しました。このプロセスには、コードレビュー、システムアーキテクチャの分析、およびパフォーマンステストが含まれました。この評価により、技術スタックの現状と、将来の改善のための可能性のある領域が明らかになりました。

市場トレンドの分析は、業界の最新動向とテクノロジーの進歩を理解するために行われました。エンジニアは、関連するニュース、ブログ、専門家の意見、およびソーシャルメディアを研究し、会社の将来の方向性に影響を与える可能性のある重要な洞察を特定しました。

競合他社の調査により、会社の製品とサービスを競合他社の製品と比較し、市場での地位を評価することができました。このプロセスには、競合他社のウェブサイト、ソーシャルメディア存在、および顧客レビューの分析が含まれました。この調査により、会社の強みと弱点が明らかになり、将来の改善のための貴重な洞察が得られました。

将来のプロジェクトの可能性を特定するために、エンジニアは会社の短期的および長期的な目標を

想定質問の作成依頼

 残念ながら4bit量子化版による品質劣化が原因なのか、出力するトークン長を長く設定していなかったことが原因なのか、はたまたWindows版の限界(これが一番ありそう)なのか、途中で応答出力が止まってしまった。いずれ機会があったら、Ubuntu 22.04環境 (Linux) でも試してみたいと思っている。
→ と、いうか、ハードウェア資源をフル活用したい状況なのでUbuntu環境一択かなあ…

 それで今回は、この辺で。ではまた。

------
 記事作成:小野谷静(オノセー)

P.S.  Command R+ さんの設定パラメータ一覧。いや、これはLlama.cppの設定パラメータ一覧か。(そうすると最大プロンプト45,000未満というのもCommand R+の限界じゃなくて、Llama.cppの限界という可能性もゼロではないか。4bit量子化版でなくて、Command R+ そのものを動かせると嬉しいけど… 会社のDCを使わないと無理だな)

C:\aii\sei7\llama.cpp>main -f prompt4a --color -m models/command-r-plus-Q4_K_-M00001-of-00002.gguf
error: failed to open file 'prompt4a'
error: invalid parameter for argument: -m

usage: main [options]

options:
  -h, --help            show this help message and exit
  --version             show version and build info
  -i, --interactive     run in interactive mode
  --interactive-first   run in interactive mode and wait for input right away
  -ins, --instruct      run in instruction mode (use with Alpaca models)
  -cml, --chatml        run in chatml mode (use with ChatML-compatible models)
  --multiline-input     allows you to write or paste multiple lines without ending each in '\'
  -r PROMPT, --reverse-prompt PROMPT
                        halt generation at PROMPT, return control in interactive mode
                        (can be specified more than once for multiple prompts).
  --color               colorise output to distinguish prompt and user input from generations
  -s SEED, --seed SEED  RNG seed (default: -1, use random seed for < 0)
  -t N, --threads N     number of threads to use during generation (default: 3)
  -tb N, --threads-batch N
                        number of threads to use during batch and prompt processing (default: same as --threads)
  -td N, --threads-draft N                        number of threads to use during generation (default: same as --threads)
  -tbd N, --threads-batch-draft N
                        number of threads to use during batch and prompt processing (default: same as --threads-draft)
  -p PROMPT, --prompt PROMPT
                        prompt to start generation with (default: empty)
  -e, --escape          process prompt escapes sequences (\n, \r, \t, \', \", \\)
  --prompt-cache FNAME  file to cache prompt state for faster startup (default: none)
  --prompt-cache-all    if specified, saves user input and generations to cache as well.
                        not supported with --interactive or other interactive options
  --prompt-cache-ro     if specified, uses the prompt cache but does not update it.
  --random-prompt       start with a randomized prompt.
  --in-prefix-bos       prefix BOS to user inputs, preceding the `--in-prefix` string
  --in-prefix STRING    string to prefix user inputs with (default: empty)
  --in-suffix STRING    string to suffix after user inputs with (default: empty)
  -f FNAME, --file FNAME
                        prompt file to start generation.
  -bf FNAME, --binary-file FNAME
                        binary file containing multiple choice tasks.
  -n N, --n-predict N   number of tokens to predict (default: -1, -1 = infinity, -2 = until context filled)
  -c N, --ctx-size N    size of the prompt context (default: 512, 0 = loaded from model)
  -b N, --batch-size N  logical maximum batch size (default: 2048)
  -ub N, --ubatch-size N
                        physical maximum batch size (default: 512)
  --samplers            samplers that will be used for generation in the order, separated by ';'
                        (default: top_k;tfs_z;typical_p;top_p;min_p;temperature)
  --sampling-seq        simplified sequence for samplers that will be used (default: kfypmt)
  --top-k N             top-k sampling (default: 40, 0 = disabled)
  --top-p N             top-p sampling (default: 0.9, 1.0 = disabled)
  --min-p N             min-p sampling (default: 0.1, 0.0 = disabled)
  --tfs N               tail free sampling, parameter z (default: 1.0, 1.0 = disabled)
  --typical N           locally typical sampling, parameter p (default: 1.0, 1.0 = disabled)
  --repeat-last-n N     last n tokens to consider for penalize (default: 64, 0 = disabled, -1 = ctx_size)
  --repeat-penalty N    penalize repeat sequence of tokens (default: 1.0, 1.0 = disabled)
  --presence-penalty N  repeat alpha presence penalty (default: 0.0, 0.0 = disabled)
  --frequency-penalty N repeat alpha frequency penalty (default: 0.0, 0.0 = disabled)
  --dynatemp-range N    dynamic temperature range (default: 0.0, 0.0 = disabled)
  --dynatemp-exp N      dynamic temperature exponent (default: 1.0)
  --mirostat N          use Mirostat sampling.
                        Top K, Nucleus, Tail Free and Locally Typical samplers are ignored if used.
                        (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)
  --mirostat-lr N       Mirostat learning rate, parameter eta (default: 0.1)
  --mirostat-ent N      Mirostat target entropy, parameter tau (default: 5.0)
  -l TOKEN_ID(+/-)BIAS, --logit-bias TOKEN_ID(+/-)BIAS
                        modifies the likelihood of token appearing in the completion,
                        i.e. `--logit-bias 15043+1` to increase likelihood of token ' Hello',
                        or `--logit-bias 15043-1` to decrease likelihood of token ' Hello'
  --grammar GRAMMAR     BNF-like grammar to constrain generations (see samples in grammars/ dir)
  --grammar-file FNAME  file to read grammar from
  -j SCHEMA, --json-schema SCHEMA
                        JSON schema to constrain generations (https://json-schema.org/), e.g. `{}` for any JSON object.
                        For schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead
  --cfg-negative-prompt PROMPT
                        negative prompt to use for guidance. (default: empty)
  --cfg-negative-prompt-file FNAME
                        negative prompt file to use for guidance. (default: empty)
  --cfg-scale N         strength of guidance (default: 1.000000, 1.0 = disable)
  --rope-scaling {none,linear,yarn}
                        RoPE frequency scaling method, defaults to linear unless specified by the model
  --rope-scale N        RoPE context scaling factor, expands context by a factor of N
  --rope-freq-base N    RoPE base frequency, used by NTK-aware scaling (default: loaded from model)
  --rope-freq-scale N   RoPE frequency scaling factor, expands context by a factor of 1/N
  --yarn-orig-ctx N     YaRN: original context size of model (default: 0 = model training context size)
  --yarn-ext-factor N   YaRN: extrapolation mix factor (default: 1.0, 0.0 = full interpolation)
  --yarn-attn-factor N  YaRN: scale sqrt(t) or attention magnitude (default: 1.0)
  --yarn-beta-slow N    YaRN: high correction dim or alpha (default: 1.0)
  --yarn-beta-fast N    YaRN: low correction dim or beta (default: 32.0)
  --pooling {none,mean,cls}
                        pooling type for embeddings, use model default if unspecified
  -dt N, --defrag-thold N
                        KV cache defragmentation threshold (default: -1.0, < 0 - disabled)
  --ignore-eos          ignore end of stream token and continue generating (implies --logit-bias 2-inf)
  --penalize-nl         penalize newline tokens
  --temp N              temperature (default: 0.8)
  --all-logits          return logits for all tokens in the batch (default: disabled)
  --hellaswag           compute HellaSwag score over random tasks from datafile supplied with -f
  --hellaswag-tasks N   number of tasks to use when computing the HellaSwag score (default: 400)
  --winogrande          compute Winogrande score over random tasks from datafile supplied with -f
  --winogrande-tasks N  number of tasks to use when computing the Winogrande score (default: 0)
  --multiple-choice     compute multiple choice score over random tasks from datafile supplied with -f
  --multiple-choice-tasks N number of tasks to use when computing the multiple choice score (default: 0)
  --kl-divergence       computes KL-divergence to logits provided via --kl-divergence-base
  --keep N              number of tokens to keep from the initial prompt (default: 0, -1 = all)
  --draft N             number of tokens to draft for speculative decoding (default: 5)
  --chunks N            max number of chunks to process (default: -1, -1 = all)
  -np N, --parallel N   number of parallel sequences to decode (default: 1)
  -ns N, --sequences N  number of sequences to decode (default: 1)
  -ps N, --p-split N    speculative decoding split probability (default: 0.1)
  -cb, --cont-batching  enable continuous batching (a.k.a dynamic batching) (default: disabled)
  --mmproj MMPROJ_FILE  path to a multimodal projector file for LLaVA. see examples/llava/README.md
  --image IMAGE_FILE    path to an image file. use with multimodal models
  --mlock               force system to keep model in RAM rather than swapping or compressing
  --no-mmap             do not memory-map model (slower load but may reduce pageouts if not using mlock)
  --numa TYPE           attempt optimizations that help on some NUMA systems
                          - distribute: spread execution evenly over all nodes
                          - isolate: only spawn threads on CPUs on the node that execution started on
                          - numactl: use the CPU map provided by numactl
                        if run without this previously, it is recommended to drop the system page cache before using this
                        see https://github.com/ggerganov/llama.cpp/issues/1437
  -ngl N, --n-gpu-layers N
                        number of layers to store in VRAM
  -ngld N, --n-gpu-layers-draft N
                        number of layers to store in VRAM for the draft model
  -sm SPLIT_MODE, --split-mode SPLIT_MODE
                        how to split the model across multiple GPUs, one of:
                          - none: use one GPU only
                          - layer (default): split layers and KV across GPUs
                          - row: split rows across GPUs
  -ts SPLIT, --tensor-split SPLIT
                        fraction of the model to offload to each GPU, comma-separated list of proportions, e.g. 3,1
  -mg i, --main-gpu i   the GPU to use for the model (with split-mode = none),
                        or for intermediate results and KV (with split-mode = row) (default: 0)
  --verbose-prompt      print a verbose prompt before generation (default: false)
  --no-display-prompt   don't print prompt at generation (default: false)
  -gan N, --grp-attn-n N
                        group-attention factor (default: 1)
  -gaw N, --grp-attn-w N
                        group-attention width (default: 512.0)
  -dkvc, --dump-kv-cache
                        verbose print of the KV cache
  -nkvo, --no-kv-offload
                        disable KV offload
  -ctk TYPE, --cache-type-k TYPE
                        KV cache data type for K (default: f16)
  -ctv TYPE, --cache-type-v TYPE
                        KV cache data type for V (default: f16)
  --simple-io           use basic IO for better compatibility in subprocesses and limited consoles
  --lora FNAME          apply LoRA adapter (implies --no-mmap)
  --lora-scaled FNAME S apply LoRA adapter with user defined scaling S (implies --no-mmap)
  --lora-base FNAME     optional model to use as a base for the layers modified by the LoRA adapter
  --control-vector FNAME
                        add a control vector
  --control-vector-scaled FNAME S
                        add a control vector with user defined scaling S
  --control-vector-layer-range START END
                        layer range to apply the control vector(s) to, start and end inclusive
  -m FNAME, --model FNAME
                        model path (default: models/7B/ggml-model-f16.gguf)
  -md FNAME, --model-draft FNAME
                        draft model for speculative decoding (default: unused)
  -mu MODEL_URL, --model-url MODEL_URL
                        model download url (default: unused)
  -hfr REPO, --hf-repo REPO
                        Hugging Face model repository (default: unused)
  -hff FILE, --hf-file FILE
                        Hugging Face model file (default: unused)
  -ld LOGDIR, --logdir LOGDIR
                        path under which to save YAML logs (no logging if unset)
  -lcs FNAME, --lookup-cache-static FNAME
                        path to static lookup cache to use for lookup decoding (not updated by generation)
  -lcd FNAME, --lookup-cache-dynamic FNAME
                        path to dynamic lookup cache to use for lookup decoding (updated by generation)
  --override-kv KEY=TYPE:VALUE
                        advanced option to override model metadata by key. may be specified multiple times.
                        types: int, float, bool. example: --override-kv tokenizer.ggml.add_bos_token=bool:false
  -ptc N, --print-token-count N
                        print token count every N tokens (default: -1)

log options:
  --log-test            Run simple logging test
  --log-disable         Disable trace logs
  --log-enable          Enable trace logs
  --log-file            Specify a log filename (without extension)
  --log-new             Create a separate new log file on start. Each log file will have unique name: "<name>.<ID>.log"
  --log-append          Don't truncate the old log file.

以上

この記事が気に入ったらサポートをしてみませんか?