파인 튜닝은 기본적인 LLM모델에 특정 지식을 추가 학습하여 해당 분야에 대한 보다 더 높은 지식수준을 갖추는 과정이다. 기본 LLM모델인 Meta, OpenAI, Ms, Claude 등은 아주 방대한 데이타를 바탕으로 범용적인 지식수준을 높여왔다.
웬만한 단어 정의, 문장의 의미 해석은 굉장히 높은 수준이나 너무나 방대한 데이타 학습을 위하여 컴퓨팅 리소스가 천문학적으로 필요하다. 하지만 파인튜닝은 상대적으로 적은 리소스를 사용하여 특정 분야의 학습이 가능하다.
고등학교까지의 국어,수학,과학등 기초지식을 갖추고 대학의 전공분야별 특정 지식을 갖추는 과정과 유사할 듯 하다.
그렇다면 파인튜닝하는 특정분야의 지식은 기존 모델에도 영향을 줄까? 당연하지 않을까? 대학가서 배우다 보면 과거 중,고등학교에 배운 지식중 일부는 교정될 수 밖에 없다. AI 모델로 마찬가지로 기존 학습된 지식에 새로운 지식이 섞이면서 신경망구조에 영향을 주는 파라미터 교정 작업이 일어난다.
하지만 그렇다고 초,중,고 과정을 다시 다 배울 수는 없는 거 아닌가? 그러니 파인튜닝도 일부분에만 영향을 미치도록 해야한다.
학습의 방식은 어떻게 진행될까
중요한 것은 학습할 데이타이다. 정확한 지식을 담고 있어야하고 각각의 지식이 무슨의미인지 주석도 필요하고, 데이타들은 아주 잘 규정된 구조를 갖도록 만들어야 한다. 예를 들어서 개인이 정리한 맛집 리스트를 학습하고자 한다면 맛집의 메뉴, 가격대, 분위기, 위치 등의 정보를 구조화 한다.
[참고/GPT4]
- Restaurant Name:
- Label: Name
- Annotation: Specific tag or identifier that this segment of text represents the name of the restaurant.
- Example: "Momofuku Noodle Bar" could be annotated as [Name: Momofuku Noodle Bar].
- Location:
- Label: Location
- Annotation: Indicates the geographical location or address.
- Example: "Located in downtown Manhattan" could be annotated as [Location: downtown Manhattan].
- Menu Items:
- Label: Menu
- Annotation: Details specific dishes or cuisine types offered by the restaurant.
- Example: "Serves classic Neapolitan pizza and homemade pasta" could be annotated as [Menu: Neapolitan pizza, homemade pasta].
- Price Range:
- Label: Price
- Annotation: Specifies the cost or price tier of the restaurant (e.g., $, $$, $$$, or specific price range).
- Example: "Entrees range from $15 to $30" could be annotated as [Price: $15-$30].
- Atmosphere:
- Label: Atmosphere
- Annotation: Describes the dining environment or the mood within the restaurant.
- Example: "Casual dining with a cozy, rustic vibe" could be annotated as [Atmosphere: casual, cozy, rustic].
위와 같이 파인 튜닝했다면 '오늘은 분위기가 캐주얼하고 가격대가 20불 정도 하는 Pizza 집을 찾아줘' 라고 문의할때
"Check out 'Momofuku Noodle Bar' located in downtown Manhattan. It offers a casual dining atmosphere and serves a variety of dishes including classic Neapolitan pizza. The price range for entrees is around $15 to $30, fitting your budget for around $20." 이런식으로 나온다. 물론 현재 MS copilot에 물어보면 더 잘 대답을 해준다. 맛집 정도는 특정지식이 아니라 거의 일반적인 지식범주가 되었다. 지도랑 연결되어서 위치 확인도 매우 간편하다. 물론 내위치도 판별한다.
그 다음의 문제는 없는 지식에 대하여 질문이 들어왔을 때 어떻게 대처해야 하는 것이다. 초기 GPT 모델이 나왔을 때 halluciation 문제로 잘못된 오답을 내놓는다 비판이 많았다. 모르면 모른다 말할 것이지. 하지만 지금은 많이 똑똑해 졌다. 부정확 데이타에 대한 답변을 제한하도록 기능들이 보강되어서 이다. (Fallback strategy) 지식에 없는 정보가 들어오면 좀 더 명확한 질문을 유도하거나 모른다고 답을 하던가, 가장 유사하다고 판단되는 내용을 알려준다. 나중에 이부분은 좀 더 들어야 볼 필요가 있다. 어디까지를 유사하고 정확하다고 판단하는지 말이다.
학습을 하면서 일어나는 문제중 또 하나는 Catastropic Forgetting 이다. 초기 기본모델에서 학습된 내용 일부를 변경하면서 발생한다. 이 경우 학습된 지식을 활용하지 못하고 엉뚱한 대답을 내 놓을 수 있다. 복잡한 뉴럴링크가 학습 작동을 할때에는 링크 사이사이를 가중치 파라미터들이 반응을 하는데, 파라미터 값을 크게 변동시키게 되면 발생할 수 있다.
대학생이 열심히 공부를 하였는데 아주 기본적인 질문에 대해서 문맥도 맞지 않는 엉뚱한 말을 얘기할 수 있나?
인간과 다르게 인공지능은 발생한다고 한다. 다르게 생각하면 기본모델 학습한 layer와 파인튜닝 layer사이의 구조적 오류일 수도 있겠다.
결론적으로, *미세 조정(fine-tuning)*은 기계 학습에서 가장 강력한 기술로, 일반적인 모델을 특정 작업에 맞게 조정하여 해당 작업에서의 정확성과 효율성을 향상시킨다. 모델을 처음부터 다시 훈련할 필요 없이 학습된 기존 모델위에 추가 학습만 필요하다. 미세 조정은 큰 사이즈의 레이블된 데이터가 부족하거나 또는 특정 데이터의 상세한 이해를 요구할 때도 유용하다
다음번에는 모델내 Layer간 구조적인 모습과 학습 영역의 구분이 어떻게 되는지 파악해 보려한다.
'생성형 AI (ChatGPT, Gemini, MS Copilot..)' 카테고리의 다른 글
생성형 AI 용어 이해-③ LoRA, 효율적 파인튜닝으로 특정 분야만 심화학습 (0) | 2024.05.21 |
---|---|
생성형 AI 용어 이해-① Generative Adversarial Networks (GANs) (5) | 2024.04.27 |
chatgpt(open ai)와 MS/bing copilot의 차이점 (0) | 2024.04.10 |