AI 초보자의 LLM 공부 기록 네 번째
안녕하세요 클래스메소드의 이수재입니다.
저번 글에 이은 네 번째 글입니다.
이 시리즈는 쉽고 빠르게 익히는 실전 LLM이라는 책을 베이스로 공부한 내용을 글로 남기는 것이 목적입니다.
이번 글은 제가 공부하며 궁금했던 내용을 먼저 정리하고자 합니다.
이번에는 참고가 되는 다른 글부터 소개드리겠습니다.
이번 글을 chat gpt에게 요약해달라고 한 내용도 공유해봅니다.
각 내용에 대해 참고가 될 지식 등을 포함해서 다시 알려줘
이 글에서 다루는 내용은 파인 튜닝과 RAG (검색 증강 생성)에 대한 깊이 있는 설명이며, 이를 이해하는 데 도움이 되는 참고 지식도 포함하여 정리해 드리겠습니다.
1. 파인 튜닝이란?
- **파인 튜닝(Fine-tuning)**은 이미 사전 훈련된 LLM을 특정 작업이나 도메인에 맞춰 추가적으로 학습시키는 과정입니다. 모델이 기존에 학습한 거대 데이터는 일반적인 지식에 집중되지만, 특정 분야에선 부정확하거나 비효율적인 답변을 할 수 있습니다. 이를 개선하기 위해 도메인 특화 데이터를 사용해 모델을 재학습시키는 방법이 파인 튜닝입니다.
관련 개념:
- 전이 학습(Transfer Learning): 이미 훈련된 모델이 새로운 작업에 재사용되도록 하는 방법으로, 파인 튜닝은 이 방법의 한 예입니다. 일반적인 언어 구조와 규칙을 먼저 학습한 후, 새로운 분야의 세부적인 정보를 습득하게 됩니다.
- 퓨샷 러닝(Few-shot Learning): 훈련된 모델에 소량의 새로운 예시를 제공해 해당 작업에 더 적합하게 만드는 학습 방식. 파인 튜닝보다 적은 양의 데이터로 도메인에 적합한 모델을 만들 수 있지만, 정확도가 부족할 수 있습니다.
참고 자료:
2. 파인 튜닝의 필요성
- LLM은 대규모 데이터를 통해 광범위한 지식에 대해 훈련되지만, 그 과정에서 특정 도메인에 대해선 부정확하거나 신뢰할 수 없는 답변을 제공할 가능성이 있습니다. 파인 튜닝을 통해 이를 개선할 수 있습니다.
문제점:
- 오류 가능성: 잘못된 정보나 오래된 데이터를 사용한 답변 가능성.
- 신뢰도 부족: 출처가 명확하지 않은 정보 제공.
- 일관성 문제: 동일한 용어에 대해 다른 맥락에서 사용되는 혼동.
- 편향성: 훈련 데이터에 내재된 편향이 그대로 반영될 수 있음.
파인 튜닝의 장점:
- 모델이 신뢰할 수 있는 최신 정보를 바탕으로 특정 도메인에 대한 명확한 답변을 제공.
- 잘못된 정보 제공 가능성을 낮추고, 데이터의 일관성을 확보.
참고 자료:
3. RAG란?
- **RAG(Retrieval-Augmented Generation)**는 LLM의 출력을 최적화하기 위해 외부 데이터베이스를 참조하여 답변을 생성하는 방식입니다. 즉, 모델 자체를 재학습시키기보다는, 필요한 정보를 실시간으로 외부에서 가져와 활용하는 방법입니다.
RAG의 장점:
- 신뢰성: 모델이 답변을 생성할 때 어떤 데이터를 참고했는지 명확히 알 수 있습니다.
- 최신 정보 제공: 최신 데이터베이스를 활용해 최근 정보로 답변할 수 있습니다.
파인 튜닝과의 차이점:
- 파인 튜닝: 모델 자체를 재학습해 특정 도메인에 맞는 답변을 제공하는 방식.
- RAG: 모델의 구조는 그대로 두고, 외부 지식 베이스에서 검색된 최신 정보로 답변을 보완.
참고 자료:
4. 파인 튜닝의 과정
- 파인 튜닝은 특정 도메인의 데이터를 모델에 맞춰 재학습하는 과정입니다. 이를 통해 해당 분야에 대한 더 정확하고 신뢰할 수 있는 답변을 제공합니다.
과정 단계:
- 레이블이 지정된 데이터 수집: 목표 도메인과 관련된 데이터를 모아 훈련, 검증, 테스트셋을 준비합니다.
- 하이퍼파라미터 설정: 학습률, 배치 크기 등 훈련에 영향을 미치는 파라미터를 조정하여 최적화된 학습을 유도합니다.
- 모델 적응(adaptation): 모델이 데이터를 바탕으로 도메인에 적합하게 학습됩니다.
- 평가와 반복: 검증셋을 통해 모델 성능을 평가하고, 필요하면 다시 튜닝 과정을 반복합니다.
- 모델 구현 및 추가 학습: 파인 튜닝이 완료되면 모델을 실제 서비스에 배포하고 피드백을 반영해 추가적으로 학습을 이어갑니다.
참고 자료:
이 내용을 바탕으로 파인 튜닝과 RAG의 차이점, 각 방법의 장단점, 그리고 파인 튜닝의 구체적인 과정을 이해할 수 있습니다.
파인 튜닝이란?
파인튜닝은 특정 작업이나 도메인에 높은 적합성을 확보하기 위해, 이미 훈련된 대규모 언어 모델에 특정 데이터셋을 사용하여 추가적인 학습을 수행하는 작업을 말합니다. - 파인튜닝(Fine-tuning)이란? – LLM 구축 방법)(appen)
저번 글에서도 파인 튜닝에 대해 짧게 소개했었습니다.
파인 튜닝은 사전 훈련된 모델에서 가중치를 조금씩 변경하여 어떤 정보(도메인)에 대해 적절한 상태로 튜닝하는 것을 말합니다.
이미 사전 훈련된 LLM은 일반적인 지식이나 정보들을 거대 데이터를 바탕으로 훈련되어 있습니다.
하지만 이러한 LLM은 범위가 정해져 있지 않은 수많은 일반적인 정보들에 대해 학습되어 있기 때문에 질문의 범위를 특정 분야(도메인)로 좁히면 정확하지 않은 답변을 할 경우가 있습니다.
특정 분야에 대한 답변을 명확히 하기 위해서 이전에 설명했던 퓨샷 러닝 등을 활용하여 특정 분야에 대해 더 정확한 답변을 이끌어 낼 수 있습니다.
하지만 퓨샷 학습으로도 정확도가 떨어지거나 좀 더 전문적인 분야에 대해서 확실한 대답을 해주는 모델이 필요하다면(즉, 나만의 모델이 필요하다면) 파인 튜닝 작업이 필요합니다.
파인튜닝이 왜 필요한가?
LLM은 일반적인 정보에 대해 학습이 되어 있어서 범용적으로 사용할 수 있습니다.
하지만 다음과 같은 단점도 있습니다.
- 오류 가능성이 있는 답변
- 잘못된 정보나 허위 정보를 바탕으로 답변을 작성할 수 있습니다
- 특히 답변이 없을 때 허위 정보를 제공할 수 있습니다
- 오래된 정보의 가능성
- 사용자가 구체적이고 최신의 응답을 기대할 때 오래되었거나 일반적인 정보를 제공합니다.
- 정보의 신뢰도
- 신뢰할 수 없는 출처로부터 응답을 생성합니다.
- 일관적이지 않은 답변
- 용어 혼동으로 인해 응답이 정확하지 않습니다. 다양한 훈련 소스가 동일한 용어를 사용하여 서로 다른 내용을 설명합니다.
- 편향적인 답변
- 학습 데이터에 내재되어 있는 편향성을 그대로 가져올 수 있습니다.
위에서 설명했듯이 파인튜닝은 기존의 지식을 기반으로 특정 분야(도메인)에 대한 정보를 추가로 학습합니다.
따라서 답변의 오류 가능성이나 오래된 정보로 인한 잘못된 답변을 할 확률이 줄어듭니다.
또한 파인튜닝에서 활용하는 데이터 베이스는 이미 검증되어 있는 데이터를 사용하는 경우가 많아서 신뢰도 높은 답변을 얻을 가능성도 높습니다.[1]
RAG란 방법도 있다는데요?
RAG은 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스입니다. - 출처
파인 튜닝과 같이 모델을 커스터마이징 하는 방법으로는 RAG(Retrieval-Augmented Generation, 검색 증강 생성) 도 있습니다.
모델이 답변을 하기 전 참조할 수 있는 추가적인 데이터 베이스를 제공하는 방법이라고 생각하면 이해하기 쉽습니다.
RAG를 이용하면 LLM의 몇 가지 단점을 보완할 수 있습니다.
- 신뢰할 수 있는 데이터
- 소스의 출처를 표기하여 어느 정보를 토대로 답변을 한 것인지 확인할 수 있습니다.
- 또한 학습된 정보를 바탕으로 더 명확한 답변이 가능합니다
- 최신 정보
- 참조하는 지식 베이스가 최신 정보라면 답변 또한 최신 정보가 됩니다
저는 다음과 같이 차이점이 있다고 이해하고 있습니다.
- 파인 튜닝 : 특정 분야에 대한 데이터를 다시 학습하여 모델 자체를 변경하는 방법에 가까움
- RAG : 모델은 그대로 두고 특정 분양에 대한 데이터를 참조할 수 있도록 제공하여 검색 결과에 대한 신뢰도를 올림
다음 글들을 참고하는 것을 추천합니다.
파인튜닝의 과정
파인튜닝은 전이학습(Trensfer Learning)[2]을 기반으로 합니다.
LLM에서는 전이학습은 문법과 일반 지식, 일반적인 언어 이해 능력을 특정 분야의 작업에 적용하는 것을 의미합니다.
파인튜닝은 몇 가지 파라미터를 조정하여 최적의 학습 결과를 유도합니다.
파인튜닝을 위한 필요한 재료는 다음과 같습니다.
- 훈련셋(Tranining Set): 모델을 훈련시키기 위해 사용되는 레이블이 달린 데이터 모음입니다.
- 검증셋(Validation Set): 훈련셋과 별개로 모델의 성능을 평가하기 위해 사용되는 레이블이 달린 데이터 모음입니다.
- 테스트셋(Test Set): 훈련셋, 검증셋과 중첩되지 않는 별개의 레이블이 달린 데이터 모음입니다. 파인튜닝까지의 과정이 완료된 후 최종 성능을 평가하기 위해 사용됩니다.
- 손실 함수(Loss Function): 모델의 예측 값과 실제 목표 값 사이의 차이를 정량화하는 함수이빈다. 즉, 결과와 예측치가 어느 정도 다른지를 평가하는데 사용되는 함수입니다. 성능을 평가하고 최적화 과정을 진행하는데 참고하며, 손실 함수를 최소화하여 더 나은 결과를 만들어내는 것이 훈련의 목표가 됩니다.
파인튜닝의 과정은 다음과 같습니다.[3]
- 레이블이 지정된 데이터 수집 : 목표 작업이나 도메인과 관련된 레이블이 지정된 예시들의 훈련, 검증, 테스트를 위한 데이터셋을 모으는 것입니다. 데이터셋은 보통 원본의 데이터셋에서 특정 비율만큼 나누는 경우가 많습니다. 상세한 내용은 다음 글들을 참고하는 것을 추천합니다.
- 하이퍼파라미터[4] 선택: 파인튜닝은 훈련 과정에 영향을 주는 하이퍼파라미터를 조정하는 것과 밀접한 관련이 있습니다. 하이퍼파라미터를 적절히 설정하는 것은 모델 성능에 큰 영향을 미치고, 과적합과 과소적합[5]과 같은 문제를 방지하는 데 도움이 됩니다.
- 모델 적응(adaptation): 레이블이 달린 데이터와 하이퍼파라미터가 설정되면, 모델을 목표 작업에 적응시켜야합니다. 이는 모델의 아키텍처를 수정해 목표 작업에 적합하게 만드는 과정입니다.
- 평가와 반복(iteration): 파인튜닝 과정이 완료된 후에는 별도의 홀드아웃(holdout) 검증셋을 가지고 모델이 처음 접하는 데이터에도 잘 일반화되는지 확인해야 합니다. 작업에 따라 정확도, F1 점수, 평균 절대 오차(MAE)와 같은 성능 지표를 이용할 수 있습니다.
- 모델 구현 및 추가 학습: 모델이 파인튜닝되고 설능에 만족했다면, 오류를 처리하고 사용자로부터 피드백을 얻을 수 있도록 기존 인프라와 통합해야 합니다.
마무리
책의 내용을 이어서 알아가기 위해 챕터 4와 그 외에 참고 되는 내용을 정리해보았습니다.
긴 글 읽어주셔서 감사합니다.
오탈자 및 내용 피드백은 must01940 지메일로 보내주시면 감사합니다.
파인튜닝에 활용하는 데이터가 최신화되어 있고 검증된 신뢰있는 데이터라는 전제하의 설명입니다. ↩︎
한 작업 또는 데이터 세트를 통해 얻은 지식을 사용하여 다른 관련 작업 및/또는 다른 데이터 세트에서 모델 성능을 개선하는 머신 러닝 기술입니다. - 전이 학습이란 무엇인가요?(IBM) ↩︎
책의 표현이 가장 이해하기 쉬운 것 같아 그대로 빌렸습니다. ↩︎
하이퍼파라미터(Hyperparameter (machine learning))는 기계 학습에서 학습률이나 옵티마이저 선택과 같은 매개변수로, 학습 프로세스의 세부 사항을 지정하므로 하이퍼파라미터라는 이름이 붙었다. - 하이퍼파라미터 (기계 학습)
(위키백과) ↩︎과적합은 모델이 훈련 데이터의 노이즈를 신호보다 더 많이 학습하는 경우이고, 과소적합은 모델이 데이터의 기본 구조를 파악하지 못하는 경우입니다. ↩︎