REAME 작성
Browse files
README.md
CHANGED
@@ -6,11 +6,64 @@ library_name: peft
|
|
6 |
# Model Card for Model ID
|
7 |
|
8 |
<!-- Provide a quick summary of what the model is/does. -->
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
12 |
## Model Details
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
### Model Description
|
15 |
|
16 |
<!-- Provide a longer summary of what this model is. -->
|
|
|
6 |
# Model Card for Model ID
|
7 |
|
8 |
<!-- Provide a quick summary of what the model is/does. -->
|
9 |
+
Base Model : "beomi/Llama-3-Open-Ko-8B"
|
10 |
|
11 |
+
Dataset : "Bingsu/ko_alpaca_data"
|
12 |
|
13 |
+
LORA를 사용해 파인튜닝한 모델입니다. 하드웨어 메모리가 부족하여 alpaca dataset의 상위 10개의 데이터만 가지고 학습을 진행하였습니다.
|
14 |
|
15 |
## Model Details
|
16 |
|
17 |
+
해당 모델을 사용해보기 위해선 basemodel의 tokenizer와 특정 instruction template을 지켜야 제대로 된 결과가 출력됩니다.
|
18 |
+
|
19 |
+
|
20 |
+
```python
|
21 |
+
from peft import PeftModel, PeftConfig
|
22 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer
|
23 |
+
|
24 |
+
BASEMODEL = "beomi/Llama-3-Open-Ko-8B"
|
25 |
+
config = PeftConfig.from_pretrained("gamzadole/llama3_Alpaca_Finetune")
|
26 |
+
base_model = AutoModelForCausalLM.from_pretrained("beomi/Llama-3-Open-Ko-8B", load_in_4bit=True, device_map="auto")
|
27 |
+
model = PeftModel.from_pretrained(base_model, "gamzadole/llama3_Alpaca_Finetune")
|
28 |
+
model = model.cuda()
|
29 |
+
|
30 |
+
tokenizer = AutoTokenizer.from_pretrained(BASEMODEL)
|
31 |
+
tokenizer.pad_token = tokenizer.eos_token
|
32 |
+
tokenizer.padding_side = "right"
|
33 |
+
|
34 |
+
prompt_input_template = """아래는 작업을 설명하는 지시사항과 추가 정보를 제공하는 입력이 짝으로 구성됩니다. 이에 대한 적절한 응답을 작성해주세요.
|
35 |
+
|
36 |
+
### 지시사항:
|
37 |
+
{instruction}
|
38 |
+
|
39 |
+
### 입력:
|
40 |
+
{input}
|
41 |
+
|
42 |
+
### 응답:"""
|
43 |
+
|
44 |
+
|
45 |
+
prompt_no_input_template = """아래는 작업을 설명하는 지시사항입니다. 이에 대한 적절한 응답을 작성해주세요.
|
46 |
+
|
47 |
+
### 지시사항:
|
48 |
+
{instruction}
|
49 |
+
|
50 |
+
### 응답:"""
|
51 |
+
|
52 |
+
def generate_response(prompt, model):
|
53 |
+
encoded_input = tokenizer(prompt, return_tensors="pt", add_special_tokens=True)
|
54 |
+
model_inputs = encoded_input.to('cuda')
|
55 |
+
|
56 |
+
generated_ids = model.generate(**model_inputs, max_new_tokens=512, do_sample=True, pad_token_id=tokenizer.eos_token_id)
|
57 |
+
|
58 |
+
decoded_output = tokenizer.batch_decode(generated_ids)
|
59 |
+
|
60 |
+
return decoded_output[0].replace(prompt, "")
|
61 |
+
|
62 |
+
instruction = "건강을 유지하기 위한 세 가지 팁을 알려주세요."
|
63 |
+
prompt = prompt_no_input_template.format(instruction=instruction)
|
64 |
+
|
65 |
+
generate_response(prompt, model)
|
66 |
+
```
|
67 |
### Model Description
|
68 |
|
69 |
<!-- Provide a longer summary of what this model is. -->
|