게이밍 PC 2대 + M4 Pro MacBook (이더넷 연결) + iPhone 17 Pro Max 2대를 이용한 Qwen 3.8 Flash
요약
본 기사는 Qwen 3.8 Flash와 같은 대규모 MoE 모델을 여러 종류의 장치(게이밍 PC 2대, M4 Pro MacBook, iPhone 17 Pro Max 2대)에 분산하여 연결하고 구동하는 방법을 설명합니다. 이 시스템은 각 장치의 GPU/NPU 자원을 활용해 파이프라인 추측(pipelined speculation)을 구현함으로써 높은 처리 속도를 달성했습니다.
핵심 포인트
- 다중 디바이스를 이용한 MoE 모델 분산 구동 방식 제시
- 파이프라인 추측(Pipelined Speculation)으로 효율 극대화
- 장치 간 이더넷 및 USB-C 연결을 통한 고속 통신 구현
- 긴 컨텍스트 처리 능력과 속도 측정 결과 공유
면책 조항: 영상 대시보드의 사전 채우기(prefill) 속도는 캐시된 프롬프트 토큰을 다시 읽은 것처럼 계산하므로 높게 표시됩니다. 캡션에는 서버의 실제 종단 간(end-to-end) 수치가 표시되며, 아래 모든 내용도 마찬가지입니다. 화면에 표시되는 디코드(decode) 숫자는 정확합니다. 마지막 게시물 이후 저는 제가 가진 어떤 장치 하나에도 담기지 않는 것을 시도해보고 싶었습니다. Qwen 3.8 Flash Next는 레이어당 512개의 전문가를 가진 48개 레이어의 Mixture-of-Experts (MoE) 모델이며, 3비트로 압축하더라도 제 24GB MacBook보다 훨씬 큽니다. 하지만 저희 집에는 그 이상의 실리콘이 있습니다: RTX 2060 Super가 탑재된 게이밍 PC 하나(DDR4 32GB), RX 9060 XT가 탑재된 또 다른 게이밍 PC 하나(DDR5 16GB), M4 Pro MacBook, 그리고 iPhone 17 Pro Max 두 대입니다. 그래서 저는 이 다섯 가지를 하나의 모델로 연결했습니다. 분할 방식은 다음과 같습니다: PC 1 (2060 Super, 8 GB): 레이어 0–9, 출력 레이어, 그리고 모델 자체의 다중 토큰 예측 초안 헤드(draft head). MacBook Pro (M4 Pro, 24 GB): 레이어 10–29. 두 iPhone (A19 Pro): 레이어 10–18에 대해 각 토큰은 512개 전문가 중 10개를 선택합니다. Mac이 이 선택들을 USB-C를 통해 전송하고, 각 휴대폰의 GPU가 이를 실행하여 약 1ms 만에 답변을 내놓습니다. Mac은 가장 많이 사용된 전문가들을 자체 메모리에 유지하며 직접 실행합니다. PC 2 (9060 XT, 16 GB): 레이어 30–47. PC와 Mac은 이더넷으로 통신하고, 휴대폰들은 10 Gb/s USB-C로 통신합니다. 모든 가중치(weight)는 VRAM, 고정 RAM 또는 통합 메모리에 위치하므로 디스크에서 스트리밍되거나 스왑되는 것이 없습니다. 다섯 개의 장치를 순차적으로 사용하면 일반적으로 네 개가 대기해야 합니다. 이 트릭은 파이프라인 추측(pipelined speculation)입니다. PC 1의 초안 헤드가 다음 몇 개의 토큰을 추측하고, 전체 체인이 한 번에 이를 확인하며, 그 배치가 Mac을 통과하는 동안 휴대폰들과 PC 2, 그리고 PC 1은 이미 다음 것을 초안 작성하고 있습니다. 각 단계는 평균적으로 약 2.2개의 토큰을 생성합니다.
에이전트가 실제로 전송하는 것으로 측정했을 때 (temp 0.6, top-p 0.95, top-k 20, 미디엄 사고(medium thinking), 실제 코드 프롬프트, 탐욕적 방식 아님): 16k 컨텍스트: 작성 속도 42 tok/s, 프롬프트 읽기 속도 728–744 tok/s. 32k 컨텍스트: 작성 속도 39–41 tok/s, 프롬프트 읽기 속도 844–852 tok/s. 60k 컨텍스트: 작성 속도 37–39 tok/s, 프롬프트 읽기 속도 856–895 tok/s. 비디오의 에이전트 세션에서는 프롬프트가 캐시되어 있어 짧은 후속 턴(follow-up turn)이 약 반 초 만에 시작됩니다. 새로운 도구 출력(tool output)을 포함하는 턴은 고정적으로 약 2.9초와 새로운 토큰당 768 tok/s가 소요됩니다. 작성 속도는 해당 세션 전반에 걸쳐 평균 35 tok/s였는데, 이는 텍스트의 예측 가능성에 따라 변동하기 때문입니다. 저는 40을 넘는 폭발적인(bursts) 속도를 본 적이 있습니다. 이 레이아웃에서 긴 컨텍스트를 처리합니다. 69.6k까지 지원됩니다. PC 2의 16 GB가 한계점입니다. 두 번째 레이아웃은 두 개의 레이어를 PC 1로 옮기고 Mac과 휴대폰에는 8-bit KV를 유지합니다. 이 구성은 단일 프롬프트를 164k 토큰 이상 읽었고, 60k에서 31–33 tok/s로 작성했습니다. 전체 262k는 각 휴대폰이 하나의 어텐션 레이어 캐시(attention layer’s cache)를 보유해야 하며, 이것이 두 개의 A19가 분할 처리되는 방식입니다. A19 중 하나가 오늘 빠지게 되어 해당 테스트는 다음 순서입니다. 저는 더 많은 최적화로 속도를 높일 수 있다고 생각합니다. 긴 프롬프트의 빠른 읽기 속도. PC 2는 이 속도를 약 980 토큰/s으로 제한하는데, 이는 호스트 메모리 전문가(host-memory experts)가 512 토큰 배치당 PCIe를 한 번 교차하기 때문입니다. 최종 품질 검사. 모든 변경 사항은 구성상 정확하거나 분포상 정확하며, Mac의 전문가 캐시만 부분 합계(partial sums)를 다른 순서로 추가합니다. 오늘 변경된 내용에 대한 참조 대비 KL 체크는 아직 실행되지 않았습니다. 휴대폰이나 아이패드로 시도하여 얼마나 멀리 그리고 빠르게 갈 수 있는지 확인해 보세요! 다른 양자화(quants)와 함께라면 확실히 훨씬 더 빠르게 갈 수 있습니다. 곧 리포지토리로 오겠습니다. https://github.com/StayLameBro/backburner /u/StayLameBro가 제출했습니다 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기