Spaces:
Sleeping
Sleeping
| 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 | |