Text Generation
PEFT
Safetensors
English
rail
track-geometry
lora
defect-detection
49-cfr-213
conversational
Instructions to use BenGyi/rtg-llama-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use BenGyi/rtg-llama-lora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("NousResearch/Meta-Llama-3.1-8B-Instruct") model = PeftModel.from_pretrained(base_model, "BenGyi/rtg-llama-lora") - Notebooks
- Google Colab
- Kaggle
| license: llama3.1 | |
| base_model: NousResearch/Meta-Llama-3.1-8B-Instruct | |
| library_name: peft | |
| tags: | |
| - rail | |
| - track-geometry | |
| - lora | |
| - defect-detection | |
| - 49-cfr-213 | |
| language: | |
| - en | |
| pipeline_tag: text-generation | |
| # RTG-Llama (Rail Track Geometry — Llama 3.1-8B LoRA) | |
| A LoRA adapter on top of **Llama 3.1-8B-Instruct**, fine-tuned to write | |
| five-section defect-investigation reports for rail track-geometry segments | |
| governed by **49 CFR Part 213, Class 3**. Pairs with a separate VAE detector | |
| and SHAP attribution module in the parent project; this repository contains | |
| only the language-model adapter. | |
| Part of the **RTG framework** (VAE detection + SHAP + RAG + RTG-Llama | |
| report generation). See the project repository at | |
| [Abelar-Ai/rail_llm](https://github.com/Abelar-Ai/rail_llm). | |
| ## Training summary | |
| | | | | |
| |---|---| | |
| | Base model | `NousResearch/Meta-Llama-3.1-8B-Instruct` | | |
| | Adapter type | LoRA (PEFT 0.19.1) | | |
| | Rank `r` | 16 | | |
| | `lora_alpha` | 32 | | |
| | Dropout | 0.05 | | |
| | Target modules | `q_proj`, `k_proj`, `v_proj`, `o_proj` | | |
| | Task | Causal LM (SFT, 3 epochs) | | |
| | Training pairs | Defect reports paired with case payloads (VAE output, FRA limit check, SHAP weights, raw values) | | |
| ## Loading | |
| ```python | |
| import torch | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| from peft import PeftModel | |
| BASE = "meta-llama/Llama-3.1-8B-Instruct" # or NousResearch/Meta-Llama-3.1-8B-Instruct | |
| ADAPTER = "BenGyi/rtg-llama-lora" | |
| tokenizer = AutoTokenizer.from_pretrained(BASE) | |
| base = AutoModelForCausalLM.from_pretrained( | |
| BASE, | |
| torch_dtype=torch.float32, # see note on dtype below | |
| device_map="auto", | |
| low_cpu_mem_usage=True, | |
| ) | |
| model = PeftModel.from_pretrained(base, ADAPTER) | |
| model.eval() | |
| ``` | |
| ## Prompt format | |
| The adapter expects a structured case payload as input. Minimal example: | |
| ```python | |
| prompt = ( | |
| "You are a rail track-geometry maintenance reviewer. Produce a structured " | |
| "defect report with exactly the following sections: " | |
| "1. Justification, 2. Explainability, 3. Technical Explanation, " | |
| "4. Maintenance Recommendation, 5. References.\n\n" | |
| "Case payload:\n" | |
| " VAE reconstruction error: 23.85 (threshold τ = 1.767)\n" | |
| " Verdict: DEFECTIVE\n" | |
| " Raw values (inches):\n" | |
| " LProf62=0.310, RProf62=0.468, LAlign62=0.921, RAlign62=0.665,\n" | |
| " Gage=56.479, Crosslevel=5.220\n" | |
| " FRA Class 3 check: Crosslevel exceeds ±1.75 in limit.\n" | |
| " Top SHAP drivers: Crosslevel (+17.64), LAlign62 (+2.29), " | |
| "RProf62 (+1.19).\n" | |
| ) | |
| inputs = tokenizer(prompt, return_tensors="pt").to(model.device) | |
| out = model.generate(**inputs, max_new_tokens=900, do_sample=False) | |
| print(tokenizer.decode(out[0], skip_special_tokens=True)) | |
| ``` | |
| For best results, ground the prompt in retrieved 49 CFR §213 passages | |
| (see the `RAG` setup in the parent repository). | |
| ## Dtype note | |
| On **Blackwell GPUs (sm_120, e.g. RTX 5090)** the model must be loaded in | |
| **fp32**: bf16/fp16 attention overflows on this architecture and produces | |
| NaN logits. On Hopper/Ada (A100, H100, RTX 4090) bf16 works and is faster. | |
| ## License | |
| Inherits **Llama 3.1 Community License** from the base model. You must | |
| agree to the Llama 3.1 license to use this adapter. | |
| ## Citation | |
| If you use this adapter, please cite the paper accompanying the project | |
| (see the GitHub repository for the current reference). |