foldl/chatllm.cpp
Pure C++ implementation of several models for real-time chatting on your computer (CPU & GPU)
해결하는 문제
ChatLLM.cpp는 컴퓨터의 CPU 또는 GPU에서 대규모 언어 모델(LLM)을 로컬로 실행할 수 있는 고성능, 메모리 효율적인 방법을 제공합니다. 클라우드 서비스에 의존하지 않고 실시간 멀티모달 채팅 및 검색 증강 생성(RAG)을 가능하게 하며, 10억 미만에서 3000억 개 이상의 파라미터를 가진 모델까지 지원합니다.
작동 원리
ggml 라이브러리를 기반으로 한 순수 C++ 구현으로 구축된 이 프로젝트는 int4/int8 양자화를 사용하여 메모리 사용량을 줄이고 추론을 가속화합니다. 객체 지향 방식을 채택하여 다양한 Transformer 기반 모델을 처리하며, 병렬 컴퓨팅과 최적화된 KV 캐시를 통해 성능을 최적화합니다. 또한 Hugging Face 형식의 모델을 커스텀 양자화 GGML 형식으로 변환하는 변환 도구(convert.py)를 포함하고 있습니다.
대상 사용자
낮은 하드웨어 요구 사양으로 다양한 LLM을 로컬에서 실행하고자 하는 사용자뿐만 아니라, Python, JavaScript, C, Nim 바인딩을 갖춘 C++ 기반 추론 엔진을 찾는 개발자를 위해 설계되었습니다.
주요 특징
- 멀티모달 지원: 텍스트, 이미지(비전), 오디오(음성) 및 TTS(텍스트 음성 변환) 처리 가능.
- RAG 통합: 검색 증강 생성(RAG) 내장 지원.
- 분산 추론: 분산 컴퓨팅을 위한 RPC 지원.
- 하드웨어 가속: GPU 가속 및 Vulkan 지원 포함.
- 유연한 양자화: 정규 표현 패턴을 사용하여 텐서별 맞춤형 양자화 가능.
- 폭넓은 모델 지원: Llama, Gemma, Qwen, InternVL를 포함한 방대한 모델과 호환 가능.