You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

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
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Raazi29/ChefAI-7b-lora

Base model

Qwen/Qwen2.5-7B
Adapter
(800)
this model