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
- Fine-tuning framework: 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
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:
- Punishment for theft
- Difference between culpable homicide and murder
- Concept of 'mens rea' in Indian criminal law
- Punishments for different degrees of hurt
- Criminal conspiracy under Section 120A
- Self-defense as a valid defense
- Legal definition of 'dowry death' under Section 304B
- 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.