austin-distel-rxpThOwuVgE-unsplash.jpg

AI연구회

경남ICT협회 AI 연구 모임

LLM 미세 조정

아래는 인터넷에서 LLM 미세 조정에 대한 자료를 퍼온 내용입니다. 작성자는 룩셈부르크 

옌리 리우 라는 분으로 금융 실무자입니다. 

-----------------------

Chat GPT와 같은 대규모 언어 모델(LLM)을 통해 기계는 이전에는 불가능했던 방식으로 인간과 상호 작용할 수 있습니다.

오픈 소스 대규모 언어 모델의 민주화 덕분에 데이터 프라이버시를 보호하고 도메인별 작업을 처리하기 위해 사전 훈련된 LLM 모델을 미세 조정하는 데 대한 관심이 높아지고 있습니다.

우리는 모델 미세 조정과 상황 내 학습의 적용에 대해 논의하는 수많은 게시물을 찾을 수 있습니다 (저는 각각 별개의 기술을 탐구하는 세 개의 기사를 직접😂 작성했습니다).

그러나 기본을 파악하는 것이 중요합니다. 언제 미세 조정을 선택해야 하며, 상황에 맞는 학습이 더 나은 선택은 언제입니까? 프로세스를 어떻게 시작하고 이러한 방법이 더 큰 그림에 어떻게 부합합니까? 쉽게 구현할 수 있는 기술은 무엇입니까?

이 게시물에서는 사전 학습된 모델의 미세 조정 프로세스를 살펴보고, 다양한 미세 조정 방법을 살펴보고, 최신 기술을 비교합니다.

목차:

  1. 미세 조정의 기초
  2. 미세 조정 vs. 컨텍스트 내 학습(검색 증강 생성)
  3. 최첨단 교육 기법
  4. 결론

Dall-E 3에서 제공하는 Bingchat을 사용하여 작성자가 생성한 이미지

 

미세 조정의 기초

미세 조정의 힘

미세 조정은 범용 모델을 특수 모델로 변환하는 열쇠입니다. 예를 들어, GPT-3가 널리 알려진 ChatGPT로 진화하여 챗봇처럼 행동할 수 있게 된 것입니다.

아래에서는 자체 언어 모델(LLM)을 미세 조정해야 하는 9가지 이유에 대한 개요를 확인할 수 있습니다.

간결하게 유지하기 위해 네 가지 뚜렷한 장점으로 요약해 보겠습니다.

  1. 개인 정보 보호: 데이터는 온프레미스 또는 VPC에 유지되어 유출 및 규정 위반(예: GDPR)을 방지합니다.
  2. 신뢰성: 환각을 줄이고, 일관성을 높이고, 편향을 완화하고, 원치 않는 정보를 필터링합니다.
  3. 비용 효율적인 성능: 가동 시간에 대한 제어를 유지하고, 대기 시간을 줄이고, 요청당 비용을 낮춥니다.
  4. 투명성: 제어력을 강화하고 모델 동작의 투명성을 높일 수 있습니다.

자신만의 LLM을 훈련해야 하는 9가지 이유. 근원

특정 작업에 맞게 대규모 언어 모델을 조정하는 몇 가지 미세 조정 방법이 있습니다.

  • 상황 내 학습/검색 Augemented Generation,
  • 교육 학습,
  • 인간 피드백을 통한 강화 학습(RLHF).

데이터 준비는 성공의 열쇠입니다.

미세 조정 프로젝트 실행은 여러 주기의 데이터 준비, 교육 및 평가를 포함하는 반복적인 프로세스입니다.

미세 조정 프로젝트의 Iteratvie 프로세스. 근원

학습 및 평가 단계는 각 반복에 대해 유사한 패턴을 따르는 경우가 많지만, 진정한 차이를 만들 수 있는 것은 데이터 준비 단계입니다.

어떤 종류의 데이터가 필요합니까?

모델을 효과적으로 미세 조정하기 위한 모범 사례에는 고품질의 다양한 실제 데이터를 사용하는 것이 포함됩니다. "Less is More for Alignment" 연구에 따르면 고품질의 소량(~1000개 샘플) 데이터 세트를 만드는 것만으로도 성능이 좋은 모델을 얻을 수 있습니다.

데이터 세트를 만들 때 가장 좋은 방법. 근원

다음을 포함하여 명령 데이터 세트를 만드는 방법에는 여러 가지가 있습니다.

  1. 기존 데이터 세트를 사용하여 명령 데이터 세트로 변환(예: FLAN)
  2. 기존 LLM을 사용하여 Alpaca와 같은 가상 명령 데이터 세트를 생성합니다.
  3. Humans를 사용하여 명령 데이터 세트(예: Dolly)를 만듭니다.

