USBメモリを挿すだけで、インストール作業なしにローカルLLM(大規模言語モデル)を動かせる環境が注目を集めています。

この記事では、セキュリティ研究者のNicolas Krassas氏がXで紹介したオープンソースプロジェクト「USB-Uncensored-LLM」の仕組みと導入手順を整理します。

この記事でわかること

  • USB-Uncensored-LLMが解決する課題と動作の前提
  • Sharedフォルダによるクロスプラットフォーム設計
  • プリセットモデル(Gemma・Qwenなど)とカスタムGGUFの選び方
  • Windows・macOS・Linux・Androidそれぞれの起動手順
  • 導入時に押さえるべきストレージとRAMの目安

ローカルAIを「持ち歩きたい」ときの壁

OllamaなどのローカルAIツールは、ホストPCにエンジンとモデルを入れて使うのが一般的です。社内の共有PCや検査用端末では、ソフトウェアのインストール権限がなく、会話履歴をマシンに残したくないケースも多いです。

クラウドAPIは常時ネットワークが必要で、機密文書を外部に送るリスクもあります。エアギャップ(ネットワーク遮断)環境や出張先では、オフラインで動くAI環境が求められます。

USB-Uncensored-LLMは、この課題に対し「推論エンジン・モデル重み・会話履歴をすべてUSB側に閉じ込める」設計で応えています。セットアップ完了後はインターネット接続なしで動作し、ホストPCのレジストリやシステムフォルダを書き換えません。

USB-Uncensored-LLMとは

USB-Uncensored-LLMは、GitHubで公開されているオープンソースのポータブルローカルAI環境です。開発者techjarves氏が、USBメモリやポータブルSSD、内蔵ディスク上でゼロ依存(追加のパッケージマネージャ不要)のLLM実行環境を構築できるようにしたプロジェクトです。

内部ではカスタムビルドのOllamaエンジンを推論基盤に使い、ポータブルPythonと隔離された実行バイナリを同梱しています。CPUのAVX命令セット、NVIDIA CUDA、Apple Metalのいずれかが利用可能なホストでは、ハードウェアに応じて推論が加速されます。

Sharedフォルダが支えるクロスプラットフォーム設計

このプロジェクトの核は、OSごとのフォルダと共通データを分離した構成です。USBルートにはAndroid・Linux・Mac・Windowsの各インストーラと起動スクリプトがあり、モデルや会話データはSharedフォルダに集約されます。

Shared配下にはbin(Ollama実行ファイル)、models(Hugging Face形式のGGUF重み)、chat_data(会話履歴)、python(隔離されたPython環境)が置かれます。5GB超のモデルを一度ダウンロードすれば、Windows・macOS・Linux間でコピーせずにそのまま使えます。

プリセットモデルとカスタムGGUF

インストーラから選べるプリセットは、公式READMEに次の3つが掲載されています。

  • Gemma 2 2B Abliterated(約1.6GB)— 軽量で応答が速い。初めて試す場合の推奨モデル
  • Gemma 4 E4B Ultra Uncensored Heretic(約5.34GB)— 大きめのファインチューニング版
  • Qwen 3.5 9B Uncensored Aggressive(約5.2GB)— 推論性能を重視する9Bクラス

加えて、Hugging Face上の任意のGGUFファイルをShared/modelsに置くカスタムモデルにも対応しています。リポジトリの説明ではGemma・Qwen・NemoMixなどを例示しており、NemoMix系のGGUFも同じ手順で追加できます。同作者の別プロジェクトPortable-AI-USBではNemoMix Unleashed 12B(約7.0GB)が推奨モデルとして案内されています。

導入手順の流れ

初回セットアップ時のみインターネット接続が必要です。手順は大きく3段階に分かれます。

Step 1: エンジンの初期化

接続先PCのOSフォルダからインストールスクリプトを実行します。WindowsはWindows/install.bat、macOSはMac/install.command、Linuxはbash Linux/install.shです。この段階では約50MBの実行エンジンがShared/binに展開されます。

Step 2: モデルの取得

モデルダウンロードはWindows PC上のinstall.batから行うのが推奨されています。対話式のカタログでプリセットを選べます。Windowsがない場合は、GGUFを手動でShared/modelsに配置します。

Step 3: 起動

OSごとのstartスクリプトを実行すると、バックグラウンドでエンジンが立ち上がり、ブラウザでローカルチャットUIが開きます。WindowsはWindows/start-fast-chat.bat、macOSはMac/start.command、Linuxはbash Linux/start.shです。

必要なハードウェア

公式READMEの要件は次のとおりです。

  • ストレージ: USB 3.0以上のUSBメモリまたはSSD。空き容量は最低8GB、16GB以上を推奨
  • RAM: 2B/4BクラスのモデルはホストPCのメモリ8GB以上、9B/12Bクラスは16GB以上

内蔵SSDにクローンして使うこともでき、その場合はUSBよりモデル読み込みが速くなります。Android端末ではTermux(F-Droid版)上で同リポジトリを動かせます。RAM 6GB以上(8GB推奨)でGemma 2 2Bが現実的な選択肢です。2Bモデルでは毎秒3〜10トークン程度の生成速度になるとREADMEに記載されています。

スマホから同じAIにアクセスする

PCでstartスクリプトを実行したまま、同一Wi-Fi上のスマートフォンからチャットUIを開くこともできます。ターミナルに表示されるネットワークアクセス用IP(例: http://192.168.1.15:3333)をモバイルブラウザに入力します。Windowsではファイアウォールがポート3333をブロックしている場合があるため、接続できないときは受信規則の確認が必要です。

類似プロジェクトとの違い

同作者のPortable-AI-USBは、Ollamaに加えAnythingLLMをUIとして同梱する構成です。USB-Uncensored-LLMはカスタムPython HTTPサーバーによる軽量UIに寄せ、Android対応やSharedアーキテクチャの統一を進めた後継実装として位置づけられています。作者はGitHubのIssueで、時間の制約から新しいスクリプトへ注力しており、USB-Uncensored-LLMの利用を推奨しています。

注意点

推論はホストPCのCPU・RAM・GPU性能に依存するため、古いマシンで9Bモデルを選ぶと応答が遅くなります。RAM不足の場合はGemma 2 2Bへの切り替えがREADMEでも案内されています。WindowsではレガシーのApp Execution Aliasesが有効だとバッチファイルが即終了する事例があり、コマンドプロンプトからの実行や管理者権限での起動が必要になることがあります。

また、採用しているのは安全フィルタを外したファインチューニングモデルです。出力内容の責任は利用者側にあり、業務利用では社内ポリシーとの整合を確認してください。