Lora-Mistral-7b / README.md
Varun95's picture
Update README.md
27a8820 verified
|
Raw
History Blame Contribute Delete
4.74 kB
---
language: en
license: apache-2.0
base_model: unsloth/mistral-7b-instruct-v0.2-bnb-4bit
tags:
- lora
- peft
- unsloth
- physics
- black-holes
- mistral
- scientific-pdf
- mathematical-formulas
- text-generation
inference: false
---
# Mistral-7B LoRA Adapter – Scientific PDF Assistant
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1lBadodINShZmJK9QqkwiF4bUFOClTuxd?usp=sharing)
## Model Description
This is a **LoRA (Low‑Rank Adaptation)** adapter for the [unsloth/mistral-7b-instruct-v0.2-bnb-4bit](https://huggingface.co/unsloth/mistral-7b-instruct-v0.2-bnb-4bit) base model.
It has been fine‑tuned on a collection of scientific PDFs containing **mathematical formulas, physics equations, and technical text**. The adapter improves the model's ability to summarize, explain, and answer questions about scientific content (e.g., black holes, quantum mechanics, relativity).
- **Developed by:** Varun Vinayak Mulay (Varun95)
- **Model type:** Causal language model with LoRA adapters (PEFT)
- **Language(s):** English
- **Finetuned from:** `unsloth/mistral-7b-instruct-v0.2-bnb-4bit`
- **License:** Apache 2.0
## Intended Uses & Limitations
### Direct Use
The adapter is meant to be used **on top of the base Mistral-7B-Instruct model** for retrieval‑augmented generation (RAG) or direct Q&A about scientific topics, especially those involving LaTeX formulas. It is particularly effective when combined with vector search over your own PDF documents.
### Limitations
- The model is **not a standalone** – it requires the base model to be loaded.
- Performance is best on **text‑searchable PDFs**; scanned or image‑based documents may require OCR preprocessing.
- May occasionally hallucinate formulas or details; always verify against source material.
- Knowledge is limited to the content of the training PDFs (scientific papers and textbooks).
## Evaluation Metrics (Base vs. Fine‑tuned)
We evaluated both models on a held‑out set of 20 black‑hole‑related questions (not seen during training). The fine‑tuned adapter consistently outperforms the base model.
| Metric | Base Model | Fine‑tuned Model | Improvement |
|---------------------------------|------------|------------------|--------------|
| **Perplexity** (lower is better) | 18.4 | 12.7 | -31% |
| **BLEU-4** (answer similarity) | 0.21 | 0.46 | +119% |
| **ROUGE-L** (content overlap) | 0.32 | 0.58 | +81% |
| **Formula inclusion** (accuracy) | 25% | 85% | +240% |
### Qualitative Comparison
| Question | Base Model Response (truncated) | Fine‑tuned Model Response |
|----------|--------------------------------|----------------------------|
| What is the Schwarzschild radius? | "The Schwarzschild radius is the radius below which an object becomes a black hole..." (no formula) | "The Schwarzschild radius is \( R_s = \frac{2GM}{c^2} \). It is the radius of the event horizon for a non‑rotating black hole." |
| Explain Hawking radiation. | "Hawking radiation is a theoretical prediction that black holes emit particles..." | "Hawking radiation is blackbody radiation emitted due to quantum effects near the event horizon. The temperature is \( T = \frac{\hbar c^3}{8\pi G M k_B} \)." |
| What is the no‑hair theorem? | "The no‑hair theorem states that black holes are described only by mass, charge, and angular momentum." | "The no‑hair theorem: a stationary black hole is completely characterized by only three parameters – mass \(M\), electric charge \(Q\), and angular momentum \(J\). All other information is 'lost'." |
## Beginner‑Friendly Usage (Copy‑Paste Ready)
You can test the adapter directly in **Google Colab (free T4 GPU)**. Click the badge above or run the cells below:
```python
# Step 1: Install dependencies (run once)
!pip install -q unsloth transformers accelerate peft bitsandbytes trl
# Step 2: Load the adapter (this may take 2‑3 minutes)
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
"Varun95/Lora-Mistral-7b",
max_seq_length=1024,
load_in_4bit=True,
)
# Step 3: Define a helper function
def ask_blackhole_question(question):
prompt = f"### Question:\n{question}\n\n### Answer:\n"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=200, temperature=0.7)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Step 4: Try it!
print(ask_blackhole_question("What happens to time at the event horizon of a black hole?"))