Skip to content
制作実績一覧
AI / 機械学習In Development

LoRA-JP — 日本語ドメイン適応ファインチューニング

LoRA-JP — Japanese Domain LoRA Fine-tuning Pipeline

日本語業務ドキュメントに対するQLoRA/LoRAファインチューニングを再現性高く回すパイプライン。Unsloth+TRLで学習を高速化し、vLLMの動的LoRAアダプタ機能でホットスワップ可能なサービング基盤を内部検証する社内R&Dプロジェクト。

2026 進行中 (R&Dプロトタイプ) 2026-05
#LoRA#ファインチューニング#vLLM#日本語#QLoRA

ライブデモ

実際のアプリケーション画面のプレビュー

DEMO
app.finetune.jp/dashboard
Train loss
0.174
step 4212/5000
Eval F1
0.884
+26pt vs base
Throughput
1,842 tok/s
4x A100-80G
LoRA rank
r=64
α=128 · QLoRA 4bit

Training curve

train loss eval loss
step 01k2k3k4k5k

VRAM usage

48GBof 80GB · 4bit QLoRA

base weights

16.4 GB (4bit)

adapters + kv

31.6 GB

Checkpoint registry

internal benchmark · 社内検証
ckptbase modeldatasetadapterF1status
ckpt-4212Qwen2.5-32Bjp-legal-42k148 MB0.884deployed
ckpt-4198Llama-3.1-70Bjp-medical-18k312 MB0.871eval
ckpt-4180Qwen2.5-32Bjp-finance-26k148 MB0.852deployed
ckpt-4155Phi-3-14Bjp-customer-94k82 MB0.818archive
ckpt-4142Qwen2.5-32Bjp-legal-42k (v1)148 MB0.806archive

Domain benchmark

base vs tuned
法律QA (legal-ja)+26pt
base 62tuned 88
医療NER (med-ner-ja)+20pt
base 71tuned 91
金融要約 (fin-sum)+26pt
base 58tuned 84
長文読解 (jp-mmlu)+13pt
base 66tuned 79

Hot-swap adapter

live
checkpointckpt-4212
adapter size148 MB
swap latency112 ms
base kept hot shared
Adapter swapped in-place — base weights pinned in VRAM. Zero cold-start.

課題

業務固有の略語・社内用語・書式に対する汎用LLMの応答品質は低く、プロンプトエンジニアリングだけでは補いきれない。一方でフルファインチューニングはVRAMとコストが過大で、小規模な社内実験には不向きだった。

ソリューション

UnslothによるQLoRA(4bit量子化+LoRA)で単一A100 40GB上でも実験可能なパイプラインを構築。TRLのSFTTrainerとDPOTrainerで教師あり+選好学習を統合、WandBで損失とサンプル出力を追跡。生成物はvLLMのdynamic LoRA loadingで複数アダプタを同時サービングする。

成果

  • 同一ハードウェアで学習スループットを1.9倍に改善(Unsloth vs 素のHF)
  • 社内評価セットでタスク精度+14%を記録(内部ベンチマーク)
  • vLLMホットスワップで再起動なしにアダプタを3種同時公開
  • 学習ジョブの設定をYAMLに集約しPRレビュー可能に
Key Metrics

Measured Impact

学習スループット

1.9x

vs HF標準

社内タスク精度

+14%

内部評価

同時アダプタ数

3

vLLM dynamic

学習コスト

A100 40GB x1

単一GPU

Features

What it does

学習

QLoRA 4bit

bitsandbytes+PEFTでVRAM消費を最小化。

選好学習

TRL DPOTrainerで好ましい応答を学習。

サービング

動的LoRA切替

vLLMホットスワップで再起動なし切替。

複数アダプタ多重化

同一ベースモデルで3系統のアダプタ同時公開。

Architecture

System Layers

Layered architecture showing components, responsibilities, and data flow.

L1

Layer

データ層

学習用ペアをParquetで版管理。

社内ドキュメントETLSudachi前処理Parquet
L2

Layer

学習層

QLoRAでVRAM節約しつつ選好学習まで統合。

UnslothTRL SFTTrainerDPOTrainerDeepSpeed ZeRO-2
L3

Layer

サービング層

複数アダプタを同一ベースモデルで多重化。

vLLMdynamic LoRATritonEnvoy
Development Process

How we built it

Step 1

データ設計

SFT/DPO用のプロンプト・応答ペアを設計。

Deliverables

  • スキーマ
  • サンプル500件
Step 2

学習パイプライン

Unsloth+TRLでジョブをYAML化。

Deliverables

  • 学習ジョブYAML
  • 再現スクリプト
Step 3

評価接続

Kotobaハーネスと自動連携。

Deliverables

  • CIジョブ
  • 差分レポート
Step 4

サービング検証

vLLMでアダプタ同時提供の負荷試験。

Deliverables

  • 負荷試験レポート
  • 運用手順書
Roadmap

Delivery Timeline

  • Phase 1In Progress2026-05

    データ前処理

    社内文書をSFT/DPO形式に変換するETLを整備。

  • Phase 2Planned2026-06

    Unsloth学習基盤

    QLoRA学習ジョブをKubernetesで再現可能化。

  • Phase 3Planned2026-07

    vLLMホットスワップ

    dynamic LoRA loadingを本番類似環境で検証。

  • Phase 4Planned2026-09

    評価ループ統合

    Kotoba評価ハーネスと接続し回帰テスト化。

Team

Who built it

2engineers

Roles

  • MLエンジニア (リード)
  • データエンジニア
技術スタック

Tools & Platforms

Backend

Python 3.12vLLM

Infrastructure

Docker

Other

PyTorch 2.4UnslothTRLQLoRAPEFTbitsandbytesWandBDeepSpeedHugging Face HubMLflow
Build with KGA

同様のプロジェクトをお考えですか?

お客様のビジネスに最適なソリューションをご提案いたします。

プロジェクトを相談する