Prompt Technique - Ensembling

김혁준·2025년 2월 13일

prompt-engineering

목록 보기
10/12

Ensembling이란?

  • 하나의 프롬프트와 LLM만을 이용해서 응답을 만드는 것이 아니라 여러 개의 프롬프트로 응답을 얻은 후 이를 결합해서 최종 응답을 만드는 기법
  • In-Context Learning의 문제점은 예시 문제(기여도 측정, Context Window 한계)를 해결하기 위한 기법
  • 단순히 예시를 연결하는 대신에 주어진 예시들을 여러 버킷으로 나눠서 각 프롬프트를 만들고 이 결과를 집계해서 최종 응답을 만드는 방식
  • Few-shot으로 구성하는 것보다 성능이 향상됨
  • 이 기법을 이해하기 위해서는 두 가지가 중요하다
    --> 분할 방법 : 예시들을 어떻게 버킷으로 나눌 것인지
    --> 앙상블 방법 : 각 버킷에서 얻은 응답을 어떻게 합칠 것인지

버킷 할당

  • N개의 예시를 b 개의 버킷으로 균등하게 할당하는 것
  • 유사성 기반 버킷 할당 전략 : K-Means 알고리즘을 바탕으로 유사한 예시들을 묶는다
  • 다양성 기반 버킷 할당 전략 : 유사한 예시들이 묶인 클러스터로부터 하나씩 뽑아서 버킷을 구성

앙상블링 방법

  • 각 버킷의 예측 확률, 버킷의 중요도 가중치, 앙상블링 방법을 합쳐서 결정

  • 버킷의 예측 확률 : 버킷이 담긴 프롬프트를 언어 모델에게 입력으로 주었을 때 라벨이 예측될 확률

  • 버킷의 중요도 가중치 : 각 버킷이 최종 예측에 기여하는 정도를 나타냄

  • 앙상블링 방법 : 다양한 예측을 집계해서 최종 예측을 선택하는 방법

  • Max Ensembling : 각 버킷에 대해 가중치가 적용된 예측 확률을 계산하고 그 중 가장 높은 값을 선택하는 방식

  • 단순히 예시를 연결해서 사용하는 Few-shot 보다 높은 성능을 달성

  • 버킷의 수는 Hyperparameter로 적절한 버킷 수가 중요

  • 버킷 수에 따라서 버킷 할당 전략의 성능 우위가 달라진다

Mixture of Reasoning Experts

  • 질문 답변 시스템의 성능을 향상시키기 위해서 나온 기법
  • 하나의 프롬프트로 모든 질문을 답변하기 어렵다는 한계를 극복하기 위해 나온 기법
  • 여러개의 전문화된 프롬프트를 만들고 이를 이용해서 질문을 처리하는 기법
  • 앙상블 방법으로 랜덤 포레스트 분류기를 사용
  • 랜덤 포레스트 대신 Few-shot+LLM을 이용한 분류기도 사용 가능
  • 각 모델의 답변을 만드는 선택적 예측 시스템임
    --> 모델이 답변을 할 때 정답을 확신하지 못하는 경우 기권을 하는 시스템
    --> 이 시스템은 모델이 주어진 질문에 대한 예측을 만들고 점수를 부여하는데, 이 점수가 설정한 임계값보다 낮을 경우 기권함
  • MoRE 기법은 해당 전문 분야에서는 특화 프롬프트보다 약간 낮지만 다양한 분야에서 뛰어난 성능을 보임
  • 향후 특화된 프롬프트 대신 유형별 파인튜닝된 모델을 사용할 수 있음

Self-Consistency

  • 기존 CoT는 그리디 디코딩으로 한번에 하나의 추론 경로만 생성됨
  • 반면 이 기법은 여러가지 다양한 추론 경로를 생성한 뒤 가장 일관된 답을 선택하는 기법임
  • 답변의 정확도를 높임.
  • 샘플링(Sampling)과 마지널라이즈(Marginalize)로 구현됨
    --> 샘플링 : 언어 모델이 하나의 최적 경로가 아닌 여러 다양한 경로로 텍스트를 생성하는 과정
    ---> 샘플링 방법 - Temperature : 온도 파라미터를 조절하는 기법
    ---> 샘플링 방법 - Top-K : 모델이 다음 단어를 예측할 때 상위 K개의 후보 단어만 고려하도록 하는 기법
    ---> 샘플링 방법 - Nucleus : 모델이 누적 확률 P까지만 상위 단어를 선정해서 고르는 기법
    --> 마지널라이즈 : 여러 추론 경로가 생성된 후 가장 일관되게 나온 답변을 선택하는 것
  • 여러번의 샘플링 후 마지널라이즈를 통해 답변의 정확도를 높임
  • CoT 프롬프팅 뿐만 아니라 다른 프롬프팅과도 연계해서 사용하기 좋음
  • 여러번의 추론 경로를 생성해봐야하기 때문에 계산 비용이 증가됨
  • 소수의 올바른 추론 경로를 반영하지는 못함

Universal Self-Consistency

  • Self-Consistency의 정답 추출 문제를 극복하기 위해 나온 기법
  • USC는 답변 형식이 서로 다른 경우에도 적용할 수 있다
  • 여러 후보 응답이 주어지면 USC는 LLM을 호출하여 가장 일관성 있는 응답을 선택한다
  • USC는 SC와 달리 개방형 텍스트 생성 작업에서도 사용이 가능
  • SC와 유사한 성능을 보임
  • USC는 모든 답변을 하나의 프롬프트에 넣어서 답변을 선택하는 방식이므로 샘플 수가 많아지만 장문에서 성능이 저하될 수 있다
  • 응답 선택 지시문에 작업별로 약간의 조정만 하면 성능을 더 향상 시킬 수 있다

Diverse Verifier on Reasoning Step

  • 언어 모델의 추론 능력을 향상시키기 위한 기법
  • 프롬프트 자체를 다양화하여 여러 가지 추론 경로를 탐색
  • 다양하게 생성된 추론은 훈련된 Verifier에 의해서 평가되고 선택된다
  • DIVERSE 기법은 두 가지 구성 요소로 이뤄짐
    --> Diverse Prompt : 다양한 추론 경로를 이끌어내기 위한 다양한 프롬프트 집합
    --> Verifier : 여러 추론 경로들에서 더 나은 최종 답변을 선택하기 위한 검증기
    ---> Verifier를 학습시키는 훈련 데이터는 CoT프롬프트로 생성된 추론 경로를 사용
    ---> Verifier는 질문과 후보 추론 경로를 입력으로 받아, 해당 추론 경로가 올바른 답변으로 이어질 확률을 예측함
    ---> 가중 투표 방식으로 SC의 한계점인 소수의 올바른 추론 경로를 반영하지 못한다는 문제점도 극복 가능
    ---> 더 개선된 Verifier는 정답만을 고려하지 않고 추론 단계 또한 고려함
  • 다양한 프롬프트를 사용해서 추론해보고 가장 좋아보이는 답변을 선택하는 기법임\
  • Self-Consistency 보다 높은 성능을 달성
  • 실전에 적용하기에는 약간의 어려움이 있다.

0개의 댓글