요약생성
바쁠 때는 리얼라이즈가 내용을 요약해 드려요.
이 글은 AI를 둘러싼 전문 용어와 근거 없는 믿음을 명확히 하기 위한 게시물 시리즈인 AI 이해하기의 일부입니다.
사전 학습된 대규모 언어 모델(LLM)은 텍스트 생성, 요약 및 코딩을 포함하여 놀라운 작업을 즉시 수행할 수 있습니다. 그러나 LLM은 모든 애플리케이션에 적합한 만능 솔루션이 아닙니다. 경우에 따라 (또는 애플리케이션에 따라 자주) 언어 모델로는 수행할 수 없는 작업이 발생합니다.
이러한 상황에서 한 가지 옵션은 LLM을 미세 조정하는 것입니다. 기본적으로 미세 조정은 새로운 데이터에 대해 기본 모델을 다시 학습시키는 프로세스입니다. 비용이 많이 들고 복잡하며 가장 먼저 떠올려야 할 솔루션은 아닙니다. 그럼에도 불구하고 애플리케이션에 LLM을 통합하는 조직의 도구 상자에 있어야 하는 매우 강력한 기술입니다.
다음은 대규모 언어 모델을 미세 조정하는 것에 대해 알아야 할 사항입니다. 직접 수행할 전문 지식이 없는 경우에도 미세 조정의 작동 방식을 알면 올바른 결정을 내리는 데 도움이 될 수 있습니다.
LLM 미세 조정이란 무엇입니까?
이 글은 LLM 미세 조정에 관한 글이지만 언어 모델에만 해당되는 문제는 아닙니다. 모든 머신 러닝 모델은 상황에 따라 미세 조정이나 재학습이 필요할 수 있습니다. 모델은 데이터 세트에 대해 학습할 때 기본 데이터 분포의 패턴을 근사화하려고 시도합니다.
개념을 더 잘 설명하기 위해 도시 환경에서 승용차 이미지를 감지하도록 설계된 합성곱 신경망(CNN)을 생각해 보겠습니다. 이 모델은 도시 환경에서 수만 장의 승용차 이미지에 대해 학습되었습니다. 이러한 종류의 자동차 및 환경에서 자주 볼 수 있는 모양, 색상 및 픽셀 패턴에 맞게 매개변수를 조정했습니다. 그리고 도시의 자동차 이미지에 사용하면 매우 잘 수행됩니다.
이제 고속도로에서 트럭을 감지하는 애플리케이션에서 동일한 모델을 사용한다고 가정해 보겠습니다. 기본 분포가 크게 다르기 때문에 모델의 성능이 갑자기 저하됩니다.
이 경우 한 가지 옵션은 고속도로의 트럭 이미지에 대해 처음부터 모델을 학습시키는 것입니다. 그러나 이렇게 하려면 수만 장의 레이블이 지정된 트럭 이미지가 포함된 매우 큰 데이터 세트를 만들어야 하므로 비용과 시간이 많이 소요될 수 있습니다.
학습된 ML 모델은 분포 외 예제에서는 제대로 수행되지 않습니다.
흥미롭게도 트럭과 승용차는 공통된 시각적 특징이 많습니다. 따라서 처음부터 새 모델을 학습시키는 대신 학습된 모델이 중단된 부분부터 계속할 수 있습니다. 작은 트럭 이미지 데이터 세트(아마도 수천 개 또는 수백 개)와 여러 번의 학습 Epoch를 사용하면 새 애플리케이션에 맞게 이전 모델을 최적화할 수 있습니다. 기본적으로 미세 조정은 새로운 데이터 세트의 분포와 일치하도록 모델의 매개변수를 업데이트합니다.
이것이 미세 조정의 기본 개념입니다. 학습된 ML 모델을 가져와 새로운 데이터를 사용하여 새 설정에 맞게 매개변수를 업데이트하거나 새 애플리케이션에 맞게 용도를 변경합니다.
동일한 규칙이 언어 모델에도 적용됩니다. 모델을 학습하는 데 사용된 데이터의 분포가 애플리케이션과 크게 다른 경우 미세 조정을 고려하는 것이 좋습니다. 예를 들어, 의료 애플리케이션에 LLM을 사용하고 있지만 학습 데이터에 의료 문헌이 포함되어 있지 않은 경우 이러한 현상이 발생할 수 있습니다. 그러나 LLM 미세 조정에는 살펴볼 가치가 있는 고유한 뉘앙스가 있습니다.
새로운 데이터에 대해 미세 조정된 ML 모델은 다운스트림 작업을 개선할 수 있습니다.
다양한 LLM 미세 조정 기술
모든 형태의 미세 조정이 동일하지는 않으며 각각 다른 애플리케이션에 유용합니다. 경우에 따라 다른 애플리케이션에 맞게 모델의 용도를 변경해야 합니다. 예를 들어, 텍스트를 생성할 수 있는 사전 학습된 LLM이 있습니다. 이제 감정 또는 주제 분류와 같은 다른 유형의 애플리케이션에 사용하려고 합니다. 이 경우 미세 조정하기 전에 아키텍처를 약간 변경하여 모델의 용도를 변경합니다.
자연어 처리를 위한 트랜스포머는 LLM의 기반이 되는 기술에 대한 훌륭한 소개입니다.
이 애플리케이션의 경우 모델의 트랜스포머 부분에서 생성하는 임베딩만 사용합니다. 임베딩은 입력 프롬프트의 다양한 특징을 캡처하는 숫자 벡터입니다. 일부 언어 모델은 직접 임베딩을 생성합니다. GPT 제품군의 LLM과 같은 다른 모델은 임베딩을 사용하여 토큰(또는 텍스트)을 생성합니다.
용도 변경 시 모델의 임베딩 계층을 임베딩을 클래스 확률에 매핑하는 분류기 모델(예: 완전히 연결된 계층 세트)에 연결합니다. 이 설정에서는 모델에서 생성된 임베딩에 대해 분류기를 학습시키기만 하면 됩니다. LLM의 어텐션 계층은 고정되어 업데이트할 필요가 없으므로 컴퓨팅 비용을 크게 절감할 수 있습니다. 그러나 분류기를 학습시키려면 텍스트 예제와 해당 클래스로 구성된 지도 학습 데이터 세트가 필요합니다. 미세 조정 데이터 세트의 크기는 작업의 복잡성과 분류기 구성 요소에 따라 달라집니다.
그러나 경우에 따라 트랜스포머 모델의 매개변수 가중치를 업데이트해야 합니다. 이를 위해서는 어텐션 계층을 고정 해제하고 전체 모델에 대해 전체 미세 조정을 수행해야 합니다. 이 작업은 모델의 크기에 따라 계산 비용이 많이 들고 복잡할 수 있습니다. (경우에 따라 모델의 일부를 고정하여 미세 조정 비용을 줄일 수 있습니다. 그리고 LLM 미세 조정 비용을 줄일 수 있는 몇 가지 기술이 있습니다. 이에 대해서는 나중에 자세히 설명하겠습니다.)
LLM 용도 변경 vs 전체 미세 조정
비지도 vs 지도 미세 조정(SFT)
경우에 따라 LLM의 지식을 업데이트하기만 하면 됩니다. 예를 들어, 의료 문헌이나 새로운 언어에 대해 모델을 미세 조정할 수 있습니다. 이러한 상황에서는 의학 저널에서 수집한 기사 및 과학 논문과 같은 비정형 데이터 세트를 사용할 수 있습니다. 목표는 새 도메인 또는 대상 애플리케이션에서 직면하게 될 입력 종류를 나타내는 데 충분한 토큰에 대해 모델을 학습시키는 것입니다.
랭체인을 사용한 생성형 AI는 가장 인기 있는 라이브러리 중 하나를 사용하여 LLM을 프로그래밍하는 방법에 대한 훌륭한 소개입니다.
비정형 데이터의 장점은 모델을 **비지도 또는 자체 지도 학습**을 통해 학습시킬 수 있기 때문에 확장 가능하다는 것입니다. 대부분의 기본 모델은 수천억 개의 토큰으로 구성된 비정형 데이터 세트에 대해 학습됩니다. 특히 사내 지식 기반과 문서가 있는 경우 새 도메인에 맞게 모델을 미세 조정하기 위한 비정형 데이터를 수집하는 것도 비교적 쉬울 수 있습니다.
그러나 경우에 따라 모델의 지식을 업데이트하는 것만으로는 충분하지 않고 LLM의 동작을 수정해야 합니다. 이러한 상황에서는 프롬프트와 해당 응답의 모음인 지도 미세 조정(SFT) 데이터 세트가 필요합니다. SFT 데이터 세트는 사용자가 직접 선별하거나 다른 LLM에서 생성할 수 있습니다. 지도 미세 조정은 특히 사용자 지침을 따르고 긴 텍스트에서 특정 작업을 유지하도록 설계된 ChatGPT와 같은 LLM에 중요합니다. 이러한 특정 유형의 미세 조정을 지침 미세 조정이라고도 합니다.
비지도 vs 지도 LLM 미세 조정
인간 피드백을 통한 강화 학습(RLHF)
일부 회사는 SFT 또는 지침 미세 조정을 한 단계 더 발전시켜 인간 피드백을 통한 강화 학습(RLHF)을 사용합니다. 이는 인간 검토자를 모집하고 LLM을 미세 조정하기 위한 보조 모델을 설정해야 하는 복잡하고 비용이 많이 드는 프로세스입니다. 이것이 바로 현재로서는 기술 및 재정 자원이 풍부한 회사와 AI 연구소만 RLHF를 감당할 수 있는 이유입니다.
RLHF를 수행하는 방법에는 여러 가지가 있지만 일반적인 아이디어는 다음과 같습니다. 수십억 개의 토큰에 대해 LLM을 학습시키면 서로 옆에 나타날 가능성이 가장 높은 토큰 시퀀스가 생성됩니다. 텍스트는 대부분 일관성이 있고 의미가 통합니다. 그러나 사용자 또는 애플리케이션에 필요한 것이 아닐 수 있습니다. RLHF는 LLM을 올바른 방향으로 이끌기 위해 인간을 루프에 도입합니다. 인간 검토자는 프롬프트에 대한 모델의 출력을 평가합니다. 이러한 등급은 높은 등급의 출력을 생성하도록 모델을 미세 조정하는 신호 역할을 합니다.
RLHF의 한 가지 인기 있는 예는 ChatGPT입니다. OpenAI는 InstructGPT 논문을 기반으로 모델을 미세 조정했습니다. 먼저 수동으로 생성된 프롬프트 및 응답 세트에서 SFT를 통해 GPT-3.5 모델을 미세 조정했습니다. 다음 단계에서는 인간 검토자를 모집하여 다양한 프롬프트에 대한 모델의 출력을 평가하도록 했습니다. 인간 피드백 데이터를 사용하여 인간의 선호도를 모방하려는 보상 모델을 학습시켰습니다. 마지막으로 LLM이 출력을 생성하고, 보상 모델이 출력을 평가하고, LLM이 보상을 극대화하는 방식으로 매개변수를 업데이트하는 심층 강화 학습(RL) 루프를 통해 언어 모델을 미세 조정했습니다.
ChatGPT 학습 프로세스(출처: OpenAI)
매개변수 효율적인 미세 조정(PEFT)
LLM 미세 조정 연구에서 흥미로운 분야는 모델의 매개변수를 업데이트하는 비용을 줄이는 것입니다. 이것이 바로 업데이트해야 하는 매개변수 수를 줄이려는 일련의 기술인 매개변수 효율적인 미세 조정(PEFT)의 목표입니다.
다양한 PEFT 기술이 있습니다. 그중 하나는 특히 오픈 소스 언어 모델 사이에서 인기를 끌고 있는 기술인 저랭크 적응(LoRA)입니다. LoRA의 기본 개념은 다운스트림 작업에서 기본 모델을 미세 조정할 때 모든 매개변수를 업데이트할 필요가 없다는 것입니다. 매우 높은 정확도로 다운스트림 작업의 공간을 나타낼 수 있는 저차원 행렬이 있습니다.
LoRA를 사용한 미세 조정은 주 LLM의 매개변수를 업데이트하는 대신 이 저랭크 행렬을 학습시킵니다. 그런 다음 LoRA 모델의 매개변수 가중치가 주 LLM에 통합되거나 추론 중에 추가됩니다. LoRA는 미세 조정 비용을 최대 98%까지 절감할 수 있습니다. 또한 런타임에 LLM에 연결할 수 있는 여러 개의 소규모 미세 조정 모델을 저장하는 데 도움이 됩니다.
저랭크 적응(LoRA)
LLM 미세 조정을 사용하지 말아야 할 때
경우에 따라 LLM 미세 조정이 불가능하거나 유용하지 않을 수 있습니다.
1- 일부 모델은 미세 조정 서비스가 없거나 제한적인 애플리케이션 프로그래밍 인터페이스(API)를 통해서만 사용할 수 있습니다.
2- 다운스트림 작업 또는 애플리케이션 도메인에 맞게 모델을 미세 조정할 만큼 충분한 데이터가 없을 수 있습니다.
3- 애플리케이션의 데이터가 자주 변경될 수 있습니다. 모델을 자주 미세 조정하는 것이 불가능하거나 해로울 수 있습니다. 예를 들어, 뉴스 관련 애플리케이션의 데이터는 매일 변경됩니다.
4- 애플리케이션이 동적이고 컨텍스트에 민감할 수 있습니다. 예를 들어, 각 사용자에 맞게 출력을 사용자 지정하는 챗봇을 만드는 경우 사용자 데이터에 대해 모델을 미세 조정할 수 없습니다.
이러한 경우 추론 시간 동안 모델에 컨텍스트를 제공하는 컨텍스트 내 학습 또는 검색 증강을 사용할 수 있습니다. 예를 들어, LLM이 기사 또는 이메일 작성을 지원하도록 하려면 프롬프트 앞에 관련 문서(뉴스 기사, Wikipedia 페이지, 회사 문서 등)를 추가하고 해당 콘텐츠에 대한 응답을 조건으로 지정합니다. 또 다른 예는 재무 데이터, 건강 데이터, 이메일 등과 같이 사용자별로 답변을 제공해야 하는 LLM입니다. 마찬가지로 사용자가 프롬프트를 입력하면 애플리케이션에서 데이터를 검색하여 프롬프트 앞에 추가하여 모델을 조건으로 지정합니다.
컨텍스트 문서로 LLM을 증강하는 워크플로우
유용한 디자인 패턴 중 하나는 회사 문서의 임베딩을 저장하는 벡터 데이터베이스를 만드는 것입니다. 사용자가 프롬프트를 입력하면 벡터 DB에서 관련 문서를 검색하여 모델에 컨텍스트로 보냅니다.
경우에 따라 애플리케이션별 데이터 세트에서 모델을 미세 조정한 다음 추론 중에 사용자별 컨텍스트를 제공하는 하이브리드 방식을 사용할 수 있습니다.
다양한 애플리케이션에서 LLM을 사용하는 데 대한 관심이 높아짐에 따라 가까운 미래에 더 흥미로운 미세 조정 기술과 대안 솔루션이 등장할 것으로 예상할 수 있습니다.