--- library_name: transformers datasets: - vilm/OpenOrca-Viet - bkai-foundation-models/vi-alpaca - 5CD-AI/Vietnamese-395k-meta-math-MetaMathQA-gg-translated - 5CD-AI/Vietnamese-Locutusque-function-calling-chatml-gg-translated - 5CD-AI/Vietnamese-1m5-kaist-CoT-gg-translated-unrefined - 5CD-AI/Vietnamese-mabryCodes-tiny-cot-alpaca-gg-translated - 5CD-AI/Vietnamese-nampdn-ai-tiny-webtext-gg-translated - 5CD-AI/Vietnamese-Openorca-Multiplechoice-gg-translated - 5CD-AI/Vietnamese-Multi-turn-Chat-Alpaca - 5CD-AI/Visocial-Instructions ---
## Viet-Sailor-4B-Instruct Version 2 [Sailor-4B](https://huggingface.co/sail/Sailor-4B) 🌊 is a model that has undergone additional pre-training on datasets from Southeast Asian countries 🌏, resulting in impressive performance 🚀. Building on this foundation, we have fine-tuned the model with a specific focus on Vietnamese language capabilities 🇻🇳. This is a good choice for models under 7B parameters on the VMLU leaderboard 📊. ## Training details 📚 The **1,000,000 samples** fine-tuning training dataset was meticulously sampled in part from the following datasets: - [OpenOrca-Viet 🐋](https://huggingface.co/datasets/vilm/OpenOrca-Viet) - [vi-alpaca 🦙](https://huggingface.co/datasets/bkai-foundation-models/vi-alpaca) - [Vietnamese-395k-meta-math-MetaMathQA-gg-translated 📐](https://huggingface.co/datasets/5CD-AI/Vietnamese-395k-meta-math-MetaMathQA-gg-translated) - [Vietnamese-Locutusque-function-calling-chatml-gg-translated 🧠](https://huggingface.co/datasets/5CD-AI/Vietnamese-Locutusque-function-calling-chatml-gg-translated) - [Vietnamese-1m5-kaist-CoT-gg-translated-unrefined 🧵](https://huggingface.co/datasets/5CD-AI/Vietnamese-1m5-kaist-CoT-gg-translated-unrefined) - [Vietnamese-mabryCodes-tiny-cot-alpaca-gg-translated 🧠](https://huggingface.co/datasets/5CD-AI/Vietnamese-mabryCodes-tiny-cot-alpaca-gg-translated) - [Vietnamese-nampdn-ai-tiny-webtext-gg-translated 🧠](https://huggingface.co/datasets/5CD-AI/Vietnamese-nampdn-ai-tiny-webtext-gg-translated) - [Vietnamese-Openorca-Multiplechoice-gg-translated 🐋](https://huggingface.co/datasets/5CD-AI/Vietnamese-Openorca-Multiplechoice-gg-translated) - [Vietnamese-Multi-turn-Chat-Alpaca 💬](https://huggingface.co/datasets/5CD-AI/Vietnamese-Multi-turn-Chat-Alpaca) - [Visocial-Instructions 💬](https://huggingface.co/datasets/5CD-AI/Visocial-Instructions) ## Benchmarks 📈 We evaluated our model using the VMLU leaderboard:
| # | MODEL | CREATOR | BASE MODEL | STEM | SOCIAL SCIENCE | HUMANITIES | OTHERS | AVG | |----|----------------------|------------------|---------------------|-------|----------------|------------|--------|-------| | 1 | VNPTAI.IO-14B | VNPT AI | Qwen1.5-14B-Chat | 51.64 | 61.75 | 58.09 | 54.51 | 55.83 | | 2 | SeaLLM-7B-v2.5 | DAMO Academy | llama-2-7b | 49.35 | 60.66 | 55.95 | 49.05 | 53.30 | | 3 | MI4uLLM-7B-Chat | ML4U | Mistral-7B-v0.1 | 44.72 | 58.69 | 56.86 | 52.36 | 52.08 | | 4 | Vistral-7B-Chat | UONLP x Ontocord | Mistral-7B-v0.1 | 43.32 | 57.02 | 55.12 | 48.01 | 50.07 | | 5 | SDSRV-7B-chat | SDSRV teams | Mistral-7B-v0.1 | 36.29 | 60.55 | 55.95 | 49.05 | 48.55 | | 6 | Arcanic Cono 1.5 | Arcanic AI | Mistral-7B-v0.1 | 45.11 | 52.44 | 51.97 | 45.36 | 47.45 | | 7 | SeaLLM-7b-v2 | DAMO Academy | llama-2-7b | 39.95 | 52.02 | 49.38 | 45.27 | 45.79 | | 8 | Viet-Sailor-4B-Instruct | 5CD-AI | Sailor-4B | 36.83 | 49.13 | 48.18 | 41.76 | 43.24 | | 9 | bloomz-7b1 | BigScience | Bloom-7b1 | 32.63 | 45.73 | 41.85 | 39.89 | 38.87 | | 10 | T-llama-7b | FPTU HCM | llama-2-7b | 32.2 | 43.15 | 40.31 | 36.57 | 37.28 | | 11 | vbd-llama2-7b-50b... | Vin BigData | llama-2-7b | 31.45 | 40.34 | 40.24 | 39.62 | 36.98 | | .. | ...... | ..... | .... | ... | ... | ... | ... | ... | ## Examples Function-calling ``` <|im_start|>system Bạn là một trợ lý hữu ích với quyền truy cập vào các chức năng sau. Sử dụng chúng nếu cần thiết -{ "name": "search_movies", "description": "Search for movies based on title or genre", "parameters": { "type": "object", "properties": { "title": { "type": "string", "description": "The title of the movie" }, "genre": { "type": "string", "description": "The genre of the movie" } } } }<|im_end|> <|im_start|>question Bạn có thể tìm cho tôi một bộ phim có tựa đề "Inception" được không?<|im_end|> <|im_start|>answer {"name": "search_movies", "arguments": {"title": "Inception"}}<|im_end|> <|im_start|>question {"movies": [{"title": "Inception", "genre": "Science Fiction", "director": "Christopher Nolan", "release_year": 2010}]}<|im_end|> <|im_start|>answer Tôi đã tìm thấy một bộ phim có tựa đề "Inception". Đó là một bộ phim Khoa học viễn tưởng của đạo diễn Christopher Nolan và được phát hành vào năm 2010.<|im_end|> ``` Sentiment analysis ``` <|im_start|>system Bạn là trợ lý AI hữu ích<|im_end|> <|im_start|>question Bạn là trợ lý AI. Hãy phân loại cảm xúc của bình luận sau theo từng khía cạnh của chủ thể. Bình luận: về cách ăn mặc của cô thì quá 😡 😡 . nhưng về cách nói chuyện thì rất 😍.<|im_end|> <|im_start|>answer Cảm xúc của bình luận này có thể được phân loại như sau: - Cảm xúc tiêu cực đối với cách ăn mặc của cô ấy: 😡 - Cảm xúc tích cực đối với cách nói chuyện của cô ấy: 😍<|im_end|> ``` Simple math ``` <|im_start|>system Bạn là một trợ lý AI hữu ích. Một nhà toán học.<|im_end|> <|im_start|>question Trên sân có 2 con vịt và 9 con bò hỏi tổng cộng có mấy cái chân ?<|im_end|> <|im_start|>answer Tổng số chân trên sân là 11. Mỗi con vịt có 2 chân và mỗi con bò có 4 chân, vì vậy 2 con vịt có tổng cộng 2*2 = 4 chân và 9 con bò có tổng cộng 9*4 = 36 chân. Do đó, tổng số chân trên sân là 4+36 = 40.<|im_end|> ``` Writing ``` <|im_start|>system Bạn là một trợ lý AI hữu ích, trung thực, trung lập. Hãy trả lời một cách đầy đủ <|im_end|> <|im_start|>question Người dùng sẽ cung cấp cho bạn một nhiệm vụ. Hãy thực hiện lần lượt 2 nhiệm vụ sau: Bưới 1: Hãy mô tả ý nghĩa hình ảnh của chuỗi emoji 😡 👫 👨‍👩‍👦. Bước 2: Hãy tạo 1 câu chuyện ngắn kết hợp đầy đủ ý nghĩa giữa chúng với nhau.<|im_end|> <|im_start|>answer Bước 1: Mô tả ý nghĩa hình ảnh của chuỗi emoji 😡 👫 👨‍👩‍👦. Ý nghĩa hình ảnh của chuỗi emoji có thể được giải thích như sau: - 😡: Biểu tượng cảm xúc này thường được sử dụng để thể hiện sự buồn bã, đau khổ hoặc thất vọng. Trong trường hợp này, nó có thể biểu thị rằng ai đó đang trải qua một số cảm xúc tiêu cực. - 👫: Biểu tượng cảm xúc này thường được sử dụng để thể hiện tình yêu và sự quan tâm. Trong trường hợp này, nó có thể biểu thị rằng ai đó đang thể hiện tình yêu và sự quan tâm của họ đối với ai đó. - 👨‍👩‍👦: Biểu tượng cảm xúc này thường được sử dụng để thể hiện tình yêu gia đình. Trong trường hợp này, nó có thể biểu thị rằng ai đó đang thể hiện tình yêu và sự quan tâm của họ đối với một thành viên trong gia đình. Bước 2: Tạo một câu chuyện ngắn kết hợp các biểu tượng cảm xúc với nhau. Câu chuyện: Trong một thị trấn nhỏ, nơi mọi người đều biết nhau, có một gia đình hạnh phúc sống trong một ngôi nhà nhỏ xinh xắn. Cha mẹ yêu thương và chăm sóc con cái của mình rất nhiều. Một ngày nọ, họ nhận được tin dữ rằng đứa con út của họ đã qua đời vì một căn bệnh hiếm gặp. Cả gia đình đều đau buồn, đặc biệt là cha mẹ của đứa trẻ. Họ cố gắng vượt qua nỗi đau bằng cách dành thời gian bên nhau, ôm nhau và chia sẻ những ký ức đẹp đẽ về đứa con yêu dấu của họ.<|im_end|> ``` ## Requirements The code of Sailor has been in the latest Hugging face transformers and we advise you to install `transformers>=4.37.0`. ## Quickstart Here provides a code snippet to show you how to load the tokenizer and model and how to generate contents. ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch device = "cuda" model = AutoModelForCausalLM.from_pretrained( '5CD-AI/Viet-Sailor-4B-Instruct', torch_dtype=torch.bfloat16, device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained('5CD-AI/Viet-Sailor-4B-Instruct') system_prompt = 'Bạn là một trợ lý AI hữu ích. Bạn rất cẩn thận và trung lập. Hãy trả lời trung thực và đầy đủ. Chỉ trả lời khi bạn biết thông tin chính xác.' prompt = """Hãy phân loại cảm xúc của bình luận sau theo từng khía cạnh của chủ thể. Bình luận: về cách ăn mặc của cô thì quá 😡 😡 . nhưng về cách nói chuyện thì rất 😍.""" messages = [ {"role": "system", "content": system_prompt}, {"role": "question", "content": prompt} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(device) input_ids = model_inputs.input_ids.to(device) generated_ids = model.generate( input_ids, max_new_tokens=256, num_beams=3, top_k=20, top_p= 0.5, temperature=0.9, repetition_penalty = 1.5, length_penalty = 1.0, do_sample=True ) 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, skip_special_tokens=True)[0] print(response) ```