glm-4-9b-ko-v2 / README.md
youjunhyeok's picture
Update README.md
ed3d314 verified
---
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
- maywell/kiqu_samples
- CarrotAI/ko-instruction-dataset
- 4n3mone/vector_bench
language:
- ko
library_name: transformers
license: other
license_name: glm-4
license_link: https://huggingface.co/THUDM/glm-4v-9b/blob/main/LICENSE
pipeline_tag: text-generation
tags:
- llama-factory
---
## 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)
- [maywell/kiqu_samples](https://huggingface.co/datasets/maywell/kiqu_samples)
- [CarrotAI/ko-instruction-dataset](https://huggingface.co/datasets/CarrotAI/ko-instruction-dataset)
- [4n3mone/vector_bench](https://huggingface.co/datasets/4n3mone/vector_bench)
## Load Model
Use the following Python code to load the model:
```python3
from transformers import AutoTokenizer, AutoModelForCausalLM
path = 'youjunhyeok/glm-4-9b-ko-v2'
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('다음 두 집합 A, B에 대해 A 교집합 B = {1, 2, 3, 4, 5}이고, A 합집합 B = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}일 때, A와 B의 원소의 개수 범위를 구하시오.')
```
## Output
```
집합 A와 B에 대한 정보를 바탕으로 A와 B의 원소의 개수 범위를 구해볼게요.
먼저, A 교집합 B = {1, 2, 3, 4, 5}라는 정보를 보면, 집합 A와 B의 공통 원소는 1, 2, 3, 4, 5이므로, 이 원소들의 개수를 구하면 됩니다. 즉, A와 B의 공통 원소 개수는 5입니다.
다음으로, A 합집합 B = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}라는 정보를 보면, 집합 A와 B의 모든 원소를 합친 결과가 이 집합이므로, 이 집합의 원소 개수를 구하면 됩니다. 즉, A와 B의 합집합 원소 개수는 10입니다.
따라서, 집합 A와 B의 원소의 개수 범위는 5에서 10 사이입니다. 즉, A와 B의 공통 원소 개수는 최소 5개이고, 합집합 원소 개수는 최대 10개입니다. 이 정보를 바탕으로 A와 B의 원소 개수 범위를 구할 수 있어요. 다른 궁금한 점이 있으면 언제든지 물어봐 주세요!
```
## Llama_factory Train Config
{data_dir}, {dataset_name}, {output_dir} is variable
```
bf16: true
cutoff_len: 2048
dataset: {dataset_name}
dataset_dir: {data_dir}
ddp_timeout: 180000000
do_train: true
eval_steps: 150
eval_strategy: steps
finetuning_type: lora
flash_attn: auto
gradient_accumulation_steps: 8
include_num_input_tokens_seen: true
learning_rate: 0.0001
logging_steps: 5
lora_alpha: 16
lora_dropout: 0.05
lora_rank: 16
lora_target: all
loraplus_lr_ratio: 1
lr_scheduler_type: inverse_sqrt
max_grad_norm: 1.0
max_samples: 75000
model_name_or_path: THUDM/glm-4-9b
num_train_epochs: 3.0
optim: adamw_torch
output_dir: {output_dir}
packing: true
per_device_eval_batch_size: 8
per_device_train_batch_size: 8
plot_loss: true
preprocessing_num_workers: 16
report_to: all
resize_vocab: true
save_steps: 150
stage: sft
template: glm4
val_size: 0.05
warmup_steps: 150
```