--- license: apache-2.0 language: - en library_name: transformers tags: - qwen2.5 - onnx - transformers.js - text-generation - fine-tuned - sft - lora - resume - chatbot base_model: "Qwen/Qwen2.5-0.5B-Instruct" datasets: - "justinthelaw/Resume-Cover-Letter-SFT-Dataset" pipeline_tag: text-generation --- # justinthelaw/Qwen2.5-0.5B-Instruct-Resume-Cover-Letter-SFT A fine-tuned version of [Qwen/Qwen2.5-0.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct) trained with an SFT + LoRA pipeline to answer questions about **Justin**'s professional background, skills, and experience. ## Model Description This model is designed for browser-based inference using [transformers.js](https://huggingface.co/docs/transformers.js). It powers a personal website chatbot that can answer questions about Justin's resume, work experience, education, and skills. ### Training Pipeline The model is trained using **SFT (Supervised Fine-Tuning)** with **LoRA adapters**, where factual memorization is enforced via conversation-formatted QA pairs. ### Training Details - **Base Model**: [Qwen/Qwen2.5-0.5B-Instruct](https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct) - **Training Dataset**: [justinthelaw/Resume-Cover-Letter-SFT-Dataset](https://huggingface.co/datasets/justinthelaw/Resume-Cover-Letter-SFT-Dataset) - **LoRA Configuration**: - Rank (r): 64 - Alpha: 128 - Dropout: 0.05 - Target Modules: q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj #### SFT Training Configuration - Epochs: 8 - Batch Size: 16 - Learning Rate: 2e-05 ## Model Formats This repository contains multiple model formats: | Format | Location | Use Case | | ----------- | ---------- | --------------------------------------------------------- | | SafeTensors | `/` (root) | Python/PyTorch inference | | ONNX | `/onnx/` | FP32 + quantized weights for ONNX Runtime/Web inference | ## Usage ### Browser (transformers.js) ```javascript import { pipeline } from "@huggingface/transformers"; const generator = await pipeline("text-generation", "justinthelaw/Qwen2.5-0.5B-Instruct-Resume-Cover-Letter-SFT", { dtype: "fp32", }); const output = await generator("What is Justin's background?", { max_new_tokens: 256, }); ``` ### Python (Transformers) ```python from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("justinthelaw/Qwen2.5-0.5B-Instruct-Resume-Cover-Letter-SFT") tokenizer = AutoTokenizer.from_pretrained("justinthelaw/Qwen2.5-0.5B-Instruct-Resume-Cover-Letter-SFT") prompt = "What is Justin's background?" inputs = tokenizer(prompt, return_tensors="pt") outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` ## Intended Use This model is intended for: - Personal website chatbots - Resume Q&A applications - Demonstrating fine-tuning techniques for personalized AI assistants ## Limitations - The model is specifically trained on Justin's resume and may not generalize to other topics - Responses are based on training data and may not reflect real-time information - Not suitable for general-purpose question answering ## Author ### Justin - GitHub: [justinthelaw](https://github.com/justinthelaw) - HuggingFace: [justinthelaw](https://huggingface.co/justinthelaw) ## License This model is released under the Apache 2.0 license.