This project is a Generative AI-powered conversational interview preparation system designed to simulate realistic technical interviews based on a candidate's resume and technical skills.
The system uses:
- TinyLlama-1.1B-Chat
- LoRA (Low-Rank Adaptation)
- PEFT (Parameter-Efficient Fine-Tuning)
- 4-bit Quantization (BitsAndBytes)
- HuggingFace Transformers
- PyMuPDF for Resume Parsing
The final system:
- Extracts text from resumes.
- Identifies technical skills.
- Generates personalized interview questions.
- Conducts conversational interviews.
- Generates automated feedback.
- Simulates AI-based interview platforms used in modern recruitment.
- Build a personalized AI interviewer.
- Generate skill-aware technical questions.
- Conduct conversational interviews.
- Provide automated feedback.
- Demonstrate practical use of Generative AI in interview preparation.
- TinyLlama-1.1B-Chat
- HuggingFace Transformers
- PyTorch
- PEFT
- LoRA
- TRL (SFTTrainer)
- BitsAndBytes
- PyMuPDF
- Regular Expressions (Regex)
- Skill Extraction Logic
- Kaggle Notebook
- Tesla T4 GPU
Resume Upload ↓ PDF Text Extraction ↓ Resume Cleaning ↓ Skill Extraction ↓ Prompt Engineering ↓ Load TinyLlama Base Model ↓ Apply 4-bit Quantization ↓ Configure LoRA Adapters ↓ Fine-Tune Model ↓ Save LoRA Weights ↓ Load Fine-Tuned Model ↓ Generate Interview Questions ↓ Conversational Interview ↓ Response Evaluation ↓ Feedback Generation
Create a conversational interview dataset for fine-tuning.
JSONL format
Example:
{
"instruction": "Ask one technical interview question about Python.",
"response": "What is the difference between lists and tuples in Python?"
}- Technical Interview Questions
- Conversational Format
- Multiple Domains
- Resume-Oriented Prompts
- Follow-up Questions
TinyLlama-1.1B-Chat is loaded using HuggingFace Transformers.
Purpose:
- Base conversational capability
- Foundation for interview specialization
4-bit NF4 Quantization is applied using BitsAndBytes.
Purpose:
- Reduce GPU memory usage
- Enable training on Tesla T4 GPU
Benefits:
- Faster training
- Lower memory consumption
- Cost-efficient deployment
Target Modules:
["q_proj", "v_proj"]LoRA Parameters:
r=16
lora_alpha=32
lora_dropout=0.05Purpose:
- Train only adapter weights
- Keep TinyLlama frozen
Benefits:
- Faster training
- Smaller checkpoints
- Lower GPU usage
Trainer:
SFTTrainerPurpose:
- Supervised fine-tuning
- Conversational adaptation
Training Configuration:
learning_rate = 2e-4
per_device_train_batch_size = 1
num_train_epochs = 1-3
max_seq_length = 512Monitor:
trainer.state.log_historyExpected Result:
Initial Loss ≈ 4.13
Final Loss ≈ 0.56
Interpretation:
- Model learned interview patterns
- Stable convergence
- Successful LoRA adaptation
Save:
- LoRA Adapters
- Tokenizer
Artifacts:
adapter_model/
tokenizer/Input:
PDF Resume
Library:
PyMuPDFExtract:
- Skills
- Projects
- Education
- Experience
Process:
- Remove special characters
- Normalize spaces
- Prepare text for NLP
Identify candidate technologies.
Example Output:
[
"Python",
"SQL",
"React",
"MongoDB",
"Machine Learning"
]Used For:
- Personalized interviews
- Skill-aware questioning
AutoModelForCausalLMPeftModel.from_pretrained()Purpose:
Apply interview-specific knowledge.
Input:
- Resume Text
- Skills
- Previous Conversation
Output:
Interview Prompt
Model Generates:
- Technical Questions
- Follow-up Questions
- Contextual Questions
Example:
AI: What is the difference between lists and tuples?
User: Lists are mutable while tuples are immutable.
AI: Can you explain a scenario where tuples are preferred?
- Technical Depth
- Communication Quality
- Clarity
- Completeness
Strengths:
- Good understanding of Python.
Weaknesses:
- Limited explanation depth.
Suggestions:
- Provide real-world examples.
Result:
Successfully extracts:
- Skills
- Projects
- Education
- Experience
Performance:
High relevance to resume content.
Fine-Tuned Model:
- Resume-aware
- Skill-focused
Base Model:
- Generic
- Less contextual
Fine-Tuned Model:
- Better context retention
- More realistic interviews
Environment:
Tesla T4
Technique:
4-bit Quantization + LoRA
Benefits:
- Low memory usage
- Fast inference
| Metric | Base Model | Fine-Tuned Model |
|---|---|---|
| Question Relevance | Moderate | High |
| Context Awareness | Moderate | High |
| Interview Realism | Moderate | High |
| Personalization | None | High |
| Feedback Quality | Moderate | Good |
- Resume-aware interview generation.
- Lightweight LLM fine-tuning.
- Conversational AI interviewer.
- Automated interview feedback.
- Efficient deployment using LoRA and Quantization.
Cause:
Weak conversation memory.
Solution:
- Store conversation history.
- Maintain asked question set.
- Use follow-up prompting.
Cause:
Prompt too generic.
Solution:
Force:
Generate ONE interview question about {skill} only.
Solution:
- Enable 4-bit quantization.
- Reduce batch size.
- Use LoRA.
Lightweight and efficient conversational LLM.
Trains only adapter weights.
Reduces training cost and memory.
Allows efficient GPU usage.
Provides supervised fine-tuning pipeline.
Error between generated and expected output during training.
A personalized conversational AI interviewer capable of generating technical interviews and automated feedback based on candidate resumes.
- Voice-based interviews.
- Speech-to-text integration.
- Emotion detection.
- Multilingual support.
- Real-time scoring.
- ATS compatibility.
- Cloud deployment.
Himanshu Patro
Institute of Technical Education and Research (ITER) SOA University
Project: Generative AI-Powered Conversational Interview Preparation System