LLMView_multi_model / README.md
WatNeru's picture
bugfix
2bdf0a5
---
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