Create README.md
Browse files
README.md
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
license: other
|
3 |
+
license_name: llama3
|
4 |
+
language:
|
5 |
+
- ko
|
6 |
+
---
|
7 |
+
![Alpha-Instruct](./alpha-instruct.png)
|
8 |
+
We are thrilled to introduce **Alpha-Instruct**, our latest language model, which demonstrates exceptional capabilities in both Korean and English. Alpha-Instruct is developed using the **Evolutionary Model Merging** technique, enabling it to excel in complex language tasks and logical reasoning.
|
9 |
+
|
10 |
+
A key aspect of Alpha-Instruct's development is our **community-based approach**. We draw inspiration and ideas from various communities, shaping our datasets, methodologies, and the model itself. In return, we are committed to sharing our insights with the community, providing detailed information on the data, methods, and models used in Alpha-Instruct's creation.
|
11 |
+
|
12 |
+
Alpha-Instruct has achieved outstanding performance on the **LogicKor, scoring an impressive 6.62**. Remarkably, this performance rivals that of 70B models, showcasing the efficiency and power of our 8B model. This achievement highlights Alpha-Instruct's advanced computational and reasoning skills, making it a leading choice for diverse and demanding language tasks.
|
13 |
+
|
14 |
+
**For more information and technical details about Alpha-Instruct, stay tuned to our updates and visit our [website](https://allganize-alpha.github.io/) (Soon).**
|
15 |
+
|
16 |
+
---
|
17 |
+
## Overview
|
18 |
+
Alpha-Instruct is our latest language model, developed using 'Evolutionary Model Merging' technique. This method employs a 1:1 ratio of task-specific datasets from KoBEST and Haerae, resulting in a model with named 'Alpha-Ko-8B-Evo'. The following models were used for merging:
|
19 |
+
- [Meta-Llama-3-8B](https://huggingface.co/meta-llama/Meta-Llama-3-8B) (Base)
|
20 |
+
- [Meta-Llama-3-8B-Instruct](https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct) (Instruct)
|
21 |
+
- [Llama-3-Open-Ko-8B](beomi/Llama-3-Open-Ko-8B) (Continual Pretrained)
|
22 |
+
|
23 |
+
To refine and enhance Alpha-Instruct, we utilized a carefully curated high-quality datasets aimed at 'healing' the model's output, significantly boosting its human preference scores. We use [ORPO](https://arxiv.org/abs/2403.07691) specifically for this "healing" (RLHF) phase. The datasets* used include:
|
24 |
+
- [Korean-Human-Judgements](https://huggingface.co/datasets/HAERAE-HUB/Korean-Human-Judgements)
|
25 |
+
- [Orca-Math](https://huggingface.co/datasets/kuotient/orca-math-word-problems-193k-korean)
|
26 |
+
- [dpo-mix-7k](https://huggingface.co/datasets/argilla/dpo-mix-7k)
|
27 |
+
|
28 |
+
*Some of these datasets were partially used and translated for training, and we ensured there was no contamination during the evaluation process.
|
29 |
+
|
30 |
+
This approach effectively balances human preferences with the model's capabilities, making Alpha-Instruct well-suited for real-life scenarios where user satisfaction and performance are equally important.
|
31 |
+
|
32 |
+
## Benchmark Results
|
33 |
+
Results in [LogicKor](https://github.com/StableFluffy/LogicKor)* are as follows:
|
34 |
+
|
35 |
+
| Model | Single turn* | Multi turn* | Overall* |
|
36 |
+
|:------------------------------:|:------------:|:-----------:|:--------:|
|
37 |
+
| MLP-KTLim/llama-3-Korean-Bllossom-8B | 4.238 | 3.404 | 3.821 |
|
38 |
+
| Alpha-Ko-Evo | 5.143 | 5.238 | 5.190 |
|
39 |
+
| Alpha-Ko-Instruct (alt) | 7.095 | **6.571** | **6.833** |
|
40 |
+
| Alpha-Ko-Instruct | **7.143** | 6.065 | 6.620 |
|
41 |
+
| Alpha-Ko-Instruct-marlin (4bit) | 6.857 | 5.738 | 6.298 |
|
42 |
+
|
43 |
+
*Self report(Default settings with 'alpha' template, mean of 3).
|
44 |
+
|
45 |
+
Result in KoBEST(acc, num_shot=5) are as follows:
|
46 |
+
|
47 |
+
| Task | beomi/Llama-3-Open-Ko-8B-Instruct | maywell/Llama-3-Ko-8B-Instruct | **Alpha-Ko-Evo** | **Alpha-Ko-Instruct** |
|
48 |
+
| --- | --- | --- | --- | --- |
|
49 |
+
| kobest overall | 0.6220 | 0.6852 |0.7229|0.7055
|
50 |
+
| kobest_boolq| 0.6254 | 0.7208 | 0.8547 | 0.8369
|
51 |
+
| kobest_copa| 0.7110 | 0.7650 | 0.7420 | 0.7420
|
52 |
+
| kobest_hellaswag| 0.3840 | 0.4440 | 0.4220 | 0.4240
|
53 |
+
| kobest_sentineg| 0.8388 | 0.9194 |0.9471 | 0.9244
|
54 |
+
| kobest_wic| 0.5738| 0.6040 |0.6095 | 0.5730
|
55 |
+
|
56 |
+
*For reference, 'merged' models are chosen.
|
57 |
+
|
58 |
+
## How to use
|
59 |
+
|
60 |
+
```python
|
61 |
+
from transformers import AutoTokenizer, AutoModelForCausalLM
|
62 |
+
import torch
|
63 |
+
|
64 |
+
model_id = "allganize/Llama-3-Alpha-Ko-Instruct"
|
65 |
+
|
66 |
+
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
67 |
+
model = AutoModelForCausalLM.from_pretrained(
|
68 |
+
model_id,
|
69 |
+
torch_dtype="auto",
|
70 |
+
device_map="auto",
|
71 |
+
)
|
72 |
+
|
73 |
+
messages = [
|
74 |
+
{"role": "system", "content": "๋น์ ์ ์ธ๊ณต์ง๋ฅ ์ด์์คํดํธ์
๋๋ค. ๋ฌป๋ ๋ง์ ์น์ ํ๊ณ ์ ํํ๊ฒ ๋ต๋ณํ์ธ์."},
|
75 |
+
{"role": "user", "content": "ํผ๋ณด๋์น ์์ด์ด ๋ญ์ผ? ๊ทธ๋ฆฌ๊ณ ํผ๋ณด๋์น ์์ด์ ๋ํด ํ์ด์ฌ ์ฝ๋๋ฅผ ์ง์ค๋ณผ๋?"},
|
76 |
+
]
|
77 |
+
|
78 |
+
input_ids = tokenizer.apply_chat_template(
|
79 |
+
messages,
|
80 |
+
add_generation_prompt=True,
|
81 |
+
return_tensors="pt"
|
82 |
+
).to(model.device)
|
83 |
+
|
84 |
+
terminators = [
|
85 |
+
tokenizer.eos_token_id,
|
86 |
+
tokenizer.convert_tokens_to_ids("<|eot_id|>")
|
87 |
+
]
|
88 |
+
|
89 |
+
outputs = model.generate(
|
90 |
+
input_ids,
|
91 |
+
max_new_tokens=512,
|
92 |
+
eos_token_id=terminators,
|
93 |
+
do_sample=False,
|
94 |
+
repetition_penalty=1.05,
|
95 |
+
)
|
96 |
+
response = outputs[0][input_ids.shape[-1]:]
|
97 |
+
print(tokenizer.decode(response, skip_special_tokens=True))
|
98 |
+
```
|
99 |
+
|
100 |
+
## Correspondence to
|
101 |
+
- Ji soo Kim (jisoo.kim@allganize.ai)
|
102 |
+
- Contributors
|
103 |
+
- Sangmin Jeon (sangmin.jeon@allganize.ai)
|
104 |
+
- Seungwoo Ryu (seungwoo.ryu@allganize.ai)
|
105 |
+
|
106 |
+
## Special Thanks
|
107 |
+
- [@beomi](https://huggingface.co/beomi) for providing us with a great model!
|
108 |
+
|
109 |
+
## License
|
110 |
+
The use of this model is governed by the [META LLAMA 3 COMMUNITY LICENSE AGREEMENT](https://llama.meta.com/llama3/license/)
|
111 |
+
|
112 |
+
|
113 |
+
## Citation
|
114 |
+
If you use this model in your research, please cite it as follows:
|
115 |
+
|
116 |
+
```bibtex
|
117 |
+
@misc{alpha-instruct,
|
118 |
+
author = {Ji soo Kim},
|
119 |
+
title = {Alpha-Instruct: Allganize Bilingual Model},
|
120 |
+
year = {2024},
|
121 |
+
publisher = {Hugging Face},
|
122 |
+
journal = {Hugging Face repository},
|
123 |
+
url = {https://huggingface.co/allganize/Llama-3-Alpha-Ko-8B-Instruct},
|
124 |
+
}
|