limecoding commited on
Commit
1caec0f
·
verified ·
1 Parent(s): b67705e

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +75 -2
README.md CHANGED
@@ -31,6 +31,57 @@ This gemma2 model was trained 2x faster with [Unsloth](https://github.com/unslot
31
 
32
  데이터셋은 AI-Hub에 있는 논문자료 요약 데이터 셋과 키프리스에서 직접 청구항을 가져와 조합한 데이터셋을 이용했습니다.
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  ## 모델 사용법
35
 
36
  1. unsloth를 설치합니다
@@ -104,10 +155,32 @@ inputs = tokenizer(
104
  r"""<bos><start_of_turn>user
105
  다음 과제해결수단을 보고 발명의 명칭, 기술분야, 청구항을 뽑아주세요.: {}<end_of_turn>
106
  <start_of_turn>model""".format(input)
107
- # train_data[0]["과제의 해결 수단"]
108
  ], return_tensors = "pt").to("cuda")
109
 
110
  from transformers import TextStreamer
111
  text_streamer = TextStreamer(tokenizer)
112
  _ = model.generate(**inputs, streamer = text_streamer, max_new_tokens = 1000)
113
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
  데이터셋은 AI-Hub에 있는 논문자료 요약 데이터 셋과 키프리스에서 직접 청구항을 가져와 조합한 데이터셋을 이용했습니다.
33
 
34
+ ## 모델 학습
35
+ 모델 학습은 loRA를 이용하여 진행하였으며, 학습에 사용된 코드는 다음과 같습니다.
36
+ ```
37
+ model = FastLanguageModel.get_peft_model(
38
+ model,
39
+ r = 16, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128
40
+ target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
41
+ "gate_proj", "up_proj", "down_proj",],
42
+ lora_alpha = 16,
43
+ lora_dropout = 0, # Supports any, but = 0 is optimized
44
+ bias = "none", # Supports any, but = "none" is optimized
45
+ # [NEW] "unsloth" uses 30% less VRAM, fits 2x larger batch sizes!
46
+ use_gradient_checkpointing = "unsloth", # True or "unsloth" for very long context
47
+ random_state = 3407,
48
+ use_rslora = False, # We support rank stabilized LoRA
49
+ loftq_config = None, # And LoftQ
50
+ )
51
+ ```
52
+ ```
53
+ from trl import SFTTrainer
54
+ from transformers import TrainingArguments
55
+ from unsloth import is_bfloat16_supported
56
+
57
+ trainer = SFTTrainer(
58
+ model = model,
59
+ tokenizer = tokenizer,
60
+ train_dataset = train_data,
61
+ max_seq_length = max_seq_length,
62
+ formatting_func = generate_prompt,
63
+ dataset_num_proc = 2,
64
+ packing = False, # Can make training 5x faster for short sequences.
65
+ args = TrainingArguments(
66
+ per_device_train_batch_size = 2,
67
+ gradient_accumulation_steps = 4,
68
+ warmup_steps = 5,
69
+ num_train_epochs = 1, # Set this for 1 full training run.
70
+ # max_steps = 100,
71
+ learning_rate = 2e-4,
72
+ fp16 = not is_bfloat16_supported(),
73
+ bf16 = is_bfloat16_supported(),
74
+ logging_steps = 10,
75
+ optim = "adamw_8bit",
76
+ weight_decay = 0.01,
77
+ lr_scheduler_type = "linear",
78
+ seed = 3407,
79
+ output_dir = "outputs",
80
+ ),
81
+ )
82
+ ```
83
+
84
+
85
  ## 모델 사용법
86
 
87
  1. unsloth를 설치합니다
 
155
  r"""<bos><start_of_turn>user
156
  다음 과제해결수단을 보고 발명의 명칭, 기술분야, 청구항을 뽑아주세요.: {}<end_of_turn>
157
  <start_of_turn>model""".format(input)
 
158
  ], return_tensors = "pt").to("cuda")
159
 
160
  from transformers import TextStreamer
161
  text_streamer = TextStreamer(tokenizer)
162
  _ = model.generate(**inputs, streamer = text_streamer, max_new_tokens = 1000)
163
+ ```
164
+
165
+
166
+ ## 모델 결과
167
+ 해당 모델로 실제 특허 명세서의 과제 해결 수단 항목을 가지고 테스트했으며 실제 문서와 비교했을 때
168
+ 비교적 유사한 내용을 생성했다.
169
+ ```
170
+ [발명의 명칭]
171
+ 가방
172
+
173
+
174
+ [기술분야]
175
+ 본 발명은 가방에 관한 것으로, 보다 상세하게는 확장 가능한 가방에 관한 것이다.
176
+
177
+
178
+ [청구항]
179
+ 내부에 보관할 물건을 넣을 수 있는 기본 내장 공간과 이를 둘러싼 외피를 포함하는 가방에 있어서,
180
+
181
+ 상기 외피에는 열리고 닫히는 확장 외피 지퍼가 형성되어 있고,
182
+
183
+ 상기 확장 외피 지퍼의 내측에는 상기 확장 외피 지퍼가 열리는 경우 펼쳐지는 확장 내피를 더 포함하되,
184
+
185
+ 상기 확장 내피의 내측으로 추가 공간이 형성되어 추가 수납공간을 구비토록 하는 것을 특징으로 하는 추가 수납공간이 구비된 가방.<end_of_turn>
186
+ ```