본문으로 건너뛰기

llama.cpp의 LFM2 및 LFM2MoE Tensor Split 지원

llama.cpp의 LFM2 Tensor Split이 RTX A5000 두 장에서 최대 33.9%의 프롬프트 처리량 향상을 기록했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

llama.cpp에 LFM2 및 LFM2MoE용 `--split-mode tensor` 지원이 추가됐습니다. NVLink와 NCCL로 연결한 RTX A5000 두 장에서 LFM2.5-2.6B의 프롬프트 처리량은 양자화 설정에 따라 24.0~33.9% 증가했고, 출력 품질 지표의 변화는 대체로 작았습니다. 다만 LFM2.5-8B-A1B BF16은 프롬프트 처리량이 35.1% 감소해 모델과 정밀도별 성능 측정이 필요합니다.

합의점 vs 논쟁점

합의점

  • Tensor Split 적용 전후의 모델 품질 차이는 대부분의 측정에서 작게 나타났습니다. PPL, KLD, Same top p를 함께 비교했고, LFM2.5-2.6B F16과 BF16에서는 Median KLD가 0.000097, Same top p가 99.294 ± 0.166이었습니다. 수치 재현을 위해 저장소 Markdown 말뭉치와 `llama-perplexity`를 사용한 점도 공통된 근거입니다.
  • 두 장의 RTX A5000을 NVLink와 NCCL로 연결한 환경에서 다수의 모델·양자화 설정이 프롬프트 처리량과 토큰 생성 속도 향상을 보였습니다. LFM2.5-2.6B Q5_K_M은 pp4096에서 31.6%, tg512에서 17.0% 증가했고, LFM2.5-VL-3B BF16은 각각 22.9%와 34.7% 증가했습니다. 다만 LFM2.5-8B-A1B BF16의 pp4096은 35.1% 감소해 설정별 검증이 필요합니다.

논쟁점

  • LFM2.5-8B-A1B BF16에서는 Tensor Split 적용 후 pp4096 처리량이 5777.9에서 3751.0으로 35.1% 감소했습니다. 같은 설정의 tg512는 160.2에서 198.1로 23.6% 증가해 프롬프트 처리와 생성 단계의 결과가 엇갈렸습니다. 이 사례는 Tensor Split의 성능 이득을 모델 전체에 일반화하기 어렵게 만듭니다.

실용적 조언

  • LFM2 계열을 두 GPU에서 실행할 때는 `--split-mode tensor`를 켜기 전후로 pp4096과 tg512를 각각 측정해야 합니다. 프롬프트 처리와 토큰 생성은 서로 다른 통신·계산 비율을 가지므로 한쪽 결과만으로 전체 성능을 판단하기 어렵습니다. 특히 LFM2.5-8B-A1B BF16처럼 단계별 방향이 달라지는 설정은 별도 검증이 필요합니다.
  • 출력 품질을 확인하려면 `llama-perplexity`로 동일한 Markdown 말뭉치를 사용하고 PPL, Median KLD, Same top p를 함께 비교하는 방식이 적합합니다. 원문 실험에서는 LFM2.5-2.6B F16과 BF16의 Median KLD가 0.000097, Same top p가 99.294 ± 0.166으로 측정됐습니다. 모델과 양자화 형식을 바꾸면 결과가 달라질 수 있으므로 Q4, Q8, F16 또는 BF16별 측정을 분리해야 합니다.

섹션별 상세

