basal-omniをローカルで実行する方法:OllamaとRTX 4090で検証
basal-omniをOllama、llama.cpp、Macで実行する手順と必要な環境を紹介。RTX 4090でポーランド語の問い合わせをテストした結果も掲載します。
👁 117閲覧数
basal-omniはRemek Kinas氏が開発したポーランド語対応の判定モデルです。文章を生成するのではなく、選択肢から回答を選び、その確信度を示します。10月19日から、小型版はサーバー用GPUなしでもOllamaやllama.cpp、Macで実行できるようになりました。私はRTX 4090でGGUF形式のmini版を動かし、以前Jevなどの判定モデルを検証したときと同じポーランド語の問い合わせセットでテストしました。ここでは、実際に動作した手順、必要なハードウェア、検証結果を紹介します。
要点(2026年10月19日のテスト)
- basal-omni-1.0-mini Q8_0はファイルサイズ7.9 GB。Ollamaで実行した際、GPUメモリを5.1 GB使用しました。
- 部署分類はポーランド語の問い合わせ47件中42件、緊急度は50件中47件、ツール選択は10件中10件が正解でした。
- 判定時間の中央値は137 ms。60件のテスト全体は20秒で完了しました。
- Ollamaだけでは不十分です。確率付きの回答を得るには、basal-serveエンジンが必要です。
- MacではMLX版mini(8.6 GB)、または16 GBメモリ搭載MacでGGUF Q8_0版を利用できます。
モデルのバージョンと必要な環境
ファイルはすべてRemek氏のHugging Faceアカウントで公開されており、ライセンスはApache-2.0です。GGUF版とMLX版はテキストのみを扱い、画像や音声には対応しません。
| バージョン | ファイル | サイズ | 実行環境 |
|---|---|---|---|
| mini GGUF Q8_0 | basal-omni-1.0-mini-GGUF | 7.9 GB | Ollama、llama.cpp、NVIDIA GPU、Mac、CPU |
| mini GGUF Q6_K | basal-omni-1.0-mini-GGUF | 6.2 GB | 同上。オリジナルとの一致率はやや低め |
| max GGUF Q8_0 / Q6_K | basal-omni-1.0-max-GGUF | 12.7 / 9.8 GB | Ollama、llama.cpp |
| mini / max MLX 8-bit | -MLX | 8.6 / 13.6 GB | Apple Silicon搭載Mac |
| 1.1-max MLX 8-bit | basal-omni-1.1-max-MLX | 13.6 GB | Apple Silicon搭載Mac |
| mini / max FP8 | -FP8 | 12 / 14 GB | NVIDIAサーバー上のvLLM |
| mini / max / ultra bf16 | オリジナルの重み | GPUメモリ約16 / 24 / 62 GB | PyTorch。画像と音声を含むフルバージョン |
開発者が公開した量子化版はQ8_0とQ6_Kのみです。オリジナルとの一致率を確認する基準をクリアしたのが、この2種類だけだったためです。2~10個の選択肢がある10,606件の判定では、Q8_0はbf16版と98.7%、Q6_Kは97.1%の割合で同じ選択肢を選びました。Q5_K_MとQ4_K_Mは基準を満たしませんでした。最大のultra版(310億パラメーター)には、開発者によるGGUFファイルはありません。
WindowsとNVIDIA GPUでOllamaを使う手順
2026年10月19日、Windows 11、Ollama 0.40.5(0.35以上が必要)、uv経由でインストールしたPython 3.12を使って試しました。
- 実行環境とbasal 2.2を準備します。OllamaモードではOllamaがGPU上でモデルを実行するため、PyTorchはCPU版で足りました。
uv venv --python 3.12 env uv pip install --python env/Scripts/python.exe torch --index-url https://download.pytorch.org/whl/cpu uv pip install --python env/Scripts/python.exe "basal @ https://github.com/rkinas/basal/archive/refs/tags/v2.2.0.tar.gz" - モデルをダウンロードします(約8 GB)。Q8_0ファイルと、Modelfile、tokenizer、calibration、basal.jsonなどの小さなファイルがあれば十分です。私は個別に取得しましたが、エンジンと一緒にインストールされるhfツールを使うほうが簡単です。
hf download Remek/basal-omni-1.0-mini-GGUF --local-dir basal-omni-1.0-mini-GGUF --exclude "*Q6_K*" - リポジトリにあるModelfileを使ってOllamaに登録します。
cd basal-omni-1.0-mini-GGUF ollama create basal-omni-1.0-mini:q8_0 -f Modelfile.Q8_0 cd .. - Ollamaより先にbasalサーバーを起動します。
basal-serve --model ./basal-omni-1.0-mini-GGUF --mode ollama --ollama-model basal-omni-1.0-mini:q8_0 --port 8000 - 最初の問い合わせを送ります。次の例は、テストに使ったポーランド語のプロンプトを日本語に翻訳したものです。日本語で再テストした結果ではありません。Pythonの標準ライブラリだけを使います。API Jevと同じ形式で、エンドポイントは
/v1/systemoneです。import json, urllib.request body = {"state": "9時から管理画面が使えず、500エラーが発生しています。営業チーム全体の業務が止まっています。", "questions": { "department": {"type": "choice", "instructions": "この問い合わせはどの部署が担当しますか?", "criteria": {"payments": "支払いと請求書", "outage": "技術的な問題で動作しない", "sales": "購入前の質問"}}, "urgent": {"type": "noul", "instructions": "今日中に対応する必要がありますか?", "criteria": {"true": "はい", "false": "いいえ"}}}} req = urllib.request.Request("http://127.0.0.1:8000/v1/systemone", json.dumps(body, ensure_ascii=False).encode("utf-8"), {"Content-Type": "application/json; charset=utf-8"}) print(json.load(urllib.request.urlopen(req))["answers"])
選ばれた選択肢に加え、各選択肢の確率と確信度(confidence)が返されます。はい/いいえ形式の質問では、「はい」の確率も返ります。私が実際に遭遇した、または開発者が説明している注意点は次のとおりです。
- Windowsコンソールでのポーランド語の文字。 Git Bashからcurlで送った問い合わせはUTF-8のデコードエラーになりました。Pythonから明示的にエンコードして送ると問題なく動きました。
- 通常の
ollama runでは不十分。 その場合、モデルは自由形式のテキストしか返しません。確率付きの型付き回答を得るには、選択肢を表す1トークンの確率を読み取るbasal-serveが必要です。 - Ollamaモードの制限: 1つの質問につき選択肢は最大20個、問い合わせは最大4096トークンです。長い文書を扱う場合や選択肢が最大255個の場合、開発者はllama.cppモードを推奨しています。
llama.cppとMacで実行する方法
- llama.cppをプロセス内で実行:
basal[gguf]をインストールします(llama-cpp-python 0.3.36以降)。続いてbasal-serve --model ./basal-omni-1.0-mini-GGUF --mode gguf --gguf basal-omni-1.0-mini-GGUF/basal-omni-1.0-mini-Q8_0.gguf --port 8000を実行します。NVIDIA GPUで使う場合、llama-cpp-pythonをCUDA対応でビルドする必要があります。この方法はテストしていません。 - Apple Silicon搭載Mac:
basal[mlx]と-MLXリポジトリを使い、--mode mlxで実行するか、Metal経由でGGUF版を使います。開発者によるとmini Q8_0はメモリ16 GBのMacで動作します。またM4 Proでは、MLX版miniは8件の並列問い合わせ時に毎秒0.73件、単独の問い合わせでは173 msだったとのことです。私自身はMacを持っていないため、こちらも検証していません。
ポーランド語の問い合わせ50件とツール選択10件で検証
10月13日にArtificial Analysisのランキング掲載モデルを検証したときのデータセットを使いました。内訳は、オンラインストアへの問い合わせ50件(7部署と緊急度の判定)と、アシスタントが自分で回答するか、ツールを呼び出すか、追加質問をするか、拒否するかを決める会話10件です。質問と正解キーは同じものを使い、basal向けの変更は加えていません。前回と同様、正解キーのうち3件は判断が分かれる内容だったため、部署分類は47件で集計しています(詳しくはAI判定モデルのガイドをご覧ください)。basalもこの3件を正解できず、10月13日に試した11モデルもすべて同じ結果でした。
| モデル | 部署分類(47件中) | 緊急度(50件中) | ツール選択(10件中) |
|---|---|---|---|
| basal-omni-1.0-mini Q8_0(ローカル、10月19日) | 42 | 47 | 10 |
| Jev 1.13(API、10月13日) | 41 | 46 | 10 |
| Microsoft-Decision-1(API、10月13日) | 44 | 42 | 10 |
| Decider v1.1 27B(API、10月13日) | 44 | 48 | 10 |
| Liquid AIのd1(API、10月13日) | 42 | 43 | 10 |
| Claude Haiku 5.5、一般的なLLM(API、10月13日) | 45 | 46 | 10 |
- 最小のbasalは、API経由の大型判定モデルの中位に位置します。 Jev 1.13より問い合わせ1件分多く正解し、Microsoft-Decision-1とDeciderより2件少ない結果でした。パラメーター数は40億で、家庭用GPUでも動作します。
- 緊急度の判定は良好です。 50件中47件で正解。これを上回ったのはDeciderとGPT-6 Luna Decisionsのみで、いずれも48件でした。カードに負荷が3重にかかったケース(確率0.05)と火花が出るコーヒーメーカー(0.34)は緊急と判断せず、一方で暗号資産のスパムを誤って緊急と判定しました。
- 部署分類の誤り: 「準備中」と表示された結婚式用ケーキの注文(配送ではなく販売)、火花が出るコーヒーメーカー(返品・苦情ではなく故障対応)、メールアドレスリストの販売提案(スパムではなく販売)、キャンセル済み注文の返金、機能しない割引コードなどを誤分類しました。
- 確信度は自分のデータで確認してください。 確信度0.9以上の場合、basalは40件中35件、Jevは39件中37件で正解でした。確信度が高くても、メールアドレスリストの販売提案(0.95)や機能しない割引コード(0.97)は誤判定でした。そこで重要になるのが、手元の例に合わせてしきい値を調整する新しいツールbasal-calibrateです。
- 速度: 判定時間の中央値は137 ms。最初の問い合わせはモデルをGPUに読み込むため12秒かかりました。APIモデルは10月13日にポーランドからネットワーク込みで測定したもので、たとえばJevは361 msでした。単純に比較できる条件ではありませんが、ローカル実行ならトークン料金がかからず、データがコンピューターの外に出ません。
GPUの稼働時間は20秒でした。選択肢の順番を固定し、GGUFファイルにキャリブレーションを含めた状態で1回だけ実行しました。テスト後、モデルをメモリから解放しました。
basalをローカルで使うのが向いているケース
- データを社外に出せない場合。顧客からの問い合わせ、文書、メールなどを扱うケースです。
- 一覧から選ぶ判定を大量に行う場合。部署、緊急度、トピックの分類、テキストを通すかどうか、呼び出すツールの選択などが該当します。
- ラベル付け済みの例を数百件用意できる場合。しきい値を調整し、確信度の高い判定だけを自動処理できます。
このモデルの背景とランキングでの結果は、JevBenchのオープンモデル部門で1位になったbasal-omniの記事で紹介しています。ローカルで実行できるほかのモデルは、ローカルAIの一覧をご覧ください。
出典
- Hugging Face:basal-omni-1.0-mini-GGUF、手順と一致率の測定結果
- Hugging Face:basal-omni-1.0-max-GGUF
- Hugging Face:basal-omni-1.0-miniのモデルカード
- GitHub:basal 2.2のリリースノート(2026年10月19日)
- GitHub:rkinas/basal、インストール方法と実行モード
- 筆者によるテスト:問い合わせ50件とツール選択10件、RTX 4090、Ollama 0.40.5、2026年10月19日


