FareedKhan-dev/kimi-k3-in-c

A 2.78-trillion-parameter Kimi K3 running inference on a single CPU in 8.24 GB of RAM. Portable C99: no BLAS, no framework, no GPU.

해결하는 문제

이 프로젝트는 Kimi K3 추론 엔진의 포터블 C99 구현을 제공하여 거대한 2.78조 파라미터 모델을 일반 소비자용 하드웨어에서 실행할 수 있게 합니다. 모델의 체크포인트 크기가 1.56TB에 달하더라도, 디스크에서 가중치를 스트리밍함으로써 RAM이 단 8GB인 시스템에서도 모델을 실행할 수 있도록 하여 극도로 높은 메모리 요구를 해결합니다.

작동 방식

엔진은 제한된 RAM에 모델을 맞추기 위해 여러 메모리 절약 기술을 사용합니다:

  • 스트리밍 트렁크: 밀도 높은 레이어(‘트렁크’)는 단일 파일로 패킹되어 디스크에서 스트리밍됩니다. 이로 인해 메모리 요구량이 조절 가능한 '다이얼'처럼 작동하며, 더 많은 RAM을 사용하면 속도는 빨라지지만 출력 품질에는 영향을 주지 않습니다.
  • 전문가 캐시: 라우팅된 전문가(1.45TB)는 메모리에 완전히 적재되지 않습니다. 대신 압축된 4비트 형식에서 바로 곱셈이 이루어지고, LRU 캐시를 통해 관리됩니다.
  • 아키텍처 최적화: 메모리 사용량을 줄이기 위해 KDA(고정 메모리 어텐션)와 MLA(다중 헤드 잠재 어텐션)를 구현합니다.
  • 영향 없음: 엔진은 BLAS, GPU, 또는 무거운 AI 프레임워크 없이 포터블 C99로 작성되었으며, libm과 OpenMP만을 사용하여 병렬 처리를 구현합니다.

대상 사용자

GPU 클러스터 없이도 로컬 CPU 전용 하드웨어에서 거대한 MoE(Mixture-of-Experts) 모델을 실행하고자 하는 연구자 및 개발자.

주요 특징

  • 극도의 메모리 효율성: 최소 8.24GB의 피크 RSS로 2.78조 파라미터 모델을 실행 가능.
  • 바이트 수준 동일 출력: 8GB 또는 224GB의 RAM에서 실행하더라도 동일한 결과를 생성.
  • 포터블 C99: GPU나 외부 AI 프레임워크 필요 없음. GCC 또는 Clang으로 빠르게 빌드 가능.
  • 유연한 메모리 프리셋: 랩톱, 데스크톱, 워크스테이션, 서버용 프리셋을 제공하여 사용 가능한 시스템 RAM에 따라 성능을 최적화할 수 있음.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트