드디어 개인 프로젝트에 대해 더 많은 것을 공유하게 되었습니다!
Resin은 빠르고 효율적인 LLM 추론 엔진을 구축하기 위한 런타임(runtime)입니다.
핵심 아이디어는 추론의 모든 일반적인 부분들을 재사용 가능하도록 만들고, 아키텍처/하드웨어 타겟별로 모델에 특화된 순전파(forward pass)와 커널(kernels)만 작성하는 것입니다.
엔진을 구축하려면:
- Resin의 코어 라이브러리를 가져옵니다 (Import).
- 관심 있는 모델과 특정 하드웨어(GPU 또는 TPU 또는 AMD)에 대한 순전파 및 원하는 모든 커널을 에이전트가 작성하도록 합니다.
그러면, 짠! 독립형 추론 엔진이 완성됩니다.
—
지난 한 달 동안 열심히 작업해왔고 (초기 게시물: https://t.co/imaTS7dXTT), 최근 주에는 DeepInfer의 영감을 받아 많은 기능과 병렬 처리 기능을 구현했습니다.
DeepSeek-V4.1-Flash의 경우, 자체적으로 완결성이 높고 다른 모델을 지원하며 메트릭스(metrics)와 HTTP 서버, 프리픽스 캐시(prefix cache)까지 갖추었음에도 불구하고 DeepInfer만큼 빠릅니다 (5~10% 이내 차이).
어제는 모델 작성용 스킬을 만들었고, Codex에게 밤새도록 이를 작업하도록 했습니다. 에이전트는 MTP를 사용하여 GLM-5.3-Flash 엔진을 구축했으며, B200(EP4)에서 최대 60,000 input tok/s와 16,000 output tok/s에 도달했습니다.
지금까지 추론 '바이브 코딩(vibe coding)'은 그다지 신뢰성이 높거나 성공적이지 않았습니다. 이는 사람들이 매번 처음부터 시작하여 스케줄러나 서버 계층에서 많은 까다로운 것들을 재발명하기 때문이라고 생각합니다. 하지만 공유된 코어(shared core)를 사용하면 수많은 추론 작업을 자동화할 수 있습니다.
가장 어려운 부분은 빠른 순전파를 작성하는 것입니다. 하지만 Resin은 단순히 라이브러리를 가져오는 것으로 이를 독립형 엔진으로 변환하며, 이는 AI에게 검증 가능한 목표가 됩니다.
코드: https://t.co/jyI9ENEMww
[quote @ekzhang1: 그래서... 이제 작동하게 만들었습니다. Rust로 작성된 추론 엔진의 코어는 약 3천 줄 정도입니다 (스케줄링, kv/swa/재귀 상태, 프리픽스 캐시, 멀티모달, 동적 배치 포함)
이후 Codex에게 다음 모델들을 구현하도록 요청했습니다 (MTP, cudagraphs, Blackwell에서 TP 사용):
- DeepSeekV4 Flash
- Gemma 3.8 27B
- GPT-OSS
- Inkling
(텍스트가 여기서 끝남)