メインコンテンツへ移動
AIチュートリアル

PS5LMで脱獄済みPlayStation 5上でGGUF言語モデルを実行する

このチュートリアルでは、対応する脱獄済みPS5にPS5LMをインストールし、コンソールのブラウザーから小規模なGGUF言語モデルを実行する方法、ネットワーク経由でOpenAI互換サーバーにアクセスする方法、そしてソースコードからllama.cppツールをビルドまたはデプロイする方法を説明します。

PS5LMで脱獄済みPlayStation 5上でGGUF言語モデルを実行する

PS5LMとは?

PS5LMは、脱獄したPlayStation 5向けに移植されたllama.cppです。対応するGGUF言語モデルを、リモート推論サービスではなくコンソール上でローカル実行できます。

バージョン0.1では、ps5lm.elfという単一のペイロードが提供されます。読み込むと、PS5のブラウザーでモデルライブラリが開きます。そこから対応モデルをダウンロードして起動し、DualSenseで操作するインタラクティブなチャットを開けます。

PS5LMは、自分が所有するPS5での利用を想定しています。現在のリリースは、ファームウェア7.00から13.60で動作する脱獄済みコンソールに対応しています。

このプロジェクトのより広い目標は、llama.cppのアーキテクチャと量子化をPS5に移植することです。まずはZen 2 CPUを使用し、将来的にはGPUにも対応する予定です。最初の主要なモデル目標はQwen 3.8 27Bですが、現在のペイロードのメモリ制限により、バージョン0.1でははるかに小さいモデルに制限されています。

主な機能

  • コンソール上での推論: GGUFモデルをPS5上でローカル実行できます。
  • ブラウザベースのライブラリ: コンソールのブラウザーから対応モデルのダウンロード、起動、管理を行えます。
  • インタラクティブチャット: チャットインターフェースを開き、DualSenseで入力できます。
  • ネットワークアクセス: 同じネットワークに接続されたスマートフォンやコンピューターからモデルライブラリを利用できます。
  • OpenAI互換サービス: ポート8081のチャットサーバーはOpenAI APIに対応しています。
  • llama.cpp互換性: Qwen、Llama、Mistral、Gemmaなどのアーキテクチャと、1ビットから8ビットまでの量子化に関するllama.cppの対応を継承できるよう設計されています。
  • 開発者向けツール: リポジトリには、メモリおよびスレッドのプローブ、SDKセットアップスクリプト、クロスビルドスクリプト、ペイロード配置ヘルパーが含まれています。

必要条件

標準的なインストールには、次のものが必要です。

  • 自分が所有するPS5。
  • ファームウェアバージョン7.00から13.60。
  • 動作する脱獄環境。
  • WebKit AutoloaderのPayload Managerなどのペイロードローダー、またはポート9021で待ち受けるELFローダー。
  • モデルのダウンロード、アップデートの受信、別のデバイスからのPS5LMへのアクセスに必要なネットワーク接続。

Payload ManagerでPS5LMをインストールする

Payload Managerは最も簡単なインストール方法で、PS5LMのアップデートにも利用できます。

  1. 脱獄済みのコンソールでPayload Managerを開きます。
  2. Settingsに移動します。
  3. Multiple Payload Sourcesを有効にします。
  4. ペイロードソースとしてhttps://ps5lm.cobanov.dev/payloads.jsonを追加します。
  5. 表示されたリストからPS5LMを探します。
  6. ペイロードをインストールして読み込みます。

ペイロードが起動すると、PS5のブラウザーでPS5LMモデルライブラリが自動的に開きます。

ペイロードを手動でインストールする

Payload Managerのソースを追加したくない場合は、PS5LMの最新リリースからps5lm.elfをダウンロードします。

他のPS5ペイロードと同じ方法でファイルを読み込みます。Payload Managerからアップロードするか、ポート9021で動作するelfldrなどのELFローダーに送信できます。

モデルをダウンロードして実行する

PS5LMライブラリがコンソールのブラウザーに表示されたら、基本的な手順は次のとおりです。

  1. モデルを選択してDownloadを押します。
  2. モデルのコンソールへのダウンロードが完了するまで待ちます。
  3. Runを押してモデルを起動します。
  4. Open chatを押します。
  5. DualSenseでプロンプトを入力して送信します。

ダウンロードしたモデルは/data/PS5LM/modelsに保存されます。

現在のモデルとメモリ制限

現在、ペイロードがPS5のホーム画面の動作を圧迫せずにメモリへロックできるモデルデータは、約1.6 GBまでです。そのため、内蔵カタログは小型モデルを中心に構成されています。

  • Qwen3.5 0.8B: 約13~21トークン/秒。
  • Qwen3.5 2B: 約9トークン/秒。

より大きなモデルには、現在のペイロードアーキテクチャではなくネイティブアプリケーションが必要です。特に、27BのQwen 3.8は、バージョン0.1のペイロードではまだサポートされていません。

別のデバイスからPS5LMにアクセスする

同じローカルネットワーク上のスマートフォンやコンピューターからモデルライブラリを操作できます。ブラウザーで、コンソールのIPアドレスにポート8082を付けて開きます。例:

http://192.168.1.50:8082

192.168.1.50をPS5の実際のIPアドレスに置き換えてください。

チャットサービスはポート8081で動作し、OpenAI APIに対応しています。これにより、クライアントとコンソールがネットワーク経由で相互に通信できれば、OpenAI互換クライアントからPS5をサーバーとしてモデルに接続できます。

