Qwen2.5-1.5BをQLoRAでCEFR英語熟達度分類(A1〜C2)に微調整

Reddit r/MachineLearning / 2026/5/5

💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

要点

  • QLoRA(4-bit NF4)を用いて、Qwen2.5-1.5BをCEFRの6段階(A1〜C2)英語熟達度分類タスク向けにマルチクラス微調整しました。
  • データセットは1,785文で、6レベル×10ドメインにバランスさせ、Groq APIとLlama-3.3-70Bで合成生成しつつ語彙・文法進行・文構造の多様性とCEFR固有の言語パターンを維持する制約を設けています。
  • 学習はモデルパラメータの約0.28%のみを訓練するアダプタ方式で行い、テスト(179サンプル)ではAccuracyとMacro F1がともに84.9%でした。
  • レベル別ではC2のリコールが60.0%と低く、C1/C2の微妙な境界に起因する誤分類が主要なエラー要因として示されています。
  • FastAPIでの推論APIとDockerによるデプロイ構成を実装し、公開モデルをtransformersで利用する例も提示されています。

QLoRA(4-bit NF4)を使って、マルチクラスのCEFR英語能力分類のためにQwen2.5-1.5Bを微調整しました。

目的は英語テキストを6つのCEFRレベル(A1 → C2)のいずれかに分類することです。これは以下に役立ちます:

  • 適応型の言語学習システム、
  • 配置テスト、
  • 可読性推定、
  • 教育向けNLPアプリケーション。

データセット

データセットには1,785件の英語テキストが含まれており、以下でバランスが取られています:

  • 6つのCEFRレベル、
  • 10のドメイン/トピック。

サンプルは以下を用いて合成的に生成されました:

  • Groq API
  • Llama-3.3-70B

生成の制約は、以下を保持するように設計されました:

  • 語彙の複雑さ、
  • 文法的な進行、
  • 文構造のバリエーション、
  • CEFR固有の言語パターン。

トレーニング設定

ベースモデル:

  • Qwen2.5-1.5B

微調整手法:

  • QLoRA
  • 4-bit NF4量子化
  • LoRAアダプタ

モデルのパラメータのうち、トレーニングしたのは約0.28%のみです。

結果

ホールドアウトのテストセット:

  • 179サンプル

指標:

  • Accuracy(正解率):84.9%
  • Macro F1:84.9%

レベルごとの再現率:

Level Recall
A1 96.6%
A2 90.0%
B1 90.0%
B2 86.7%
C1 86.7%
C2 60.0%

ほとんどの誤りはC1/C2の混同によるもので、これらのレベル間の微妙な言語的境界を考えると予想される結果です。

デプロイ

また、以下も構築しました:

  • FastAPIによる推論API、
  • Dockerのデプロイ設定。

使用例

from transformers import AutoModelForSequenceClassification, AutoTokenizer import torch model = AutoModelForSequenceClassification.from_pretrained( "yanou16/cefr-english-classifier" ) tokenizer = AutoTokenizer.from_pretrained( "yanou16/cefr-english-classifier" ) text = "Artificial intelligence is transforming many industries." inputs = tokenizer(text, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) pred = outputs.logits.argmax(dim=-1).item() print(pred) 

フィードバックを歓迎します。特に以下について:

  • 評価手法、
  • 合成データの品質、
  • C2分類性能の改善、
  • より良いベンチマーク手法。
submitted by /u/Professional-Pie6704
[link] [comments]