「あなたに適した量子化メソッドはどれですか?(GPTQ vs. GGUF vs. AWQ)」

「あなたに最適な量子化メソッドを選ぶ方法(GPTQ vs. GGUF vs. AWQ)」

大規模な言語モデルの事前量子化の探求

去年の間、大規模な言語モデル(LLM)のワイルドウェストを目にしました。新しいテクノロジーやモデルがリリースされるペースは驚くべきものでした!その結果、LLMとの作業方法やさまざまな基準が存在しています。

この記事では、そんなトピックの中でも、ローカルLLMをいくつかの(量子化)基準を使ってロードする方法について探求します。シャーディング、量子化、さまざまな保存方法や圧縮戦略により、適切な方法を知ることは容易ではありません。

例を通じて、私たちは『Zephyr 7B』というモデルを使用します。『Zephyr 7B』は『Direct Preference Optimization(DPO)』でトレーニングされたMistral 7Bのファインチューニングバリアントです。

🔥 TIP: LLMをロードする各例の後には、OutOfMemoryエラーを防ぐためにノートブックを再起動することをおすすめします。複数のLLMをロードするには、大量のRAM/VRAMが必要です。次のようにモデルとキャッシュを削除してキャッシュをリセットすることで、メモリをリセットすることができます。

# 以前に作成されたモデルを削除del model, tokenizer, pipe# VRAMキャッシュを空にするimport torchtorch.cuda.empty_cache()

また、Google Colabノートブックを参考にしながら、すべてが意図した通りに機能することを確認することもできます。

1. HuggingFace

LLMをロードする最も簡単でバニラな方法は、🤗 Transformersを使用することです。HuggingFaceは、LLMを使って驚くべきことを実現するための多くのパッケージを作成しています!

最新のモデルをサポートするために、HuggingFaceなどを含む最新のブランチからHuggingFaceをインストールします:

# Mistralのようなモデルの最新のHF transformersバージョンをインストールpip install git+https://github.com/huggingface/transformers.gitpip install accelerate bitsandbytes xformers

インストール後、次のパイプラインを使用してLLMを簡単にロードできます:

from torch import bfloat16from transformers import pipeline# 圧縮トリックなしでLLMをロードpipe = pipeline(    "text-generation",     model="HuggingFaceH4/zephyr-7b-beta",     torch_dtype=bfloat16,     device_map="auto")

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more