다음은 각 방법을 비교한 것이므로 프로젝트의 고유한 요구 사항과 용이성, 비용, 시간 및 데이터 품질 간의 절충에 따라 올바른 방법을 선택할 수 있습니다.

데이터 세트 생성 방법의 비교. 작성자의 이미지.

또 다른 조언은 미세 조정을 시작할 때 범위를 좁히고 모델을 향상시키기 위한 단일 작업을 선택하는 것입니다. 예를 들어, 코딩, 텍스트 요약, 정보 추출, 텍스트 생성 또는 질문에 대한 답변을 위해 모델을 미세 조정할 수 있습니다.

작업이 명확해지면 해당 작업에 대해 ~ 1000개의 입력 및 출력 쌍으로 구성된 명령 데이터 세트를 준비합니다. 이 데이터로 작은 LLM을 미세 조정하여 데이터 세트를 테스트하고 검증합니다. 이렇게 하면 영향을 이해하는 데 도움이 되며 무료 Google Colab 인스턴스에서 프로세스를 쉽고 빠르게 실행할 수 있습니다.

더 작은 LLM을 미세 조정한 결과가 만족스러우면 자신 있게 확장할 수 있습니다. 작업의 범위와 복잡성에 맞게 더 크고 강력한 언어 모델을 미세 조정하세요.

 

Instruction Fine-Tuning vs. In-Context Learning (Retrieval Augmented Generation)

가장 일반적인 질문 중 하나는 미세 조정을 사용하는 것이 적절한 경우와 모델 사용자 지정에 대한 다른 접근 방식(예: 검색 증강 세대 RAG)에 대한 것입니다.

제 개인적인 생각은 프로토타입을 빠르게 제작해야 할 때나 LLM의 작업 능력을 향상시킬 필요 없이 LLM이 데이터에 대한 질문에 답하기를 원할 때 RAG를 선택하는 것입니다. 또한 RAG는 데이터가 컨텍스트 창 내에 들어갈 수 있는 경우에 적합합니다.

그러나 도메인별 작업에 대한 LLM의 기능을 향상시키는 것이 목표인 경우, 특히 재무, 법률 등과 같은 특정 용어가 데이터에 고유한 경우 RAG가 최선의 선택이 아닐 수 있습니다. 이러한 경우 미세 조정 접근 방식이 더 적합합니다. 모델을 더 잘 제어할 수 있으며 컨텍스트 창의 제한을 초과하는 상당한 데이터 모음으로 모델을 추가로 학습할 수 있습니다.

주요 장단점을 다음 표에 요약했습니다.

명령: 미세 조정 vs. 검색 증강 생성. 작성자의 이미지.

명령어 미세 조정

명령 미세 조정은 적절한 양의 맞춤형 데이터 세트를 사용하여 도메인별 작업으로 사전 학습된 모델을 추가로 훈련하는 프로세스입니다.

프로:

  1. 관련 결과 및 환각 감소: 미세 조정을 통해 모델은 관련성이 높은 결과를 생성할 수 있습니다. 환각의 발생이나 비현실적인 콘텐츠 생성을 줄입니다.
  2. 토큰 제한 없음: 한 가지 제한 사항은 LLM의 컨텍스트 창이 제한되어 있다는 것입니다. 따라서 이러한 모델은 상당한 양의 정보가 필요한 작업에서 제대로 수행되지 않을 수 있습니다. 반면에 미세 조정된 모델은 미세 조정 프로세스 중에 이러한 지식을 획득하여 토큰 제한에 의해 제한되지 않습니다.
  3. 대규모 학습 데이터의 완전한 활용: 학습 데이터가 풍부한 상황에서 미세 조정된 모델은 이러한 풍부한 정보를 활용할 수 있습니다. 미세 조정은 작업별 데이터의 실제 기울기로 모델을 업데이트합니다.

죄수:

  1. 데이터 품질에 대한 종속성: 미세 조정된 모델의 품질은 학습에 사용되는 데이터 세트의 품질에 따라 크게 달라집니다. 데이터 세트에 노이즈가 있거나, 편향되어 있거나, 다양성이 부족한 경우 모델이 이러한 문제를 상속할 수 있습니다. 따라서 "모델은 데이터만큼만 우수하다"는 말은 미세 조정에서도 유효합니다.
  2. 데이터 과학 지식이 필요한 보다 복잡한 접근 방식: 미세 조정은 데이터 과학에 대한 깊은 이해가 필요한 보다 복잡한 접근 방식입니다. 데이터 준비, 하이퍼파라미터 튜닝, 올바른 아키텍처 선택은 모두 전문 지식이 필요한 중요한 단계입니다.
  3. 리소스 집약적: 미세 조정 모델, 특히 대규모 모델은 계산 비용과 시간이 많이 소요될 수 있습니다. 방대한 데이터 세트와 복잡한 작업에 대한 교육에는 상당한 컴퓨팅 리소스와 시간이 필요합니다.
  4. 지속적인 학습 과제: 모델의 효율성을 유지하기 위해 주기적인 재조정이 필요할 수 있으며, 이는 장기적인 모델 유지 관리에 복잡성을 가중시킵니다.

