https://arxiv.org/pdf/2101.06804
Abstract:
- 이 논문은 GPT-3 의 성능이 주어진 예시들의 선택에 크게 의존한다는 점에 주목하고 있음.
- 기존에는 이러한 예시들을 무작위로 선택하는 경우가 많았지만, 저자들은 더 효과적인 예시 선택 전략이 있는지 조사해본 것.
- 죽 좋은 예시를 골라줘서 프롬프트에 포함시켜주는 방법을 다룬다.
- 좋은 테스트 샘플 그러니까 모델이 처리해야 할 입력과 의미적으로 유사한 예시들을 검색하여 프롬프트에 포함시키는 방법을 제안함.
- 이런 아이디어는 대규모 언어 모델에 검색(retrieval) 기능을 통합하여 모델의 성능을 향상시키는 연구들에서 영감을 받았다고 함:
- REALM (Retrieval-Augmented Language Model Pre-Training):
- 구글에서 제안한 방법으로, 언어 모델이 텍스트 생성 시 필요한 정보를 외부 지식 베이스에서 동적으로 검색하여 활용하는 방법
- RAG (Retrieval-Augmented Generation):
- 페이스북 AI 리서치에서 개발한 모델로, 생성 모델에 검색 기능을 결합하여 질문에 대한 답변을 생성할 때 관련 문서를 검색하는 방법
- kNN-LM (k-Nearest Neighbors Language Model):
- 언어 모델의 예측 시, 훈련 데이터에서 현재 컨텍스트와 유사한 사례들을 k-최근접 이웃 알고리즘으로 검색하여 이들을 이용해서 다음 단어를 예측하는 방법
- 이 방법은 kNN 검색으로 예시를 찾아 프롬프트에 추가하는 방식이 아니라, 어 모델의 예측 단계에서 kNN 검색을 활용하여 컨택스트를 보강하는 방법
- REALM (Retrieval-Augmented Language Model Pre-Training):
Introdcution:
- 기존의 NLP 모델들은 보다 나은 성능을 위해서 대량의 데이터를 사전 학습하고, 특정 작업과 데이터셋에 맞게 미세 조정(fine-tuning) 을 거치는 방식으로 활용되었음.
- 그러나 GPT-3는 다른 사전 학습된 언어 모델들과 달리, “인컨텍스트(in-context)” Few shot 방법을 사용
- 이는 몇 개의 예시만 제공하는 것으로 추가적인 미세 조정 없이도 보지 못한 새로운 예제에 일반화할 수 있다는 것을 의미.
- 예를 들어, 몇 개의 시연 예시만으로 이메일을 작성하거나 확장하고, 텍스트에서 엔티티를 추출하며, 자연어 지시로부터 코드를 생성하는 NLP 시스템을 만들 수 있는거임.
- 원래의 GPT-3 논문(Brown et al., 2020) 에서는 작업 관련 예시들을 훈련 세트에서 무작위로 샘플링해서 컨택스트를 구성했음.
- 근데 이렇게 선택한 예시에 따라서 GPT-3 의 성능이 크게 변동이 일어나는 것을 실험으로 관찰할 수 있었다고 함.
- 서로 다른 인컨텍스트 예시들로 인한 실험 결과의 분산이 상당할 수 있으며 예시에 굉장히 민감하다는 걸 알 수 있었음.
- 이 논문에서는 Few-shot 능력을 최대로 이끌어내도록 예시를 선택하는 방법을 다룸.
- 가장 일반적인 방법은 모든 예시를 검색하는 방법이지만 비효율적일거임. 여기서 발견한 방법은 임베딩 공간에서 테스트 샘플 (수행하려는 작업) 과 더 가까운 인컨텍스트 예시들이 일관되게 더 나은 성능 향상을 보여주었다는 거임. 상대적으로 먼 예시들에 비해서.
- 그러니까 주어진 테스트 샘플에 대해 k-최근접 이웃(k-NN) 검색을 해서 찾은 인컨텍스트 예시를 활용하는 것을 제안함.
- 이렇게 검색된 예시들은 테스트 샘플과 함께 GPT-3에 제공되어 최종 예측을 수행하는거임.
- 검색 기반의 인컨텍스트 예시를 사용하면, 무작위로 선택한 예시들에 비해 GPT-3의 Few shot 학습 능력을 훨씬 더 효과적으로 발휘한다고 함.
- 그리고 적은 수의 인컨텍스트 예시를 사용하더라도 성능 향상이 크게 일어났다고 함.
- 또한 검색 과정에서 사용된 문장 인코더 (Sentence Encoder) 의 선택이 매우 중요하다고 함:
- 다양한 사전 학습된 인코더들에 대한 광범위한 실험을 수행한 결과, 자연어 매칭 작업에 Fine-tuning 된 인코더가 질문 응답 작업에서 더 효과적인 인컨텍스트 예시 선택기로 작용함을 확인했음.
- 여기서 말하는 문장 인코더(sentence encoder) 는 문장이나 텍스트를 고정된 길이의 벡터 임베딩으로 변환하는 모델이나 알고리즘을 말함. 이러한 임베딩은 문장의 의미를 수치화하여, 문장 간의 유사도를 측정하거나 검색, 분류, 군집화 등의 다양한 자연어 처리 작업에서 활용됨.
- SentenceTransformer는 그 중 하나의 예임. BERT, RoBERTa와 같은 사전 학습된 언어 모델을 기반으로 문장 임베딩을 생성하는 모델
- 이 논문에서 검색하는 방법은 문장 인코더를 사용해서 텍스트를 임베딩 벡터로 변환한 후, k-NN(k-최근접 이웃) 알고리즘을 통해 테스트 샘플과 유사한 벡터 표현을 가지는 예시를 찾아내는 걸 말함.
- 또한 작업과 관련된 데이터셋으로 Fine-tuning 된 문장 인코더를 사용하면 성능이 더 향상된다고 함.
- 임베딩 벡터를 kNN 검색하는 방법으로는 Faiss 를 이용하면 된다고 함.
대략적인 Sentence Encoder 를 Fine-tuning 하는 방법:
- Fine-tuning 의 경우 작업에 따라서 예시가 달라진다:
- 감정 분석(Sentiment Analysis) 작업의 경우 예시 데이터 셋:
- 입력: “이 제품은 정말 훌륭해요! 품질이 뛰어나네요.”
- 레이블: 긍정
- 질문 응답(Question Answering) 작업의 경우 예시 데이터 셋:
- 입력: “대한민국의 수도는 어디인가요?”
- 레이블: “대한민국의 수도는 서울입니다.”
- 유사도 판단(Semantic Textual Similarity, STS) 작업의 경우 예시 데이터 셋:
- 입력: 문장 1 “고양이가 소파 위에서 잠들었다.”, 문장 2 “고양이가 의자 위에서 자고 있다.”
- 레이블: 4 (유사도 점수)
- 감정 분석(Sentiment Analysis) 작업의 경우 예시 데이터 셋:
GPT-3 for In-Context Learning:
- 인컨텍스트 학습에서, GPT-3 의 텍스트 생성 작업은 조건부 텍스트 생성 문제로 볼 수 있음.
- 구체적으로, 목표 출력 y 를 생성할 확률은 컨텍스트 C 와 입력 소스 x 에 따라 결정됨.
- 여기서 컨텍스트 C 는 k 개의 예시들을 포함합니다.
- 수학적 표현은 아래의 이미지와 같음.
- GPT-3 모델의 크기가 매우 크기 때문에, 작업별 샘플로 미세 조정(fine-tuning)을 하는 것은 계산 비용이 크다는 단점이 있음.
- 따라서, GPT-3는 주로 앞서 설명한 인컨텍스트 학습 방식을 이용하면 추가적인 미세 조정 없이도 몇 개의 예시만으로 작업을 수행할 수 있음.
- 무작위로 선택된 예시들은 일관되지 않은 성능을 가져올 수 있음.
- 테스트 입력과 의미적으로 유사한 예시들을 선택하면 성능이 향상 될 수 있다.
The Impact of In-Context Examples:
- 선택한 In-Context 예시와 테스트 샘플간의 거리가 GPT-3 성능에 어떤 영향을 미치는지를 다룸.
- 비교를 위해 두 가지 인컨텍스트 예시 선택 전략을 비교함:
- 가장 먼 10개의 훈련 인스턴스 사용: 각 테스트 예시에 대해, 임베딩 공간에서 가장 먼 훈련 인스턴스 10개를 선택하여 GPT-3에 제공
- 가장 가까운 10개의 이웃 사용: 각 테스트 예시에 대해, 임베딩 공간에서 가장 가까운 훈련 인스턴스 10개를 선택하여 GPT-3에 제공
- 임베딩 생성 및 거리 측정 방법:
- 사전 학습된 RoBERTa-large 모델의 [CLS] 토큰 임베딩을 문장 표현으로 사용
- 유클리드 거리를 사용하여 두 문장 간의 거리를 측정했음.
- 유클리드 거리 방법 보다는 코사인 유사도가 더 낫지 않나?
- 언어 모델에서 생성된 임베딩은 종종 벡터의 크기보다 방향이 더 중요한 의미를 가지니까.
- BERT나 RoBERTa의 임베딩은 벡터의 노름이 다양할 수 있지만, 의미적 유사성은 벡터의 방향에 더 많이 반영이 된다고 함.
- 그리고 유클리드 거리는 고차원 공간에서 거리의 의미가 희석되는 문제가 발생할 수 있음. (차원의 저주)
- 개인적으로는 유클리드 거리 보다는 코사인 유사도가 더 적합하다고 생각함.
- 결과 해석:
- 가장 가까운 이웃들을 인컨텍스트 예시로 사용할 때, 가장 먼 예시들을 사용할 때보다 훨씬 나은 결과를 얻었음.
- 이는 테스트 샘플과 의미적으로 유사한 예시들을 선택하는 것이 GPT-3의 성능 향상에 도움이 됨.
kNN-augmented In-Context Example Selection:
- KATE 전략 소개: KATE 는 인컨텍스트 학습을 위한 좋은 예시를 선택하고, 이를 Prompt 에 보강하는 방법임.
- 이 방법 상세 설명:
- 문장 인코더 사용:
- 훈련 세트와 테스트 세트의 소스 문장들을 벡터 표현으로 변환하기 위해 특정 문장 인코더를 사용함.
- 온라인 예측 시에는 훈련 세트는 미리 변환해두고, 각 테스트 소스는 실시간으로 인코딩함.
- k-최근접 이웃 검색:
- 각 테스트 소스 x 에 대해, 훈련 세트에서 가장 가까운 k 개의 이웃 x_1, x_2, …, x_k 를 검색함.
- 이는 문장 인코더의 임베딩 공간에서의 거리에 따라 결정됨.
- 유사도 측정 함수 d (예: 코사인 유사도)를 사용하여 이웃들을 정렬하며, i < j 일 때 d(x_i, x) \leq d(x_j, x) 가 되도록 한다.
- 컨텍스트 구성:
- 검색된 k 개의 소스와 그에 대응하는 타깃들을 연결하여 컨텍스트 C = {x_1, y_1, x_2, y_2, …, x_k, y_k} 를 만듬.
- 이 컨텍스트 C 를 테스트 입력과 함께 GPT-3 에 제공
- 이 과정은 아래의 알고리즘 1에 제시되어 있음.
- 문장 인코더 사용:
Kate 전략 프로세스:
- 무작위 샘플링(회색 점) 은 테스트 샘플과의 유사성을 고려하지 않으므로, 모델의 성능 변동이 크고 일관되지 않을 수 있음.
- KATE 전략(빨간색 점) 은 테스트 샘플과 의미적으로 유사한 예시들을 선택하여, 모델의 성능을 향상시키고 안정적으로 만듬.
- 흰색 점(White dots): 사용되지 않은 훈련 샘플들으로 인컨텍스트 예시로 선택되지 않은 나머지 샘플들을 나타내며, 잠재적인 예시가 될 수 있는거임.
Kate 전략 알고리즘:
문장 인코더의 두 가지 범주:
- 일반적으로 사전 학습된 문장 인코더:
- 사전 학습된 BERT, RoBERTa, XLNet 모델
- 대량의 비지도 학습 데이터를 기반으로 학습되었으며, 다양한 자연어 처리 작업에서 우수한 성능을 보임
- 이 임베딩은 원래 문장의 풍부한 의미 정보를 포함한다고 함.
- 특정 작업이나 데이터셋에 미세 조정된 문장 인코더:
- STS(문장 유사도) 벤치마크 데이터셋으로 학습된 문장 인코더는 일반적인 사전 학습된 인코더보다 다양한 질문 간의 유사성을 더 잘 평가할 수 있다고 함.
- Reimers와 Gurevych(2019, 2020) 는 이러한 미세 조정된 인코더들이 문장 군집화, 패러프레이즈 마이닝, 정보 검색 등의 작업에서 뛰어난 성능을 보인다고 함.
전체적인 실험 설정:
- kNN 인컨텍스트 예시 선택 방법을 세 가지 작업에 적용해서 실험을 해봄:
- 감정 분류(Sentiment Classification)
- 테이블-텍스트 생성(Table-to-Text Generation)
- 질문 응답(Question Answering, QA)
- 검색을 위한 문장 임베딩 설정:
- 의미적으로 유사한 훈련 인스턴스들을 검색하기 위해 두 가지 유형의 문장 임베딩을 사용
- a) 사전 학습된 RoBERTa-large 모델 (Liu et al., 2019)
- 이 모델은 별도의 미세 조정 없이 원본 사전 학습 모델을 사용
- KATEroberta 로 약칭
- b) 추가 데이터셋으로 미세 조정된 RoBERTa-large 모델
- i) SNLI (자연어 추론 작업과 관련된 데이터 셋) 와 MultiNLI (SNLI 의 확장판) 데이터셋으로 미세 조정된 모델 (KATEnli)
- ii) 먼저 SNLI와 MultiNLI로 미세 조정한 후, STS-B 데이터셋 (문장 간의 유사도를 판단하는 데이터셋) 으로 추가 미세 조정한 모델 (KATEnli+sts-b)
- iii) SST-2 데이터 셋 (감정 분석 데이터 셋) 으로 파인 튜닝된 모델 (KATE sst-2)
- 거리 측정 방법:
- KATEroberta의 경우 유클리드 거리를 사용
- KATEnli와 KATEnli+sts-b의 경우 코사인 유사도를 사용
- KATE 방법의 성능을 평가하기 위해, 두 가지 기준선(baseline) 방법을 설정:
- 무작위 샘플링(Random Sampling):
- 각 테스트 문장에 대해, 훈련 세트에서 인컨텍스트 예시들을 무작위로 선택하는 방법
- k-최근접 이웃(k-Nearest Neighbor, kNN):
- kNN 검색만을 이용해서 예측을 하는 방법
- 검색된 예시를 보고 다수결 같은 걸 통해서 예측을 내리는 방법으로, GPT-3 의 언어 모델을 사용하지 않는 방법을 말함.
- 이 방법을 추가한 이유는 검색만으로도 성능을 내는지 보기 위함임.
- KATE 방법은 좋은 예시 검색 + GPT-3 조합으로 결과를 내는 방법이라면 이런 kNNroberta 방법은 그냥 예시 검색만으로 예측을 하도록 한 것.
- 무작위 샘플링(Random Sampling):
실험 결과 및 관찰:
- KATE는 일관되게 무작위 선택 기준선(random selection baseline) 보다 더 나은 성능을 보여줬다고 함.
- KATE 방법은 동일한 검색된 인컨텍스트 예시 세트를 사용하기 때문에, 얻어진 결과에 분산이 없었다고 함.
- 사전 학습된 문장 인코더를 NLI 또는 NLI+STS-B 데이터셋으로 미세 조정했을 때, 성능이 약간 감소했다고 함:
- 이는 IMDB 데이터셋(영화 리뷰 감정 분석)과 NLI+STS-B 데이터셋(자연어 추론 및 문장 유사도)의 목표가 다르기 떄문이라고 함.
- 즉 유사하지 않은 작업으로 미세 조정하면 KATE의 성능에 부정적 영향을 준다고 함.
- 또 KATEnli+sts-b는 KATEnli보다 더 나쁜 성능을 보였다고 함. 문장 인코더가 STS-B 데이터셋으로 추가 파인 튜닝 되었기 때문.
- 반면에 유사한 작업으로 미세 조정하면 KATE의 성능을 향상시킬 수 있음을 얻엇다고 함
- KATEroberta와 kNNroberta 의 성능을 비교한 결과 KATEroberta 가 훨씬 나앗다고 함. 즉 성능 향상이 검색 단계 때문이 아니라 검색과 GPT-3 의 조합 떄문이었음.
- 이러한 결과는 GPT-3 모델이 최종 결과에 중요하며, 검색 모듈은 GPT-3의 몇 샷 학습 능력을 보완한다는 것을 나타냄
인컨텍스트 예시의 수(Number of In-context Examples):
- 인컨텍스트 예시의 수가 성능에 어떤 영향을 미치는지 조사해봤다고 함.
- NQ(Natural Questions) 데이터셋에서 인컨텍스트 예시의 수를 5, 10, 20, 35, 64로 설정하여 조사해봤고, KATEnli+sts-b를 사용하여, 무작위 기준선(random baseline) 및 KATEroberta와 다양한 설정에서 비교해봤다고 함.
- 비교 결과는 아래 이미지.
- KATE와 무작위 기준선 모두 인컨텍스트 예시의 수가 증가함에 따라 성능이 향상되었음.
- KATE는 인컨텍스트 예시의 수가 5개로 적을 때도 무작위 선택 방법보다 일관되게 우수한 성능을 보였음.
- 성능이 5개 보다는 10개, 10개 보다는 20개가 더 뛰어났음. 그렇지만 20개보다 30개는 그렇게 큰 차이가 나지 않음.
검색을 위한 훈련 세트의 크기(Size of Training Set for Retrieval):
- 훈련 세트의 크기가 KATE 방법에 어떤 영향을 미치는지 조사해봤다고 함.
- NQ 데이터셋에서 원래의 훈련 세트로부터 1,000개, 2,000개, 5,000개, 10,000개, 30,000개, 70,000개의 크기를 가진 새로운 하위 집합(subset)을 만들었음.
- 최근접 이웃의 수(k) 는 64개로 설정.
- 결과는 아래 이미지에 있음.
- KATEroberta와 KATEnli+sts-b 모두 검색을 위한 훈련 세트의 크기가 증가함에 따라 EM(Exact Match) 점수가 상승했음.
- 반면에, 무작위 샘플링 기준선의 결과는 크게 변하지 않음
- 훈련 세트의 크기가 커질수록, KATE가 관련성 높은 인컨텍스트 예시들을 검색할 가능성이 높아짐.
- 이는 GPT-3가 질문에 올바르게 답변할 수 있도록 돕는다.
인컨텍스트 예시의 순서(Order of In-context Examples):
- 인컨텍스트 예시의 순서가 KATE의 결과에 어떤 영향을 미치는지 탐구
- 테스트 샘플과의 거리가 가까운 순서대로 예시들은 정렬되어서 배치되어 있을 거임.
- NQ(Natural Questions) 데이터셋에서 제안된 KATEnli+sts-b 방법을 사용하여, 인컨텍스트 예시의 순서를 임의로 변경하여 실험을 해봤음.
- 3가지 다른 순서에 대해 실험을 진행, 추가로 역순(reverse order) 도 실험을 진행
- 결과는 다음 이미지에 보여줌.
- 특정 NQ 데이터셋에서는 역순(reverse order) 이 가장 좋은 성능을 보여줬음. 가장 유사한 문장들을 테스트 예제에 가까운 위치에 배치하면, GPT-3가 해당 정보를 더 잘 활용할 수 있을것으로 추정.
- 그러나 WQ(Web Questions) 데이터셋에서도 실험을 수행한 결과, 기본 순서(default order) 가 역순보다 약간 더 좋은 성능을 보여젔다고 함.
- 예시의 순서는 성능에 큰 영향을 미치지는 않는다고 함.
- 실제 응용에서는 예시의 순서보다는 예시 자체의 선택이 더 중요할 것으로 봄.
Conclusion:
- KATE 작동 원리에 대해 이해헀음.
- 제안된 KATE 방법은 무작위 샘플링 기준선보다 GPT-3의 성능을 크게 향상시킴
- 작업 관련 데이터셋으로 문장 임베딩을 미세 조정하면, 검색 성능이 더욱 향상된다는 걸 알았음. 이는 미세 조정된 문장 인코더가 테스트 샘플과 인컨텍스트 예시 간의 유사성을 더 정확하게 측정할 수 있으니.
- 반대로 관련없는 작업을 문장 인코더에 파인 튜닝하면 성능이 떨어지는 것도 알았음.
- 인컨텍스트 예시의 수, 예시의 순서, 더 많고 풍부한 훈련 데이터 등과 같은 요소들이 성능에 미치는 영향을 알았음.
- 최종적으로 GPT-3의 동작을 더 잘 이해하게 되었을 거임.
'Generative AI > Prompt Engineering' 카테고리의 다른 글
A Survey on In-context Learning (0) | 2024.09.30 |
---|---|
Fantastically Ordered Prompts and Where to Find Them:Overcoming Few-Shot Prompt Order Sensitivity (0) | 2024.09.30 |
Self-Consistency improves Chain-of Thought Reasoning in Language Models (0) | 2024.09.29 |
Least-to-Most Prompting enables complex reasoning in LLM (0) | 2024.09.29 |
Automatic Chain of Thought Prompting In LLM (0) | 2024.09.28 |