Transformers
Safetensors
English
t5
text2text-generation
flan-t5
fine-tuned
resume
chatbot
rag
retrieval-augmented-generation
gradio
personal-assistant
text-generation-inference
Instructions to use sudeep1610/ResumeBot with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use sudeep1610/ResumeBot with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("sudeep1610/ResumeBot") model = AutoModelForSeq2SeqLM.from_pretrained("sudeep1610/ResumeBot", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from sudeep1610/ResumeBot: direct link, hf CLI and curl.
- Browser
- Download file 4.48 kB
-
https://huggingface.co/sudeep1610/ResumeBot/resolve/main/README.md
- Command line
-
hf download hf://sudeep1610/ResumeBot/README.md
-
curl -L -o README.md https://huggingface.co/sudeep1610/ResumeBot/resolve/main/README.md
4.48 kB
| license: apache-2.0 | |
| language: en | |
| base_model: google/flan-t5-base | |
| datasets: [sudeep1610/resumebot-dataset] | |
| library_name: transformers | |
| tags: [flan-t5, fine-tuned, resume, chatbot, rag, retrieval-augmented-generation, gradio, personal-assistant] | |
| # 🤖 ResumeBot: a personalised LLM fine-tuned on my resume | |
| **ResumeBot** is a chatbot that answers questions about **Sudeep** (Data Analyst | Data Science). | |
| It is Google's pretrained **google/flan-t5-base** model **fine-tuned on 353 question–answer pairs built from my resume**, | |
| combined with a semantic retriever and two hallucination guards so it only says things that are actually on my resume. | |
| > *"What are Sudeep's technical skills?"* → *"Sudeep's technical skills are Python, SQL, Power BI, Excel, Data Analysis, | |
| > Data Visualization and Business Intelligence."* 📄 *Resume section: Technical skills* | |
| ## How it works | |
| ``` | |
| Question | |
| ↓ | |
| Semantic retriever (all-MiniLM-L6-v2) finds the most relevant resume facts | |
| ↓ | |
| Out-of-scope guard: not about the resume? → polite refusal (no guessing) | |
| ↓ | |
| Fine-tuned FLAN-T5 writes the answer from those facts | |
| ↓ | |
| Grounding check: answer contains words not in the resume? → return the verified resume fact | |
| ↓ | |
| Answer + resume section (Gradio web app) | |
| ``` | |
| This approach is called **retrieval-augmented fine-tuning**: the model is fine-tuned to answer from retrieved resume text, | |
| which keeps answers accurate even for questions worded in new ways. | |
| ## Training details | |
| | | | | |
| |---|---| | |
| | Base model | [`google/flan-t5-base`](https://huggingface.co/google/flan-t5-base) (pretrained by Google) | | |
| | Method | Supervised fine-tuning (seq2seq) with retrieved context | | |
| | Knowledge base | 28 resume facts | | |
| | Dataset | [sudeep1610/resumebot-dataset](https://huggingface.co/datasets/sudeep1610/resumebot-dataset): 353 Q&A pairs (327 train / 26 unseen test) | | |
| | Epochs / learning rate / batch size | 10 / 0.0003 / 8 | | |
| | Hardware | Google Colab (free T4 GPU) | | |
| | Retriever | sentence-transformers/all-MiniLM-L6-v2 | | |
| ## Results (on questions never seen during training) | |
| | Metric | Value | | |
| |---|---| | |
| | Final training loss | 0.0010 | | |
| | Loss on unseen questions | 0.0056 | | |
| | Retriever picked the correct resume fact | 69% | | |
| | Answer exactly matches the resume answer | 69% | | |
| <img src="loss_curve.png" alt="Training loss" width="620"> | |
| ## Hallucination guards | |
| 1. **Retrieval:** the model only sees the resume facts relevant to the question. | |
| 2. **Grounding check:** any answer containing information that is not in the retrieved resume text is replaced by the verified fact. | |
| 3. **Out-of-scope guard:** questions unrelated to the resume (e.g. *"What is the capital of France?"*) get a polite refusal. | |
| ## Use it | |
| **Run the full ResumeBot web app (Gradio):** | |
| ```bash | |
| git clone https://huggingface.co/sudeep1610/ResumeBot | |
| cd ResumeBot | |
| pip install -r requirements.txt | |
| python app.py | |
| ``` | |
| **Use only the fine-tuned model in Python:** | |
| ```python | |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| tok = AutoTokenizer.from_pretrained("sudeep1610/ResumeBot") | |
| model = AutoModelForSeq2SeqLM.from_pretrained("sudeep1610/ResumeBot") | |
| prompt = ("Resume information: Sudeep's technical skills are Python, SQL, Power BI, Excel, Data Analysis, " | |
| "Data Visualization and Business Intelligence.\nQuestion: What tools does he know?\n" | |
| "Answer using only the resume information:") | |
| out = model.generate(**tok(prompt, return_tensors="pt"), max_new_tokens=128, num_beams=4) | |
| print(tok.decode(out[0], skip_special_tokens=True)) | |
| ``` | |
| ## Files | |
| | File | What it is | | |
| |---|---| | |
| | `model.safetensors`, `config.json`, `tokenizer*` | The fine-tuned FLAN-T5 model | | |
| | `app.py` | Complete ResumeBot: retriever + fine-tuned model + guards + Gradio website | | |
| | `bot_config.json` | Knowledge base: resume facts, profile, prompt, known questions | | |
| | `requirements.txt` | Python packages needed to run `app.py` | | |
| | `ResumeBot_Pro.ipynb` | Training notebook (Google Colab) | | |
| | `loss_curve.png` | Training / test loss chart | | |
| ## Limitations | |
| - Knows only what is written in the resume; it cannot answer about anything else by design. | |
| - Small academic project: trained on a small dataset, so unusual phrasings may occasionally match the wrong section. | |
| ## Author | |
| **Sudeep**, Data Analyst | Data Science · M.Sc. Data Science, Dayananda Sagar University (2025-2027) | |
| [LinkedIn](https://linkedin.com/in/sudeep-shetty-0aa23a1b0) · [GitHub](https://github.com/sudeepshetty4247-stack) | |