Downloads · 30 days
3
2% of all-time downloads
Codemaster67/Olmo-7b_250KQlora
Olmo-7b_250KQlora is a machine learning model from Codemaster67. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for peft. The card lists the license as apache-2.0.
This is a QLoRA (Quantized LoRA) adapter trained on top of Codemaster67/Olmo-7b-spe for chemistry SMILES language modelling using the Codemaster67/Causallmchemistry1Mrows dataset.
Downloads · 30 days
3
2% of all-time downloads
All-time downloads
163
Public
Repo size
2.3 GB
Likes
0
Public
Click a slice to open those files.
.safetensors2.3 GB · 100%
From the Hugging Face model README
This is a QLoRA (Quantized LoRA) adapter trained on top of Codemaster67/Olmo-7b-spe for chemistry SMILES language modelling using the Codemaster67/Causal_lm_chemistry_1M_rows dataset.
The base model was loaded in 4-bit precision (NF4 quantization via bitsandbytes with double quantization) and LoRA adapter matrices were trained on top in bfloat16. This is the most memory-efficient training configuration compared to full LoRA and full fine-tuning.
The base model's tokenizer was pre-extended with ~300 SPE (SMILES Pair
Encoding) chemistry tokens plus <|start_of_smiles|> / <|end_of_smiles|>
special tokens. The embed_tokens and lm_head layers are saved as
full (non-LoRA) trainable copies via modules_to_save because they were
resized during tokenizer extension.
| Parameter | Value |
|---|---|
| Quantization | NF4 (4-bit) |
| Double Quantization | True |
| Compute dtype | bfloat16 |
| Rank (r) | 64 |
| Alpha | 128 |
| Effective Scaling | 2.0 |
| Target Modules | all-linear |
| Dropout | 0.01 |
| RSLoRA | True (rank-stabilized) |
| Modules to Save | embed_tokens, lm_head |
| Parameter | Value |
|---|---|
| Method | QLoRA (4-bit base + LoRA adapters) |
| Epochs | 1 |
| Learning Rate | 1e-05 |
| Optimizer | AdamW 8-bit |
| Batch Size (per device) | 32 |
| Gradient Accumulation | 1 |
| Max Sequence Length | 512 |
| Warmup Ratio | 0.1 |
| Weight Decay | 0.01 |
| Scheduler | Cosine |
| Precision | bf16 (adapters) / 4-bit NF4 (base) |
| Gradient Checkpointing | True |
| Augmentation | OFF |
| Training Samples | 250000 |
| Eval Samples | 25000 |
| Metric | Value |
|---|---|
| Final Eval Loss | 0.9892120957374573 |
| Final Eval Perplexity | 2.6891148723675795 |
| Training Loss | 0.5213 |
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
base_model = AutoModelForCausalLM.from_pretrained(
"Codemaster67/Olmo-7b-spe", quantization_config=bnb_config, trust_remote_code=True
)
model = PeftModel.from_pretrained(base_model, "Codemaster67/Olmo-7b_250KQlora")
tokenizer = AutoTokenizer.from_pretrained("Codemaster67/Olmo-7b_250KQlora", trust_remote_code=True)
smiles_input = "<|start_of_smiles|>CC(=O)Oc1ccccc1C(=O)O<|end_of_smiles|>"
inputs = tokenizer(smiles_input, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(outputs[0], skip_special_tokens=False))
Chemistry-domain language modelling, SMILES generation and completion, and downstream molecular property prediction via fine-tuning.