ChefAI - Indian Recipe Generator π
A fine-tuned Qwen2.5-7B model specialized in generating authentic Indian recipes.
Model Description
ChefAI is a LoRA adapter fine-tuned on the Qwen2.5-7B-Instruct model using Indian recipe data. It can generate detailed recipes with ingredients, step-by-step instructions, and cooking tips for a wide variety of Indian dishes.
Key Features
- π² Generates authentic Indian recipes
- π Provides detailed step-by-step cooking instructions
- π₯ Covers vegetarian and non-vegetarian dishes
- πΆοΈ Includes regional cuisines from across India
Requirements
pip install transformers peft torch accelerate
# Optional: For 4-bit quantization (recommended for low VRAM)
pip install bitsandbytes
How to Use
Basic Usage (No Quantization - Requires ~16GB VRAM)
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
# Load base model and tokenizer
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-7B-Instruct",
device_map="auto",
torch_dtype="auto",
trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained("Raazi29/ChefAI-7b-lora")
# Load LoRA adapter
model = PeftModel.from_pretrained(base_model, "Raazi29/ChefAI-7b-lora")
model.eval()
# Generate recipe
messages = [{"role": "user", "content": "Give me a recipe for butter chicken"}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
outputs = model.generate(
input_ids=inputs,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
do_sample=True,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
With 4-bit Quantization (Requires ~6GB VRAM)
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
# Quantization config for 4-bit loading
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True,
)
# Load base model with quantization
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-7B-Instruct",
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True,
)
# Load tokenizer and LoRA adapter
tokenizer = AutoTokenizer.from_pretrained("Raazi29/ChefAI-7b-lora")
model = PeftModel.from_pretrained(base_model, "Raazi29/ChefAI-7b-lora")
model.eval()
# Generate recipe
messages = [{"role": "user", "content": "Give me a recipe for butter chicken"}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
outputs = model.generate(
input_ids=inputs,
max_new_tokens=512,
temperature=0.7,
top_p=0.9,
do_sample=True,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Google Colab Quick Start
# Install dependencies
!pip install -q transformers peft accelerate bitsandbytes
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
# Load with 4-bit quantization for Colab's limited VRAM
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
)
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-7B-Instruct",
quantization_config=bnb_config,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("Raazi29/ChefAI-7b-lora")
model = PeftModel.from_pretrained(base_model, "Raazi29/ChefAI-7b-lora")
# Test it
messages = [{"role": "user", "content": "How to make paneer tikka?"}]
inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to("cuda")
outputs = model.generate(input_ids=inputs, max_new_tokens=512, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Example Prompts
- "Give me a recipe for butter chicken"
- "How do I make paneer tikka masala?"
- "What ingredients do I need for biryani?"
- "Suggest a quick vegetarian Indian dinner recipe"
- "How to make dal makhani step by step?"
Training Details
- Base Model: Qwen2.5-7B-Instruct
- Fine-tuning Method: LoRA (Low-Rank Adaptation)
- LoRA Rank: 8
- LoRA Alpha: 16
- Target Modules: q_proj, k_proj, v_proj, o_proj
Limitations
- Responses may occasionally include non-Indian dishes
- Some regional recipes might not be fully accurate
- Always verify cooking times and temperatures for safety
License
Apache 2.0
- Downloads last month
- -