ChatGPT-2.V2 / README.md
suriya7's picture
Upload tokenizer
0e24b78 verified
---
base_model:
- MBZUAI/LaMini-GPT-774M
library_name: transformers
license: apache-2.0
model_name: ChatGPT-2.V2
tags:
- conversational-ai
- fine-tuning
- gpt2
- causal-lm
- chatbots
---
# ChatGPT-2.V2 Model Card
## Model Description
**ChatGPT-2.V2** is a fine-tuned version of the **lamini-gpt-774M** instruction model, optimized for conversational AI tasks. The model is trained to generate coherent, context-aware responses for interactive chatbot applications, achieving significant improvements in performance through fine-tuning on a combination of public conversational datasets and curated, domain-specific datasets.
This model supports a context length of up to **1024 tokens**, enabling it to handle multi-turn conversations effectively.
---
## Fine-Tuning Process
The model was fine-tuned using **public conversational datasets** and **curated datasets** specifically tailored for interactive chat scenarios. The fine-tuning process aimed to:
- Enhance the model's ability to understand and respond to diverse conversational prompts.
- Improve context retention and relevance in multi-turn interactions.
- Achieve a balance between creativity and accuracy for engaging chatbot responses.
The training process resulted in a **final loss of 1.2**, indicating strong convergence and performance.
---
## Key Features
- **Conversational Proficiency:** Designed for real-time chat applications with context-aware responses.
- **Fine-Tuned Context Handling:** Supports up to 1024 tokens, enabling robust multi-turn conversations.
- **Instruction-Based Foundation:** Built on the lamini-gpt-774M instruction model, retaining its strengths in task-oriented dialogues.
---
## Training Details
- **Base Model:** lamini-gpt-774M
- **Fine-Tuning Framework:** Hugging Face Transformers
- **Datasets Used:**
- Public conversational datasets (open-domain)
- Custom curated datasets for domain-specific conversations
- **Context Length:** 1024 tokens
- **Final Loss:** 1.2
- **Learning Rate:** 1e-5
- **Training Epochs:** 3
- **fp16:** True
---
## Usage
The model is intended for conversational AI applications, such as:
- Chatbots for customer support
- Interactive virtual assistants
- Personalized conversational agents
### Inference Example
```python
# Load model directly
from transformers import AutoModelForCausalLM, GPT2Tokenizer
import torch
tokenizer = GPT2Tokenizer.from_pretrained("suriya7/ChatGPT-2.V2")
model = AutoModelForCausalLM.from_pretrained("suriya7/ChatGPT-2.V2")
prompt = """
<|im_start|>system\nYou are a helpful AI assistant named Securitron, trained by Aquilax.<|im_end|>
"""
# Keep a list for the last one conversation exchanges
conversation_history = []
while True:
user_prompt = input("User Question: ")
if user_prompt.lower() == 'break':
break
# Format the user's input
user = f"""<|im_start|>user
{user_prompt}<|im_end|>"""
# Add the user's question to the conversation history
conversation_history.append(user)
# Ensure conversation starts with a user's input and keep only the last 2 exchanges (4 turns)
conversation_history = conversation_history[-5:]
# Build the full prompt
current_prompt = prompt + "\n".join(conversation_history)
# Tokenize the prompt
encodeds = tokenizer(current_prompt, return_tensors="pt", truncation=True).input_ids
# Move model and inputs to the appropriate device
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)
inputs = encodeds.to(device)
# Create an empty list to store generated tokens
generated_ids = inputs
# Start generating tokens one by one
assistant_response = ""
for _ in range(512): # Specify a max token limit for streaming
next_token = model.generate(
generated_ids,
max_new_tokens=1,
pad_token_id=50259,
eos_token_id=50259,
num_return_sequences=1,
do_sample=True,
top_k=50,
temperature=0.2,
top_p=0.90
)
generated_ids = torch.cat([generated_ids, next_token[:, -1:]], dim=1)
token_id = next_token[0, -1].item()
token = tokenizer.decode([token_id], skip_special_tokens=True)
assistant_response += token
print(token, end="", flush=True)
if token_id == 50259: # EOS token
break
print()
conversation_history.append(f"<|im_start|>{assistant_response.strip()}<|im_end|>")
```
## Limitations
While the model performs well in general chat scenarios, it may encounter challenges in:
- Highly domain-specific contexts not covered during fine-tuning.
- Very long conversations that exceed the 1024-token context limit.
## Additional Disclaimer
Please note that this model has not been specifically aligned using techniques such as Direct Preference Optimization (DPO) or similar methodologies. While the model has been fine-tuned to perform well in chat-based tasks, its responses are not guaranteed to reflect human-aligned preferences or ethical guidelines. Use with caution in sensitive or critical applications.