共有ホームAIサーバーでユーザーごとの分離を実現する機能とは?

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

ユーザーごとの分離には、すべてのデータおよびツール境界でIDに紐づいた認可を行い、家庭内の誰か一人が共有サーバーを使い切るのを防ぐリソース制御も必要です。

1台の家庭用GPUで、ユーザーごとに別のモデルを読み込まず、複数の家族にサービスを提供できます。ただし、推論の共有はアクセスの共有と同じではありません。ゲートウェイは、すべてのリクエストを開始したユーザーを追跡し、そのIDに基づいて検索結果とメモリをフィルタリングし、範囲を限定した認証情報だけを委譲し、共通のモデルやストレージサービスに処理が届く前に、ユーザーごとのキューまたはクォータを適用する必要があります。

リクエスト経路全体でIDを維持する

認証によってインターフェースを利用している人物は特定できますが、分離を実現するには、そのIDを検索、プロンプトの組み立て、ツール呼び出し、ログ、バックグラウンドジョブまで引き継ぐ必要があります。これを1つの共有サービスアカウントに置き換えると、下流の認可判断に必要なコンテキストが失われます。

詳細なテナントID分離アーキテクチャでは、テナントID、データ分離、暗号化、レート制限、リソースクォータを分離します。同じ境界は、各ユーザーが個人ファイルと異なる自動化権限を持つ家庭環境にも縮小して適用できます。

短期間のみ有効な委譲トークンには、ユーザーとエージェントのアクションの両方を識別させる必要があります。サービスは、プロンプト内のIDテキストを信頼するのではなく、トークンを独立して検証します。LLMがそのテキストを誤解したり、挿入されたドキュメントによって操作されたりする可能性があるためです。

データ、メモリ、認証情報には個別の名前空間が必要

各ドキュメント、チャンク、メモリ、会話、ツール認証情報には、所有者または認可グループのポリシーを付与する必要があります。検索では、候補がモデルのコンテキストに入る前にこれらのフィルターを適用し、キャッシュにも認可範囲を含めて、非公開の結果が別のユーザーに再利用されないようにします。

埋め込みに対するクエリ時アクセス制御の設計では、インデックス化されたコンテンツとともにファイルのアクセス制御コンテキストを保持します。これは、意味的類似性が元のソース権限に従属し続けるべきであり、権限を回避する新たな経路になってはならない理由を示しています。

認証情報の名前空間は最も狭くする必要があります。子どものアシスタントには共有カレンダーの読み取りを許可しても、親のメールは許可しないようにします。メディア処理ワークフローには1つのフォルダーへの書き込みを許可しても、NASのすべての共有領域へのアクセスは許可しません。モデルにはツールの説明だけを見せ、実際の秘密情報は実行ゲートウェイが保持して必要な場合だけ解放します。

コンピュート分離はデータアクセスではなく、うるさい隣人を制御する

ユーザーごとの同時実行数制限、トークン予算、キューの重み付け、キャンセル機能により、1回の長時間生成がGPUスロットを独占するのを防ぎます。ツールの処理はモデル以外の場所でもサーバーを使い果たす可能性があるため、CPU、RAM、一時ストレージ、ネットワークの外向き通信にも制限が必要です。

顧客ごとのトークンクォータを適用するサービング設計では、リクエストのタグ付け、クォータ適用、うるさい隣人への対策、共有GPUのスケジューリングについて説明しています。これらの仕組みは公平性を高めますが、ドキュメントや認証情報の認可に取って代わるものではありません。この違いは、後の家庭環境でのテストでも確認できます。

分離に関する失敗の境界は、別々のチャットセッションが分離と同じだと思い込むことです。共有ベクトルキャッシュ、プレフィックスキャッシュ、一時ファイル、ログ、広範なサービス認証情報によって、ユーザー間で情報が交差する可能性があります。目に見えるアプリケーションデータベースだけでなく、共有されているすべてのコンポーネントについて、IDを考慮したキーとアクセス拒否が機能するかをテストしてください。

ユーザー間分離テストを実行する

2つのアカウントを作成し、共有ドキュメントを1つずつ用意します。さらに、それぞれに1つずつ非公開ドキュメント、異なるメモリ、異なるツール権限、異なるコンピュートクォータを設定します。両方のIDから、意味的に同一のクエリ、直接的なパス推測、キャッシュを温めるリクエスト、同時実行する長いプロンプト、バックグラウンドジョブを実行します。

ケイパビリティベースの分離と認可境界を比較します。これは、ケイパビリティの範囲をプロンプトの挙動ではなく、エージェントセキュリティの一部として扱う考え方です。成功した読み取り、拒否された試行、キューの待ち時間、キャッシュキー、委譲された認証情報のID、監査イベントを記録します。

共有された証拠が両方のユーザーに対して表示され、非公開の証拠が相手のコンテキストに決して入らず、いずれか一方の処理が宣言されたポリシーを超えて他方を枯渇させない場合にのみ合格とします。非公開コンテキストを含むユーザー間のキャッシュヒットは、重大な欠陥として扱う必要があります。

テック&AIハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.