1プロセスで4つのLoRA専門家を切り替えるMixture-of-LoRA Harness──748BのVentiと50BのTallを同じコードで動かす
MindLab Researchが公開しているMixture-of-LoRA Harnessは、Macaron-V1シリーズの2モデル(GLM-5.2ベース744BのVenti、Qwen3.6-35B-A3Bベース35BのTall)を、vLLMまたはSGLangのネイティブmulti-LoRA機能で1プロセス1エンドポイントとして提供するセルフホスト向けサービング基盤。GitHub公式READMEには実運用のvLLM/SGLang起動スクリプトとプロファイル設定差分が公開されている。

3行まとめ
- Mixture-of-LoRA Harnessは、Macaron-V1-Venti(GLM-5.2ベース744B+1B級LoRA×4)と、Qwen3.6-35B-A3Bをベースにした50B級の派生モデル「Macaron-V1-Tall」(35BベースにRank-64の3.7B級LoRA×4)という2つのモデルプロファイルを、同じセルフホスト基盤で切り替えて提供するOSS。
- アーキテクチャは「OpenAIクライアント→MoL Proxy(ルート→回答→要約)→vLLMまたはSGLangエンジン」という構成で、
SERVED_MODEL_NAME環境変数でVenti/Tallどちらのプロファイルを起動するか選ぶ。両プロファイルとも同じ8GPU・同じポートを使うため、1台の8GPUホストで同時起動はできない。- READMEはvLLM/SGLang向けの実運用起動スクリプト、必要なエンジンバージョン(vLLM 0.24.0またはSGLang 0.5.13.post1)、モデルレイアウト(
base/+loras/L0〜L3)まで具体的なコマンド付きで公開している。
1プロセス・1エンドポイントという設計
MindLab ResearchがGitHubで公開しているMixture-of-LoRA Harnessは、READMEの冒頭で「1プロセスが1つのOpenAI互換モデルを公開する」と説明している。新しいユーザーリクエストのたびに、ハーネスは内部的にL0・L1・L2・L3のいずれかへ推論をルーティングしながら、アダプタ名自体はクライアントに見せない。READMEが示すアーキテクチャ図は次の通り。
OpenAIクライアント
│
▼
MoL Proxy :8200
│ ルート → 回答 → 要約
▼
vLLMまたはSGLang :8000
│
├── L0 一般会話・モデルアイデンティティ・ルーティング
├── L1 パーソナルエージェント・サービスワークフロー
├── L2 コーディング・ターミナルワークフロー
└── L3 UIとA2UI生成
新しいユーザーリクエストごとに3つの内部ステップ(ルート→回答→要約)が走り、要約はProxyが保持するだけでクライアントには返らない。ツールの実行結果は、そのツール呼び出しを発行したアダプタ上で続き、別のルートホップを起動しない。安定したアダプタごとのプロンプトによって、ネイティブエンジンのプレフィックスキャッシュが各アダプタの既存KVプレフィックスを再利用できる、とREADMEは説明している。
VentiとTall──2つのモデルプロファイル
READMEは、このハーネスがserveする2つのモデルプロファイルを明記している。
| 項目 | Macaron-V1-Venti | Macaron-V1-Tall |
|---|---|---|
| 全体規模 | 748Bパラメータ | 50Bパラメータ |
| ベースモデル | 744B GLM-5.2 | 35B Qwen3.6-35B-A3B |
| LoRA専門家 | 1Bパラメータ×4(最大Rank 16) | 3.7Bパラメータ×4(Rank 64) |
| モデルルート(本番) | /root/glm52_local |
/root/qwen36_local |
| ベースシャード数 | 141 | 26 |
| Attention/KV | FLASHMLA_SPARSE、自動KV dtype |
ハイブリッドattention、BF16、自動KV dtype |
| Parser | reasoning glm45、tools glm47 |
reasoning qwen3、tools qwen3_coder |
Tallのベースとして名指しされているQwen3.6-35B-A3Bは、Alibaba(Qwen)本家が配布しているモデルで、Hugging Face API実測ではアップロード日は2026-04-15、本記事執筆時点でダウンロード数は約499万6千、いいねは2,747件だった。なお、Hugging Face APIのpipeline_tagはimage-text-to-textとなっており、Qwen3.6-35B-A3B自体は本来テキストだけでなく画像入力にも対応するマルチモーダルモデルだ。Mixture-of-LoRA HarnessのREADMEやTallプロファイルの説明には画像入力への言及はなく、この記事の範囲では、ハーネス側がQwenのマルチモーダル機能をどこまで使っているのかは確認できていない。
Macaron-V1-Tall自体の登場時期については、GitHub APIでリポジトリのコミット履歴を確認したところ、より正確な日付が分かった。
| バージョン | 日付 | 内容 |
|---|---|---|
| v0.1.0 | 2026-06-06 | 汎用的なLoRAルーティングの土台(GLM5.1ベースのサンプルメタデータを含む) |
| v0.2.0 | 2026-07-21 | 748B GLM-5.2+4 LoRA専門家を提供する3層アーキテクチャへ刷新(=Venti向けの実質的な初出) |
| v0.2.1 | 2026-07-23 | Macaron-V1-Tallプロファイルを追加 |
つまりTallプロファイルがハーネスに追加されたのは2026年7月23日で、当初の記事が推測していた「Ventiの公開時期(2026年8月10日前後)と同時期」よりも2週間以上早い。リポジトリ全体のコミットは現在確認できる範囲でこの3件のみで、最終更新(push)は2026年7月23日だった。GitHub実測ではスター196・フォーク17・未解決issue2件(本記事執筆時点)。
両プロファイルとも262,144トークンのコンテキスト上限、max_num_seqs=8、gpu_memory_utilization=0.915、CUDA Graphキャプチャ上限8、プレフィックスキャッシング有効、非同期スケジューリング無効という共通設定を使う。両者は同じ8GPU・同じポートをデフォルトで使うため、1台の8GPUホストでVentiとTallを同時に起動することはできず、切り替える際は起動ヘルパーで現在動いているプロファイルを止める必要がある、とREADMEは明記している。
起動の流れ
READMEに掲載されている起動コマンドの一例。
# 設定チェックのみ
VLLM_CONFIG_CHECK_ONLY=1 ./mol_harness/scripts/start_vllm_venti.sh
# 実際の起動(Venti)
MOL_API_KEY_FILE=/path/to/api-key \
./mol_harness/scripts/restart_vllm_tp8_venti.sh
# Tallに切り替える場合
MOL_API_KEY_FILE=/path/to/api-key \
./mol_harness/scripts/restart_vllm_tp8_tall.sh
READMEによれば、この再起動ヘルパーは①選択したプロファイルのProxyとEngineをPIDファイルから停止し、②ポート8000/8200が使用中なら起動を拒否し、③vLLM 0.24.0・8GPU・モデルシャード・4アダプタすべてを検証し、④127.0.0.1:8000でvLLMを起動して/healthを最大1時間待ち、⑤/v1/modelsにL0〜L3が含まれることを確認し、⑥該当プロファイルを選んでProxyをポート8200で起動する、という6段階の手順を踏む。SGLang向けにはVentiのGLM-5.2プロファイル専用の起動スクリプトも用意されている。
APIはOpenAI互換のChat CompletionsとResponses APIの両方をサポートし、Chat Completionsはステートレス(クライアントが会話履歴を毎回送る)、Responsesはprevious_response_idからProxy側の状態を継続する、という違いがある。
対応エンジンとライセンス
| 項目 | 内容 |
|---|---|
| 対応推論エンジン | vLLM 0.24.0、またはSGLang 0.5.13.post1(ネイティブmulti-LoRA対応が必須。READMEはこの2つを名指ししており、Pythonのように「3.10 or newer」とは書いていない) |
| 必要GPU | 本番用vLLMプロファイルは8基のGPUが前提 |
| ライセンス | MIT |
| 開発元 | MindLab("A Lab for Experiential Intelligence"を名乗る) |
動作検証について確認できていないこと
筆者はこのハーネスを実際に8GPU環境で起動して動作検証することを試みていない。本記事の執筆環境自体が大容量ダウンロード不可・GPU無しという制約下にあり、そもそも実行できる条件が揃っていない。READMEに書かれたコマンドとアーキテクチャ図をそのまま紹介したものであり、実際の起動が手順通りに成功するかどうかは確認していない。起動そのものの検証はしていないが、Macaron-V1-Tallのモデルカード自体は公開されており、そこにベースのQwen3.6-35B-A3Bとの比較表が載っている(Macaron ChatBench 54.9対48.0、Macaron LivingBench 48.4対47.1、PinchBench 86.2対82.5、ClawGym 64.0対58.6、SWE-bench Verified 75.4対73.4、TerminalBench 2.1 56.2対52.5、UI4A-Bench 59.3対33.9。当サイトのMacaron V1の記事でも同じ数字を扱っている)。ハーネスを実際に動かして再現したわけではないだ。Zenn記事検索では「Mixture-of-LoRA」の該当記事はこの記事作成時点で見当たらなかった。GitHub APIで確認できたコミットは3件のみで、それ以前の開発過程(ブランチ・PRのやり取りなど)までは遡っていない。
関連記事
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。