Repolode
google

google/gemma.cpp

GoogleのGemmaモデルをCPUで実行する、軽量でスタンドアロンなC++推論エンジン。

スター
7,079
フォーク
673
未解決の Issue
52
最終コミット
16 時間前

これは何?

gemma.cppは、Gemma-2、Gemma-3、PaliGemma-2モデル向けのミニマルなC++推論エンジンです。実験や研究を目的としており、デプロイ向けのC++ランタイムとPythonベースのMLフレームワークの中間に位置づけられます。読みやすく、変更や他のプロジェクトへの組み込みが容易な、小規模なコア実装を備えています。

Google Highwayによる移植性の高いSIMDを利用し、CPUのみで推論を実行します。カスタムfp8形式、bf16、f32、非一様4-bit量子化などの重み圧縮を行列乗算に直接統合しています。また、Gemmaの研究向けに逆伝播とAdam optimizerも備えています。

単一クエリとバッチクエリに対応したストリーミング機能付きのC++ API、基本的な対話型コマンドラインアプリ、pybind11経由のPythonバインディングを提供します。重みはKaggleからダウンロードし、Linux、Windows、macOSではCMakeまたはBazelを使ってビルドできます。

主な機能

  • 01Gemma-2、Gemma-3、PaliGemma-2の推論をCPUで実行します。
  • 02fp8、bf16、4-bit NUQなどの重み圧縮をGEMMに統合しています。
  • 03移植性の高いSIMDと実行時のISA選択にGoogle Highwayを使用します。
  • 04単一およびバッチ推論に対応した、ストリーミング機能付きのC++ APIを提供します。
  • 05基本的な対話型CLIとpybind11によるPythonバインディングを備えています。
  • 06研究向けに逆伝播とAdam optimizerを備えています。

ユースケース

  • Gemmaモデルの低レベルな推論最適化を試す。
  • 小規模なローカルLLMランタイムをC++アプリケーションに組み込む。
  • 研究目的で、CPUのみのマシン上でGemmaまたはPaliGemmaモデルを実行する。
  • コンパクトで読みやすいLLM実装を学ぶ。

クイックスタート

  1. 1

    CMake と Clang C++ コンパイラ(C++17 以降)をインストールします

  2. 2

    Kaggle からモデルの重みと tokenizer をダウンロードし(gemma2-2b-it-sfp を推奨)、アーカイブを展開します

    tar -xf archive.tar.gz
  3. 3

    CMake で gemma 実行ファイルを構成してビルドします

    cmake --preset make
  4. 4

    tokenizer と重みのファイルを指定して gemma を実行します

    ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs

使う前に知っておきたいこと

  • 推論は CPU のみで、GPU はサポートされていません。
  • 同意フォームへの同意後、Kaggle からモデルの重みをダウンロードする必要があります。
  • Windows でネイティブにビルドするには、clang-cl を含む Visual Studio Build Tools が必要です。代わりに WSL の使用を推奨します。
  • 本番環境へのデプロイではなく、実験や研究向けに設計されています。

トピック

よくある質問

gemma.cpp とは?
GoogleのGemmaモデルをCPUで実行する、軽量でスタンドアロンなC++推論エンジン。 gemma.cppは、Gemma-2、Gemma-3、PaliGemma-2モデル向けのミニマルなC++推論エンジンです。実験や研究を目的としており、デプロイ向けのC++ランタイムとPythonベースのMLフレームワークの中間に位置づけられます。読みやすく、変更や他のプロジェクトへの組み込みが容易な、小規模なコア実装を備えています。
gemma.cpp は無料で使えますか?ライセンスは?
gemma.cpp は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
gemma.cpp は今もメンテナンスされていますか?
活発にメンテナンス中。gemma.cpp の最終コミットは 2026年11月6日 です。
gemma.cpp は何に使えますか?
Gemmaモデルの低レベルな推論最適化を試す。 小規模なローカルLLMランタイムをC++アプリケーションに組み込む。 研究目的で、CPUのみのマシン上でGemmaまたはPaliGemmaモデルを実行する。 コンパクトで読みやすいLLM実装を学ぶ。
gemma.cpp のインストール方法は?
CMake と Clang C++ コンパイラ(C++17 以降)をインストールします Kaggle からモデルの重みと tokenizer をダウンロードし(gemma2-2b-it-sfp を推奨)、アーカイブを展開します: tar -xf archive.tar.gz CMake で gemma 実行ファイルを構成してビルドします: cmake --preset make tokenizer と重みのファイルを指定して gemma を実行します: ./gemma --tokenizer tokenizer.spm --weights gemma2-2b-it-sfp.sbs
gemma.cpp はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/google/gemma.cpp

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト