탈옥한 PS5에서 llama.cpp로 GGUF 모델을 돌리는 PS5LM

Hacker News15일 전

탈옥한 PS5를 사설 LLM 서버로 바꾸는 홈브루 프로젝트 PS5LM이 공개됐다. llama.cpp를 콘솔 GPU에서 네이티브로 돌려 GGUF 형식 모델을 로드하고, 같은 네트워크에 있는 노트북·스마트폰·코딩 도구에 추론 API를 내준다. 구동 중에 별도 PC가 필요 없고, 클라우드도 계정도 요구하지 않는다.

핵심은 llama.cpp의 Vulkan 백엔드를 PS5의 RDNA 2 GPU에 올린 구조다. 모델과 컨텍스트를 위해 공유 메모리 11.4GB를 쓰며, llama.cpp가 아는 아키텍처와 양자화를 그대로 지원한다. 서버는 8081 포트에서 열리고, 클라이언트가 모델 이름을 무엇으로 지정하든 현재 로드된 모델이 응답한다.

API 호환 범위도 넓다. OpenAI의 /v1/chat/completions와 Anthropic의 /v1/messages를 그대로 받아주기 때문에 Claude Code 같은 도구를 이 콘솔에 붙일 수 있고, 브라우저 채팅 페이지도 제공된다. 클라이언트는 http://<콘솔 주소>:8081 을 가리키기만 하면 된다.

결정 모델(decision model) 지원도 눈에 띈다. Ollaya가 PC에서 언어 모델을 다루는 방식을 콘솔로 옮긴 것으로, /v1/systemone 엔드포인트에 상태(state)와 타입이 지정된 질문을 보내면 텍스트를 생성하지 않고 한 번의 forward pass로 선택·점수·예/아니오 답을 확률과 함께 돌려준다. 예시 요청은 환불 요구 문장을 주고 "고객이 원하는 것은 무엇인가", "고객이 화났는가"를 묻는 형태다. Suggested 목록에는 d1 Omni 600M, d1 3B, Clef Flash가 올라 있고, llama.cpp의 결정 메타데이터를 담은 GGUF라면 같은 방식으로 로드된다.

성능 예시로는 PS5 Slim에서 Qwen 3.5 9B가 노트북의 요청을 처리하는 장면이 제시됐다. 이미지 프로젝터를 가진 모델(Gemma 4, MiniCPM-V, d1)은 64k 컨텍스트에서 초당 약 20토큰으로 이미지를 읽고, 질문 3개는 0.3초, 720p 이미지와 질문 7개는 2.9초에 처리한다.

설치 전제는 명확하다. 펌웨어 7.00~13.60 버전의 탈옥된 PS5가 필요하고, 커널 패치와 홈브루 런처(ShadowMountPlus), 온도·전력·실제 여유 공간을 읽는 ps5-exporter 페이로드가 미리 올라가 있어야 한다. 릴리스에서 ps5lm-app 압축 파일을 받아 풀고 PPSA99575 폴더를 FTP로 /data/homebrew에 복사한 뒤 홈 화면에서 실행한다. 모델은 /data/PS5LM/models나 USB 드라이브의 PS5LM/models에 넣거나, 앱이 Hugging Face에서 내부 저장소·M.2 드라이브·USB로 직접 내려받는다. 플래너가 각 GGUF를 읽고 남은 메모리에 맞는 최장 컨텍스트와 최적 캐시를 골라준다.

TV 화면용 UI도 갖췄다. Home, Models, API, Console, Settings 다섯 구역으로 나뉘고, 들어오는 요청이 어느 기기에서 무엇을 물었는지와 함께 채팅처럼 실시간으로 흘러간다. 컨트롤러의 Square로 데모 요청을 보내고 Triangle로 키보드를 띄울 수 있어 소파에서 바로 시험해볼 수 있다. Console 페이지는 최근 2분 또는 1시간 구간의 온도·전력·GPU·CPU 부하를 그래프와 수치 표로 보여준다.

이 프로젝트는 기존 홈브루 작업 위에 세워졌다. abhi245y가 만든 네이티브 GPU 앱(PS5LM Plus)에서 출발했고, Mihawk-99의 PS5_Vulkan과 RADV, BlackBearReloaded의 ps5-homebrew-ui 계열 라이브러리, John Törnblom의 SDK, Marice의 ps5-exporter를 기반으로 한다. UI는 C++로, 추론은 llama.cpp와 ggml-vulkan으로 Linux에서 빌드했다. 라이선스는 GPL-3.0-or-later이며 llama.cpp의 MIT 라이선스는 유지된다. 저장소에는 Sony SDK 파일이나 키, 펌웨어, 모델 가중치가 포함되지 않았고 Sony Interactive Entertainment와 무관한 비공식 프로젝트다.

개발자 입장에서 의미는 두 갈래다. 하나는 이미 집에 있는 콘솔 하드웨어를 클라우드 없는 추론 엔드포인트로 재활용할 수 있다는 점이다. 코드와 프롬프트가 외부로 나가지 않아야 하는 환경에서 opencode, Codex, Claude Code 같은 도구의 base URL만 바꿔 붙이는 구성이 가능해진다. 다른 하나는 결정 모델 API다. 분류나 스코어링처럼 짧은 판단을 반복하는 작업을 텍스트 생성 없이 한 번의 forward pass로 처리하는 방식은 지연과 토큰 비용 구조를 다르게 만든다.

주의할 점도 분명하다. 탈옥된 PS5, 그것도 펌웨어 7.00~13.60 범위에서만 동작하므로 아무 콘솔에서나 쓸 수 있는 도구가 아니다. 모델과 컨텍스트에 쓸 수 있는 공유 메모리가 11.4GB로 제한돼 큰 모델은 컨텍스트를 줄여야 하고, 플래너가 메모리에 맞는 조합만 제안한다. 또한 Sony의 공식 지원을 받는 제품이 아니라는 점은 감안해야 한다.