dastrix's picture
Upload Gemma-3-12B lithology LoRA adapter (4 epochs SFT)
6051221 verified
|
Raw
History Blame Contribute Delete
5.63 kB
---
license: gemma
base_model: google/gemma-3-12b-it
tags:
- geology
- lithology
- russian
- core-description
- mining
- gemma
- lora
- peft
- sft
- trl
language:
- ru
pipeline_tag: text-generation
library_name: peft
---
# Gemma-3-12B Lithology Description (Russian)
LoRA adapter for **google/gemma-3-12b-it** fine-tuned on geological core lithology descriptions in Russian.
## Model Description
This model generates professional lithological descriptions of drill core samples for mining/drilling operations. Trained on expert geological descriptions from the Zhosabay (Жосабай) deposit in Kazakhstan.
### Training Details
| Parameter | Value |
|-----------|-------|
| **Base Model** | google/gemma-3-12b-it (12.19B params) |
| **Method** | SFT with LoRA |
| **LoRA r** | 16 |
| **LoRA alpha** | 32 |
| **Target Modules** | q_proj, v_proj, k_proj, o_proj |
| **Dataset Size** | 1,664 samples (1,497 train / 167 eval) |
| **Epochs** | 4 |
| **Learning Rate** | 1e-5 |
| **Batch Size** | 8 (effective) |
| **Hardware** | 4x NVIDIA RTX 5090 |
| **Training Time** | ~37 minutes |
### Metrics
| Metric | Value |
|--------|-------|
| **Eval Loss** | 1.121 |
| **Eval Accuracy** | 75.1% |
| **Train Loss** | 0.34 |
## Usage
```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
# Load base model and adapter
base_model = "google/gemma-3-12b-it"
adapter = "tauken/gemma-3-12b-lithology-ru"
tokenizer = AutoTokenizer.from_pretrained(base_model)
model = AutoModelForCausalLM.from_pretrained(
base_model,
torch_dtype=torch.bfloat16,
device_map="auto"
)
model = PeftModel.from_pretrained(model, adapter)
model.eval()
# Generate description
prompt = "Ты опытный геолог-эксперт. Опиши литологию керна. Скважина: ZHS_028_25, интервал: 94.5-101.9м."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7, do_sample=True)
response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:], skip_special_tokens=True)
print(response)
```
## Example Output
**Input**: Скважина ZHS_028_25, интервал 94.5-101.9м
**Output**:
```
В интервале 94.5-101.9м: Андезитовые порфириты от темно-коричнево-зеленого до серого цвета
с зеленоватым оттенком. Структура порфировая, текстура массивная. Основная масса
скрытокристаллическая, порфировые включения выполнены плагиоклазом таблитчатых,
полуокруглых форм размерами до 5х12мм, составляющие около 40-50% от общей массы.
Породы слабо, умеренно трещиноватые в количестве до 5-7 трещин на п.м., преимущественно
ориентированные под углом 30-70° к оси керна. Вторичные изменения представлены слабым
окварцеванием и серицитизацией по массе.
Рудная минерализация выполнена пиритом в виде вкраплений по массе.
```
## Output Structure
The model follows standard geological description format:
1. **Lithotype & Color** - Rock type identification (андезитовые порфириты)
2. **Texture & Structure** - Porphyritic structure, phenocryst description
3. **Fracturing** - Fracture density per running meter, angles to core axis
4. **Secondary Alterations** - Veining, alteration minerals (окварцевание, серицитизация)
5. **Mineralization** - Ore minerals if present (пирит)
6. **Contacts** - Description of boundaries with other intervals
## Limitations
⚠️ **Important limitations:**
- **Text-only model** - Does not process images (for VLM version, see upcoming release)
- May occasionally hallucinate depth intervals outside the requested range
- Quantitative estimates (sizes, percentages) may be approximate
- **Best used as an assistant** with mandatory expert verification
- Not production-ready for autonomous use
## Training Data
Geological descriptions from **Zhosabay copper-gold deposit** (Kazakhstan):
- Well intervals with detailed lithological descriptions in Russian
- Expert-written by professional geologists
- Rock types: andesite porphyrites, metasomatites, weathering crusts
- Features: fracturing, veining, alteration, mineralization
## Intended Use
**Recommended uses:**
- Drafting lithological descriptions for geologist review
- Accelerating core logging workflows
- Training geological terminology
**Not recommended:**
- Autonomous geological reporting without expert review
- Critical mining decisions based solely on model output
## License
This model inherits the [Gemma license](https://ai.google.dev/gemma/terms) from the base model.
## Citation
```bibtex
@misc{tauken-lithology-2025,
author = {Tauken Team},
title = {Gemma-3-12B Lithology Description Model},
year = {2025},
publisher = {HuggingFace},
url = {https://huggingface.co/tauken/gemma-3-12b-lithology-ru}
}
```
## Framework Versions
- PEFT: 0.18.1
- Transformers: 4.51+
- PyTorch: 2.11.0
- TRL: 0.27.0