FTPでGGUFモデルを追加する

PS5LMは/data/PS5LM/models内のモデルをスキャンします。FTP経由でこのディレクトリにコピーしたGGUFファイルは、ライブラリに表示されます。

  1. PS5でFTPサーバーのペイロードを起動します。
  2. FTPクライアントからコンソールに接続します。
  3. GGUFファイルを/data/PS5LM/modelsにアップロードします。
  4. PS5LMライブラリに戻るか、ライブラリを更新します。
  5. モデルを選択して実行します。

現在のメモリ制限内に収まるモデルを選んでください。GGUF形式であるだけでは、ペイロードの約1.6 GBのロックメモリ制限内で実行できるほど小さいとは限りません。

ソースからPS5LMツールをビルドする

ポートを調査、変更、またはデプロイしたい開発者には、ps5-payload-dev SDKと、ホスト環境へのLLVMのインストールが必要です。

ホスト依存関係をインストールする

macOSでは、Homebrewで必要なパッケージをインストールします。

brew install llvm@21 lld socat cmake ninja

DebianまたはUbuntuでは、次を使用します。

sudo apt install clang-18 lld-18 socat cmake ninja-build

リポジトリをクローンして準備する

llama.cppの依存関係はGitサブモジュールとして含まれているため、リポジトリを再帰的にクローンします。

git clone --recursive https://github.com/cobanov/PS5LM
cd PS5LM
scripts/setup-sdk.sh
source scripts/env.sh

セットアップスクリプトはSDKを準備し、scripts/env.shはプロジェクト用に現在のシェル環境を設定します。

probeとllama.cppツールをビルドする

make -C probes/memprobe
scripts/build-llama.sh

最初のコマンドはPhase 0メモリプローブをビルドします。2番目のコマンドは、PS5向けにllama-cli、llama-server、llama-benchをクロスビルドします。

コンソールで開発ビルドを実行する

このワークフローでは、PS5上でELFローダーがポート9021をリッスンしている必要があります。リポジトリには、エクスプロイトページのホスティング、ヘルパーペイロードの設定、ELFファイルの送信を行うスクリプトが用意されています。

scripts/host-relapse.sh
export PS5_HOST=192.168.1.50
scripts/console-setup.sh
scripts/send.sh probes/memprobe/memprobe.elf

PS5_HOSTにはコンソールのIPアドレスを設定します。メモリプローブは結果をホストへストリーミングするとともに、コンソール上の/data/PS5LM/memprobe.txtにも書き込みます。

llama.cppコマンドを実行する

ftpsrvがポート2121で動作していれば、scripts/run.shでビルド済みのllama.cppツールをアップロードし、引数を指定して起動できます。

まず、FTPまたはUSBを使用して、互換性のあるGGUFモデルを/data/PS5LM/modelsへコピーします。次に、llama-cliでプロンプトを実行します。

scripts/run.sh llama-cli -m /data/PS5LM/models/model.gguf -p "Hello from a PS5" -n 64

コンソールのすべてのネットワークインターフェースでポート8081のサーバーを起動するには、次を実行します。

scripts/run.sh llama-server -m /data/PS5LM/models/model.gguf --host 0.0.0.0 --port 8081

高度なヒント

ペイロードの上限内にモデルを収める

モデルアーキテクチャの対応と、実用的なモデルサイズは別の問題です。llama.cppがあるアーキテクチャと量子化に対応していても、生成されたGGUFがペイロードで利用可能なメモリに収まる必要があります。大きなファイルを転送する前に、プロジェクトのモデルドキュメントと現在のカタログを参考にしてください。

リモートクライアントにはサーバーを使用する

連携用途では、--host 0.0.0.0を指定してllama-serverを実行し、ポート8081経由で接続します。PS5とクライアントは信頼できる同一ネットワーク上に置き、ローカルネットワーク設定でこのポートがブロックされていないことを確認してください。

エンドユーザー向けと開発向けのワークフローを分ける

通常の利用では、ブラウザーライブラリが最も直接的な選択肢です。probe、FTP、クロスコンパイル、scripts/run.shを使うワークフローは、主にビルドのテスト、コンソール情報の収集、ベンチマーク、またはllama.cppツールの実験に役立ちます。

リポジトリ構成を理解する

  • third_party/llama.cppには、固定された上流llama.cppサブモジュールが含まれています。
  • ps5/compatには、コンソールにない少数のlibc関数が実装されています。
  • patches/には、PS5固有のllama.cppソース変更が含まれています。
  • probes/には、memprobeとthreadprobeが含まれています。
  • scripts/には、SDK、クロスビルド、セットアップ、デプロイ用のヘルパーが含まれています。
  • docs/には、ロードマップ、互換モデルの指針、移植メモ、コンソール手順、調査資料が含まれています。

まとめ

PS5LMを使うと、対応する脱獄済みPS5上で、小規模なGGUF言語モデルを便利なブラウザーインターフェースからローカル実行できます。まずはPayload Managerからインストールし、カタログにあるモデルを試してください。さらに細かく制御する必要がある場合は、ソースビルド、FTP、コマンドラインツール、probe、OpenAI互換サーバーを使って、コンソール上のllama.cppを詳しく検証できます。

PS5LMはGPL-3.0-or-laterのライセンスで提供されます。一方、llama.cppはMITライセンスを維持しています。本プロジェクトには、Sony SDKファイル、キー、ファームウェア、モデルの重みは含まれておらず、Sony Interactive EntertainmentまたはAlibabaとは提携していません。