검색 Augemented 생성

In-Context Learning 또는 Few Shot Learning은 프롬프트에 작업별 예제를 포함하는 프로세스입니다.

RAG(Retrieval Augmented Generation)는 일종의 컨텍스트 내 학습입니다. 이 기법은 외부 데이터베이스에서 최신 데이터 또는 컨텍스트별 데이터를 가져와 원래 입력 프롬프트와 함께 컨텍스트로 LLM에 전달합니다. 이 기술을 쉽게 구현하여 데이터와 채팅하는 방법에 대한 구체적인 예는 이전 기사를 참조하십시오.

프로:

  1. 프로토타입 단순성: RAG는 프로토타이핑이 비교적 간단하여 초기 개발 및 실험에 액세스할 수 있습니다.
  2. 아키텍처의 유연성: RAG는 아키텍처를 변경할 수 있는 높은 수준의 유연성을 제공합니다. 임베딩 모델, 벡터 저장소, 언어 모델(LLM)을 독립적으로 수정할 수 있으며, 다른 컴포넌트에 미치는 영향은 최소화하거나 중간 정도까지 유지하여 쉽게 적응할 수 있습니다.
  3. 감사 가능한 결과: RAG는 LLM의 결과를 감사할 수 있도록 출처를 인용하여 투명성과 책임성을 강화할 수 있습니다.
  4. 지식 격차 해소: RAG를 사용하면 LLM이 컨텍스트를 제공하여 특별히 훈련되지 않은 데이터에 대한 질문에 답할 수 있습니다. 이는 특정 시점에서 LLM의 지식이 동결되어 생긴 격차를 해소하는 데 도움이 됩니다.

죄수:

  1. 생산 과제: RAG는 프로토타입을 쉽게 제작할 수 있지만 고객을 만족시키는 생산 준비 상태로 전환하는 것은 어려울 수 있습니다.
  2. 텍스트 청킹(Text Chunking) 및 임베딩 검색 기법(Embedding Retrieval Techniques) 의존성: RAG 기반 LLM 출력의 관련성은 텍스트 청크 메서드, 임베딩, 검색 기법 같은 요소에 크게 의존합니다. 부적절한 구현은 정보 손실과 차선의 결과로 이어질 수 있습니다.
  3. 성능 제한: RAG는 소진성 또는 장거리 요약이 필요한 작업에서 제대로 수행되지 않습니다. 예를 들어, 기사의 모든 요구 사항을 나열하는 것과 같은 작업은 LLM이 전체 콘텐츠를 않고 한 번에 몇 개의 청크만 처리하기 때문에 불가능합니다.

 

최첨단 교육 기법

커스텀 LLM 미세 조정에 대한 실용적인 가이드 시리즈에서 다음 3가지 기법을 살펴보았습니다.

  1. EfficientHuggingFace 라이브러리를 사용한 미세 조정
  2. AutoTrain을 사용한 초보자 친화적인 접근 방식
  3. LLM 미세 조정을 위해 Ludwig를 사용한 선언적 구성

실습 방식을 선호하고 코드 및 구현 예시를 살펴보려면 Google Colab 노트북이 포함된 해당 문서를 확인하세요.

이제 이 세 가지 접근 방식을 비교해 보겠습니다. 학생, 데이터 과학 전문가 또는 데이터 기술 분야로 전환하는 사람 등 귀하의 요구에 가장 적합한 교육 기술을 찾을 수 있을 것이라고 확신합니다.

미세 조정 기술의 비교. 작성자의 이미지.

 

결론

이 블로그에서는 대규모 언어 모델(LLM)을 미세 조정하는 세계와 이와 관련된 방법론을 살펴보았습니다. 또한 다양한 미세 조정 방법과 훈련 기술에 대해서도 논의했습니다.
여기서는 RLHF(Reinforcement Learning from Human Feedback) 및 평가 기법을 다루지 않았습니다. 실제로 이것들은 중요하고 복잡한 주제이며 구체적인 예를 통해 포괄적으로 탐색하고 설명할 전용 기사를 작성할 가치가 있습니다.

 

기업 홍보를 위한 확실한 방법
협회 홈페이지에 회사정보를 보강해 보세요.