llama.cpp에 `--split-mode tensor` 옵션을 추가해 lfm2와 lfm2moe 모델군의 Tensor Split 실행을 지원했습니다. `test-llama-archs`가 모든 아키텍처에서 통과했고, 두 모델 유형의 Meta NMSE가 약 1e-14 수준으로 측정돼 변환 오차가 매우 작았습니다. 이는 기능 추가가 모델 출력의 수치적 동작을 거의 바꾸지 않았다는 근거입니다.
저장소의 Markdown 파일로 `llama-perplexity`를 실행해 `--split-mode` 설정별 PPL과 KLD를 비교했습니다. LFM2.5-2.6B의 Q4_0에서는 PPL이 19.6816에서 19.642420으로, F16에서는 16.1949에서 16.256477로 바뀌었고, F16의 Median KLD는 0.000097, Same top p는 99.294 ± 0.166이었습니다. LFM2.5-8B-A1B의 Q4_K_M은 Median KLD 0.015990과 Same top p 91.216 ± 0.561로 상대적으로 차이가 컸지만, 전체 결과는 유의미한 품질 변화가 없다는 판단에 가까웠습니다.
NVLink와 NCCL로 연결한 RTX A5000 두 장에서 프롬프트 처리와 토큰 생성을 측정했습니다. LFM2.5-2.6B Q5_K_M은 pp4096 처리량이 9567.0에서 12591.3으로 올라 31.6% 증가했고, tg512는 230.2에서 269.3으로 17.0% 증가했습니다. LFM2.5-VL-3B BF16도 pp4096에서 10483.4에서 12889.2로 22.9%, tg512에서 113.9에서 153.5로 34.7% 향상됐지만, LFM2.5-8B-A1B BF16의 pp4096은 5777.9에서 3751.0으로 35.1% 감소했습니다.
성능 향상 폭은 양자화 형식과 모델에 따라 달랐습니다. LFM2.5-2.6B에서는 pp4096 증가율이 24.0~33.9%였고 tg512 증가율은 8.3~34.7%였으며, LFM2.5-8B-A1B Q4_K_M은 pp4096 28.8%, tg512 2.3% 증가에 그쳤습니다. 따라서 Tensor Split은 모든 설정에서 동일한 속도 이득을 보장하는 기능이 아니라 GPU 간 분할 비용과 모델 구조에 따라 효과가 달라지는 실행 경로입니다.

용어 해설

Tensor Split
Tensor Split은 하나의 모델 텐서 연산을 여러 GPU에 나눠 배치하는 실행 방식입니다. llama.cpp에서는 모델 가중치와 연산을 GPU 간에 분산해 메모리와 계산 자원을 함께 활용하며, 이 글에서는 LFM2 계열의 다중 GPU 처리량을 높이는 데 쓰였습니다.
정규화 평균 제곱 오차(NMSE)
NMSE는 기준값과 비교값의 차이를 제곱해 평균낸 뒤 정규화한 오차 지표입니다. 값이 작을수록 Tensor Split 적용 전후의 수치가 가깝다는 뜻이며, 글에서는 두 모델 유형 모두 약 1e-14 수준으로 보고됐습니다.
쿨백-라이블러 발산(KLD)
KLD는 두 확률 분포가 얼마나 다른지 측정하는 지표입니다. 글에서는 Tensor Split 적용 전후 모델의 출력 분포를 비교하는 데 사용했으며, LFM2.5 모델군에서 중앙값이 낮고 큰 변화가 없었다고 기록했습니다.
퍼플렉서티(Perplexity)
Perplexity는 언어 모델이 텍스트를 얼마나 잘 예측하는지 나타내는 지표로, 일반적으로 낮을수록 예측 성능이 좋습니다. 글에서는 저장소의 Markdown 파일을 작은 말뭉치로 사용해 Tensor Split 전후의 PPL을 비교했습니다.
NCCL
NCCL은 여러 NVIDIA GPU 사이의 통신을 처리하는 라이브러리입니다. 이 실험은 NVLink로 연결한 RTX A5000 두 장에서 NCCL을 사용해 LFM2 계열의 다중 GPU 성능을 측정했습니다.

언급된 도구

llama.cpp추천

LFM2 및 LFM2MoE 모델군에서 `--split-mode tensor`를 사용한 다중 GPU 추론과 성능 측정에 사용됐습니다.

llama-perplexity중립

Markdown 파일 말뭉치에서 Tensor Split 전후의 PPL과 KLD를 비교하는 데 사용됐습니다.

NCCL중립

NVLink로 연결한 RTX A5000 두 장 사이의 GPU 통신에 사용됐습니다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 21.수집 2026. 08. 21.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.