샘에게 사과합니다, 제 "꽤 형편없는" 홈 DRAM이 이제 100%입니다: Strata를 패치하여 표준 게이밍 GPU에서 DeepSeek
요약
본 기사는 Strata 프레임워크를 패치하여 DeepSeek V4.1 Flash 모델을 소비자급 하드웨어에서 1M 컨텍스트로 구동하는 방법을 다룹니다. KV 스플라이스(KV splice)와 레지던트 전용 라우팅(Resident-only routing) 기능을 추가함으로써, 기존의 프롬프트 읽기 지연 시간 문제를 해결하고 시스템 DRAM 활용도를 극대화했습니다.
핵심 포인트
- DeepSeek V4.1 Flash 모델을 Strata를 통해 로컬에서 구동 가능합니다.
- KV 스플라이스는 이미 처리된 내용을 재읽지 않아 효율성을 높입니다.
- 레지던트 라우팅은 RAM이 프롬프트 읽기 과정에 효과적으로 활용되게 합니다.
- 패치 결과, 홈 DRAM을 실제로 활용하여 로컬 LLM 구동의 실용성이 높아졌습니다.
Sam Altman은 최근 "글로벌 할당 관점에서 볼 때, 전 세계 사람들이 제한된 DRAM 공급량의 일부를 자신의 컴퓨터에 가지고 있고, 그것을 겨우 5% 정도만 사용하고 있는 것은 상당히 형편없는 일이다"라고 말했습니다. 이 도전에 응합니다. 여기 제 "꽤 형편없는" 홈 환경 구성입니다: RX 9070 XT 16 GB, 5800X3D, 현재 PC의 나머지 부품보다 가치가 더 높은 DDR4 64 GB, 그리고 PCIe 3.0 NVMe를 사용했습니다. 이 시스템은 Strata를 통해 DeepSeek V4.1 Flash 모델을 1M 컨텍스트(IST-DAS 1.75 bpw; 실험실 보고서 기준 전체 모델 작업 평균의 98.7%)로 완전히 오프라인 상태에서 구동하며, 전문가들(experts)이 VRAM, RAM, SSD 전반에 걸쳐 분산되어 있습니다. 생성 속도는 약 7 tok/s로 괜찮았습니다. 문제는 프롬프트 읽기였습니다: 새로운 OpenCode 세션마다 전체 약 37K 토큰의 시스템 프롬프트와 도구를 다시 읽어 들였고, 첫 번째 토큰이 나오기까지 약 100초가 걸렸습니다. 이는 데이터센터 없이 경험하는 데이터센터급 대기 시간이었습니다. 그래서 제가 DeepSeek 엔진을 패치했습니다. 두 가지 변경 사항이 있습니다: 1. KV 스플라이스(KV splice): 이미 읽은 내용은 다시 읽지 않도록 합니다. 에이전트들은 세션별 텍스트(작업 디렉토리, 날짜, 프로젝트 CLAUDE.md, 무작위 ID가 붙은 스킬 경로)를 시스템 프롬프트 안에 넣기 때문에, 매번 새로운 세션마다 접두사 캐시 미스(prefix cache misses)가 발생했습니다. 이제 엔진은 새 프롬프트를 모든 저장된 대화와 정렬하고, 오래된 줄을 캐시 상태에서 잘라내며(캐시된 행들을 아래로 이동시키고, 윈도우 링을 회전시키고, RoPE 간격 기록), 변경된 줄과 사용자 메시지만 읽습니다. 변경된 줄은 전체 줄 단위로 움직이므로 모델이 조각난 부분을 절대 보지 못합니다. 2. 레지던트 전용 라우팅(Resident-only routing): RAM이 제 역할을 하도록 만듭니다. 짧은 프롬프트조차도 모든 레이어의 거의 모든 전문가를 건드리기 때문에, 프롬프트 읽기는 대부분 SSD에서 스트리밍되었습니다: 1.2K 토큰짜리 프롬프트를 처리하는 데 58 GB가 필요했습니다. 프롬프트 읽기 동안만, 토큰들은 이미 VRAM이나 RAM에 자리 잡고 있는 전문가들로부터 가져옵니다. 생성은 정상적으로 라우팅됩니다. 결국 홈 DRAM도 실제로 활용하게 하면 상당히 유용하다는 것이 밝혀졌습니다. 결과(동일한 장비)는 본문에서 볼 수 있습니다. 주의사항: HIP (gfx1201) 전용입니다. CUDA, SYCL 또는 Metal은 구축하거나 테스트하지 않았습니다.
스플라이스(splice)는 근사치입니다. 잘라낸 텍스트를 컨텍스트로 사용하여 이후 토큰들을 계산했습니다. 짧은 가이드라인에서는 중요성을 느끼지 못했지만, 공식적인 평가는 없습니다. 레지던트 라우팅(Resident routing)은 답변을 약간 변경합니다 (프롬프트 읽기 중 전문가 대체). 제 하드 코딩 스위트(hard coding suite)는 움직이지 않았습니다 (양방향 12/13). 하지만 각각 한 번씩 실행한 것입니다. 두 기능 모두 해당 브랜치에서 기본적으로 활성화되어 있으며, STRATA_DS4_REORDER=0 및 STRATA_DS4_PROMPT_RESIDENT=0을 설정하여 비활성화할 수 있습니다. 또한 37K 토큰 프롬프트에서 발생했던 GPU 페이지 폴트(page fault)에 대한 한 줄 수정 사항을 포함했습니다 (#4912). 브랜치: https://github.com/PhialsBasement/Strata/tree/dsv41-kv-splice
빌드 (HIP 예시): git clone -b dsv41-kv-splice https://github.com/PhialsBasement/Strata.git -> cd Strata -> cmake -S . -B build-hip -G Ninja -DCMAKE_BUILD_TYPE=Release -DSTRATA_ENABLE_HIP=ON \ -DSTRATA_ENABLE_CUDA=OFF -DCMAKE_HIP_ARCHITECTURES=gfx1201 -DSTRATA_BUILD_DSV41=ON -> cmake --build build-hip --target strata-dsv41 DS4_CHUNK_MIN=16 STRATA_DSV41_EXE=$PWD/build-hip/strata-dsv41 strata launch --preset <your preset>
만약 OpenCode를 사용한다면, 모델 항목에 "interleaved": { "field": "reasoning_content" }도 추가해야 합니다. 그렇지 않으면 OpenCode가 초기 추론(earlier reasoning)을 누락하고 캐시 미스(cache misses)가 더 자주 발생합니다. 상위 이슈 상세 정보: #4921 (splice), #4936 (resident routing).
다른 하드웨어, 특히 CUDA에서 시도해 본다면, 해당 스레드의 수치를 제공해주시면 병합(merge)하는 데 큰 도움이 될 것입니다. Sam pissman의 활용률 보고서: VRAM에 전문가를 보유하고, RAM에 전문가를 보유하며, SSD가 나머지 데이터를 최대 대역폭으로 스트리밍합니다. 이 시스템에서 유일하게 유휴 상태인 구성 요소는 DRAM 가격 덕분에 제 지갑뿐입니다. 제출자: /u/HearMeOut-13 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기