Back to Headlines

KVSplit, Apple 실리콘에서 대형 LLM 실행 시 메모리 59% 절약

3달 전

GitHub - dipampaul17/KVSplit: Apple Silicon에서 더 큰 LLM(대형 언어 모델)과 더 긴 맥락을 실행하기 위해 KV 캐시 양자화에 차별화된 정밀도를 사용합니다. KVSplit은 8비트 키와 4비트 값으로 설정되어 메모리 사용량을 59% 줄이고 1% 미만의 품질 손실을 가져옵니다. 벤치마킹, 시각화, 그리고 한 줄 명령어로 설치할 수 있으며, M1, M2, M3 맥북에서 Metal 지원을 최적화했습니다. 개요 KVSplit은 Apple Silicon 기반 맥북에서 더 큰 맥락 창과 중량 LLM을 실행하기 위해 주의 메커니즘의 KV 캐시에서 키와 값을 서로 다른 정밀도로 양자화하는 방법을 제공합니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다: 주요 발견 FP16 (기본): 176MB (100%), 54,360 토큰/초, 퍼플렉시티 변화 없음 K8V8 (8비트): 93.5MB (47%), 51,503 토큰/초, +0.03% 퍼플렉시티 증가 K8V4: 71.5MB (41%), 57,438 토큰/초, +0.86% 퍼플렉시티 증가 K4V8: 71.5MB (41%), 58,690 토큰/초, +6.06% 퍼플렉시티 증가 K4V4 (4비트): 49.5MB (28%), 55,193 토큰/초, +6.15% 퍼플렉시티 증가 시퀀스 길이별 메모리 절약 | 구성 | 128 토큰 | 2048 토큰 | 4096 토큰 | 8192 토큰 | |------|----------|-----------|-----------|-----------| | FP16 (기준) | 5.5MB | 44.0MB | 88.0MB | 176.0MB | | K8V8 (8비트) | 2.92MB | 23.38MB | 46.75MB | 93.5MB | | K8V4 (혼합) | 2.23MB | 17.88MB | 35.75MB | 71.5MB | | K4V8 (혼합) | 2.23MB | 17.88MB | 35.75MB | 71.5MB | | K4V4 (4비트) | 1.55MB | 12.38MB | 24.75MB | 49.5MB | 기능 ⚡ 한 줄 명령어로 설치 가능 ?️ 빠른 비교: 모델과 함께 즉시 이점 확인 가능 ? 인상적인 결과: 메모리 사용량을 줄이는 데 더불어 추론 속도를 5-15% 향상시키는 효과 ? 메모리 감소: 8K 토큰에서 K4V4 구성으로 72% 메모리 절약 ? 성능 영향: K4V8 구성으로 8.0% 속도 향상 ? 프로젝트 구조: 벤치마킹, 시각화, 자동 요약 통계 제공 ? 시각화 도구: 메모리 절약 시각화 가능 ? Apple Silicon 최적화: M1, M2, M3 맥북에서 Metal 지원 ? 명령줄 인수: 스레드 수, 주의 최적화, KV 캐시 비트 설정, 맥락 크기, 생성 토큰 수, 입력 파일, 모델 경로 등 추천 설정 제공 과학적 통찰 KV 캐시 메모리는 각 토큰의 키와 값 벡터 저장에 의해 지배됩니다. 연구를 통해 키는 값보다 양자화에 훨씬 민감하다는 중요한 통찰을 얻었습니다. 이 불균형을 활용하면 메모리 사용률을 효율적으로 줄일 수 있으며, 모델 품질을 훼손하지 않고 더 긴 맥락 창과 더 큰 모델을 소비자 하드웨어에서 실행할 수 있게 됩니다. 사용 예 다양한 KV 캐시 정밀도로 실행: bash python kvsplit.py --model MODEL_PATH --input INPUT_FILE --context 32768 --tokens 100 --kvq-key 8 --kvq-val 4 고급 벤치마킹 전면적인 성능 분석을 위해 전체 벤치마킹 스크립트를 사용할 수 있습니다: bash python bench.py --model MODEL_PATH --input INPUT_FILE --context 32768 --tokens 100 --threads 8 --flash-attn 벤치마킹 스크립트는 다음과 같은 측정값을 제공합니다: - 토큰 처리 속도 - 메모리 사용량 - 퍼플렉시티 변화 결과는 CSV 또는 JSON 형식으로 저장되며, 자동 요약 통계와 함께 출판 가능한 플롯을 생성하는 시각화 스크립트가 포함되어 있습니다. 라이선스 MIT 라이선스 기여 기여를 환영합니다! 이슈를 열거나 풀 리퀘스트를 제출하세요. 구성 추천 -t 8: 일반적으로 Apple Silicon 칩에 최적화된 스레드 수 --flash-attn: Apple Silicon에서 주의 최적화 활성화 --kvq N: 키와 값 비트를 모두 N으로 설정 (K8V4 구성에서는 --kvq 8 사용) --kvq-key N: 키 비트만 설정 (품질에 큰 영향) --kvq-val N: 값 비트만 설정 (품질에 작은 영향) -c N: 토큰 단위의 맥락 크기 (더 긴 맥락일수록 KVSplit 이점 큼) -n N: 생성할 토큰 수 (필요에 따라 조절) -f FILE: 문서 처리용 입력 파일 -m MODEL: .gguf 모델 파일 경로 미래 로드맵 더 많은 모델 지원 성능 최적화 개선 사용자 인터페이스 개발 KVSplit은 Apple Silicon 기반 맥북에서 대형 언어 모델의 메모리 사용량을 크게 줄이며, 성능을 향상시키는 데 성공했습니다. 이는 특히 소비자 하드웨어에서 긴 맥락 창을 요구하는 어플리케이션에서 매우 유용하게 작용할 것입니다. 전문가들은 이 프로젝트가 딥러닝 모델의 실용성을 크게 높였다고 평가하며, Apple Silicon 최적화를 통해 맥북 사용자의 경험을 크게 개선했습니다.

Related Links

KVSplit, Apple 실리콘에서 대형 LLM 실행 시 메모리 59% 절약 | 헤드라인 | HyperAI초신경