🤖 AI/ML

In-Context Learning

In-Context Learning

LLM이 프롬프트 내 예시만으로 새 작업을 학습하는 능력. 파인튜닝 없이 적응.

📖 상세 설명

In-Context Learning(ICL)은 대형 언어 모델(LLM)이 프롬프트 내에 제공된 예시만으로 새로운 작업을 수행하는 능력입니다. 모델 파라미터를 업데이트(파인튜닝)하지 않고도 프롬프트에 포함된 몇 개의 예시(few-shot)를 통해 패턴을 학습하고 이를 새로운 입력에 적용합니다.

ICL은 2020년 GPT-3 논문 "Language Models are Few-Shot Learners"에서 처음 주목받았습니다. 기존의 지도학습처럼 역전파(backpropagation)로 가중치를 변경하는 것이 아니라, 사전학습된 모델이 프롬프트의 맥락(context)을 이해하고 추론하는 방식입니다.

Zero-shot(예시 없음), One-shot(1개 예시), Few-shot(2~5개 예시)으로 구분됩니다. 연구에 따르면 5~20개 예시가 최적이며, 그 이상은 오히려 성능이 저하되는 "Over-prompting" 현상이 발생할 수 있습니다.

실무에서는 최소 2개, 최대 5개의 예시를 사용하고 긍정/부정 예시를 모두 포함하는 것이 효과적입니다. 예시의 정답 레이블보다 형식(format)과 입력 분포가 성능에 더 큰 영향을 미친다는 연구 결과가 있습니다.

💻 코드 예제

from openai import OpenAI

client = OpenAI()

# Few-shot In-Context Learning 예시: 감정 분류
def classify_sentiment_icl(text):
    prompt = """다음은 텍스트와 감정 분류 예시입니다:

예시 1:
텍스트: "이 제품 정말 최고예요! 매일 사용하고 있습니다."
감정: 긍정

예시 2:
텍스트: "배송이 늦고 포장도 엉망이었어요. 실망입니다."
감정: 부정

예시 3:
텍스트: "보통이에요. 가격 대비 적당합니다."
감정: 중립

이제 다음 텍스트의 감정을 분류해주세요:
텍스트: "{text}"
감정:"""

    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[
            {"role": "user", "content": prompt.format(text=text)}
        ],
        max_tokens=10,
        temperature=0
    )

    return response.choices[0].message.content.strip()

# 테스트
test_texts = [
    "완전 강추합니다! 친구들에게도 추천했어요.",
    "그냥 평범해요. 다시 살지는 모르겠네요.",
    "절대 사지 마세요. 시간 낭비였어요."
]

for text in test_texts:
    result = classify_sentiment_icl(text)
    print(f"텍스트: {text}")
    print(f"분류 결과: {result}\n")

🗣️ 실무에서 이렇게 말하세요

💬 회의에서
"파인튜닝 없이 few-shot으로 분류 작업을 처리할 수 있습니다. 프롬프트에 3~5개 예시만 넣으면 새로운 데이터도 잘 분류해요. 학습 데이터가 부족할 때 빠르게 프로토타입 만들기 좋습니다."
💬 면접에서
"In-Context Learning은 모델 가중치를 바꾸지 않고 프롬프트의 예시만으로 작업을 수행하는 겁니다. GPT-3에서 처음 주목받았고, 예시의 정답보다는 형식과 분포가 성능에 더 큰 영향을 미친다는 연구 결과가 있습니다."
💬 기술 토론에서
"예시를 너무 많이 넣으면 오히려 성능이 떨어지는 Over-prompting 현상이 있어요. GPT-4에서는 5~20개 예시가 최적이고, 그 이상은 오히려 방해가 됩니다. 긍정과 부정 예시를 모두 포함하는 게 중요해요."

⚠️ 흔한 실수 & 주의사항

예시를 무작정 많이 넣음

20개 이상의 예시는 성능 저하를 유발합니다. 5개 내외의 대표적인 예시가 가장 효과적입니다.

예시 형식의 일관성 무시

예시마다 형식이 다르면 모델이 패턴을 파악하기 어렵습니다. 동일한 구조의 예시를 제공하세요.

긍정/부정 예시 균형 있게 포함

올바른 답변뿐 아니라 잘못된 예시도 포함하면 모델이 경계를 더 잘 학습합니다.

🔗 관련 용어

📚 더 배우기