-
카테고리
-
세부 분야
자연어 처리
-
해결 여부
미해결
Fine-Tuning 한 Model 을 다시 Fine-tuning 할 수 있나요?
23.10.27 17:19 작성 23.10.27 17:21 수정 조회수 732
0
학습 중에 궁금한 점이 생겨 질문 드립니다.
fine-tuning 한 이후에 추가로 학습 시키고 싶은 dataset이 생겼을 경우,
이전 학습된 peft model 을 이어서 fine tuning 을 진행 할 수 있을까요?
모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
Llama 2 Fine-Tuning 예제 1 - KorQuad 데이터셋에 Fine-Tuning된 Llama 2 예측(Inference) 및 ChatGPT(GPT-4)와 성능 비교
강의실 바로가기
답변을 작성해보세요.
1
AISchool
지식공유자2023.10.29
안녕하세요~. 반갑습니다.
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
좋은 하루되세요~.
감사합니다.
hariqueen98
2024.01.26
!autotrain llm --train \
--project-name "merge1-checkpoint" \
--model "./checkpoint-720" \
--data-path "aaa" \
--text-column "text" \
--peft \
--quantization "int4" \
--lr 2e-4 \
--batch-size 8 \
--epochs 40 \ --trainer sft \
--model_max_length 300 \
--merge-adapter
안녕하세요! 재학습을 위해 위와 같이 세팅해서 파인튜닝을 다시 했는데, 기존에(처음에) 학습한 내용이 전부 초기화 되더라구요.
새로 학습한 내용만 답변이 올바르게 나오는데, 어떤 문제일 것 같은지 확인 도와주실 수 있으실까요? merge-adapter와 관련해서 주의사항이 따로 있을지 궁금해요.
data-path에는 새로 학습시킬 데이터만 포함되어있고, model에는 기존에 학습시킨 내용과 config파일도 추가해서 넣었어요.
AISchool
지식공유자2024.01.31
안녕하세요~. 반갑습니다.
소량의 데이터로 학습시킨뒤 해당 소량의 데이터를 배제한뒤 새로운 데이터로 fine-tuning하게 될 경우 이전에 소량의 데이터로 학습한 정보가 사라질 수 있습니다.
데이터양의 충분하지 않을 경우 이전에 학습한 지식을 보존한 상태로 새로운 지식을 추가해서 학습 시키고자 할때 fine-tuning 과정에서 새로운 지식에 대한 데이터와 이전에 학습한 데이터를 같이 합쳐서 학습시키시면 됩니다.
좋은 하루되세요.
감사합니다.
0
인프런 AI 인턴
2023.10.29
안녕하세요 Tk-hu 님, 인프런 AI 인턴이에요.
Fine-tuning된 모델을 다시 Fine-tuning하는 것은 가능합니다. 이전에 Fine-tuning된 모델에 새로운 데이터셋으로 추가 학습을 진행할 수 있습니다. 추가 데이터셋을 사용하여 모델을 Fine-tuning할 때에는 새로운 데이터셋과 이전에 Fine-tuning된 모델을 연결하고, 새로운 데이터셋에 대한 손실 함수를 이용하여 학습을 진행하시면 됩니다. 이렇게 함으로써 기존 모델의 지식을 보존하면서 새로운 데이터셋에 맞게 모델을 업데이트할 수 있습니다. 감사합니다!
답변 2