--- language: - ja license: apache-2.0 base_model: tokyotech-llm/Qwen3-Swallow-8B-SFT-v0.2 tags: - osaka - kansai - dialect - japanese - mlx - qlora - qwen3 datasets: - kunishou/databricks-dolly-15k-ja - shi3z/alpaca_cleaned_ja pipeline_tag: text-generation library_name: mlx --- # 🏯 Osaka-Swallow-8B — 大阪弁特化LLM 関西弁、主に**大阪弁での会話**にフィーチャーした小型特化LLMです。 標準語で質問しても、常に大阪弁で返答してくれる気さくなアシスタントを目指しています。 > **開発手法**: 本モデルは **Claude Opus 4.6 によるvibe coding** で開発されました。 ## モデル詳細 | 項目 | 詳細 | |---|---| | ベースモデル | [tokyotech-llm/Qwen3-Swallow-8B-SFT-v0.2](https://huggingface.co/tokyotech-llm/Qwen3-Swallow-8B-SFT-v0.2) | | アーキテクチャ | Qwen3 8B (36層, hidden_size 4096) | | 学習手法 | QLoRA (rank=8, scale=20.0) via [mlx-lm](https://github.com/ml-explore/mlx-lm) | | 量子化 | 4bit (MLX形式) | | 学習データ | 1,714件の大阪弁合成データ | | ライセンス | Apache License 2.0 | ## 特徴 - 🗣️ **大阪弁に特化** — 京都弁・神戸弁を明示的に除外し、大阪弁の語尾・語彙を忠実に再現 - 🎯 **大阪弁純度100%** — 評価20問すべてで大阪弁のみの応答を達成(標準語汚染ゼロ) - 📝 **語尾多様性10種** — やで / やねん / やな / ねん / やろ / やんか 等の自然な使い分け - 🍎 **Apple Silicon最適化** — MLXフレームワークで学習・推論 ## 使い方 ### mlx-lmで推論 ```python from mlx_lm import load, generate from mlx_lm.sample_utils import make_sampler model, tokenizer = load("TeoHug/Osaka-Swallow-8B") sampler = make_sampler(temp=0.6, top_p=0.95, top_k=20) messages = [ {"role": "system", "content": "あんたは大阪弁で話す気さくなアシスタントやで。どんな質問にも大阪弁で答えてな。 /no_think"}, {"role": "user", "content": "自己紹介してください"} ] prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False) response = generate(model, tokenizer, prompt=prompt, sampler=sampler, max_tokens=512) print(response) ``` ### 推奨生成パラメータ | パラメータ | 推奨値 | |---|---| | Temperature | 0.6 | | Top-P | 0.95 | | Top-K | 20 | | Repetition Penalty | 1.2 | | Max Tokens | 512 | ### システムプロンプト ``` あんたは大阪弁で話す気さくなアシスタントやで。どんな質問にも大阪弁で答えてな。 /no_think ``` ## 学習 ### 学習データ ベースモデル(Qwen3-Swallow-8B 4bit)自身を用いて、日本語会話データセットのassistant応答を大阪弁に変換した合成データで学習。 [ITA_KANSAI_CORPUS](https://github.com/joumonsugi/ITA_KANSAI_CORPUS)から抽出した大阪弁パターン辞書をプロンプトに組み込むことで、変換品質を担保しています。 | パラメータ | 値 | |---|---| | データ件数 | train: 1,714 / valid: 214 / test: 215 | | バッチサイズ | 2(grad-accum 4 → 実効8) | | 学習率 | 1e-5 | | イテレーション | 2,000 | | 最大系列長 | 2,048 | | LoRA rank | 8 (scale=20.0, dropout=0.0) | | 学習可能パラメータ | 9.699M(全体の0.118%) | | ピークメモリ | 11.3GB | ### 評価結果 | 指標 | ベースモデル | **ファインチューン後** | |---|---|---| | 大阪弁純度 | 42.5% | **100%** | | 標準語汚染 | 23件/20問 | **0件** | | 語尾多様性 | — | **10種** | | 平均応答長 | 677字 | **94字** | | パープレキシティ | 12.1 | **8.0** | ## 既知の課題 - 語尾に「だわ」(名古屋弁寄り)が出力されることがある → [GitHub Issue #1](https://github.com/TateoKohara/LLM_kansai/issues/1) - 応答長が短め(平均94字) ## ライセンス・帰属 ### ベースモデル - [tokyotech-llm/Qwen3-Swallow-8B-SFT-v0.2](https://huggingface.co/tokyotech-llm/Qwen3-Swallow-8B-SFT-v0.2) — Apache License 2.0 ### ソースデータセット | データセット | ライセンス | |---|---| | [kunishou/databricks-dolly-15k-ja](https://huggingface.co/datasets/kunishou/databricks-dolly-15k-ja) | CC BY-SA 3.0 | | [shi3z/alpaca_cleaned_ja](https://huggingface.co/datasets/shi3z/alpaca_cleaned_ja) | Apache License 2.0 | ### 参照コーパス ``` ITA_KANSAI_CORPUS MIT License Copyright (c) 2024 おふとんP, あみたろの声素材工房, Nacl_E http://opensource.org/licenses/mit-license.php ``` ## リンク - GitHub: [TateoKohara/LLM_kansai](https://github.com/TateoKohara/LLM_kansai) - 開発ツール: [mlx-lm](https://github.com/ml-explore/mlx-lm), [Claude Opus 4.6](https://anthropic.com/)