

# Vietnamese Mistral 7b (vi-mistral-7b-v0.3)

## TL;DR

| Aspect      | Sub-Aspect   | Description                                      |
|-------------|--------------|--------------------------------------------------|
| Changes     | Vocab     | 128k -> 8k                                        |
| Corpus      | Language     | Vietnames                                        |
|             | Source       | [anhdungitvn/vi-corpus-cleaned-54988654](https://huggingface.co/datasets/anhdungitvn/vi-corpus-cleaned-54988654) |
|             | Ref       | [allenai/MADLAD-400](https://huggingface.co/datasets/allenai/MADLAD-400) |
|             | Size         | 3GB                                  |
|             | Preprocesing | Extract 6GB                                             |
| Tokenizer   | Lib          | SentencePiece                                    |
|             | Algorithm    | BPE                                              |
|             | Type         | spm                                              |
|             | TrainVocab        | 8000                                           |
|             | Ref          | https://github.com/google/sentencepiece          |
|             | BaseVocab    | 32000          |
|             | Vocab    | 38659          |
| Model       | Type         | CLM |
|             | BaseModel    | [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)                                        |
| Pretraining | Task         | CLM (Next Token Prediction)                                              |
|             | Context       | 32768                                |
|             | LearningRate         | 10µ                                          |
|             | Hardware     | Single Node 8x NVIDIA A100 SXM4-80G |
|             | EmbeddingTuning+LMHeadTuning       | ✓            |
|             | Embedding+LoRA+LMHeadTuning       | ✓             |
|             | Status       | ▓▓▓░░░░░░░░░░░░░░░░░░ 8.00 %             |
| SFT  | Status       | Not started (need help)                          |
| DPO  | Status       | Not started (need help)                          |
| Evaluation  | Status       | Not started (need help)                          |



## Loss by learning step
  - <img src="https://huggingface.co/anhdungitvn/vi-mistral-7b-v0.4/resolve/main/loss_by_step_0.png"  width="648">
  - <img src="https://huggingface.co/anhdungitvn/vi-mistral-7b-v0.4/resolve/main/loss_by_step_1.png"  width="648">
  - <img src="https://huggingface.co/anhdungitvn/vi-mistral-7b-v0.4/resolve/main/loss_by_step_2.png"  width="648">
  
### Use
#### Tokenizer
```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("anhdungitvn/vi-mistral-7b-v0.3")

text = "Chốt phiên, VN-Index tăng hơn 6,5 điểm lên hơn 1.169 điểm."
batch_encoding = tokenizer(text)
```
```
batch_encoding = {
    'input_ids': [1, 39635, 36924, 28725, 35833, 28733, 2359, 32424, 34478, 39265, 37592, 37623, 34478, 38502, 38585, 28774, 37592, 28723],
    'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
```

#### Pretrained Model
```
from transformers import AutoModelForCausalLM
from transformers import AutoTokenizer

model = AutoModelForCausalLM.from_pretrained(
    "anhdungitvn/vi-mistral-7b-v0.3",
    low_cpu_mem_usage=True,
)

tokenizer = AutoTokenizer.from_pretrained(
    "anhdungitvn/vi-mistral-7b-v0.3",
)

model.eval()

context = "Ngân hàng nào lớn nhất Việt Nam?"
batch = tokenizer(context, return_tensors="pt")

output_tokens = model.generate(
    **batch,
    max_new_tokens=128,
    eos_token_id=tokenizer.eos_token_id,
    pad_token_id=tokenizer.pad_token_id,
)

generated_text = tokenizer.decode(output_tokens[0], skip_special_tokens=False)

# generated_text = '<s> Ngân hàng nào lớn nhất Việt Nam?\n\nA. Ngân hàng Nông nghiệp và Phát triển Nông thôn Việt Nam (Agribank)\nB. Ngân hàng Thương mại Cổ phần Ngoại thương Việt Nam (Vietcombank)\nC. Ngân hàng Thương mại Cổ phần Công thương Việt Nam (Vietinbank)\nD. Ngân hàng Thương mại Cổ phần Đầu tư và Phát triển Việt Nam (BIDV)\n\nĐáp án: B. Ngân hàng Thương mại Cổ phần Ngoại thương Việt Nam (Vietcombank) </s>'

```


#### Chat
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("anhdungitvn/vi-mistral-7b-v0.3")

chat = [
   {"role": "user", "content": "xxx"},
   {"role": "assistant", "content": "xxx"},
   {"role": "user", "content": "xxx"},
]

tokenizer.apply_chat_template(chat, tokenize=False)
```


#### RAG
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("anhdungitvn/vi-mistral-7b-v0.3")

prompt = "<|begincontext|>xxx<|endcontext|><|beginquestion|>xxx<|endquestion|><|beginresponse|>"

inputs = tokenizer(prompt)
```
{"library_name": "transformers", "tags": []}
transformers endpoints_compatible region:us