작성
·
1.2K
·
수정됨
답변 2
1
안녕하세요~. 반갑습니다.
peft를 적용한 fine-tuning한 모델을 다시 fine-tuning 하고 싶으실 경우
training을 진행할때 마지막에 --merge-adapter argument를 추가로 넣어줘서 config.json 파일을 포함한 학습결과를 폴더로 저장한뒤에
다시 fine-tuning 하실때 해당 fine-tuning된 결과를 가지고 있는 폴더를 model의 초기 path로 설정해서 다시 fine-tuning 해주시면 됩니다.
예를 들어서 설명하면 아래와 같습니다.
학습과정에서 --merge-adapter config추가해서 fine-tuning
!autotrain llm --train \
--project_name "llama2-korquad-finetuning" \
--model "TinyPixel/Llama-2-7B-bf16-sharded" \
--data_path "korquad_prompt" \
--text_column "text" \
--use_peft \
--use_int4 \
--learning_rate 2e-4 \
--train_batch_size 4 \
--num_train_epochs 100 \
--trainer sft \
--model_max_length 256 \
--merge-adapter
위 fine-tuning된 모델을 다시 fine-tuning하고 싶을 경우 model path를 fine-tuning된 학습결과 폴더로 지정해서 다시 학습 (당연히 실행환경에 llama2-korquad-finetuning라는 폴더가 먼저 존재해야만 합니다.)
!autotrain llm --train \
--project_name "llama2-korquad-finetuning-2" \
--model "./llama2-korquad-finetuning" \
--data_path "korquad_prompt" \
--text_column "text" \
--use_peft \
--use_int4 \
--learning_rate 2e-4 \
--train_batch_size 4 \
--num_train_epochs 100 \
--trainer sft \
--model_max_length 256
좋은 하루되세요~.
감사합니다.
안녕하세요~. 반갑습니다.
소량의 데이터로 학습시킨뒤 해당 소량의 데이터를 배제한뒤 새로운 데이터로 fine-tuning하게 될 경우 이전에 소량의 데이터로 학습한 정보가 사라질 수 있습니다.
데이터양의 충분하지 않을 경우 이전에 학습한 지식을 보존한 상태로 새로운 지식을 추가해서 학습 시키고자 할때 fine-tuning 과정에서 새로운 지식에 대한 데이터와 이전에 학습한 데이터를 같이 합쳐서 학습시키시면 됩니다.
좋은 하루되세요.
감사합니다.
0
안녕하세요 Tk-hu 님, 인프런 AI 인턴이에요.
Fine-tuning된 모델을 다시 Fine-tuning하는 것은 가능합니다. 이전에 Fine-tuning된 모델에 새로운 데이터셋으로 추가 학습을 진행할 수 있습니다. 추가 데이터셋을 사용하여 모델을 Fine-tuning할 때에는 새로운 데이터셋과 이전에 Fine-tuning된 모델을 연결하고, 새로운 데이터셋에 대한 손실 함수를 이용하여 학습을 진행하시면 됩니다. 이렇게 함으로써 기존 모델의 지식을 보존하면서 새로운 데이터셋에 맞게 모델을 업데이트할 수 있습니다. 감사합니다!
안녕하세요! 재학습을 위해 위와 같이 세팅해서 파인튜닝을 다시 했는데, 기존에(처음에) 학습한 내용이 전부 초기화 되더라구요.
새로 학습한 내용만 답변이 올바르게 나오는데, 어떤 문제일 것 같은지 확인 도와주실 수 있으실까요? merge-adapter와 관련해서 주의사항이 따로 있을지 궁금해요.
data-path에는 새로 학습시킬 데이터만 포함되어있고, model에는 기존에 학습시킨 내용과 config파일도 추가해서 넣었어요.