--- title: LLMView Multi-Model emoji: 🌳 colorFrom: yellow colorTo: yellow sdk: gradio sdk_version: "4.43.0" app_file: app.py pinned: false --- # LLMView Multi-Model - Hugging Face Spaces版 複数のAIモデルに対応した単語ツリー構築ツール(Gradio版) ## 特徴 - ✅ **マルチモデル対応**: Transformersモデル(Llama、Qwen、Mistral、Gemma等)に対応 - ✅ **Hugging Face Spaces対応**: GradioでHFSにデプロイ可能 - ✅ **GPU対応**: ZeroGPUを使用してGPUリソースを要求 - ✅ **完全なトークン確率**: ローカルモデルで完全なトークン確率情報を取得 ## Hugging Face Spacesでのデプロイ ### 1. リポジトリの作成 1. Hugging Face Spacesで新しいSpaceを作成 2. SDK: **Gradio** を選択 3. Hardware: **GPU** を選択(推奨) ### 2. 環境変数の設定 Spaceの設定で以下の環境変数を設定: ```bash # モデルタイプ(transformers推奨) MODEL_TYPE=transformers # 使用するモデル(Hugging FaceリポジトリID) HF_MODEL_REPO=meta-llama/Llama-3.2-3B-Instruct # HF_TOKEN(gatedモデルの場合のみ必要) # 以下のモデルはHF_TOKENが必要です: # - meta-llama/* (Llama 3.2等) - Metaの承認とHF_TOKENが必要 # - elyza/ELYZA-japanese-Llama-2-7b-instruct - Llama-2ベースのため必要 # - bigcode/starcoder2-7b - gatedモデルの可能性あり # その他のモデル(Qwen、Mistral、Gemma、Phi-3等)は不要 HF_TOKEN=your_hf_token ``` **HF_TOKENが必要なモデル**: - ⚠️ **meta-llama/Llama-3.2-3B-Instruct**: Metaの承認とHF_TOKENが必要(gatedモデル) - ⚠️ **elyza/ELYZA-japanese-Llama-2-7b-instruct**: Llama-2ベースのため必要 **HF_TOKENが不要なモデル**: - ✅ **Qwen/Qwen2.5-3B-Instruct**: パブリックモデル - ✅ **mistralai/Mistral-7B-Instruct-v0.2**: パブリックモデル - ✅ **google/gemma-2b-it**, **google/gemma-7b-it**: パブリックモデル - ✅ **microsoft/Phi-3-mini-4k-instruct**: パブリックモデル - ✅ **TinyLlama/TinyLlama-1.1B-Chat-v1.0**: パブリックモデル - ✅ **stabilityai/japanese-stablelm-base-gamma-7b**: パブリックモデル - ✅ **rinna/weblab-10b-instruction-sft**: パブリックモデル ### 3. モデルの切り替え 環境変数`HF_MODEL_REPO`を変更するだけで、他のモデルに切り替え可能: ```bash # Qwen 2.5 HF_MODEL_REPO=Qwen/Qwen2.5-3B-Instruct # Mistral 7B HF_MODEL_REPO=mistralai/Mistral-7B-Instruct-v0.2 # Gemma 2B HF_MODEL_REPO=google/gemma-2b-it ``` ## 使用方法 1. **プロンプトを入力**: 質問や指示を入力 2. **ルートテキスト(オプション)**: 既存のテキストの続きを生成する場合に指定 3. **パラメータ調整**: - `top_k`: 取得する候補数(1-20) - `max_depth`: 最大探索深さ(1-50) 4. **「単語ツリーを構築」ボタンをクリック** ## ファイル構成 ``` LLMView_multi_model/ ├── app.py # Gradioアプリ(メイン) ├── requirements.txt # 依存パッケージ ├── README.md # このファイル ├── MULTI_MODEL_DESIGN.md # 設計ドキュメント └── package/ ├── __init__.py ├── adapter.py # ModelAdapter(マルチモデル対応) ├── config.py # 設定管理 ├── word_processor.py # 単語処理ロジック ├── word_counter.py # 単語数カウント └── ai/ ├── __init__.py # ファクトリー関数 ├── base.py # BaseAIインターフェース ├── transformers_ai.py # TransformersAI(ローカルモデル) ├── openai_ai.py # OpenAIAI(オプション) ├── anthropic_ai.py # AnthropicAI(オプション) └── google_ai.py # GoogleAI(オプション) ``` ## 依存パッケージ 主要な依存パッケージ: - `gradio>=4.43.0`: Web UI(最新版でセキュリティ脆弱性を修正) - `spaces`: Hugging Face Spaces用 - `transformers>=4.30.0`: Transformersモデル - `torch>=2.0.0`: PyTorch - `fugashi>=1.3.0`: 形態素解析(日本語) - `sudachipy>=0.6.7`: Sudachi形態素解析(オプション) 詳細は`requirements.txt`を参照してください。 ## 注意事項 1. **GPU推奨**: モデルのロードと推論にはGPUが推奨されます 2. **モデルサイズ**: 大きなモデル(7B以上)はメモリとロード時間がかかります 3. **初回起動**: モデルのダウンロードに時間がかかる場合があります 4. **API非推奨**: Hugging Face Spacesでは、Transformersモデル(ローカルロード)を使用してください ## トラブルシューティング ### モデルがロードされない - **gatedモデルの場合**: `HF_TOKEN`が正しく設定されているか確認 - `meta-llama/*`モデルはMetaの承認とHF_TOKENが必要 - Hugging Faceのモデルページで承認を申請してください - モデルリポジトリIDが正しいか確認 - Spaceのログを確認 - パブリックモデル(Qwen、Mistral、Gemma等)はHF_TOKEN不要 ### GPUが利用できない - SpaceのHardware設定でGPUが有効になっているか確認 - `spaces`パッケージがインストールされているか確認 ### 形態素解析エラー - `fugashi`がインストールされているか確認 - HFSでは通常、デフォルト設定で動作します ## ライセンス MIT License