본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
In-context learning, ICL; 인컨텍스트 러닝, 문맥 내 학습
언어 모델이 가중치를 바꾸지 않고, 프롬프트에 넣은 지시나 예시만 보고 새 작업을 수행하는 능력

인컨텍스트 러닝(in-context learning, ICL)은 대형 언어 모델이 매개변수를 갱신하는 학습 없이, 입력 문맥(프롬프트)에 담긴 설명과 예시를 보고 그 자리에서 작업 방식을 파악해 수행하는 현상이다. 예를 들어 프롬프트에 "사과 → apple, 바다 → sea, 하늘 →"이라고 쓰면 모델은 번역 작업임을 알아채고 "sky"를 이어 쓴다. 모델 입장에서는 다음 토큰을 예측했을 뿐이지만, 사용자 입장에서는 예시 몇 개로 새 작업을 가르친 셈이다.

2020년 OpenAI의 GPT-3 논문 〈Language Models are Few-Shot Learners〉가 이 현상을 체계적으로 보였다. 논문은 언어 모델을 키우면 작업별 미세조정 없이도 프롬프트의 예시만으로 성능이 크게 오르며, 일부 작업에서는 미세조정한 기존 최고 모델에 근접한다고 보고했다.[1] 논문은 예시 수에 따라 세 설정을 구분했다.

설정 프롬프트 내용 예
제로샷(zero-shot) 작업 설명만 "다음 문장을 영어로 번역하라: 하늘"
원샷(one-shot) 작업 설명 + 예시 1개 "사과 → apple / 하늘 →"
퓨샷(few-shot) 작업 설명 + 예시 여러 개(보통 10~100개, 문맥 길이 한도 안) "사과 → apple / 바다 → sea / 산 → mountain / 하늘 →"

모델이 클수록 예시를 늘렸을 때 성능이 더 많이 올랐다. 이 결과로 "모델 하나를 크게 만들어 두고 프롬프트로 작업을 바꾸는" 사용 방식이 퍼졌고, 프롬프트 설계 기술인 프롬프트 엔지니어링이 생겨났다.

같은 "제로샷·원샷·퓨샷"이라는 말이 기존 머신러닝에서는 적은 표본으로 모델을 학습시키는 방법을 가리킨다. 퓨샷 러닝, 원샷 러닝, 제로샷 러닝 문서가 다루는 메타 러닝·거리 학습 계열은 가중치를 학습하지만, 인컨텍스트 러닝은 가중치를 전혀 바꾸지 않는다는 점이 다르다.

미세조정과의 비교

편집 원본 편집
구분 인컨텍스트 러닝 미세조정
가중치 변경 없음 있음
필요한 데이터 예시 수 개~수백 개 보통 수백~수만 개
작업 전환 프롬프트만 바꾸면 즉시 작업마다 별도 학습
비용 요청마다 예시 토큰만큼 입력 비용과 지연이 늘어남 학습 비용이 들지만 추론 시 프롬프트가 짧음
한계 컨텍스트 윈도우 크기, 예시 순서·형식에 민감 학습 데이터 준비, 과적합, 기존 능력 손실 우려

작동 원리에 대한 가설

편집 원본 편집

왜 다음 토큰 예측만 학습한 모델이 예시에서 작업을 배우는지는 완전히 밝혀지지 않았다. 대표적인 설명은 다음과 같다.

  • 암묵적 베이즈 추론: 사전 학습 문서에는 주제나 형식 같은 잠재 개념이 일관되게 이어진다. 모델은 이를 맞히도록 학습되므로, 프롬프트 예시들이 공유하는 잠재 개념을 추론해 그에 맞게 이어 쓴다는 설명이다.[2]
  • 유도 헤드: 앤트로픽 연구진은 "[A][B] … [A]" 다음에 [B]를 내는 단순한 복사 회로인 유도 헤드(induction head)가 학습 중 형성되는 시점과 인컨텍스트 러닝 능력이 급격히 느는 시점이 일치한다는 증거를 제시하고, 이것이 인컨텍스트 러닝의 주된 기제일 수 있다고 주장했다.[3]
  • 암묵적 경사 하강: 선형 회귀 같은 단순 과제에서 셀프 어텐션 층 하나가 경사 하강법 한 단계와 같은 변환을 구현할 수 있으며, 학습된 트랜스포머가 실제로 비슷하게 동작한다는 연구가 있다. 이에 따르면 순전파 안에서 작은 학습이 일어나는 셈이다.[4]

한편 예시의 정답 레이블을 무작위로 바꿔도 분류 성능이 거의 떨어지지 않는다는 실험도 있다. 모델이 예시에서 입력-정답 대응을 새로 배운다기보다, 입력의 분포, 레이블 후보, 출력 형식 같은 정보를 얻는다는 해석이다.[5]

  • 예시의 순서, 형식, 고르는 방법에 따라 결과가 크게 흔들린다.
  • 예시가 많을수록 입력이 길어져 비용과 지연이 늘고, 문맥 길이 한도에 걸린다. 문맥 창이 수십만 토큰으로 커진 뒤에도 긴 입력 속 수많은 예시를 제대로 활용하지 못한다는 평가가 있다.[6]
  • 프롬프트에 섞인 악의적 지시도 같은 방식으로 따르게 되어 프롬프트 인젝션의 원인이 된다.

예시에 중간 풀이 과정까지 넣는 방법은 연쇄적 사고 프롬프팅 문서에서 다룬다.

  1. ↑ T. Brown 외, 〈Language Models are Few-Shot Learners〉, NeurIPS, 2020. arXiv:2005.14165
  2. ↑ S. M. Xie, A. Raghunathan, P. Liang, T. Ma, 〈An Explanation of In-context Learning as Implicit Bayesian Inference〉, ICLR, 2022. arXiv:2111.02080
  3. ↑ C. Olsson 외, 〈In-context Learning and Induction Heads〉, 2022. arXiv:2209.11895
  4. ↑ J. von Oswald 외, 〈Transformers learn in-context by gradient descent〉, ICML, 2023. arXiv:2212.07677
  5. ↑ S. Min 외, 〈Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?〉, EMNLP, 2022. arXiv:2202.12837
  6. ↑ T. Li 외, 〈Long-context LLMs Struggle with Long In-context Learning〉, 2024. arXiv:2404.02060