|
|
--- |
|
|
library_name: transformers |
|
|
tags: [] |
|
|
--- |
|
|
|
|
|
# Model Card |
|
|
|
|
|
<!-- Provide a quick summary of what the model is/does. --> |
|
|
|
|
|
|
|
|
|
|
|
### Model Description |
|
|
|
|
|
<!-- Provide a longer summary of what this model is. --> |
|
|
This is a fine-tuned version of **DeepSeek-R1-Distill-Llama-8B**, optimized for **telecom-related queries**. The model has been fine-tuned to provide **concise and factual answers**, ensuring that it **does role-play as a customer service agent**. |
|
|
|
|
|
- **Developed by:** Mohamed Abdulaziz |
|
|
- **Model type:** Fine-tune-DeepSeek-R1-Distill-Llama-8B |
|
|
- **Framework Used:** Unsloth for fine tuning and wandb for performance monitoring |
|
|
- **License:** MIT License |
|
|
|
|
|
|
|
|
## Uses |
|
|
|
|
|
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. --> |
|
|
This model is designed for **customer support automation in the telecom industry**. It assists in: |
|
|
- Answering common user queries about **5G, network issues, billing, and services**. |
|
|
- Providing **concise and factually correct responses**. |
|
|
- Reducing **workload on human support agents** by handling routine inquiries. |
|
|
|
|
|
### **Who can use this model?** |
|
|
- **Telecom companies**: Automate customer service via chatbots. |
|
|
- **Developers & researchers**: Fine-tune and adapt for different use cases. |
|
|
- **Call centers**: Support agents in handling user requests efficiently. |
|
|
|
|
|
### **Who might be affected?** |
|
|
- **End-users** interacting with telecom chatbots. |
|
|
- **Support agents** using AI-assisted tools. |
|
|
- **Developers & data scientists** fine-tuning and deploying the model. |
|
|
|
|
|
|
|
|
## How to Get Started with the Model |
|
|
|
|
|
|
|
|
### **1️⃣ Import necessary libraries** |
|
|
```python |
|
|
import torch |
|
|
from unsloth import FastLanguageModel |
|
|
from transformers import AutoTokenizer |
|
|
``` |
|
|
|
|
|
### **2️⃣ Define model path** |
|
|
```python |
|
|
model_path = "moo100/DeepSeek-R1-telecom-chatbot" |
|
|
``` |
|
|
|
|
|
### **3️⃣ Load the model and tokenizer** |
|
|
```python |
|
|
model, tokenizer = FastLanguageModel.from_pretrained( |
|
|
model_path, |
|
|
max_seq_length=1024, # training length equal to 2048 but you can choose less than that to avoid OOM |
|
|
dtype=None # Uses default precision |
|
|
) |
|
|
``` |
|
|
|
|
|
### **4️⃣ Optimize model for fast inference with Unsloth** |
|
|
```python |
|
|
model = FastLanguageModel.for_inference(model) |
|
|
``` |
|
|
|
|
|
### **5️⃣ Move model to GPU if available, otherwise use CPU** |
|
|
```python |
|
|
device = "cuda" if torch.cuda.is_available() else "cpu" |
|
|
model.to(device) |
|
|
``` |
|
|
|
|
|
### **6️⃣ Define system instruction to guide model responses** |
|
|
```python |
|
|
system_instruction = """You are an AI assistant. Answer user questions concisely and factually. |
|
|
Do NOT role-play as a customer service agent. Only answer the user's query.""" |
|
|
``` |
|
|
|
|
|
### **7️⃣ Define user input (Replace with any query)** |
|
|
```python |
|
|
user_input = "What are the benefits of 5G?" |
|
|
``` |
|
|
|
|
|
### **8️⃣ Construct full prompt with instructions and user query** |
|
|
```python |
|
|
full_prompt = f"{system_instruction}\n\nUser: {user_input}\nAssistant:" |
|
|
``` |
|
|
|
|
|
### **9️⃣ Tokenize input prompt** |
|
|
```python |
|
|
inputs = tokenizer(full_prompt, return_tensors="pt").to(device) |
|
|
``` |
|
|
|
|
|
### **🔟 Generate model response with controlled stopping criteria** |
|
|
```python |
|
|
outputs = model.generate( |
|
|
input_ids=inputs.input_ids, # Encoded input tokens |
|
|
attention_mask=inputs.attention_mask, # Mask for input length |
|
|
max_new_tokens=100, # Limits response length |
|
|
do_sample=True, # Enables randomness for variability |
|
|
temperature=0.5, # Controls randomness level |
|
|
top_k=50, # Samples from top 50 probable words |
|
|
eos_token_id=tokenizer.eos_token_id, # Stops at end-of-sentence token |
|
|
) |
|
|
``` |
|
|
|
|
|
### **1️⃣1️⃣ Decode and extract only the newly generated response** |
|
|
```python |
|
|
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True) |
|
|
``` |
|
|
|
|
|
### **1️⃣2️⃣ Print the AI-generated response** |
|
|
```python |
|
|
print(response.split("\n")[0].strip()) |
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
## Training Details |
|
|
|
|
|
### Training Data |
|
|
|
|
|
<!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. --> |
|
|
|
|
|
talkmap/telecom-conversation-corpus |
|
|
|
|
|
### Training Procedure |
|
|
|
|
|
<!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. --> |
|
|
|
|
|
- **Loss Curve:** Shows a steady decline, indicating model convergence. |
|
|
- **Learning Rate Schedule:** Linear decay applied. |
|
|
- **Gradient Norm:** Slight increase, but under control. |
|
|
- **Global Steps & Epochs:** Indicates training progress. |
|
|
|
|
|
Below are the training metrics recorded during fine-tuning: |
|
|
https://drive.google.com/file/d/1-SOfG8K3Qt2WSEuyj3kFhGYOYMB5Gk2r/view?usp=sharing |
|
|
|
|
|
|
|
|
|
|
|
# Evaluation |
|
|
|
|
|
## Methodology |
|
|
|
|
|
The chatbot was evaluated using Meta-Llama-3.3-70B-Instruct, assessing relevance, correctness, and fluency of its responses. |
|
|
|
|
|
## Results |
|
|
|
|
|
Meta-Llama-3.3-70B-Instruct Evaluation: |
|
|
|
|
|
Relevance: 9/10 |
|
|
The response is highly relevant to the user’s query about 5G benefits, providing a concise and informative summary. |
|
|
|
|
|
Correctness: 10/10 |
|
|
The response is factually accurate, highlighting key advantages such as faster data speeds, lower latency, increased capacity, and broader device compatibility. |
|
|
|
|
|
Fluency: 9/10 |
|
|
The response is well-structured, grammatically sound, and easy to understand. Minor refinements could further enhance readability. |
|
|
|
|
|
|