Decisionモデル
Decisionモデルとは、「Does the latest message move the scene to a new place?」のような、はい・いいえで答える質問にMarinaraのために回答する小さなモデルです。ロアブック、カスタムエージェント、プロンプト、グループチャットがこれを使います。これは任意の機能です。設定しなくてもチャットは動作し、各機能はMarinaraでの用途で説明するフォールバックを使います。
回答はMarinaraの動作を制御するもので、チャットに投稿されることはありません。Decisionモデルは判定文を0から1の数値で採点します。Marinaraはその数値をしきい値と比較し、結果をはい、またはいいえとして扱います。「angry」、「sad」、「none of these」のような短いリストから答えを1つ選ぶこともできます。
迷ったら、None(なし)のままにしておくのがおすすめです。判定を使いたい場合は、すでに持っているかもしれない内蔵モデルか、すでに動かしているサーバー上のチャットモデルを使ってください。どちらも追加の費用はかかりません。
Decisionモデルを選ぶ
始める前に、選択の目安を参照してください。
- 上部バーのConnections(接続)をクリックし、Jobs(役割)ボックスを開きます。
- Behind the scenes(裏方の処理)の下にあるDecisionの行をクリックします。リストが開きます。
- モデルを選びます。リストは3つのグループに分かれています。
- None (decisions off)(なし、判定オフ)がデフォルトです。何も問い合わせず、エージェントエディターの起動質問欄は無効のままです。
- Built-in model(内蔵モデル)には、Marinaraが自分のコンピューター上で動かすモデルが並びます。Built-in model、Built-in model (utility)(補助用の内蔵モデル)、Built-in model (decisions)(判定用の内蔵モデル)です。情報はコンピューターの外に出ません。
- Connectionsには、判定に回答できる自分のアカウントが並びます。ホスト型のサービスか、すでに動かしているサーバー上のチャットモデルです。
- テストするには、行にあるDecision settings(判定の設定)の歯車をクリックし、Test(テスト)をクリックします。このボタンは内蔵モデルの項目に表示されます。TypeSafeまたはOpenRouterのアカウントでは、そのモデルのEdit model(モデルの編集)を開き、Test provider(プロバイダーをテスト)をクリックします。Own decision server(自分の判定サーバー)のアカウントでは、アカウントの⋯メニューにあるTestを使います。
テストに成功すると、「はい」の確率と、回答にかかった時間が表示されます。自分のコンピューター上のモデルでは、対数確率が利用できたかと、モデルが直接回答するかも表示されます。対数確率とは、モデルが書く可能性のある各単語について、モデルがどれだけ確信しているかを表す数値です。テストでは固定のサンプルを送り、自分のチャットは送りません。
うまくいかなかった場合は、メッセージに理由が表示されます。よくある原因は、キーが拒否された、サービスがリクエストを制限している、内蔵モデルが動いていない、回答が制限時間を超えた、のいずれかです。トラブルシューティングを参照してください。
今は回答できない項目も、理由とともにグレー表示でリストに残ります。Noneを選ぶと、起動質問や判定文を削除せずに判定をオフにできます。
選択の目安
- 内蔵モデルですでに動かしているモデル。 追加の費用はかかりません。内蔵モデルを使っているほとんどの人に最適です。
- 自分のサーバー上のチャットモデル(Ollama、LM Studio、llama.cpp、またはほかのOpenAI互換サーバー)。追加の費用はかかりません。モデルをMarinaraの外で動かしている場合に向いており、同じモデルを二重に読み込まずに済みます。
- ホスト型のDecisionアカウント(TypeSafeまたはOpenRouterのキー)。リクエストごとに課金され、1ターンで複数回のリクエストが発生することがあります。スマートフォンや、ローカルモデルを動かさないコンピューターに向いています。
- Built-in decision model(内蔵の判定モデル)。別途ディスク容量とGPUメモリーを使います。Linux x86-64と対応するNVIDIA GPUが必要です。チャットモデルと並行して、別の判定モデルを動かしたい場合に使います。
すでにローカルモデルを動かしているなら、まずそれを試し、自分のチャットのターンでテストしてください。判定文の表現は結果を大きく左右します。判定文の書き方を参照してください。
JevとOpen-Jevは別のモデルです。JevはTypeSafeのホスト型モデルで、直接またはOpenRouter経由で利用できます。Open-JevはQwenを基盤に別途公開されたモデルで、Marinaraでローカル実行できます。Open-Jevのテストは、ホスト型のJevを測定したものではありません。
Android(Termux)ではBuilt-in decision modelは動作せず、スマートフォンのプロセッサーで動く小型のローカルモデルでは遅すぎることがあります。OpenRouter経由のJevなど、ホスト型のアカウントが実用的です。Decision接続の設定を参照してください。
プリセット、カード、エージェントは「Decisionモデル」を前提に書き、「Jev必須」とはしないでください。どのモデルでも同じ判定文の構文を使いますが、モデルによって回答が異なることがあります。判定を使うコンテンツをインポートすると、カスタムエージェントやAgent Organizerからのインストールも含め、Marinaraはこのガイドへのリンク付きの通知を表示します。プロファイル全体のZIPを復元した場合は表示されません。
内蔵モデルを使う
内蔵モデルをダウンロード済みなら、アカウントも費用もなしで判定に使えます。内蔵モデルのセットアップを参照してください。
- Jobs(役割)ボックスのBehind the scenes(裏方の処理)の下にあるDecisionの行をクリックします。
- Built-in model(内蔵モデル)を選びます(補助用のモデルがある場合はBuilt-in model (utility)(補助用の内蔵モデル)でもかまいません)。
- Decision settings(判定の設定)の歯車をクリックし、Test(テスト)をクリックします。
Marinaraはモデルにはい・いいえの質問を1つ送り、1トークンだけ書かせて、そのトークンの確率から回答を読み取ります。返信は書かれないため、リクエストは短く済みます。複数の回答から選ぶ場合は、回答ごとに1つのはい・いいえの質問として問い合わせます。
Thinking(推論)の設定は、モデルが1語で答えられないときの動作を決めます。常に先に推論するモデルもあります。
| Thinking | 動作 |
| Auto (try one word, allow thinking if the model cannot)(自動: まず1語を試し、答えられなければ推論を許可) | デフォルトです。1語での回答に2回続けて失敗すると、モデルが先に推論できるようになり、Marinaraがそれを知らせます。 |
| Off (always answer in one word)(オフ: 常に1語で答える) | 1語で答えられないモデルは、回答なしになります。 |
| Allowed (let the model think first)(許可: モデルに先に推論させる) | モデルに推論を省略するよう求めることはありません。 |
先に推論するモデルは数秒かかるため、デフォルトでは、後処理エージェントなど、返信が画面に表示された後に行う確認にだけ回答します。返信前に動くエージェントの判定にも使うには、Also gate agents that run before the reply(返信前に実行するエージェントも判定)をオンにします。その場合、すべての返信がこのモデルの回答を待ちます。
汎用チャットモデルのはい・いいえの確率もしきい値に使えますが、判定専用モデルのように校正する訓練は受けていません。対数確率を返さないランタイムは、単純な1か0で回答します。しきい値は自分のチャットで調整してください。
稼働中のサーバーでの利用
チャットモデルをOllama、LM Studio、llama.cpp、またはほかのOpenAI互換サーバーで動かしているなら、Marinaraが2つ目のコピーを読み込まなくても、そのモデルが判定に回答できます。
- Connections(接続)パネルでそのモデルの⋯をクリックし、Use this model for decisions(このモデルを判断に使う)を選びます。Add account(アカウントの追加)ウィンドウが判定のステップで開き、同じアドレス、モデル、キーが入っています。
- モデルを選び、Test decision(判定をテスト)をクリックします。テストに成功すると、サーバーが対数確率を返したかと、モデルが先に推論する必要があったかが表示されます。Done(完了)をクリックします。
- Behind the scenes(裏方の処理)の下にあるDecisionの行をクリックし、新しいモデルを選びます。
自分で作成することもできます。ソースをOpenAI-compatible chat model (Ollama, LM Studio, llama.cpp)(OpenAI互換チャットモデル)にしたDecisionアカウントを使い、チャット用のアカウントと同じアドレス(Ollamaなら例えばhttp://localhost:11434/v1)と、サーバーが使うモデル名を指定します。
問い合わせ方は内蔵モデルと同じで、判定文ごとにはい・いいえの1語を求めます。サーバーが同時にいくつのリクエストを処理できるかMarinaraには分からないため、判定文は1つずつ送ります。アカウントのThinking(推論)は常にAutoです。別のコンピューター上のサーバーにはPROVIDER_LOCAL_URLS_ENABLEDが必要です。ローカルモデルやセルフホストモデルへの接続を参照してください。
Decision接続の設定
ホスト型のDecisionアカウントは、選択した最近のメッセージと判定文をサービスに送信し、料金が発生することがあります。Smart応答順ではキャラクター一覧も送信します。
- 上部バーのConnections(接続)をクリックし、Add(追加)をクリックします。
- Decisions(判定)の下で、TypeSafeまたはOwn decision server(自分の判定サーバー)をクリックします。OpenRouterの場合は、Chat(チャット)の下のOpenRouterをクリックして接続し、モデルの⋯メニューにあるUse this key for decisions(このキーをDecisionに使用)を使います。
- API key(APIキー)を入力します。Own decision serverの場合はServer address(サーバーのアドレス)を入力します。Connect(接続)をクリックします。ウィンドウが閉じ、パネルに新しいアカウントが表示されます。
- Behind the scenes(裏方の処理)の下にあるDecisionの行をクリックし、新しいモデルを選びます。
- テストするには、パネルでモデルをクリックしてEdit model(モデルの編集)を開き、Provider tests(プロバイダーのテスト)カードのTest provider(プロバイダーをテスト)をクリックします。Own decision serverのモデルには、そこにTest providerボタンがありません。代わりに、パネルでアカウントの⋯メニューを開き、Test(テスト)をクリックします。
Test providerに成功すると、確率、回答にかかった時間、アカウントの制限時間が表示されます。⋯メニューにあるアカウントのTestでは、動作したかどうかと、かかった時間だけが表示されます。テストは少なくとも10秒待ちます。制限時間がそれより長い場合は、その制限時間の5秒後まで待ちます。回答が制限時間より長くかかった場合は、結果にその旨が表示されます。チャットでは、その回答は回答なしとして扱われます。
うまくいかなかった場合は、トラブルシューティングを参照してください。
Decisionエディター(判定モデルのEdit model)には、次の欄があります。
| 欄 | 内容 |
| Decision source(判定のソース) | TypeSafe、OpenRouter、Custom System One endpoint(カスタムSystem Oneエンドポイント)、OpenAI-compatible chat model (Ollama, LM Studio, llama.cpp)(OpenAI互換チャットモデル)のいずれかです。モデルを作成した時点で固定されます。 |
| API key source(APIキーの取得元) | Enter a separate key (optional for local servers)(別のキーを入力、ローカルサーバーでは任意)か、ほかのアカウントのUse key from …(…のキーを使用)です。リンクしたキーは、後からのキーの変更に追従します。カスタムSystem OneモデルやOpenAI互換モデルがカスタムチャットアカウントのキーを借りられるのは、両方のアドレスのスキーム、ホスト、ポートが同じ場合だけです。 |
| Recent-message token budget(最近のメッセージのトークン予算) | 送信するチャットの推定トークン数です。1から30,000まで。デフォルトは、TypeSafeとOpenRouterで30,000、カスタムサーバーで3,500です。Marinaraは古いメッセージから除外し、続いて最新メッセージの最も古い部分を切り詰めます。拒否されたリクエストや予算を超えたリクエストは、回答なしになります。 |
| Time limit (seconds)(制限時間、秒) | チャット中に、判定文ごとに回答を待つ時間です。0.5から30まで。デフォルトは1.5、OpenAI互換チャットモデルでは4です。制限時間を参照してください。 |
TypeSafeはhttps://api.typesafe.aiに送信します。Base URL(ベースURL)は、TypeSafeのAPIを動かしている別のサーバーのアドレスに置き換えられます。アドレスには/v1/systemoneを含めません。その場合もTypeSafeのキーが必要で、キーはそのサーバーに送信されます。Custom System One endpointには、Open-JevやStrands deciderなど、自分で動かしているSystem Oneサーバーを指定できます。アドレスは/v1/systemoneを含めずに入力します。OllamaなどのチャットモデルサーバーはSystem Oneに対応していません。その場合はOpenAI-compatible chat modelを使ってください。
ホスト型サービスの中には、ときどき回答が1.5秒より遅くなるものがあり、判定が不規則に壊れているように見えます。数回テストし、最も遅い回答より長い制限時間に設定してください。プリセットの判定や、返信前に動くエージェントの起動質問など、返信前に問い合わせる判定文は、それぞれ最大でその時間だけ返信を遅らせることがあります。
判定にキーを使っているアカウントを削除すると、警告が表示されます。その後はDecisionアカウントのリンクをやり直す必要があり、それまで判定は回答なしになります。インポートした接続ファイルにはAPIキーも借用元アカウントへのリンクも含まれないため、手動で復元してください。
Marinaraでの用途
- 起動質問は、カスタムエージェントを実行するかどうかを決めます。回答がない場合、質問によって実行が止まることはありません。キーワードとTrigger Cadence(起動頻度)は引き続き適用されます。
- プロンプト内の判定文は、チャットやエージェントのプロンプトを組み立てるときにテキストを選びます。回答がない場合は判定がいいえとなるため、判定ブロックに
{{else}}分岐があればそれを使います。 - ロアブックのDecision欄は、ロアブックのスキャン中にRequireまたはTriggerを確認します。回答がない場合、Requireは新しいエントリーを通せず、Triggerは起動経路を追加しません。Stickyによる保持と、Triggerの通常の起動経路は引き続き適用されます。
- Smart応答順は、オンにしている場合、グループチャットで次に誰が話すかを採点します。回答がない場合、Smart応答順は通常のAI呼び出しを行います。
- アクティブなキャラクターの自動化は、Decision modelに設定している場合、MergedのRoleplayグループで返信のたびに、シーンにいるのは誰かを尋ねます。回答がない場合、どのキャラクターについても回答が得られなければ、Character Trackerの直近のシーンを使うか、一覧をそのまま維持します。
- Advanced Memory Recallは、Roleplayのシーン境界と記憶の選択に、専用のDecisionモデルを使えます。そのチャットのAdvanced Memory設定でUse Decision model(判断モデルを使用)をオンにしてください。回答がない場合、失敗した判定は通常の記憶の呼び出しまたはシーン確認に戻ります。要約には引き続き補助モデルを使います。
起動質問はエージェントを実行するかどうかを決め、プロンプト内の判定文は、実行中のそのエージェントに何を伝えるかを決めます。はい・いいえの条件には{{#if decision:"..."}}を、複数の回答からの選択には{{#if decision_choice:"..." == "..."}}を使います。
モデルが受け取る情報
起動質問と、プロンプトおよびロアブックの判定文では、モデルは判定文と、チャットに保存されたとおりの最近のメッセージを受け取ります。プリセット、キャラクターカード、ペルソナ、ロアブックエントリー(Constantのものも含む)、要約、エージェントの出力は受け取りません。@ Depthに設定したエントリーなど、メッセージの間に挿入されるテキストも含まれません。これらに依存する判定文では、必要な事実を判定文自体に書いてください。
- プロンプトとロアブックの判定文、Smart応答順、アクティブなキャラクターの自動化は、直近5件のメッセージを読みます。この数は固定です。
- 起動質問は、エージェントのScan Depth(スキャン深度)の件数を読みます。デフォルトは5です。
- 各メッセージには発言者の名前が付きます。AIから隠したメッセージは除外されます。
- 後処理エージェントの質問など、返信の後に行う確認では、書き終えた返信も読み取ります。
- 判定文のマクロは先に展開されるため、
{{char}}はキャラクター名として渡ります。 - メッセージがモデルの予算に収まらない場合は、古いメッセージから除外されます。
Smart response order(Smart応答順)ではキャラクター一覧も送信します。分かっている場合は各候補の名前、状態、活動、発言頻度と、最大300文字の性格(性格が空なら説明)を含めます。
Automate active characters(アクティブなキャラクターを自動化)でもキャラクター一覧を送信します。各キャラクターの名前と、最大300文字の説明(説明が空なら性格)を含めます。出演者が多くて収まらない場合は、100文字まで、または名前だけに切り詰めます。さらに、Character Trackerが直近に見たキャラクターの名前も含めます。名前だけにしてもメッセージの余地が足りない場合は、モデルに質問せず、Character Trackerが代わりを務めます。Mergedグループでは、1つの返信が全員の声を担うため、返信に「the narrator」というラベルが付きます。
ホスト型の判定サービスは、メッセージに加えてこれらの一覧も受け取ります。
Advanced Memoryは、チャットごとの専用Decisionモデルを使い、直近5件のルールは適用されません。シーン確認は、関連する履歴の範囲を読み取ります。記憶の呼び出しでは、最近の会話のテキストと、候補に絞り込んだ過去の要約を最大24件送ります(Maximum recalled scenes(想起するシーンの最大数)のほうが大きい場合はそれ以上)。続いて、キャラクターのアクセス権を確認したうえで、モデルが選んだシーンの元のメッセージを送ります。ホスト型サービスはこれらのテキストを受け取り、複数のバッチに分けて受け取ることもあります。記憶の呼び出しの各段階には、通常、モデルの速さに合わせて10~25秒が割り当てられます。両段階は1回の返信につき合わせて40秒を共有するため、1つの段階の時間が10秒未満になることもあります。時間内に回答が得られなかった記憶は、通常の記憶の呼び出しに戻ります。任意のDecisionモデルを参照してください。
しきい値
確率はモデル間で比較できません。同じ例でも、あるモデルでは0.99、別のモデルでは0.2になることがあります。はい・いいえのデフォルトのしきい値は、モデルによって異なります。
- 内蔵モデル、またはOpenAI互換チャットモデルのアカウント: 0.5
- TypeSafe、OpenRouter、またはCustom System Oneのアカウント: 0.5
- Built-in decision model: モデルマニフェストの推奨値。Open-Jev 2Bと9Bでは0.1
エージェントのRun when probability is at least(実行に必要な最小確率)は、この値を上書きします。保存した値が異なると、エディターはモデルの推奨値に戻すことを提案します。モデルを切り替えるたびに確認してください。プロンプトの判定文とロアブックのDecision欄はモデルのデフォルトを使い、エージェントのしきい値を変えてもこれらは変わりません。
Custom System Oneのアカウントの背後で自分で動かしているOpen-Jevも0.5を使います。Marinaraは任意のカスタムエンドポイントを校正できないためです。そのため、0.5未満の肯定的な結果をいいえと読むなど、内蔵のOpen-Jevとは結果が異なることがあります。
制限時間
時間内に届かない判定は回答なしとなり、生成は機能ごとのフォールバックで続行します(Marinaraでの用途を参照)。制限時間はすべて判定文単位です。複数の判定文を含むリクエストでは、判定文ごとに制限時間が与えられ、Choiceの回答候補もそれぞれ1つの判定文と数えます。ローカルモデルは一度に少数のリクエストしか処理しないため、判定文は順番を待ちます。各判定文の時間は、モデルがその処理を始めた時点から計測します。
- TypeSafe、OpenRouter、またはCustom System Oneのアカウント: 1.5秒、または設定したTime limit(制限時間)
- OpenAI互換チャットモデルのアカウント: 4秒、または設定したTime limit。先に推論する必要があるモデルには、少なくとも20秒が与えられます。
- 内蔵モデル: 4秒。先に推論する必要があるモデルには20秒が与えられます。
- Built-in decision model: 最初の判定文は4秒。以降の判定文には、それぞれモデルの測定時間が与えられます。Open-Jev 2Bでは0.35秒、Open-Jev 9Bでは0.8秒です。リポジトリーからインストールしたモデルは、判定文ごとに4秒です。
生成をキャンセルすると、判定リクエストも停止します。
その他の設定
これらはDecision settings(判定の設定)の歯車の中にあります。
- Also use it to pick who speaks in Smart response order(Smart応答順の発言者選択にも使用)は、デフォルトでオフです。グループチャットを参照してください。
- Decision statements per turn(1ターンあたりの判定文数)は、プロンプトとロアブックの判定文の計画を制限します。デフォルトは32、最大255です。この枠は複数の段階で適用され、1ターンのすべてのリクエストや支出に対する単一の上限ではありません。エージェントの起動質問とSmart応答順は別枠です。制限と費用を参照してください。
- Also gate agents that run before the reply(返信前に実行するエージェントも判定)とThinking(推論)は、推論できる内蔵モデルの項目に表示されます。Built-in decision modelは推論しないため、どちらもありません。
誤回答に備える
どのモデルも誤回答することがあり、正しい「はい」の回答がしきい値すれすれになることもあります。
- 判定は返信の微調整に使い、チャットに不可欠なものには決して使わないでください。判定を見落としても、返信の調整が少し減るだけで、返信が壊れないようにします。
- 同意、コンテンツ警告、安全上の指示を判定の条件にしないでください。
- 起動質問だけで実行するエージェントには、Bypass the question after this many messages(指定メッセージ数の後で質問を省略)を設定してください。そうすれば、「いいえ」と答え続けるモデルによって、エージェントが永久に止められることはありません。
トラブルシューティング
- テストが失敗する。 メッセージに理由が表示されます。キーが拒否された、サービスがリクエストを制限している、内蔵モデルが動いていない、判定モデルがインストールされていない、モデルがはい・いいえで答えなかった、時間切れになった、のいずれかです。
- サーバーにそのエンドポイントがないと表示される。 Decisionのソースがサーバーに合っていません。Ollama、LM StudioなどのチャットモデルサーバーにはOpenAI-compatible chat model(OpenAI互換チャットモデル)が必要です。Custom System One endpoint(カスタムSystem Oneエンドポイント)は、Open-JevなどのSystem Oneサーバー専用です。
- 回答が制限時間を超えた、または判定がときどきしか動かない。 サービスの回答が、ときどきTime limit(制限時間)より遅くなっています。数回テストし、最も遅い回答より長い制限時間に上げてください。
- 起動質問があるエージェントが毎ターン動く。 Decisionモデルが設定されていないか回答していないため、質問がない場合と同じようにエージェントが動いています。テストを実行してください。
- プロンプトの判定分岐が一度も表示されない。 判定分岐が表示されない場合を参照してください。
- Smart応答順が通常のAI呼び出しを続ける。 スイッチがオフになっているか、そのターンにDecisionモデルが回答しませんでした。
- アクティブなキャラクターの自動化がCharacter Trackerに従う。 モデルがすべてのキャラクターについて回答しなかったか、先に推論するモデルでAlso gate agents that run before the reply(返信前に実行するエージェントも判定)がオフになっているか、出演者が多すぎて、名前だけでもモデルの入力に収まりません。
生成中の判定スコアと出力を見るには、Debug Modeをオンにするか、ログレベルをdebugにします。ログレベルを参照してください。返信を生成せずに自分の判定文をテストするには、Peek Prompt → Decision diagnostics → Test decisions(Peek Prompt → Decision診断 → 判断をテスト)を開きます。明示的なテストは選択したモデルを呼び出すため、ホスト型サービスでは料金が発生することがあります。判定文のテストを参照してください。
Marinaraによる判定モデルのインストール
Built-in decision model(内蔵の判定モデル)は、実験的な判定専用モデルです。Marinaraがダウンロードし、チャットモデルと並行して、独立したローカルプロセスとして動かします。使用メモリーは、チャットモデルの使用分に加算されます。ローカルモデルがすでにあるなら、まずそのモデルの判定を試してください。
Open-JevモデルにはLinux x86-64、コンピュート能力7.5以降のNVIDIA GPU(Turing、RTX 20シリーズ以降)、バージョン580以降のドライバーが必要です。Linux ARMや、それより古いカードには対応していません。モデルを実行できない環境でも選択肢は表示されたままで、理由が示され、Set up a Decision provider instead(代わりにDecisionプロバイダーを設定)が提案されます。
| モデル | モデルのダウンロード | ランタイムを含むディスク容量 | GPUメモリー |
| Open-Jev 2B | 約4.6 GB | 約10 GB | 約4.8 GB(4.5 GiB) |
| Open-Jev 9B | 約19.4 GB | 約25.3 GB | 約23.6 GB(22 GiB) |
これらはカタログの推定値です。9Bモデルでは、24 GBのGPUに余裕がほとんど残りません。自分のカードに対するインストーラーの診断結果を確認してください。
- Connections(接続)パネルでAdd(追加)をクリックし、Decisions(判定)の下にあるBuilt-in model (decisions)(判定用の内蔵モデル)をクリックします。Built-in decision modelというタイトルのウィンドウが開きます。Built-in model(内蔵モデル)カードのページからも開けます。
- 警告を読み、Use the built-in decision model(内蔵の判定モデルを使用)をオンにします。Turn on the built-in decision model?というタイトルのダイアログに、自分のコンピューターに対する診断結果が表示されます。Enable(有効化)をクリックします。診断結果が警告の場合はEnable anyway(それでも有効化)をクリックします。
- Available decision models(利用できる判定モデル)の下で、Open-Jev 2BまたはOpen-Jev 9Bを選びます。Download and install(ダウンロードしてインストール)をクリックし、サイズ、ハードウェアの診断結果、ライセンスを確認します。それまでは何もダウンロードされません。
- Behind the scenes(裏方の処理)の下にあるDecisionの行をクリックし、Built-in model (decisions)を選びます。
ウィンドウには、ほかに次の操作があります。
- Install from a repository(リポジトリーからインストール)には、HuggingFaceの判定モデルを
owner/model-nameの形式で入力します。Check(確認)をクリックします。Marinaraはそのリポジトリー自身のマニフェストを読み、このビルドに同梱されたランタイムに対応しているかを確認して、ベース重みと合計サイズを表示します。保証できないリポジトリーは、理由とともに拒否されます。続いてDownload and install this one(これをダウンロードしてインストール)をクリックします。 - GPUでは、複数のNVIDIA GPUがあるコンピューターで使うカードを選びます。変更するとモデルが停止し、新しいカードで再び起動します。
- Start this model when Marinara starts(Marinaraの起動時にこのモデルを起動)は任意です。オフの場合は、エージェントが初めて必要としたときに起動します。
- Remove files(ファイルを削除)は、モデルとそのランタイムを削除します。モデルをオフにするとプロセスは停止しますが、ファイルは残ります。
起動直後のモデルの最初の回答は遅いため、Marinaraは読み込み中にウォームアップ用の質問を1つ送ります。これに失敗してもモデルは起動し、最初の実際の質問でその遅延が発生します。長いチャットで判定文が多いターンほど時間がかかります。長いチャットでは、Open-Jev 2Bは判定文1つあたり約0.25秒かかります。
Strands deciderのセルフホスト
Strands decider 2Bは、System Oneに対応した別のオープンなDecisionモデル(Apache-2.0)です。Marinaraからはインストールできませんが、自分で起動したままにしておけばCustom System One endpoint(カスタムSystem Oneエンドポイント)として動作します。
- Python 3.10以降の環境でインストールし、サーバーを起動します。
pip install strands-decider
strands-decider serve StrandsAgents/strands-decider-2B-hobson-v19 --port 8000NVIDIA GPUかApple siliconが見つかればそれを使い、なければプロセッサーで動作しますが遅くなります。初回起動時にモデルと約4.6 GBのベース重みをダウンロードし、Pythonパッケージは約5.5 GBを使います。サーバーにパスワードはないので、127.0.0.1で運用してください。
- Server address(サーバーのアドレス)を
http://127.0.0.1:8000にして、Own decision server(自分の判定サーバー)のアカウントを追加します。モデル名は何でもかまいません。 - Decisionの行でそれを選び、アカウントの⋯メニューにあるTest(テスト)でテストします。起動後の最初の回答には約2秒かかり、デフォルトの制限時間より長いため、チャットを始める前に1回テストしてください。
確率は校正済みなので、セルフホストのOpen-Jevと違い、デフォルトのしきい値0.5が適しています(しきい値を参照)。回答は判定文の表現に左右されるため、判定文の書き方に従ってください。
関連ガイド
- カスタムエージェントの作成
- 条件付きプロンプト
- グループチャット
- 内蔵モデルのセットアップ
- AIプロバイダーへの接続