はじめに
GLM-Edgeは、清華大学(Smart Spectrum Light Language)が提供する、エンドサイドデバイス向けに設計された大規模言語モデルとマルチモーダル理解モデルのシリーズです。GLM-Edgeシリーズのモデルは、高い性能を維持しながら、実用的な展開の容易さと推論のスピードに重点を置いており、特にQualcomm SnapdragonとIntelプラットフォームで優れています。GLM-Edgeシリーズのモデルは、特にQualcomm SnapdragonとIntelプラットフォームにおいて、効率的なパフォーマンスを維持しながら、導入の容易さと推論のスピードに重点を置いています。ユーザーは、Huggingface、ModelScopeなどを介してこれらのモデルをダウンロードして使用し、様々な推論バックエンド(トランスフォーマー、OpenVINO、vLLMなど)を介してモデル推論を実行することができます。
機能一覧
- 複数のモデル・オプション様々なエンドサイドデバイスに対して、異なるパラメータスケールでの対話モデルとマルチモーダル理解モデルを提供します。
- 効率的な推論ハイブリッド量子化スキームのサポートにより、Qualcomm SnapdragonおよびIntelプラットフォームで効率的な推論速度を実現。
- マルチプラットフォーム対応モデルはHuggingface、ModelScope、その他のプラットフォームからダウンロードでき、幅広い推論バックエンドをサポートしている。
- 配備が容易インストールと使用に関する詳細なガイドを提供します。
- 微調整サポートチュートリアルとコンフィギュレーションファイルを提供し、ユーザーのニーズに合わせたモデルの微調整をサポートします。
ヘルプの使用
依存関係のインストール
Pythonのバージョンが3.10以上であることを確認してください。そして、以下のように依存関係をインストールしてください:
pip install -r requirements.txt
モデル化された推論
バックエンド推論用にvLLM、OpenVINO、トランスフォーマーを提供しており、以下のコマンドを実行することでモデルを実行することができる:
python cli_demo.py --backend transformers --model_path THUDM/glm-edge-1.5b-chat --precision bfloat16
python cli_demo.py --backend vllm --model_path THUDM/glm-edge-1.5b-chat --precision bfloat16
python cli_demo.py --backend ov --model_path THUDM/glm-edge-1.5b-chat-ov --precision int4
注:OpenVINOのバージョンモデルを変換する必要があります:
python convert_chat.py --model_path THUDM/glm-edge-1.5b-chat --precision int4
python convert.py --model_path THUDM/glm-edge-v-2b --precision int4
モデルの微調整
モデルを微調整するためのコードを提供しますので、微調整のチュートリアルを参照してください。以下は微調整の基本的な手順です:
- データセットを準備し、学習パラメータを設定する。
- 微調整スクリプトを実行する:
OMP_NUM_THREADS=1 torchrun --standalone --nnodes=1 --nproc_per_node=8 finetune.py data/AdvertiseGen/ THUDM/glm-edge-4b-chat configs/lora.yaml
- セーブポイントから微調整を続ける必要がある場合は、4つ目のパラメーターを追加することができる:
python finetune.py data/AdvertiseGen/ THUDM/glm-edge-4b-chat configs/lora.yaml yes
GradioでWebUIを起動する
Gradioを使ってWebUIを起動することもできる:
python cli_demo.py --backend transformers --model_path THUDM/glm-edge-1.5b-chat --precision bfloat16
OpenAI APIを使った推論
インポート openai
client = openai.Client(api_key="your_api_key", base_url="http://:/v1")
output = client.chat.completions.create(
model="glm-edge-v"、
メッセージ=[
{"role": "image_url", "image_url": {"url": "img.png"}}.
],
max_tokens=512、
temperature=0.7
)
print(output)