# In-Context Learning(ICL)
인 컨텍스트 러닝은 모델을 재훈련시키는 방법 대신 “프롬프트에 포함된 예시”를 참고하게 하여 작업을 수행하는 방식입니다.
자주 사용되는 예가 있는데요. 리뷰가 긍정적인지 부정적인지 판단하는 작업을 한다고 해보겠습니다. 만약 파인 튜닝을 한다면 수천 개의 리뷰와 라벨(긍정/부정)이 있는 데이터로 모델을 추가 학습시켜야 합니다. 모델 내부의 파라미터가 실제로 변경될 것이고 많은 시간과 자원이 들어갑니다.
하지만 ICL은 다릅니다. 굉장히 심플합니다. 예시를 들어주면 됩니다!
예시1: "음식이 정말 맛있었어요!" → 긍정
예시2: "서비스가 너무 별로였습니다." → 부정
예시3: "분위기가 좋고 직원들이 친절해요!" → 긍정
이제 판단해보세요: "가격 대비 만족스럽지 않네요."
이렇게 새롭게 들어온 정보(가격 대비 만족스럽지 않네요)와 예시에서 주어진 정보(예시1, 2, 3)의 유사성을 파악해 결과를 도출합니다. 모델이 예시를 통해 패턴을 파악하고 추론만 수행하는 것이죠. 전통적인 머신러닝의 파인튜닝과 달리, LLM이 등장한 뒤에 나온 '모델을 다시 학습시키지 않고 질문할 때 예시를 어떻게 주는가'에 따라 다양한 문제들을 해결할 수 있다는 것이 특징입니다.
예시를 몇 개를 주느냐에 따라 제로샷, 원샷, 퓨샷으로 구분합니다.
- 제로샷(Zero-shot): 예시 없이 바로 작업 지시 ("이 리뷰의 감정을 분석해줘")
- 원샷(One-shot): 예시 1개 제공
- 퓨샷(Few-shot): 예시 여러 개 제공 (보통 2-10개)
ICL은 빠르고 효율적이며, 다양한 작업에 유연하게 적용이 가능하다는 장점이 있지만, 단점도 있습니다. 제한된 컨텍스트의 길이로 인해 예시가 많아질수록 실제 작업을 위한 공간이 줄어든다는 점입니다. 또한 매번 예시를 처리해야 하기 때문에 계산 시간이 늘어나고요. 작업별 템플릿 효과적인 예시를 만드는 것도 생각보다 쉽지 않은 일입니다. 특히 도메인이나 작업 유형이 바뀌면 성능이 크게 떨어지는 문제점도 있습니다. (음식 리뷰 예시를 주고 영화 리뷰를 판단하게 하는 경우처럼요.) |