🚀 Googleのmedgemma - 4b - itのLlamacpp imatrix量子化
このプロジェクトは、Googleのmedgemma - 4b - itモデルをLlamacppを用いて量子化したものです。画像とテキストを入力としてテキストを出力する機能を持ち、医療分野での応用が期待されます。
🚀 クイックスタート
量子化について
llama.cppのリリース版 b5868 を使用して量子化を行っています。元のモデルは こちら です。
実行方法
✨ 主な機能
- 画像テキスト変換:画像とテキストを入力としてテキストを出力することができます。
- 複数の量子化形式:様々な量子化形式(Q2_K、Q3_K、Q4_K、Q5_K、Q8_0など)が用意されており、メモリや性能に合わせて選択できます。
📦 インストール
huggingface-cliを使ったダウンロード
まず、huggingface-cliをインストールします。
pip install -U "huggingface_hub[cli]"
特定のファイルをダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/google_medgemma-4b-it-GGUF --include "google_medgemma-4b-it-Q4_K_M.gguf" --local-dir ./
モデルが50GB以上の場合は、複数のファイルに分割されています。これらをすべてローカルフォルダにダウンロードするには、以下のコマンドを実行します。
huggingface-cli download bartowski/google_medgemma-4b-it-GGUF --include "google_medgemma-4b-it-Q8_0/*" --local-dir ./
💻 使用例
基本的な使用法
<bos><start_of_turn>user
{system_prompt}
{prompt}<end_of_turn>
<start_of_turn>model
<end_of_turn>
<start_of_turn>model
📚 ドキュメント
ファイルのダウンロード
以下の表からダウンロードするファイルを選択できます。
埋め込み/出力ウェイト
一部の量子化(Q3_K_XL、Q4_K_Lなど)は、標準的な量子化方法で、埋め込みと出力ウェイトが通常のデフォルト値ではなくQ8_0に量子化されています。
ARM/AVX情報
以前は、Q4_0_4_4/4_8/8_8をダウンロードし、ARMおよびAVXマシンでのパフォーマンスを向上させるために、ウェイトをメモリ内でインターリーブしていました。
現在では、ウェイトの「オンライン再パッキング」と呼ばれる機能があります。詳細は このPR を参照してください。Q4_0を使用し、ハードウェアがウェイトの再パッキングによって恩恵を受ける場合、自動的に実行されます。
llama.cppビルド b4282 以降では、Q4_0_X_Xファイルを実行することはできず、代わりにQ4_0を使用する必要があります。
また、このPR により、ARM用にウェイトを再パッキングするIQ4_NLを使用すると、少し良い品質が得られます(現時点では4_4のみ)。読み込み時間は長くなる可能性がありますが、全体的な速度が向上します。
どのファイルを選べばいいですか?
まず、実行できるモデルのサイズを決定するために、持っているRAMおよび/またはVRAMの量を確認する必要があります。
できるだけ高速にモデルを実行したい場合は、全体をGPUのVRAMに収めることを目指します。GPUの総VRAMよりも1 - 2GB小さいファイルサイズの量子化を選択してください。
絶対的な最高品質を求める場合は、システムRAMとGPUのVRAMを合計し、その合計よりも1 - 2GB小さいファイルサイズの量子化を選択してください。
次に、「I - 量子化」または「K - 量子化」を使用するかを決定する必要があります。
あまり考えたくない場合は、K - 量子化のいずれかを選択してください。これらは 'QX_K_X' 形式(Q5_K_Mなど)です。
もっと詳細に調べたい場合は、この非常に便利な機能チャートを確認できます。
llama.cpp機能マトリックス
基本的に、Q4以下を目指し、cuBLAS(Nvidia)またはrocBLAS(AMD)を使用している場合は、I - 量子化を検討する必要があります。これらはIQX_X形式(IQ3_Mなど)で、新しく、サイズに対してより良いパフォーマンスを提供します。
これらのI - 量子化はCPUでも使用できますが、同等のK - 量子化よりも遅くなります。したがって、速度とパフォーマンスのトレードオフを決定する必要があります。
🔧 技術詳細
量子化方法
llama.cpp の b5868 リリースを使用して量子化を行っています。すべての量子化は、ここ のデータセットを使用してimatrixオプションで作成されています。
オンライン再パッキング
ARMおよびAVXマシンでのパフォーマンスを向上させるために、ウェイトの「オンライン再パッキング」機能が導入されています。詳細は このPR を参照してください。
📄 ライセンス
このモデルは Health AI Developer Foundation's terms of use に基づいて提供されています。Hugging FaceでMedGemmaにアクセスするには、この利用規約を確認し、同意する必要があります。
クレジット
- kalomazeとDampfには、imatrixキャリブレーションデータセットの作成に協力してくれたことに感謝します。
- ZeroWwには、埋め込み/出力の実験のインスピレーションを提供してくれたことに感謝します。
- LM Studioには、私の仕事を支援してくれたことに感謝します。
私の仕事をサポートしたい場合は、こちら のko - fiページをご覧ください。