SohamGhadge/casual-conversation
Viewer • Updated • 3.73k • 292 • 32
How to use kunjcr2/gpt2_conv with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("openai-community/gpt2-medium")
model = PeftModel.from_pretrained(base_model, "kunjcr2/gpt2_conv")This project fine-tunes the gpt2-medium language model to support natural, casual conversational dialogue using PEFT + LoRA.
gpt2-mediumgpt2 (same as base model)| Metric | Value |
|---|---|
| Global Steps | 2611 |
| Final Training Loss | 2.185 |
| Training Runtime | 430.61 seconds |
| Samples/sec | 138.41 |
| Steps/sec | 17.32 |
| Total FLOPs | 1.12 × 10¹⁵ |
| Epochs | 7.0 |
These metrics reflect final performance after complete training.
Chat with the model using the talk() function below:
def talk(model=peft_model, tokenizer=tokenizer, device=device):
print("Start chatting with the bot! Type 'exit' to stop.\n")
while True:
question = input("You: ")
if question.lower() == "exit":
print("Goodbye!")
break
prompt = f"User: {question}\nBot:"
inputs = tokenizer(prompt, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=20,
do_sample=True,
temperature=0.7,
top_p=0.9,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(
outputs[0][inputs["input_ids"].shape[-1]:],
skip_special_tokens=True
)
# Clean response
response = response.split(".")
response = ".".join(response[:-1]) + "."
print("Bot:", response.strip())
To use this model locally:
pip install transformers peft accelerate
Base model
openai-community/gpt2-medium