Abstract:
- In-Context Learning 에 적절한 예제들을 사용하도록 만듬으로써 성능을 높이는 방법을 제안함. 이 방법을 위해서 저자들은 vote-k라는 비지도 학습 기반의 그래프 방법을 제안한다.
- vote-k 는 두 단계 프레임워크로 구성되어 있음:
- 선택적 어노테이션(Selective Annotation): 사전에 비라벨링된 데이터에서 어노테이션할 예제들을 전략적으로 선택함. 선택의 기준은 랜덤이 아니라 데이터의 다양성과 대표성을 고려해서 이뤄진다.
- 프롬프트 검색(Prompt Retrieval): 테스트 시점에 어노테이션된 풀에서 작업 예제를 검색하여 사용함.
- 10개의 데이터셋(분류, 상식 추론, 대화, 텍스트/코드 생성 등 다양한 작업 포함)에 대한 광범위한 실험 결과, 이 선택적 어노테이션 방법이 작업 성능을 크게 향상시켰다고 함.
- vote-k 방법은 어노테이션 비용을 비슷한 성능을 위해 필요한 어노테이션 수를 10배에서 100배까지 줄였고, 무작위 에제 선택보다 12.9%와 11.4%의 성능 향상을 이뤘다고 함.
Introduction:
- 맥락 내 학습은 원래 몇 개의 예시로 학습하는 Few-shot Learning을 목표로 했지만, 최근 연구에 따르면 큰 규모의 어노테이션된 예제들로부터 프롬프트를 검색하여 사용하는 것이 성능 향상에 필요하다고 함.
- 각 테스트 입력에 대해 유사한 예제들을 찾아서 프롬프트로 사용하는 것이 성능 향상에 도움이 되지만, 이는 많은 수의 어노테이션된 예제를 필요로 하며, 결과적으로 어노테이션 비용이 증가하는 문제가 있다고 함.
- 이 논문에서는 이러한 문제를 해결하기 위해 어노테이션 효율성을 향상시키는 두 단계의 프레임워크를 제안함.
- 선택적 어노테이션(Selective Annotation): 테스트 전에 전략적으로 소수의 예제들을 선택하여 어노테이션하는 것. 이는 대표적이고 다양한 예제들을 선별하여 전체 어노테이션 비용을 줄이려는 목적임.
- 프롬프트 검색(Prompt Retrieval): 어노테이션된 데이터로부터 각 테스트 입력에 가장 적합한 예제들을 검색하여 프롬프트로 사용하는 것. 이는 언어 모델의 입력 길이에 따라 포함될 수 있는 예제의 수가 제한된다.
- Vote-k 알고리즘: Vote-k는 다양하고 대표성 있는 예제들을 선택하여 어노테이션함으로써, 맥락 내 학습의 성능을 향상키는 것이 목적임.
맥락 내 학습을 위한 선택적 어노테이션:
- 선택적 어노테이션은 테스트 전에 어노테이션할 예제들을 선택하는 과정으로, 총 어노테이션 예산을 결정함. 기존의 맥락 내 학습 연구에서는 이 과정이 대부분 무시되어 왔었음.
- 여기서는 소수의 다양하고 대표적인 예제들을 선택함으로써, 어노테이션 비용을 크게 줄이면서도 다운스트림 성능을 유지하는 방법을 소개
- Vote-k 방법:
- 선택적 어노테이션의 목표는 다양하고 대표성 있는 예제들을 선택하는 것.
- 대표성(Representativeness): 대표성은 선택된 어노테이션된 예제들이 전체 데이터 분포를 잘 반영하여, 다수의 테스트 인스턴스들이 유사한 예제를 프롬프트로 활용할 수 있도록 하는 것을 의미.
- 다양성(Diversity): 다양성은 선택된 어노테이션된 예제들이 서로 다른 특성과 정보를 가지고 있어, 모델이 다양한 패턴과 예외적인 경우를 학습할 수 있도록 하는 것을 의미함.
- Vote-k 알고리즘 단계:
- (1) 데이터 임베딩 생성:
- 비라벨링된 데이터 수집: 어노테이션되지 않은 원시 데이터를 준비함.
- 텍스트 임베딩 계산:
- 각 데이터 샘플에 대해 Sentence-BERT와 같은 사전 학습된 언어 모델을 사용하여 임베딩 벡터를 생성한다.
- 임베딩 벡터는 각 샘플의 의미를 수치화한 벡터로, 이후 샘플 간의 유사도를 계산하는 데 사용됨.
- (2) k-최근접 그래프 생성:
- 그래프 구축:
- 각 샘플을 노드로 하고, 유사도가 높은 k개의 이웃 노드와 연결하여 그래프를 만듬.
- 유사도는 임베딩 벡터들 간의 코사인 유사도를 사용하여 계산한다.
- k-최근접 이웃 연결:
- 각 노드는 자신과 가장 유사한 k개의 다른 노드들과 연결된다.
- 이를 통해 데이터 샘플 간의 유사성 관계를 그래프로 표현됨.
- 유사한 노드는 연결되어 있을거임.
- 그래프 구축:
- (3) 초기 어노테이션 샘플 선택:
- 어노테이션된 샘플 집합 초기화:
- 어노테이션된 샘플들의 집합 L 을 빈 집합으로 시작한다.
- 노드 점수 계산:
- 각 노드에 대해 점수를 계산해서 높은 점수의 노드를 선택함.
- 이 점수는 해당 노드가 얼마나 많은 다른 노드들과 연결되어 있는지를 나타내서 계산된다.
- 노드가 연결이 많이 되어 있을 수록 점수가 높아질거임. 이는 대표성을 의미하기도 한다.
- 이미 선택된 노드와 많이 연결된 노드의 점수는 낮아지게 됨. 이는 다양성을 위한 선택임.
- 최고 점수 노드 선택:
- 점수가 가장 높은 노드를 선택하여 L 에 추가함.
- 이 과정을 전체 어노테이션 예산의 10% 에 해당하는 횟수만큼 반복한다.
- 어노테이션된 샘플 집합 초기화:
- (4) 모델 예측 및 추가 샘플 선택:
- 모델 예측 수행:
- 초기로 선택된 어노테이션 샘플 L 을 사용하여, 대형 언어 모델로 남은 샘플들에 대한 예측을 수행해봄.
- 이때 L 의 샘플들은 모델의 입력 프롬프트로 사용됨
- 신뢰도 점수 계산:
- 각 예측 결과에 대해 신뢰도 점수를 계산한다.
- 신뢰도 점수는 모델이 해당 샘플을 얼마나 자신 있게 예측하는지를 나타냄.
- 샘플 분할:
- 남은 샘플들을 신뢰도 점수에 따라 동일한 크기의 그룹으로 나눔.
- 예를 들어, 어노테이션 예산 M = 100 이라면, 남은 샘플들을 신뢰도 순으로 정렬한 후 100개의 그룹으로 나눔. 그리고 가장 신뢰도가 높은 M/10 개의 버킷은 제외함. 이는 모델이 이미 잘 예측하는 샘플들이니까.
- 신뢰도 점수가 다양한 샘플들을 그룹으로 나눠서 다양성을 확보하기 위함임.
- 신뢰도 점수 별로 그룹화한 것이 다양성을 주지 않을 수도 있음.
- 추가 어노테이션 샘플 선택:
- 가장 신뢰도가 높은 그룹들은 제외함. 이는 모델이 이미 잘 예측하는 샘플들이므로 추가 어노테이션의 필요성이 낮음.
- 나머지 그룹들에서 각 그룹마다 가장 대표적인 샘플을 하나씩 선택하여 L 에 추가한다. 나머지 9M/10 개의 버킷에서 각각 신뢰도 점수가 가장 높은 샘플을 선택하여 어노테이션함. (대표성을 위해서인듯)
- 이로써 최종 어노테이션된 샘플 집합 L 의 크기는 전체 예산 M 과 같아질거임.
- 모델 예측 수행:
- (1) 데이터 임베딩 생성:
- 알고리즘의 핵심 아이디어:
- 대표성 확보:
- 중심 노드 선택:
- 그래프에서 많은 다른 노드들과 연결된 노드는 데이터 분포의 중심에 위치할 거고 이러한 노드들을 우선적으로 선택하여, 전체 데이터의 대표성을 확보함.
- 각 버킷에서 신뢰도 점수가 가장 높은 샘플을 선택하여 어노테이션 함. 이건 각 버킷 내에서 신뢰도 점수가 가장 높은 샘플은 해당 신뢰도 범위에서 모델이 비교적 자신 있게 예측하는 대표적인 샘플일거임. 이렇게 함으로써, 모델이 자신 없어 하는 영역에서 대표적이고 중요한 샘플들을 어노테이션 하는 것.
- 중심 노드 선택:
- 다양성 확보:
- 중복 방지:
- 이미 선택된 노드와 유사한 노드의 점수를 낮춰, 동일한 유형의 샘플이 반복적으로 선택되는 것을 방지함.
- 신뢰도 기반 선택:
- 모델이 자신 있게 예측하지 못하는 샘플들을 추가로 어노테이션하여, 모델의 약점을 보완함.
- 다양한 샘플 포함:
- 신뢰도 점수가 다양한 샘플들을 어노테이션함으로써, 데이터의 여러 측면을 학습할 수 있음.
- 중복 방지:
- PROMPT RETRIEVAL:
- 주어진 질문과 애노테이션 한 예시에 대해 cosine similarity 를 기반으로 검색해서 사용함.
- 대표성 확보: