olmo_chem_250k / README.md
Codemaster67's picture
Duplicate from harindhar10/olmo_chem_lora_cpt_LoRA_500k
0b50eaf
|
Raw
History Blame Contribute Delete
2.47 kB
---
base_model: Codemaster67/Olmo-7b-spe
datasets:
- Codemaster67/Causal_lm_chemistry_1M_rows
language: en
library_name: transformers
license: apache-2.0
tags:
- chemistry
- smiles
- olmo
- causal-lm
- full-finetune
- fsdp
---
# OLMo-7B Full Fine-Tune — Chemistry SMILES CPT
## Model Description
This model is a **full-parameter fine-tuned** version of
[Codemaster67/Olmo-7b-spe](https://huggingface.co/Codemaster67/Olmo-7b-spe) trained on chemistry
SMILES strings from the
[Codemaster67/Causal_lm_chemistry_1M_rows](https://huggingface.co/datasets/Codemaster67/Causal_lm_chemistry_1M_rows) dataset.
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, and its embedding & LM-head layers were resized with
mean-initialised vectors for the new tokens.
## Training Details
| Parameter | Value |
|---|---|
| **Method** | Full Fine-Tune (all weights updated) |
| **Parallelism** | FSDP (Fully Sharded Data Parallel) |
| **Epochs** | 1 |
| **Learning Rate** | 5e-06 |
| **Batch Size (per device)** | 16 |
| **Gradient Accumulation** | 1 |
| **Max Sequence Length** | 512 |
| **Warmup Ratio** | 0.1 |
| **Weight Decay** | 0.01 |
| **Scheduler** | Cosine |
| **Precision** | bf16 |
| **Augmentation** | OFF |
| **Training Samples** | 250000 |
| **Eval Samples** | 25000 |
## Evaluation Results
| Metric | Value |
|---|---|
| **Final Eval Loss** | 0.9727568626403809 |
| **Final Eval Perplexity** | 2.645226943673604 |
| **Training Loss** | 1.1177 |
## Usage
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("harindhar10/olmo_chem_lora_cpt_LoRA_500k", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("harindhar10/olmo_chem_lora_cpt_LoRA_500k", 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))
```
## Intended Use
Chemistry-domain language modelling, SMILES generation and completion,
and downstream molecular property prediction via fine-tuning.
## Limitations
- Trained primarily on SMILES strings; natural-language instruction-following
ability may degrade compared to the base OLMo checkpoint.
- Augmentation was disabled for this run.