Login

구글에서 개발한 경량 독립형 C++ 추론 엔진으로, Gemma 대규모 언어 모델을 실행하는 데 사용됩니다.

Apache-2.0C++ 6.5kgooglegemma.cpp Last Updated: 2025-07-12

Gemma.cpp 프로젝트 상세 소개

프로젝트 개요

Gemma.cpp는 Google에서 개발한 경량 독립형 C++ 추론 엔진으로, Google의 Gemma 대규모 언어 모델을 실행하는 데 특화되어 있습니다. 이 프로젝트는 2023년 가을 Austin Huang과 Jan Wassenberg에 의해 시작되었으며, 2024년 2월에 공식 출시되었습니다.

핵심 기능

1. 경량 설계

  • 최소한의 의존성: 다른 프로젝트에 쉽게 임베드될 수 있도록 최소한의 외부 의존성으로 설계되었습니다.
  • 간결한 코드: 핵심 구현은 약 2K 라인, 지원 도구는 약 4K 라인으로 구성된 간결한 코드입니다.
  • 단순한 아키텍처: 단순성과 수정 가능성에 중점을 둡니다.

2. 효율적인 추론

  • CPU 최적화: CPU 추론에 특화되어 최적화되었습니다.
  • SIMD 지원: Google Highway 라이브러리를 통해 휴대용 SIMD 명령어를 사용합니다.
  • 낮은 지연 시간: 성능 및 낮은 지연 시간 추론 최적화에 중점을 둡니다.

3. 다중 플랫폼 지원

  • 크로스 플랫폼: CPU 및 GPU 추론을 모두 지원합니다.
  • 다중 정밀도: 32비트 전체 정밀도부터 4비트 저정밀도까지 다양한 정밀도 수준을 지원합니다.
  • 유연한 배포: 다양한 하드웨어 구성에서 실행할 수 있습니다.

기술 아키텍처

추론 엔진 설계

Gemma.cpp는 독립적인 C++ 구현을 채택하여 복잡한 의존성을 피합니다. 설계 철학은 다음과 같습니다:

  • 실험 및 연구 사용 사례에 집중
  • CPU 추론 설계 공간 탐색
  • 추론 알고리즘 최적화 연구

양자화 지원

프로젝트는 다양한 양자화 기술을 지원합니다:

  • QAT 모델: QAT(양자화 인식 훈련) 모델을 지원합니다.
  • GGUF 형식: GGUF 형식의 양자화 모델과 호환됩니다.
  • 다중 정밀도 수준: 4비트부터 32비트까지 다양한 정밀도 선택이 가능합니다.

지원 모델

Gemma 모델 시리즈

  • Gemma 3: 최신 Gemma 3 시리즈 모델
  • Gemma 3n: 모바일 장치에 최적화된 아키텍처
  • 다양한 파라미터 규모: 다양한 파라미터 수의 모델 변형을 지원합니다.

모델 기능

  • 다국어 지원: 140개 이상의 언어를 지원합니다.
  • 긴 컨텍스트: 128k 토큰 컨텍스트 창을 지원합니다.
  • 함수 호출: 복잡한 작업을 위한 함수 호출 기능을 지원합니다.
  • 멀티모달: 텍스트 및 시각적 추론 능력을 지원합니다.

사용 시나리오

1. 연구 및 실험

  • 대규모 언어 모델 추론 알고리즘 연구
  • CPU 추론 성능 최적화 실험
  • 모델 양자화 기술 탐색

2. 임베디드 애플리케이션

  • 모바일 장치에서의 AI 추론
  • 엣지 컴퓨팅 시나리오
  • 자원 제약 환경의 AI 애플리케이션

3. 프로덕션 배포

  • 고성능 추론 서비스
  • 실시간 AI 애플리케이션
  • 낮은 지연 시간 추론 요구 사항

설치 및 사용

환경 요구 사항

  • C++ 컴파일러 지원
  • CMake 빌드 시스템
  • 적절한 하드웨어 구성 (CPU/GPU)

기본 사용 절차

  1. 프로젝트 저장소 클론
  2. 추론 엔진 빌드
  3. 모델 가중치 다운로드
  4. 추론 작업 실행

코드 예시

// 기본적인 추론 코드 구조
#include "gemma.h"

int main() {
    // 모델 초기화
    // 가중치 로드
    // 추론 실행
    return 0;
}

성능 이점

1. 효율적인 메모리 사용

  • 최적화된 메모리 관리
  • 성능과 메모리 사용의 균형을 위한 다양한 정밀도 수준 지원
  • 단일 GPU 또는 TPU 애플리케이션에 적합

2. 빠른 추론 속도

  • 특화된 CPU 추론 경로 최적화
  • SIMD 명령어 가속
  • 낮은 지연 시간 응답

3. 유연한 배포 옵션

  • 소비자용 GPU에서 실행 가능
  • 클라우드 및 엣지 배포 지원
  • 기존 시스템에 쉽게 통합 가능

생태계 통합

호환성

  • llama.cpp: GGUF 형식을 지원하여 llama.cpp 생태계와 통합 가능
  • Kaggle: Kaggle에서 모델 가중치 사용 가능
  • 개발자 도구: 완전한 개발자 도구 지원 제공

커뮤니티 지원

  • 활발한 오픈 소스 커뮤니티
  • 지속적인 업데이트 및 개선
  • 풍부한 문서 및 튜토리얼

보안 기능

ShieldGemma 2

프로젝트에는 Gemma 3 기반의 4B 파라미터 이미지 안전 검사기인 ShieldGemma 2도 포함되어 있습니다:

  • 위험 콘텐츠 감지
  • 성폭력 콘텐츠 식별
  • 폭력 콘텐츠 필터링
  • 사용자 정의 가능한 보안 정책

요약

Gemma.cpp는 전문적이고 효율적인 C++ 추론 엔진으로, 개발자에게 다양한 환경에서 Gemma 대규모 언어 모델을 실행할 수 있는 기능을 제공합니다. 경량 설계, 고성능 특성, 쉬운 통합 기능은 AI 추론 애플리케이션을 위한 이상적인 선택이 되게 합니다. 연구 실험이든 프로덕션 배포든, Gemma.cpp는 신뢰할 수 있는 솔루션을 제공할 수 있습니다.

Star History Chart