メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt

Use this file to discover all available pages before exploring further.

BRICKS Foundation は LLM、MLX、音声認識の推論を同じ LAN 上の BRICKS Buttress サーバーへオフロードできます。brick の generator API は変わらず、サーバー側で実行する方が速い(あるいはローカルでは動かない)場合に、デバイスは透過的に処理を委譲します。

要件

仕組み

  1. デバイスのワークスペースに少なくとも 1 つのバインド済み Buttress サーバーがあると、launcher はディスカバリーマネージャーを起動し、ワークスペーススコープの JWT を取得します。
  2. マネージャーはポート 8089 で UDP アナウンスを待ち受け、serverId がワークスペースのバインド済み一覧にあるサーバーをすべてプールします。
  3. 各 LLM、MLX、STT brick は Buttress (Remote Inference) グループを読み、自動でサーバーを選ぶか、手動で設定された URL を使います。
  4. ハードウェア能力比較によりローカル・リモート・どちらでも実行のいずれかが推奨され、brick で選んだストラテジーがその推奨をどう解釈するかを決めます。
launcher がサーバーに到達できない(LAN なし、サーバーオフライン、ワークスペース不一致)場合、ローカル実行にフォールバックします。明示的にオフにしている場合を除きます。

brick でオフロードを設定

BRICKS Controller > Config Editor で任意の LLM または STT brick を開きます。Buttress (Remote Inference) プロパティグループは Connection の下に表示されます。
項目デフォルト効果
Enabledfalseこの brick で Buttress を有効化
Auto-discoverAutoAuto は UDP でサーバーを検出、Manual は URL 欄を使用
URLAuto-discover が Manual のときの WebSocket URL(例:ws://buttress.lan:2080
Strategyprefer-buttressデバイスがローカルとリモートをどう選ぶか
Fallbackno-opButtress が有効でも到達不能なときの処理

ストラテジー

ストラテジー動作
prefer-buttressサーバーが利用可能なら常に Buttress に送信。ローカルハードウェアは検査しません。
prefer-localデバイスのメモリが足りればローカルで実行、足りなければ Buttress にフォールバック。
prefer-bestスコアを比較して、より高速な側で実行。
prefer-buttress がデフォルトなのは、Buttress を有効化する Foundation デバイスのほとんどがローカルハードウェアでは最速ではないからです。

フォールバック

フォールバックButtress が有効だが到達不能なときの動作
no-op(デフォルト)brick はローカルでは何もしません。モデルのダウンロードも completion の実行もしません
use-localbrick は Buttress がオフだったときと同じくローカル実行にフォールバックします
LAN が切れたときも brick を動かし続けたいなら use-local、デバイスが扱えないモデルをこっそり動かしてバッテリーを消費するより明確に失敗させたいなら no-op を選んでください。

ワークスペースが変わったとき

デバイスのワークスペースが変わると(例:管理者が BRICKS Controller から再割り当て)、launcher は次の処理を行います:
  1. 動作中の Buttress マネージャーを停止し、開いている WebSocket 接続をすべて閉じる。
  2. キャッシュされた access token を破棄する。
  3. 新しいワークスペースのバインド済みサーバー一覧と、新たに発行されたトークンでマネージャーを再起動する。
旧ワークスペースで認証されていた進行中の generator は無限再接続ループに陥らず、きれいにエラーで終わります。

音声アップロード(STT)

音声認識の文字起こしには音声ファイルがサーバーに必要です。brick は HTTPS で POST /buttress/upload にアップロードし、サーバーは [server] temp_file_dir で設定された一時ディレクトリ(デフォルトは <os-tmpdir>/.buttress)に保存します。文字起こし後、ファイルはセッションの他の一時ファイルとともに自動でクリーンアップされます。

トラブルシューティング

症状原因と思われるもの対処
brick ログに no LAN provider is registeredデバイスがワークスペースに紐付いていない、またはそのワークスペースにバインド済みサーバーがないデバイスをバインドする、または bricks buttress bind でサーバーをペアリングする
brick ログに no '<type>' endpoint yetUDP 検出が 10 秒以内にサーバーを返さなかったサーバーが同じサブネットにあること、[autodiscover] ブロックが無効化されていないことを確認
WebSocket がコード 1008 で閉じるデバイスのトークンがサーバーのバインド済みワークスペースと一致しない双方が同じワークスペースであることを確認、launcher を再起動
Buttress を有効化したら brick が「動かなくなった」フォールバックが no-op で、到達可能なサーバーがないフォールバックを use-local に切り替えるか、LAN 接続を修正
Unknown generator id エラーサーバーが再起動またはロード済みモデルを退避したbrick は次の呼び出しで自動的に generator を再初期化して回復します

関連項目

Buttress 概要

Buttress とは何か、いつ使うか、システム全体の構成。

ワークスペースバインディング

サーバーとデバイスが同じワークスペースに所属する仕組み。