NahOR102's picture
Update README.md
6e4bf22 verified
# Model Card: Gemma-3 Indian Penal Code Legal Assistant
## Model Details
**Model Description**
* **Developed by:** Independent researcher
* **Model type:** LoRA fine-tuned LLM for Indian legal assistance
* **Language(s):** English with focus on Indian legal terminology
* **License:** Apache 2.0 (same as base model)
* **Finetuned from model:** unsloth/gemma-3-4b-it-unsloth-bnb-4bit
**Model Sources**
* **Base model:** [Google's Gemma 3](https://ai.google.dev/gemma)
* **Fine-tuning framework:** [Unsloth](https://github.com/unslothai/unsloth)
## Uses
**Direct Use**
This model is designed to provide accurate information about the Indian Penal Code (IPC). It can be used by:
- Legal professionals seeking quick reference to IPC sections
- Law students studying Indian criminal law
- Individuals seeking to understand their legal rights and responsibilities
- Paralegals and legal assistants drafting documents
**Downstream Use**
- Integration into legal assistance chatbots
- Incorporation into legal research tools
- Development of educational materials on Indian criminal law
**Out-of-Scope Use**
This model should NOT be used for:
- Providing definitive legal advice that replaces professional legal counsel
- Making judicial decisions or determinations
- Predicting case outcomes in specific legal scenarios
- Generating legal documents without professional review
## Bias, Risks, and Limitations
- The model may have incomplete knowledge of the most recent amendments to the Indian Penal Code
- It may provide information that is technically correct but lacks important contextual nuance
- The model cannot account for jurisdiction-specific interpretations or case law
- Performance may vary when dealing with complex legal questions involving multiple sections
- The model should not be relied upon for actual legal proceedings
**Recommendations**
- Always verify information with official legal sources
- Consult with qualified legal professionals before making legal decisions
- Use the model as a supplementary tool, not a replacement for proper legal research
- Be aware that the model may occasionally generate inaccurate or outdated information
## How to Get Started with the Model
```python
from unsloth import FastModel
import torch
from unsloth.chat_templates import get_chat_template
# Load the base model first
base_model_name = "unsloth/gemma-3-4b-it-unsloth-bnb-4bit"
model, tokenizer = FastModel.from_pretrained(
model_name = base_model_name,
max_seq_length = 2048,
load_in_4bit = True,
load_in_8bit = False,
)
# Load the adapter separately
from peft import PeftModel
adapter_path = "username/gemma-3-indian-penal-code-model" # Replace with actual path
model = PeftModel.from_pretrained(model, adapter_path)
# Set up the chat template
tokenizer = get_chat_template(
tokenizer,
chat_template = "gemma-3",
)
# Function to generate responses
def generate_response(question):
# Include system prompt in user message for Gemma 3
user_message = "You are an expert legal assistant providing accurate answers based on the Indian Penal Code (IPC). " + question
messages = [
{"role": "user", "content": user_message}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
inputs = tokenizer([text], return_tensors="pt").to("cuda" if torch.cuda.is_available() else "cpu")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=512,
temperature=0.7,
top_p=0.95,
top_k=64,
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
# Example usage
query = "What is the punishment for theft under Section 379 of the IPC?"
response = generate_response(query)
print(response)
```
## Training Details
**Training Data**
- The model was fine-tuned on a curated dataset of Indian Penal Code sections, explanations, and legal interpretations
- Training data was structured in a conversational format in the file "IPC_cleaned_fine_tuning.json"
- The dataset covers various sections of the IPC with specific focus on commonly referenced sections
**Training Procedure**
**Preprocessing**
- Legal texts were structured into conversational format for instruction fine-tuning
- Data was formatted with appropriate role tags (user/system/model)
- The Gemma 3 chat template was applied to format the conversations
**Training Hyperparameters**
* **Training regime:** LoRA (Low-Rank Adaptation) fine-tuning with Unsloth optimization
* **Rank (r):** 8
* **Alpha:** 8
* **Dropout:** 0
* **Learning rate:** 3e-4
* **Per device batch size:** 2
* **Gradient accumulation steps:** 4
* **Training steps:** 100
* **Warmup steps:** 2
* **Optimizer:** AdamW 8-bit
* **Weight decay:** 0.01
* **LR scheduler:** Linear
* **Seed:** 3407
* **Model bits:** 4-bit quantization (QLoRA)
* **Max sequence length:** 2048
**Training Configuration**
- Fine-tuned attention and MLP modules
- Used response-only training to focus on improving the model's outputs
- Utilized 4-bit quantization for memory efficiency
**Speeds, Sizes, Times**
- Training was completed in Google Colab environment
- Total training time was approximately 2-3 hours on a single GPU
- The adapter size is approximately 20MB
- Memory usage was optimized through 4-bit quantization
## Evaluation
**Testing Data, Factors & Metrics**
**Testing Data**
- A set of 8 test questions covering various aspects of the Indian Penal Code:
1. Punishment for theft
2. Difference between culpable homicide and murder
3. Concept of 'mens rea' in Indian criminal law
4. Punishments for different degrees of hurt
5. Criminal conspiracy under Section 120A
6. Self-defense as a valid defense
7. Legal definition of 'dowry death' under Section 304B
8. Concept of 'abetment' under the IPC
**Factors**
- Accuracy of legal information provided
- Completeness of responses
- Adherence to the specific sections of the IPC
- Handling of complex legal concepts
**Metrics**
- Accuracy of section citations
- Correctness of punishment terms
- Completeness of legal explanations
- Consistency with official IPC text
**Results**
- The model demonstrates strong understanding of core IPC concepts
- It accurately cites relevant sections and their corresponding punishments
- Legal explanations are comprehensive and contextually appropriate
- The model can differentiate between related but distinct legal concepts
## Environmental Impact
* **Hardware Type:** GPU (Google Colab)
* **Hours used:** Approximately 2-3 hours for fine-tuning
* **Cloud Provider:** Google Colab
* **Carbon Emitted:** Minimal due to short training time and efficient fine-tuning approach
## Technical Specifications
**Model Architecture and Objective**
- Base model: Gemma 3 4B instruction-tuned model
- Fine-tuning method: LoRA adapters with Unsloth optimization
- Objective: Provide accurate information about the Indian Penal Code while maintaining the base model's general capabilities
**Compute Infrastructure**
- Fine-tuning performed on Google Colab
- Used 4-bit quantization for memory efficiency
**Software**
- Python 3.x
- PyTorch
- Transformers (v4.49.0-Gemma-3)
- PEFT
- Unsloth library for optimization
- TRL for fine-tuning
## Model Card Contact
For questions or feedback about this model, please contact the author through the Hugging Face model repository.