File size: 9,738 Bytes
62e67f0
 
 
 
 
 
 
 
 
dcc928e
 
 
 
 
62e67f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dcc928e
62e67f0
dcc928e
 
62e67f0
dcc928e
62e67f0
 
 
 
 
 
dcc928e
62e67f0
dcc928e
 
62e67f0
dcc928e
62e67f0
 
 
 
 
 
dcc928e
62e67f0
dcc928e
 
62e67f0
dcc928e
62e67f0
 
 
 
 
 
dcc928e
 
 
62e67f0
 
 
 
 
 
dcc928e
 
 
62e67f0
 
 
 
 
 
dcc928e
 
 
62e67f0
 
 
 
 
 
dcc928e
 
 
62e67f0
 
 
 
 
 
dcc928e
62e67f0
dcc928e
62e67f0
 
 
 
 
 
dcc928e
 
 
62e67f0
 
 
 
 
 
dcc928e
62e67f0
dcc928e
62e67f0
 
 
 
 
 
dcc928e
62e67f0
dcc928e
62e67f0
 
 
 
 
 
dcc928e
62e67f0
dcc928e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62e67f0
 
 
 
 
 
 
 
 
 
 
 
f8a0533
 
62e67f0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dcc928e
 
 
 
 
 
 
 
 
 
 
 
 
 
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
---
language:
- en
- zh
- id
- th
- vi
- ms
- lo
license: apache-2.0
tags:
- multilingual
- sea
- sailor
datasets:
- cerebras/SlimPajama-627B
- Skywork/SkyPile-150B
- allenai/MADLAD-400
- cc100
base_model: Qwen/Qwen1.5-7B
model-index:
- name: Sailor-7B
  results:
  - task:
      type: text-generation
    dataset:
      name: XQuAD-Thai
      type: XQuAD-Thai
    metrics:
    - type: EM (3-Shot)
      value: 57.88
      name: EM (3-Shot)
    - type: F1 (3-Shot)
      value: 71.06
      name: F1 (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: TyDiQA-Indonesian
      type: TyDiQA-Indonesian
    metrics:
    - type: EM (3-Shot)
      value: 60.53
      name: EM (3-Shot)
    - type: F1 (3-Shot)
      value: 75.42
      name: F1 (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: XQuAD-Vietnamese
      type: XQuAD-Vietnamese
    metrics:
    - type: EM (3-Shot)
      value: 53.81
      name: EM (3-Shot)
    - type: F1 (3-Shot)
      value: 74.62
      name: F1 (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: XCOPA-Thai
      type: XCOPA-Thai
    metrics:
    - type: EM (3-Shot)
      value: 59.0
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: XCOPA-Indonesian
      type: XCOPA-Indonesian
    metrics:
    - type: EM (3-Shot)
      value: 72.2
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: XCOPA-Vietnamese
      type: XCOPA-Vietnamese
    metrics:
    - type: EM (3-Shot)
      value: 72.2
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: M3Exam-Thai
      type: M3Exam-Thai
    metrics:
    - type: EM (3-Shot)
      value: 30.0
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: M3Exam-Indonesian
      type: M3Exam-Indonesian
    metrics:
    - type: EM (3-Shot)
      value: 32.88
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: M3Exam-Vietnamese
      type: M3Exam-Vietnamese
    metrics:
    - type: EM (3-Shot)
      value: 44.1
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: BELEBELE-Thai
      type: BELEBELE-Thai
    metrics:
    - type: EM (3-Shot)
      value: 41.56
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: BELEBELE-Indonesian
      type: BELEBELE-Indonesian
    metrics:
    - type: EM (3-Shot)
      value: 44.33
      name: EM (3-Shot)
  - task:
      type: text-generation
    dataset:
      name: BELEBELE-Vietnamese
      type: BELEBELE-Vietnamese
    metrics:
    - type: EM (3-Shot)
      value: 45.33
      name: EM (3-Shot)
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: AI2 Reasoning Challenge (25-Shot)
      type: ai2_arc
      config: ARC-Challenge
      split: test
      args:
        num_few_shot: 25
    metrics:
    - type: acc_norm
      value: 49.83
      name: normalized accuracy
    source:
      url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sail/Sailor-7B
      name: Open LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: HellaSwag (10-Shot)
      type: hellaswag
      split: validation
      args:
        num_few_shot: 10
    metrics:
    - type: acc_norm
      value: 76.21
      name: normalized accuracy
    source:
      url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sail/Sailor-7B
      name: Open LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: MMLU (5-Shot)
      type: cais/mmlu
      config: all
      split: test
      args:
        num_few_shot: 5
    metrics:
    - type: acc
      value: 54.65
      name: accuracy
    source:
      url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sail/Sailor-7B
      name: Open LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: TruthfulQA (0-shot)
      type: truthful_qa
      config: multiple_choice
      split: validation
      args:
        num_few_shot: 0
    metrics:
    - type: mc2
      value: 40.08
    source:
      url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sail/Sailor-7B
      name: Open LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: Winogrande (5-shot)
      type: winogrande
      config: winogrande_xl
      split: validation
      args:
        num_few_shot: 5
    metrics:
    - type: acc
      value: 69.14
      name: accuracy
    source:
      url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sail/Sailor-7B
      name: Open LLM Leaderboard
  - task:
      type: text-generation
      name: Text Generation
    dataset:
      name: GSM8k (5-shot)
      type: gsm8k
      config: main
      split: test
      args:
        num_few_shot: 5
    metrics:
    - type: acc
      value: 33.36
      name: accuracy
    source:
      url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=sail/Sailor-7B
      name: Open LLM Leaderboard
---

<div align="center">
  <img src="banner_sailor.jpg" width="700"/>
</div>

Sailor is a suite of Open Language Models tailored for South-East Asia (SEA), focusing on languages such as 🇮🇩Indonesian, 🇹🇭Thai, 🇻🇳Vietnamese, 🇲🇾Malay, and 🇱🇦Lao. 
Developed with careful data curation, Sailor models are designed to understand and generate text across diverse linguistic landscapes of SEA region. 
Built from [Qwen 1.5](https://huggingface.co/collections/Qwen/qwen15-65c0a2f577b1ecb76d786524) , Sailor encompasses models of varying sizes, spanning from 0.5B to 7B versions for different requirements. 
We further fine-tune the base model with open-source datasets to get instruction-tuned models, namedly Sailor-Chat. 
Benchmarking results demonstrate Sailor's proficiency in tasks such as question answering, commonsense reasoning, and other tasks in SEA languages.

> The logo was generated by MidJourney

## Model Summary
- **Model Collections:** [Base Model & Chat Model](https://huggingface.co/collections/sail/sailor-65e19a749f978976f1959825)
- **Project Website:** [sailorllm.github.io](https://sailorllm.github.io/)
- **Codebase:** [github.com/sail-sg/sailor-llm](https://github.com/sail-sg/sailor-llm)
- **Technical Report:** Coming Soon 


## Training details
Sailor is crafted by continually pre-training from language models like the remarkable Qwen 1.5 models, which already has a great performance on SEA languages. 
The pre-training corpus heavily leverages the publicly available corpus, including 
[SlimPajama](https://huggingface.co/datasets/cerebras/SlimPajama-627B), 
[SkyPile](https://huggingface.co/datasets/Skywork/SkyPile-150B), 
[CC100](https://huggingface.co/datasets/cc100) and [MADLAD-400](https://huggingface.co/datasets/allenai/MADLAD-400).

By employing aggressive data deduplication and careful data cleaning on the collected corpus, we have attained a high-quality dataset spanning various languages. 
Through systematic experiments to determine the weights of different languages, Sailor models undergo training from 200B to 400B tokens, tailored to different model sizes. 
The approach boosts their performance on SEA languages while maintaining proficiency in English and Chinese without significant compromise. 
Finally, we continually pre-train the Qwen1.5-0.5B model with 400 Billion tokens, and other models with 200 Billion tokens to obtain the Sailor models.

## 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
device = "cuda" # the device to load the model

model = AutoModelForCausalLM.from_pretrained("sail/Sailor-7B", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("sail/Sailor-7B")

input_message = "Model bahasa adalah model probabilistik" 
### The given Indonesian input translates to 'A language model is a probabilistic model of.'

model_inputs = tokenizer([input_message], return_tensors="pt").to(device)

generated_ids = model.generate(
    model_inputs.input_ids,
    max_new_tokens=64
)

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)
```

# License

Sailor is distributed under the terms of the Apache License 2.0. 
No restrict on the research and the commercial use, but should comply with the [Qwen License](https://huggingface.co/Qwen/Qwen1.5-1.8B/blob/main/LICENSE).

# Contact Us

If you have any questions, please raise an issue or contact us at [doulx@sea.com](mailto:doulx@sea.com) or [liuqian@sea.com](mailto:liuqian@sea.com).
# [Open LLM Leaderboard Evaluation Results](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
Detailed results can be found [here](https://huggingface.co/datasets/open-llm-leaderboard/details_sail__Sailor-7B)

|             Metric              |Value|
|---------------------------------|----:|
|Avg.                             |53.88|
|AI2 Reasoning Challenge (25-Shot)|49.83|
|HellaSwag (10-Shot)              |76.21|
|MMLU (5-Shot)                    |54.65|
|TruthfulQA (0-shot)              |40.08|
|Winogrande (5-shot)              |69.14|
|GSM8k (5-shot)                   |33.36|