LLM 파인 튜닝 정리
아주 기세등등하게 파이토치로 "제가 직접 인공신경망 구성할 겁니다 !" 하고 연구미팅에서 큰소리 땅땅 쳤더니
이기성 교수님한테 아주 그냥 바로 빠꾸 당함
사실 자신도 없었고 시간 안에 할 수 있을까라는 생각이 들기는 했었다만
생각보다 훨씬 복잡하고 훨씬 고려해야하는 사항이 많은 것이 바로 딥러닝의 세계였다
그래서 해 주신 말씀이... 다들 딥러닝 건드리기보다는 그래서 머신 러닝으로 학부생은 시작해보는 거라고...
근데 또 이제 인공지능 공부 이제 막 시작한 애가 저 딥러닝 할 거에요 ! 했을 때
교수님은 얼마나 웃겼을까 싶기도 하고... ㅎㅋ
역시 아무것도 모르는 사람이 덤볐을 때 제일 우스운 거라고 ㅋㅋ.......
이제 진짜 길을 잡았으니, 정말 제대로 해서 이 부끄러움 만회하는 수밖에 없다.
서론이 길었는데, 하여간 교수님이 지적한 사항은 아래와 같았다.
1. 학습데이터 (캐글 mbti데이터)랑 실제 평가 데이터(소설 등장 인물의 대사와 행동묘사) 의 형식이 어느정도 비슷해야, 더군다나 이에 대해 미리 충분히 학습한 llm이 아니라 내가 모델을 하나 직접 만드는 거라면, 잘 작동이 될 텐데 그것도 아니고, 잘못하면 내용 학습이 아니라 어투(문체) 학습이 될 거 같다
2. 인공신경망 제대로 구축하려면 현재 확보한 만 개 정도의 데이터로는 어림도 없다. 6만개 7만개 정도가 필요할 것이고, 그러려면 시간도 많이 필요할 거 같은데, 이럴 거면 차라리 학습이 미리 된 llm을 파인튜닝 하는 것이 좋지 않겠니?
3. 인공신경망 직접 구축할 거면, 학습 데이터에 대한 임베딩 (솔직히 이때까지만 해도 임베딩이 뭔지 몰라서 그냥 아 네네 그렇죠 하고 넘겼다)은 어떻게 할 거냐
4. 유저에게 인공신경망이 직접적으로 영향을 주지 않는다. 유저는 인공신경망을 못 보네?
5. 이거 캐글 데이터 포맷이 왜 이러니 이 데이터 어디서 가지고 온 거니? 프로젝트 데이터가 아니라 그냥 일반 사람이 올린 데이터 셋을 가져오는 바람에 이런 지적도 받았음
그래도 이제 정말 큰 그림 다 잡았고 나름 논리적으로 프로젝트 개요 설명할 수 있을 정도로 완벽히 구상했다고 생각하고 연구 미팅을 들어갔는데 멘탈만 와장창 깨져서 나왔다.
새로 듣는 단어와 작업 방식이 쏟아졌고, 시간도 촉박할 뿐더라 하하... 잘해낼 수 있을까 싶었던 거지
근데 뭐 어쩌겠어 해야지
그래서 오늘도 일찍 출근해서 일단 llm 파인 튜닝에 대한 사전 기초 지식부터 쌓아보기로 했다. 퇴근하고나서부터는 직접 코드 짜 봐야지.
파인튜닝이 필요한 이유 : 모델이 특정 분야에서 더욱 정교하고 전문적인 답변을 할 수 있도록 개선하는 것
프롬프트 엔지니어링으로 하면 안 되는 것인가?
:파인튜닝과 프롬프트 엔지니어링은 모두 미리 학습된 모델을 새로운 작업에 적용하기 위한 기술이지만, 기술의 목적과 사용 방법이 다르다.
:프롬프트 엔지니어링은 기존의 모델을 변화시키지 않고, 모델의 입력에 한 문장을 추가하여 원하는 출력을 얻는 방식이고, 파인 튜닝은 미리 학습된 모델을 새로운 작업에 맞게 다시 학습시키는 것이다.
:프롬프트 엔지니어링은 따라서 새로운 학습 없이 적용할 수 있으므로 빠르게 결과를 얻을 수 있는 반면 파인 튜닝은 새로운 학습이 필요하기 때문에 시간이 더 걸린다.
:파인 튜닝은 프롬프팅보다 비용이 더 들지만, 프롬프팅에 들어가는 토큰 수가 줄기 때문에 결과적으로 더 저렴할 수도 있다.
:프롬프트만으로는 기본 모델의 성능을 일정 수준 이상으로 끌어올리기 어렵지만, 파인 튜닝은 더 높은 성능을 목표로 할 수 있게 된다.
따라서 파인 튜닝은 다음과 같은 상황에서 특히 유용하다
-일관된 답변을 원할 때
-모델의 능력을 극대화하고 싶을 때
-특정 주제에 대한 지식을 높이고 싶을 때
-오류나 틀린 정보를 제대로 수정하고 싶을 때
***알아둘 정보
*트레이닝 로스 (Training loss)
: 모델이 트레이닝 데이터셋에서 얼마나 많은 오류를 만들고 있는지를 나타낸다
: 일반적으로 학습이 진행됨에 따라 감소하고, 이 값이 낮을 수록 좋다
*벨리데이션 로스 (Validation loss)
: 모델이 본 적 없는 데이터에 대해 얼마나 잘 일반화되고 있는지를 평가하기 위해 사용하는 지표
: 별도의 검증 데이터셋(validation dataset)으로 산정한다.
: 벨리데이션 로스도 낮을 수록 좋음
교수님이 llm 모델을 하나 추천해 주셨는데, Hugging Face의 xlm-roberta-base라고, 캐글 데이터가 영어 데이터라고 하니 교차 언어 지원 모델이라고 추천해주셨다.
참고 문서
파인튜닝(Fine-tuning)이란? - LLM 구축 방법 | appen 에펜
파인튜닝(Fine-tuning)이란? - LLM 구축 방법 | appen 에펜
파인튜닝(fine-tuning)은 특정 작업이나 도메인에 높은 적합성을 확보하기 위해 이미 훈련된 대규모 언어 모델에 특정 데이터셋을 사용하여 추가적인 학습을 수행하는 작업을 말합니다. 이 글에서
kr.appen.com
[논문 리뷰 스터디] RoBERTa : A Robustly Optimized BERT Pretraining Approach (tistory.com)
[논문 리뷰 스터디] RoBERTa : A Robustly Optimized BERT Pretraining Approach
작성자 : 김지후 1. Introduction 셀프 트레이닝(self-training) 방법인 ELMo, GPT, BERT, XLM, XLNet은 상당한 성능의 개선을 이루어냈습니다. 그러나 방법의 어떤 측면이 기여했는지에 결정하기 어렵습니다. 학
kubig-2022-2.tistory.com
실전! LLM 파인튜닝 (1/2) (brunch.co.kr)
실전! LLM 파인튜닝 (1/2)
파인튜닝, finetuning, 챗GPT, 젠틀파이, LLM, 생성AI | 앞선 글에서는 프롬프트 엔지니어링 (1) (2)에 대한 내용을 풀어봤다. 이번에는 프롬프트 엔지니어링과는 다르게 파인튜닝에 초점을 맞춰 알아보
brunch.co.kr
실전! LLM 파인튜닝-GPT3.5 파인튜닝(2/2) (brunch.co.kr)
실전! LLM 파인튜닝-GPT3.5 파인튜닝(2/2)
파인튜닝, gpt, 젠틀파이, finetuning, LLM | 이전 글, 실전! LLM 파인튜닝이 의외(?)로 인기가 많아 이번엔, '우당탕탕 파인튜닝 체험기'라는 제목으로 사내위키에 올린 글을 여기에 소개해본다. 파인튜
brunch.co.kr