File size: 3,755 Bytes
7808ba8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

---

base_model:
- qnguyen3/VyLinh-3B
- Qwen/Qwen2.5-3B-Instruct
library_name: transformers
tags:
- mergekit
- merge
language:
- vi

---

[![QuantFactory Banner](https://lh7-rt.googleusercontent.com/docsz/AD_4nXeiuCm7c8lEwEJuRey9kiVZsRn2W-b4pWlu3-X534V3YmVuVc2ZL-NXg2RkzSOOS2JXGHutDuyyNAUtdJI65jGTo8jT9Y99tMi4H4MqL44Uc5QKG77B0d6-JfIkZHFaUA71-RtjyYZWVIhqsNZcx8-OMaA?key=xt3VSDoCbmTY7o-cwwOFwQ)](https://hf.co/QuantFactory)


# QuantFactory/Arcee-VyLinh-GGUF
This is quantized version of [arcee-ai/Arcee-VyLinh](https://huggingface.co/arcee-ai/Arcee-VyLinh) created using llama.cpp

# Original Model Card

**Quantized Version**: [arcee-ai/Arcee-VyLinh-GGUF](https://huggingface.co/arcee-ai/Arcee-VyLinh-GGUF)

# Arcee-VyLinh

Arcee-VyLinh is a 3B parameter instruction-following model specifically optimized for Vietnamese language understanding and generation. Built through an innovative training process combining evolved hard questions and iterative Direct Preference Optimization (DPO), it achieves remarkable performance despite its compact size.

## Model Details

- **Architecture:** Based on Qwen2.5-3B
- **Parameters:** 3 billion
- **Context Length:** 32K tokens
- **Training Data:** Custom evolved dataset + ORPO-Mix-40K (Vietnamese)
- **Training Method:** Multi-stage process including EvolKit, proprietary merging, and iterative DPO
- **Input Format:** Supports both English and Vietnamese, optimized for Vietnamese

## Intended Use

- Vietnamese language chat and instruction following
- Text generation and completion
- Question answering
- General language understanding tasks
- Content creation and summarization

## Performance and Limitations

### Strengths

- Exceptional performance on complex Vietnamese language tasks
- Efficient 3B parameter architecture
- Strong instruction-following capabilities
- Competitive with larger models (4B-8B parameters)

### Benchmarks

Tested on Vietnamese subset of m-ArenaHard (CohereForAI), with Claude 3.5 Sonnet as judge:

![image/png](https://cdn-uploads.huggingface.co/production/uploads/630430583926de1f7ec62c6b/m1bTn0vkiPKZ3uECC4b0L.png)

### Limitations

- Might still hallucinate on cultural-specific content.
- Primary focus on Vietnamese language understanding
- May not perform optimally for specialized technical domains

## Training Process

Our training pipeline consisted of several innovative stages:

1. **Base Model Selection:** Started with Qwen2.5-3B
2. **Hard Question Evolution:** Generated 20K challenging questions using EvolKit
3. **Initial Training:** Created VyLinh-SFT through supervised fine-tuning
4. **Model Merging:** Proprietary merging technique with Qwen2.5-3B-Instruct
5. **DPO Training:** 6 epochs of iterative DPO using ORPO-Mix-40K
6. **Final Merge:** Combined with Qwen2.5-3B-Instruct for optimal performance

## Usage Examples

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

# Load the model and tokenizer
model = AutoModelForCausalLM.from_pretrained("arcee-ai/Arcee-VyLinh")
tokenizer = AutoTokenizer.from_pretrained("arcee-ai/Arcee-VyLinh")

prompt = "Một cộng một bằng mấy?"
messages = [
    {"role": "system", "content": "Bạn là trợ lí hữu ích."},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(device)

generated_ids = model.generate(
    model_inputs.input_ids,
    max_new_tokens=1024,
    eos_token_id=tokenizer.eos_token_id,
    temperature=0.25,
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids)[0]
print(response)
```