antirez의 ds4를 Qwen3.8 Flash Next로 줄여 Metal에서 구동하고 개선한 결과
요약
작성자는 기존의 대규모 코드베이스(ds4)를 Qwen3.8 Flash Next 모델과 Metal 백엔드에 최적화하기 위해 획기적으로 축소했습니다. 이 과정을 통해 디코딩 속도와 MTP 성능이 크게 향상되었으며, 코드를 작게 만드는 것이 최적화 비용을 줄이고 안전성을 높이는 핵심임을 입증했습니다.
핵심 포인트
- 코드베이스를 대폭 축소하여 컨텍스트 창 내에서 전체 코드 트리를 관리 가능하게 함.
- Metal 백엔드를 프로덕션 표준으로 채택하고, 성능 향상(MTP 등)을 달성함.
- 축소된 코드는 최적화 비용 절감 및 안전한 개발 프로세스를 보장하는 핵심 전략임.
- 사용자 맞춤형 모델/하드웨어에 맞춰 축소된 ds4를 에이전트와 함께 쉽게 재구축할 수 있음.
ds4(DwarfStar)에 작은 풀 리퀘스트 하나가 병합되었습니다. 아직 대기 중인 것이 몇 개 더 있습니다. 불평하지 않겠습니다. Antirez는 README에 명확히 적어 놓았습니다. 코딩 에이전트와 함께라면 누구나 자신의 하드웨어와 모델에 맞춰 엔진을 튜닝할 수 있고, 그가 모든 것을 검토할 수는 없다고요. 그러자 저는 생각하게 되었습니다.
만약 모두가 에이전트를 사용해 패치를 적용하는 계획이라면, 패치의 실제 비용은 단순히 코드 변경만이 아닙니다. 또한 에이전트가 실제로 건드리는 내용을 알기 위해 읽어야 하는 토큰의 양도 포함됩니다. ds4 코드는 85k 라인 파일 하나에 DeepSeek, GLM, Qwen을 Metal, CUDA, ROCm에서 모두 구동합니다. 저는 M5 Max와 128GB RAM으로 Qwen3.8 Flash Next를 실행하고 있습니다. 이 파일의 나머지 모든 것은 저에게나 제 에이전트에게는 노이즈입니다.. 매번 에이전트가 실행될 때마다 전체 내용을 다시 읽어야 합니다.
그래서 저는 그것을 뜯어냈습니다. 단순히 ifdef한 것이 아닙니다. 삭제했습니다. ds4.c 파일은 85k 라인에서 45k 라인으로 줄었습니다. 이제 전체 코드 트리가 컨텍스트 창 안에 들어갑니다. Metal이 이제 프로덕션 백엔드입니다. CPU 경로는 테스트용 참조로 유지됩니다.
제 추측은 코드를 작게 만들면 최적화가 더 저렴하고 안전해질 것이라는 것이었습니다. 결과는 다음과 같습니다:
Q2: 디코딩 속도가 9–13% 향상되었고, 프리필(prefill)은 % 향상되었습니다 (최대 64k 컨텍스트). 그리고 MTP는 75.8에서 86.7 tok/s로 증가했습니다.
Q4: 프리필이 2–11% 향상되었고, MTP는 77.8에서 85.9 tok/s로 상승했습니다.
출력은 모든 단계에서 기존 ds4와 비교하여 비트-정확도(bit-exact)를 유지합니다. KV 캐시 양자화나 근사 커널을 사용하지 않았습니다. 모든 변경 사항은 패리티 체크—GGUF, 그리디 디코딩으로 동일한 토큰—그리고 이전 빌드와의 교차 인터리브 A/B 벤치마크를 통과해야 합니다.
더 작아진 코드베이스 덕분에 ds4의 PR들을 검토할 수 있었습니다. 저는 제 버전의 모델로 테스트하고 작동하는 것들은 포팅했습니다. 총 스무 개의 커밋이 채택되었고, 약 서른 개는 폐기되었습니다. 결과는 리포지토리에서 확인할 수 있습니다.
또한 전문가(experts)를 위한 SSD 스트리밍을 추가했습니다. 이는 토큰 단위로 거주 실행(resident run)과 일치합니다. 시뮬레이션된 48GB 머신에서는 Q2가 27 tok/s로 작동하며, MTP를 사용하면 약 35 tok/s에 도달합니다.
포크(fork)는 여전히 업스트림(upstream)을 따라갑니다. rerere와 패리티 체크를 사용하여 git merge upstream/main을 실행합니다. 따라서 antirez의 수정 사항들이 계속 유입됩니다. 무엇을 삭제하고, 무엇을 유지하며, 어떻게 동기화할지에 대한 전체 과정은 StarForge라는 저장소에 있습니다. 저는 각 모델마다 네 개의 '자식(children)' 저장소를 가지고 있습니다. StarForge 내의 어떤 것도 Qwen이나 Metal에 의존하지 않습니다. 만약 사용자의 모델 또는 CUDA에 맞춰 축소된 ds4가 필요하다면, 그냥 클론하여 에이전트와 함께 체크리스트를 실행하면 됩니다.
저장소: sf-q3-8flash (README에 표 포함). 이 설정은 하나의 머신과 하나의 모델을 사용합니다. 만약 Apple Silicon을 사용하고 있다면, 가능하다면 기본 ds4와 나란히 비교할 수 있는 수치를 보고 싶습니다.
제출자 /u/Chida82
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 Reddit AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기