File size: 7,543 Bytes
b8bcc1e
 
 
 
615d113
c7456c0
 
615d113
 
 
 
 
 
 
 
 
fcabf2b
b8bcc1e
 
615d113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1c2ab6d
615d113
48152fe
615d113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48152fe
615d113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
---
library_name: transformers
tags:
- llama-factory
license: other
license_name: glm-4
license_link: https://huggingface.co/THUDM/glm-4v-9b/blob/main/LICENSE
datasets:
- jojo0217/korean_rlhf_dataset
- jojo0217/korean_safe_conversation
- HAERAE-HUB/qarv-instruct-ko
- HAERAE-HUB/Korean-Human-Judgements
- HAERAE-HUB/K2-Feedback
- changpt/ko-lima-vicuna
language:
- ko
pipeline_tag: text-generation
---

## Model
- base model: [THUDM/glm-4v-9b](https://huggingface.co/THUDM/glm-4v-9b)

## Dataset
- [jojo0217/korean_rlhf_dataset](https://huggingface.co/datasets/jojo0217/korean_rlhf_dataset)
- [jojo0217/korean_safe_conversation](https://huggingface.co/datasets/jojo0217/korean_safe_conversation)
- [HAERAE-HUB/qarv-instruct-ko](https://huggingface.co/datasets/HAERAE-HUB/qarv-instruct-ko)
- [HAERAE-HUB/Korean-Human-Judgements](https://huggingface.co/datasets/HAERAE-HUB/Korean-Human-Judgements)
- [HAERAE-HUB/K2-Feedback](https://huggingface.co/datasets/HAERAE-HUB/K2-Feedback)
- [changpt/ko-lima-vicuna](https://huggingface.co/datasets/changpt/ko-lima-vicuna)

## Load Model

Use the following Python code to load the model:

```python3
from transformers import AutoTokenizer, AutoModelForCausalLM

path = 'youjunhyeok/glm4-9b-ko-v1'

model = AutoModelForCausalLM.from_pretrained(path, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True)
model.to('cuda')
```

## Chat

```python3
def chat(message):
    messages = [
        {"role": "system", "content": "당신은 인공지능 어시스턴트입니다. 친절하고 정확한 답변을 해주세요."},
        {"role": "user", "content": message},
    ]

    input_ids = tokenizer.apply_chat_template(
        messages,
        add_generation_prompt=True, 
        tokenize=True, 
        return_tensors="pt"
    ).to(model.device)
    

    terminators = [
        tokenizer.eos_token_id,
    ]

    outputs = model.generate(
        input_ids,
        max_new_tokens=512,
        eos_token_id=terminators,
        do_sample=True,
        temperature=0.9,
        top_p=0.95,
    )
    response = outputs[0][input_ids.shape[-1]:]
    print(tokenizer.decode(response, skip_special_tokens=True))

chat('3차 세계대전이 일어난다면 어떻게 될 지 상상해서 알려줘')
```

## Output

```
3차 세계대전은 역사적으로 상상하기 힘들고, 사실상 존재하지 않은 이야기입니다. 만약 이런 일이 일어나게 되었다면, 전 세계가 파괴되고 수많은 사람들이 죽을 것입니다. 전쟁은 승자가 없으며, 상황의 복잡성을 고려할 때 더욱 그렇습니다.

세계는 2차 세계대전에서 수많은 전쟁의 원인을 배워야 했고, 히틀러를 필두로 한 나치 독일이 유럽을 지배했던 과거의 절망을 겪었습니다. 이는 세계 2차 전쟁 이후 국제 평화를 유지하기 위한 많은 노력의 시작이었습니다. 이러한 노력의 일환으로, 유엔이 설립되었고, 국제 평화와 안보를 책임진다면, 3차 세계대전은 전례 없는 규모의 전쟁이 될 것입니다.

유엔과 같은 국제기구가 3차 세계대전을 막기 위해 노력할 것이고, 모든 나라가 평화로운 해결을 위해 협력할 것입니다. 역사적으로 전쟁은 절대적으로 없어지지 않았지만, 국제 협력과 연대가 가능하다고 믿습니다.
```


## BenchMark (vs Base Model)

### youjunhyeok/glm4-9b-ko-v1

|               |   acc,none |   acc_stderr,none |   acc_norm,none |   acc_norm_stderr,none | alias         |
|:--------------|-----------:|------------------:|----------------:|-----------------------:|:--------------|
| ko_truthfulqa |   0.29131  |        0.015906   |      nan        |           nan          | ko_truthfulqa |
| ko_hellaswag  |   0.381398 |        0.00484737 |        0.486059 |             0.00498784 | ko_hellaswag  |
| ko_common_gen |   0.856491 |        0.0089572  |        0.856491 |             0.0089572  | ko_common_gen |
| ko_arc_easy   |   0.330205 |        0.0137431  |        0.392491 |             0.0142696  | ko_arc_easy   |
| openbookqa    |   0.352    |        0.02138    |        0.45     |             0.0222709  | openbookqa    |
| hellaswag     |   0.615515 |        0.00485479 |        0.801036 |             0.00398405 | hellaswag     |
| boolq         |   0.86422  |        0.00599132 |      nan        |           nan          | boolq         |
| arc_easy      |   0.824916 |        0.00779824 |        0.79335  |             0.00830841 | arc_easy      |
| arc_challenge |   0.532423 |        0.0145806  |        0.551195 |             0.0145346  | arc_challenge |

|                             |        0 |        5 |
|:----------------------------|---------:|---------:|
| kobest_boolq (macro_f1)     | 0.351189 | 0.905978 |
| kobest_copa (macro_f1)      | 0.645113 | 0.67963  |
| kobest_hellaswag (macro_f1) | 0.454822 | 0.479868 |
| kobest_sentineg (macro_f1)  | 0.599628 | 0.926861 |

### THUDM/glm-4-9b-chat

|               |   acc,none |   acc_stderr,none |   acc_norm,none |   acc_norm_stderr,none | alias         |
|:--------------|-----------:|------------------:|----------------:|-----------------------:|:--------------|
| ko_truthfulqa |   0.334149 |        0.0165125  |      nan        |           nan          | ko_truthfulqa |
| ko_hellaswag  |   0.379805 |        0.00484346 |        0.475901 |             0.00498398 | ko_hellaswag  |
| ko_common_gen |   0.816699 |        0.00988516 |        0.816699 |             0.00988516 | ko_common_gen |
| ko_arc_easy   |   0.360068 |        0.0140275  |        0.406143 |             0.0143517  | ko_arc_easy   |
| openbookqa    |   0.354    |        0.0214076  |        0.468    |             0.0223372  | openbookqa    |
| hellaswag     |   0.618901 |        0.00484664 |        0.806413 |             0.00394301 | hellaswag     |
| boolq         |   0.868196 |        0.00591652 |      nan        |           nan          | boolq         |
| arc_easy      |   0.824074 |        0.00781297 |        0.800084 |             0.00820653 | arc_easy      |
| arc_challenge |   0.551195 |        0.0145346  |        0.576792 |             0.014438   | arc_challenge |

|                             |        0 |        5 |
|:----------------------------|---------:|---------:|
| kobest_boolq (macro_f1)     | 0.351527 | 0.696896 |
| kobest_copa (macro_f1)      | 0.518982 | 0.5104   |
| kobest_hellaswag (macro_f1) | 0.37683  | 0.384024 |
| kobest_sentineg (macro_f1)  | 0.375372 | 0.663805 |

## Llama_factory Train Config
{data_dir}, {dataset_name}, {output_dir} is variable
```
cutoff_len: 2048
dataset: rlhf_dataset,safe_conversation,qarv-instruct-ko,korean-human-judgements,k2-feedback,ko_lima_vicuna
dataset_dir: /home/work/dweax/train/dataset
ddp_timeout: 180000000
do_train: true
eval_steps: 100
eval_strategy: steps
finetuning_type: lora
flash_attn: auto
fp16: true
gradient_accumulation_steps: 4
include_num_input_tokens_seen: true
learning_rate: 5.0e-05
logging_steps: 5
lora_alpha: 16
lora_dropout: 0.05
lora_rank: 16
lora_target: all
loraplus_lr_ratio: 1
lr_scheduler_type: cosine
max_grad_norm: 1.0
max_samples: 20000
model_name_or_path: THUDM/glm-4-9b
num_train_epochs: 2.0
optim: adamw_torch
output_dir: saves/GLM-4-9B/lora/glm4-alpha-v1
packing: true
per_device_eval_batch_size: 4
per_device_train_batch_size: 4
plot_loss: true
preprocessing_num_workers: 16
quantization_bit: 4
report_to: all
save_steps: 100
stage: sft
template: glm4
val_size: 0.01
warmup_steps: 250

```