glm-4-9b-ko-v1 / README.md
youjunhyeok's picture
Update README.md
fcabf2b verified
---
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
```