archive
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
'AIH 학부연구생 > 23_2 연구 논문' 카테고리의 다른 글
최종 보고서 및 발표 자료 백업 (0) | 2024.03.01 |
---|---|
LLM 파인튜닝 데이터 전처리 (2) & 모델 학습 코드 백업 (0) | 2024.02.16 |
LLM 파인튜닝 트레인 데이터셋 데이터 전처리 (0) | 2024.02.10 |
여러 글 테스트 케이스 - 기승전결의 분류 (0) | 2024.01.22 |
11월 연구 미팅 (0) | 2023.11.13 |