---
license: mit
language:
- en
base_model:
- gpt2
tags:
- text-generation-inference
- conversational-ai
- gpt2
metrics:
- perplexity
- bleu
- f1
library_name: transformers
---

# HarpertokenConvFT

## Model Details
- **Model Name**: HarpertokenConvFT
- **Base Model**: gpt2
- **Model Type**: GPT-2-based conversational AI model
- **Max Sequence Length**: 1024 tokens

## Intended Use
Generates human-like responses for chatbots, virtual assistants, and dialogue systems.

## Training Data
The model was fine-tuned on the DailyDialog dataset, featuring:
- **Training Examples**: 11,118
- **Validation Examples**: 1,000
- **Test Examples**: 1,000

## Dataset Characteristics
- **Description**: A high-quality, multi-turn dialogue dataset covering everyday topics.
- **Features**: Includes dialogues, communication acts, and emotion annotations.
- **Citation**:
  ```
  @InProceedings{li2017dailydialog,
      author = {Li, Yanran and Su, Hui and Shen, Xiaoyu and Li, Wenjie and Cao, Ziqiang and Niu, Shuzi},
      title = {DailyDialog: A Manually Labelled Multi-turn Dialogue Dataset},
      booktitle = {Proceedings of The 8th International Joint Conference on Natural Language Processing (IJCNLP 2017)},
      year = {2017}
  }
  ```

## Training Configuration
- **Learning Rate**: 2e-5
- **Batch Size**: 8
- **Number of Epochs**: 3
- **Weight Decay**: 0.01

## Ethical Considerations
Inherited from the GPT-2 base model and the DailyDialog dataset, this model may reflect biases or limitations present in its training data. Caution is advised when using it in sensitive contexts, as it could produce biased or inappropriate responses.

## How to Use

### Using the Model Directly
```python
from transformers import AutoModelForCausalLM, AutoTokenizer

# Load model and tokenizer
model = AutoModelForCausalLM.from_pretrained("harpertoken/harpertokenConvFT")
tokenizer = AutoTokenizer.from_pretrained("harpertoken/harpertokenConvFT")

# Prepare input
input_text = "Hello, how are you?"
inputs = tokenizer(input_text, return_tensors="pt")

# Generate response
outputs = model.generate(**inputs)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
```

### Using the Terminal
Run the provided script to generate responses:
```bash
python3 generate_response.py --input "Hello, how are you?"
```

### Using the API
**Check API Status:**
```bash
curl http://localhost:8000/status
```

**Generate a Response:**
```bash
curl -X POST http://localhost:8000/chat -H "Content-Type: application/json" -d '{"input_text": "Hello, how are you?"}'
```

### Using FastAPI Documentation
Interact with the API via the browser at:
[http://localhost:8000/docs#/default/generate_response_chat_post](http://localhost:8000/docs#/default/generate_response_chat_post)

## Related Models

- **harpertokenConvAI**: [https://huggingface.co/harpertoken/harpertokenConvAI](https://huggingface.co/harpertoken/harpertokenConvAI) - DistilBERT-based model for question answering. Note: This is not the base model for harpertokenConvFT due to incompatible architectures (DistilBERT vs GPT-2).
- **Base Model**: This model is fine-tuned from GPT-2 ([openai/gpt2](https://huggingface.co/gpt2)).

## Model Differences

harpertokenConvFT is a GPT-2 model for conversational AI, while harpertokenConvAI is a DistilBERT model for question answering. They have different architectures, tokenizers, and parameters, making fine-tuning between them impossible. For truthful info, refer to the config.json files.

