Bridge Damage Cause Encoder v0.5 (QLoRA)
橋梁損傷原因分類のための日本語BERTベースのQLoRAモデル
このモデルは、橋梁の損傷記述から原因を10カテゴリに分類する深層学習モデルです。RC床版、コンクリート桁橋、床版橋の診断ロジックPDFから抽出した因果トリプル(Si → Ci)を活用し、4-bit量子化LoRA(QLoRA)で効率的にファインチューニングされています。
モデル概要
項目 詳細 ベースモデル cl-tohoku/bert-large-japanese-v2 アーキテクチャ BertForSequenceClassification + QLoRA adapters 量子化 4-bit NF4 (QLoRA) + FP16 classifier LoRA設定 r=16, α=32, dropout=0.1 訓練可能パラメータ 7.1M (2.07%) タスク 10クラステキスト分類 言語 日本語 ライセンス Apache 2.0
性能指標
データセット Accuracy F1 (weighted) サンプル数 Test Set (Golden) 87.07% 87.0% 116 Diverse Samples 47.0% - 100 Validation (Training) 93.91% 93.73% 115
比較(v0.5実験結果):
LoRA (FP16) : Test 87.07%, Diverse 34.0%, 1.45 GB GPU
QLoRA (4-bit) : Test 87.07%, Diverse 47.0% ⭐, 0.40 GB GPU (-72%)
QA-LoRA : Test 85.34%, Diverse 30.0%, 0.42 GB GPU
→ QLoRAが最善 : 同等のテスト精度で、未見パターンへの汎化が13%向上、GPU使用量72%削減
損傷原因カテゴリ(10クラス)
ID カテゴリ 説明 対象橋梁タイプ 0 塩害 塩化物イオンによる鉄筋腐食 RC床版、コンクリート桁橋、床版橋 1 凍害 凍結融解の繰り返しによる劣化 RC床版、床版橋 2 土砂化 コンクリートの土砂化現象 RC床版、床版橋 3 疲労 繰り返し荷重による疲労亀裂 RC床版 4 鉄筋腐食 鉄筋の腐食による損傷 RC床版 5 ASR アルカリシリカ反応 床版橋 6 ボイド管浮き陥没 ボイド管の浮き上がりや陥没 床版橋 7 滞水 水の滞留による劣化 床版橋 8 連結桁 連結桁特有の損傷 コンクリート桁橋、床版橋 9 その他 上記以外の損傷原因 コンクリート桁橋
使用方法
必要なライブラリ
pip install transformers peft torch bitsandbytes sentence-transformers faiss-cpu
推論コード
1 import torch
2 from transformers import AutoTokenizer , AutoModelForSequenceClassification
3 from peft import PeftModel , PeftConfig
4
5 # モデルとトークナイザーのロード
6 model_id = "yasunotkt/damage-cause-encoder-v05"
7 config = PeftConfig . from_pretrained ( model_id )
8 base_model = AutoModelForSequenceClassification . from_pretrained (
9 config . base_model_name_or_path ,
10 num_labels = 10 ,
11 device_map = "auto"
12 )
13 model = PeftModel . from_pretrained ( base_model , model_id )
14 tokenizer = AutoTokenizer . from_pretrained ( model_id )
15
16 # 推論
17 def predict_damage_cause ( damage_description , context = "" ) :
18 """
19 損傷記述から原因を予測
20
21 Args:
22 damage_description: 損傷の記述(Si)
23 context: 関連する因果知識(Ci)。オプション。
24
25 Returns:
26 予測ラベルID、ラベル名、確率
27 """
28 labels = [ "塩害" , "凍害" , "土砂化" , "疲労" , "鉄筋腐食" , "ASR" ,
29 "ボイド管浮き陥没" , "滞水" , "連結桁" , "その他" ]
30
31 # 入力テキストの作成
32 text = damage_description
33 if context :
34 text = f" { damage_description } { tokenizer . sep_token } { context } "
35
36 # トークナイズと推論
37 inputs = tokenizer ( text , return_tensors = "pt" , max_length = 512 ,
38 truncation = True , padding = True ) . to ( model . device )
39
40 with torch . no_grad ( ) :
41 outputs = model ( ** inputs )
42 probs = torch . softmax ( outputs . logits , dim = 1 )
43 pred_id = torch . argmax ( probs , dim = 1 ) . item ( )
44 confidence = probs [ 0 ] [ pred_id ] . item ( )
45
46 return pred_id , labels [ pred_id ] , confidence
47
48 # 使用例
49 damage_text = "床版下面に遊離石灰が白く析出し、鉄筋位置に沿って縦方向のひびわれが確認される"
50 pred_id , cause , conf = predict_damage_cause ( damage_text )
51 print ( f"予測原因: { cause } (ID: { pred_id } )" )
52 print ( f"確信度: { conf : .2% } " )
FAISSを使った文脈取得付き推論
完全な推論パイプライン(FAISS triple index + LLM filter + QLoRA)については、プロジェクトリポジトリをご覧ください:
https://github.com/tk-yasuno/damage_cause_encoder
トレーニング詳細
データセット
ソース : 35 PDF files(RC床版、コンクリート桁橋、床版橋の診断ロジック)
抽出トリプル : 6,745件(テキスト + 図表)
トレーニングサンプル : 342件
検証サンプル : 115件
テストセット(Golden) : 116件(15 PDFから手動作成)
ハイパーパラメータ
1 base_model : cl - tohoku/bert - large - japanese - v2
2 quantization : 4 - bit NF4 + double quantization
3 lora_r : 16
4 lora_alpha : 32
5 lora_dropout : 0.1
6 target_modules : [ query , key , value , dense ]
7 learning_rate : 2e-4
8 batch_size : 4
9 gradient_accumulation_steps : 8
10 epochs : 20
11 max_length : 512
12 optimizer : AdamW
13 loss_function : Weighted CrossEntropy (inverse frequency)
トレーニング環境
GPU : NVIDIA RTX 4060 Ti 16GB
CUDA : 12.6
メモリ使用量 : 0.40 GB (QLoRA)
トレーニング時間 : ~10分(20 epochs)
フレームワーク : PyTorch 2.6.0, Transformers, PEFT, BitsAndBytes
アルゴリズムパイプライン
1. PDFからOCR抽出(PaddleOCR + pypdfium2)
↓
2. 因果トリプル抽出(Qwen2.5 7B)
↓
3. FAISS dense retrieval(hotchpotch/static-embedding-japanese)
↓
4. LLM relevance filter(Qwen2.5 7B)
↓
5. QLoRA分類器(本モデル)
↓
6. 損傷原因(10クラス)
制限事項と今後の展望
制限事項
日本語専用 - 橋梁診断の専門用語に特化
限定的なドメイン - RC床版、コンクリート桁橋、床版橋のみ
小規模データセット - 35 PDF、~400サンプル
クラス不均衡 - 「塩害」が支配的(バランシング済み)
文脈依存 - 最適性能にはFAISSによる文脈取得が必要
v1.0での改善予定
マルチモーダル融合(Vision Encoder + Text Encoder)
ハイブリッド検索(BM25 + Dense + Reranker)
より大規模なデータセット(100+ PDFs)
テストセットによる厳密な評価(70/15/15 split)
引用
このモデルを研究で使用する場合は、以下を引用してください:
1 @software{damage_cause_encoder_v05,
2 title = {Damage Cause Encoder: Deep Learning for Bridge Damage Classification with QLoRA},
3 author = {Damage Cause Encoder Project Team},
4 year = {2026},
5 version = {0.5},
6 url = {https://github.com/tk-yasuno/damage_cause_encoder},
7 note = {QLoRA achieves 87.07\% test accuracy with 72\% GPU memory reduction}
8 }
関連リンク
謝辞
ベースモデル : cl-tohoku/bert-large-japanese-v2 by Tohoku NLP Group
PEFT/LoRA : Hugging Face PEFT library
QLoRA : Tim Dettmers et al., arXiv:2305.14314
開発者 : Damage Cause Encoder Project Team
最終更新 : 2026-07-25
バージョン : v0.5
連絡先 : GitHub Issues
Speeds, Sizes, Times [optional]
[More Information Needed]
Evaluation
Testing Data, Factors & Metrics
Testing Data
[More Information Needed]
Factors
[More Information Needed]
Metrics
[More Information Needed]
Results
[More Information Needed]
Summary
Model Examination [optional]
[More Information Needed]
Environmental Impact
Carbon emissions can be estimated using the
Machine Learning Impact calculator presented in
Lacoste et al. (2019) .
Hardware Type: [More Information Needed]
Hours used: [More Information Needed]
Cloud Provider: [More Information Needed]
Compute Region: [More Information Needed]
Carbon Emitted: [More Information Needed]
Technical Specifications [optional]
Model Architecture and Objective
[More Information Needed]
Compute Infrastructure
[More Information Needed]
Hardware
[More Information Needed]
Software
[More Information Needed]
Citation [optional]
BibTeX:
[More Information Needed]
APA:
[More Information Needed]
Glossary [optional]
[More Information Needed]
More Information [optional]
[More Information Needed]
Model Card Authors [optional]
[More Information Needed]
Model Card Contact
[More Information Needed]
Framework versions