safetensors ru base_model:unsloth/DeepSeek-R1-Distill-Llama-8B-bnb-4bit base_model:finetune:unsloth/DeepSeek-R1-Distill-Llama-8B-bnb-4bit license:mit region:us
---
base_model:
- unsloth/DeepSeek-R1-Distill-Llama-8B-bnb-4bit
language:
- ru
license: mit
---

# DeepSeek-Meeting-Summary

## 📌 Model Overview

This is a fine-tuned version of `DeepSeek-R1-Distill-Llama-8B` using `Unsloth` and `LoRA` for meeting summarization and structured insights extraction. 
The model is designed to analyze meeting transcripts and generate structured summaries in **JSON format**, 
extracting key elements like **summary, topics, actions, problems, and decisions**.

### 🚀 Features
- **100% valid JSON generation**
- **Trained for long-sequence summarization (16K tokens)**
- **Optimized for structured meeting insights extraction**
- **Fine-tuned with LoRA for efficient training**

## 🔥 Performance Metrics

| Metric         | Value  |
|---------------|--------|
| **ROUGE-L**   | `0.5217` |
| **BERT-F1**   | `0.7112` |
| **JSON Validity** | `1.0` (100% valid JSON responses) |
| **Validation Loss** | `1.6732` |

## 🚀 Usage

### 1️⃣ **Install Dependencies**
```bash
pip install transformers torch
```

### 2️⃣ **Load the Model**
```python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "UDZH/deepseek-meeting-summary"

# Load tokenizer and model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
```

### 3️⃣ **Run Inference**
```python
prompt = """
Analyze the following meeting transcript and extract the key points:
1. **Summarization** – a brief summary of the meeting.
2. **Topics** – a list of topics discussed.
3. **Decisions** – key decisions made.
4. **Problems** – challenges or issues identified.
5. **Actions** – planned or taken actions.

Return the output **STRICTLY in the following JSON format**:
{
  "Summarization": "Brief meeting summary...",
  "Topics": ["Topic 1", "Topic 2"],
  "Actions": ["Action 1", "Action 2"],
  "Problems": ["Problem 1", "Problem 2"],
  "Decisions": ["Decision 1", "Decision 2"]
}

Meeting transcript (in Russian):
{}

**Return only a valid JSON response in Russian language.**
**Do not include explanations, introductions, or extra text.**
**If a category is missing, return an empty array [].**

### Response:
{}
"""

input_text = "Your meeting transcript here"
inputs = tokenizer(prompt.format(input_text, ""), return_tensors="pt", truncation=True, max_length=16384)

with torch.no_grad():
    output_ids = model.generate(**inputs, max_new_tokens=500)

response = tokenizer.decode(output_ids[0], skip_special_tokens=True)
print("Generated Summary:", response)
```

## 📌 License & Citation
This model is fine-tuned for research and production use. If you use it in your projects, please cite this repository.