LLMView_multi_model / README.md
WatNeru's picture
bugfix
2bdf0a5

A newer version of the Gradio SDK is available: 6.10.0

Upgrade
metadata
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の設定で以下の環境変数を設定:

# モデルタイプ(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を変更するだけで、他のモデルに切り替え可能:

# 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