llama.cpp의 바탕 라이브러리 ggml, 1.0에서 낡은 API 정리
-
트렌드
- 21:50
- 5 회
- 0 건
ggml은 의존성 없이 C/C++로 짠 머신러닝용 텐서 라이브러리로, 다양한 칩에서 AI 모델을 돌리는 바탕이 돼요. 첫 정식 버전인 1.0.0은 오래된 API를 걷어 내고, FP8 지원과 여러 그래픽 장치별 속도 개선을 함께 담았어요.
주요 기술적 특징
- 가볍고 어디서나 도는 텐서 라이브러리: 텐서(숫자를 여러 차원으로 묶은 데이터)를 계산하는 라이브러리예요. 외부 의존성 없이 순수 C/C++로 만들었어요. x86, ARM, RISC-V, LoongArch, PowerPC, s390x, WebAssembly에서 돌아가요. CPU뿐 아니라 GPU, NPU, 브라우저까지 지원해요.
- 모델을 작게 줄이는 양자화: 양자화(숫자 정밀도를 낮춰 모델 크기와 메모리를 줄이는 기법)를 2비트부터 8비트까지 지원해요. MXFP4, NVFP4 같은 새 형식도 다뤄요. 실행 중에는 메모리를 새로 할당하지 않도록 설계했어요.
- 1.0.0의 정리 작업: 더 이상 권장하지 않던 공개 API와 오래된 DIAG_MASK 연산을 지웠어요. 그래서 기존 코드가 바로 빌드되지 않을 수 있어요. 기기끼리 연결하는 RPC 프로토콜도 v9로 올라, 호환되지 않는 상대는 거부해요.
- 새 기능과 속도 개선: CUDA에 FP8 지원이 들어갔고, 긴 문맥 처리 기법인 YaRN의 반올림 방식을 조절할 수 있게 됐어요. 쓰이지 않는 입력은 GPU로 올리지 않도록 스케줄러를 고쳤어요. CUDA·Metal·Vulkan·SYCL·OpenCL·WebGPU 등 장치별 최적화도 폭넓게 담겼어요.
- 라이선스와 개발 방식: MIT 라이선스예요. 핵심 라이브러리 수정은 llama.cpp 저장소에서 받도록 안내하고 있어요.
개발자들의 반응
- 한 개발자는 업그레이드할 때마다 같은 하드웨어에서 5~10%씩 빨라진다고 했어요. 직접 측정해 보니 5만 토큰짜리 긴 입력 처리 시간이 4분 22초에서 3분 59초로 줄었다고 전했어요.
- 성능이 낮은 AMD 그래픽카드를 쓴다는 한 사용자는 Vulkan만 지원되는 환경인데도 ggml 덕분에 쓸 만하다고 평가했어요.
- 반대로 특정 하드웨어 전용으로 만든 추론 엔진이 훨씬 빠르다는 지적도 있었어요. 다만 같은 개발자도 여러 엔진을 비교할 시간이 없다면 믿을 만한 선택이라고 덧붙였어요.
- 이에 대해 거의 모든 모델을 거의 모든 하드웨어에서 돌린다는 점이 핵심이고, 사용성·하드웨어 범위·정확도를 고루 갖췄다는 반론도 나왔어요.
기술적 의미와 한계
ggml은 한 가지 장치에서 최고 속도를 내기보다, 여러 칩에서 고르게 돌아가는 데 강점이 있어 보여요. 집에 있는 평범한 컴퓨터나 흔치 않은 그래픽카드로 AI 모델을 돌리려는 개발자에게 특히 쓸모가 있다고 해석할 수 있어요.
쓰기 전에 알아 둘 점도 있어요. 1.0.0은 낡은 API를 지웠기 때문에 ggml을 직접 쓰던 코드는 손봐야 할 수 있어요. RPC로 여러 기기를 묶어 쓰는 경우 모든 기기를 같은 버전으로 맞춰야 해요. 이번 릴리스의 개선이 실제로 얼마나 빨라졌는지는 공식 수치가 없어, 각자 환경에서 확인이 필요해요.