CPU 전용 환경에서 GLM-5.2를 로컬로 돌려보기! (대형 모델을 위한 가난한 자의 장비)
요약
Dual Xeon CPU와 대용량 RAM 환경에서 GLM-5.2 양자화 모델을 로컬로 구동한 실험 사례입니다. ik_llama.cpp를 활용해 NUMA 노드 격리로 성능을 최적화하며, CPU 기반 추론의 실용성을 확인했습니다.
핵심 포인트
- Dual Xeon CPU와 768GB RAM 환경에서 GLM-5.2 구동
- ik_llama.cpp를 사용하여 기본 llama.cpp 대비 성능 향상
- NUMA 노드 격리를 통해 메모리 지연 시간 문제 해결
- MTP 초안 작성 시 약 4~5.5 tok/s의 생성 속도 기록
- 대형 모델의 로컬 CPU 추론 가능성 및 코딩 성능 확인
이것은 UD-Q2-K_XL 양자화 (quant) 모델입니다.
하드웨어 사양은 다음과 같습니다:
모델: Dell PowerEdge R740
CPU: Dual Xeon 6248R (각 24 코어)
RAM: 768 GB (모든 메모리 채널 점유)
저는 CPU 전용 추론 (inference) 시 기본 llama.cpp보다 상당한 성능 향상을 제공하는 ik_llama.cpp를 사용하고 있습니다.
불행히도, 저희처럼 듀얼 CPU를 사용하는 사람들은 성능을 급격히 떨어뜨리는 NUMA 노드와 소켓 간 메모리 지연 시간 (cross-socket memory latency)을 걱정해야 합니다. 그래서 저는 CPU 코어와 메모리를 단일 노드로 격리하여, 사용할 수 있는 24 코어와 384 GB의 노드 로컬 RAM (node-local RAM)을 확보했습니다. 모델 가중치 (model weights)와 1M 컨텍스트 (context)를 모두 RAM에 완전히 올려두었습니다.
기본적인 채팅에서는 모든 상황을 고려했을 때 괜찮은 편입니다. MTP 초안 작성 (MTP drafting) 기능을 켰을 때 4 ~ 5.5 tok/s의 생성 속도를 보여줍니다. 물론 코딩할 때처럼 컨텍스트가 커질수록 속도는 점진적으로 느려집니다. opencode에서 작업을 시작할 때는 약 3 tok/s 정도가 나옵니다.
말이 나온 김에, 스크린샷에 출력 결과가 담긴 제가 입력한 프롬프트를 공유합니다:
C99로 이식 가능한 6502 CPU 에뮬레이터를 작성하기 위한 계획을 세워줘. CPU만 해당됨. 사이클 정확도 (Cycle accuracy)는 요구되지 않음. 더 넓은 시스템 에뮬레이터에 쉽게 연결될 수 있는 방식으로 작성되어야 함. 메모리 읽기/쓰기 함수는 사용되는 프로젝트에서 외부적으로 제공될 것:
uint8_t mem_read(uint16_t address)
void mem_write(uint16_t address, uint8_t value)
네, 맞습니다. 물론 이 하드웨어에서 정말 진지하게 사용할 수 있는 수준은 아니지만, 이 괴물 같은 모델을 로컬에서 조금이라도 다뤄보고 싶었습니다. 코딩 면에서는 정말 프런티어 (frontier) 급의 느낌을 줍니다. 이렇게 강력한 모델을 우리 자신의 하드웨어에서 실제로 실행할 수 있다는 사실이 그저 기쁘며, 다음에 올 것들에 대해 기대가 됩니다!
submitted by /u/TheWolfOfWalmart
[link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기