|
--- |
|
license: apache-2.0 |
|
language: |
|
- ko |
|
tags: |
|
- construction |
|
- interior |
|
- defective |
|
- finished materials |
|
--- |
|
μ£Όμνμ¬ νμλ°μ½μ κ³΅κ° λλ©μΈ λ°μ΄ν°μ
μ ν ν°ν λ° νμ΅νμμ΅λλ€. |
|
|
|
base model : mistralai/Mistral-7B-v0.1 |
|
|
|
Dataset : νμλ°μ½ λλ©μΈ λ°μ΄ν°μ
|
|
|
|
DPo dataset : maywellλκ»μ μ
λ‘λ μ£Όμ ko_Ultrafeedback_binarizedμ μ¬μ©νμμ΅λλ€. |
|
|
|
## νμ΅ νλΌλ―Έν° |
|
|
|
``` |
|
num_train_epochs=3 |
|
per_device_train_batch_size=1 |
|
gradient_accumulation_steps=4 |
|
gradient_checkpointing=True |
|
learning_rate=5e-5 |
|
lr_scheduler_type="linear" |
|
max_steps=200 |
|
save_strategy="no" |
|
logging_steps=1 |
|
output_dir=new_model |
|
optim="paged_adamw_32bit" |
|
warmup_steps=100 |
|
fp16=True |
|
``` |
|
|
|
## μ€ν μμ |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
from transformers import TextStreamer, GenerationConfig |
|
|
|
model_name='sosoai/hansoldeco-mistral-dpo-v1' |
|
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto") |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
streamer = TextStreamer(tokenizer) |
|
|
|
def gen(x): |
|
generation_config = GenerationConfig( |
|
temperature=0.1, |
|
top_p=0.8, |
|
top_k=100, |
|
max_new_tokens=256, |
|
early_stopping=True, |
|
do_sample=True, |
|
repetition_penalty=1.2, |
|
) |
|
q = f"[INST]{x} [/INST]" |
|
gened = model.generate( |
|
**tokenizer( |
|
q, |
|
return_tensors='pt', |
|
return_token_type_ids=False |
|
).to('cuda'), |
|
generation_config=generation_config, |
|
pad_token_id=tokenizer.eos_token_id, |
|
eos_token_id=tokenizer.eos_token_id, |
|
streamer=streamer, |
|
) |
|
result_str = tokenizer.decode(gened[0]) |
|
|
|
start_tag = f"\n\n### Response: " |
|
start_index = result_str.find(start_tag) |
|
|
|
if start_index != -1: |
|
result_str = result_str[start_index + len(start_tag):].strip() |
|
return result_str |
|
|
|
print(gen('λ§κ°νμλ μ΄λ€ μ’
λ₯κ° μλμ?')) |
|
``` |