🌟 AI & ML Tech/Prompt Engineering

[ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§] (3) κ³ κΈ‰ 기법: Few-shot, Chain-of-thought, Self-consistency, Selection-inference, Least-to-most, ReAct, Self-evaluation

뭅즀 2024. 7. 27. 13:50
λ°˜μ‘ν˜•

이번 ν¬μŠ€νŒ…μ—μ„œλŠ” ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§μ˜ κ³ κΈ‰ 기법듀에 λŒ€ν•΄ μ•Œμ•„λ³΄λ €κ³  ν•΄μš”. 이 기법듀은 AI λͺ¨λΈμ΄ λ³΅μž‘ν•œ μž‘μ—…μ„ 더 효과적으둜 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ€‘μš”ν•œ λ„κ΅¬λ“€μ΄μ—μš”. 특히 few-shot examples, chain-of-thought, self-consistency, selection-inference, least-to-most, react, self-evaluation 같은 기법듀을 λ‹€λ£° κ±°μ˜ˆμš”. 각각의 기법을 μ΄ν•΄ν•˜κ³  적절히 ν™œμš©ν•˜λ©΄, 더 μ •ν™•ν•˜κ³  μœ μš©ν•œ AI 응닡을 얻을 수 μžˆμ–΄μš”. 그럼, 각 기법듀을 ν•˜λ‚˜μ”© μ‚΄νŽ΄λ³ΌκΉŒμš”?


Few-shot Examples

Few-shot examplesλŠ” λͺ¨λΈμ—κ²Œ μ—¬λŸ¬ 개의 μ˜ˆμ‹œλ₯Ό μ œκ³΅ν•΄μ„œ, λͺ¨λΈμ΄ 이 μ˜ˆμ‹œλ“€μ„ λ°”νƒ•μœΌλ‘œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ²Œ ν•˜λŠ” λ°©λ²•μ΄μ—μš”. μ΄λŠ” λͺ¨λΈμ—κ²Œ 더 λ§Žμ€ λ§₯락을 μ œκ³΅ν•΄μ„œ μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 μœ μš©ν•΄μš”.

 

  • Zero-shot : 예제λ₯Ό μ œκ³΅ν•˜μ§€ μ•ŠμŒ
  • One-shot : ν•˜λ‚˜μ˜ 예제 제곡
  • Few-shot : μ—¬λŸ¬ 예제λ₯Ό 제곡

 

μ˜ˆμ‹œ

  • ν”„λ‘¬ν”„νŠΈ: "λ‹€μŒ λ¬Έμž₯을 μ˜μ–΄λ‘œ λ²ˆμ—­ν•΄μ€˜. μ˜ˆμ‹œ: 'μ•ˆλ…•ν•˜μ„Έμš”' -> 'Hello', 'μ €λŠ” ν•™μƒμ΄μ—μš”' -> 'I am a student', '였늘 날씨가 μ’‹λ„€μš”' -> 'The weather is nice today', '컀피 ν•œ μž” μ£Όμ„Έμš”' ->"
  • λͺ¨λΈμ˜ 응닡: "'Please give me a cup of coffee.'"

 

  • ν”„λ‘¬ν”„νŠΈ
    • 정말 λ©‹μ§€λ„€μš”! -> λΆ€μ •
    • 이건 λ‚˜μ˜λ‹€! -> 긍정
    • μ™€μš° κ·Έ μ˜ν™” 정말 λ©‹μ‘Œμ–΄μš”! -> 긍정
    • 정말 λ”μ°ν•œ μ‡Όμ˜€μ–΄! ->
  • λͺ¨λΈμ˜ 응닡 : λΆ€μ •

 

Chain-of-Thought (CoT)

Chain-of-thought 기법은 λ³΅μž‘ν•œ 문제λ₯Ό ν•΄κ²°ν•  λ•Œ μœ μš©ν•œ μ ‘κ·Ό λ°©μ‹μ΄μ—μš”. μ΄λŠ” λͺ¨λΈμ΄ 문제λ₯Ό λ‹¨κ³„λ³„λ‘œ ν•΄κ²°ν•  수 μžˆλ„λ‘ ν”„λ‘¬ν”„νŠΈλ₯Ό κ΅¬μ„±ν•˜λŠ” λ°©λ²•μ΄μ—μš”. λ‹¨μˆœνžˆ μ§ˆλ¬Έμ„ λ˜μ§€κΈ° 보닀 단계λ₯Ό λ‚˜λˆ„μ–΄ μ§ˆλ¬Έμ„ ν•˜λŠ” 방식.

 

μ˜ˆμ‹œ

  • ν”„λ‘¬ν”„νŠΈ: "μ•„λž˜ 문제λ₯Ό λ‹¨κ³„λ³„λ‘œ 해결해봐: 문제: 'λ§Œμ•½ 사과가 5개 있고, 3개λ₯Ό 더 μ‚°λ‹€λ©΄ 총 λͺ‡ 개의 사과가 μžˆλ‚˜μš”?', 1단계: 'ν˜„μž¬ μ‚¬κ³Όμ˜ 개수λ₯Ό μ„Έμ–΄λ³΄μž.', 2단계: 'μƒˆλ‘œ μ‚° μ‚¬κ³Όμ˜ 개수λ₯Ό λ”ν•˜μž.', 3단계: '총 μ‚¬κ³Όμ˜ 개수λ₯Ό κ³„μ‚°ν•˜μž.'"
  • λͺ¨λΈμ˜ 응닡: "ν˜„μž¬ μ‚¬κ³ΌλŠ” 5κ°œμ—μš”. μƒˆλ‘œ μ‚° μ‚¬κ³ΌλŠ” 3κ°œμ—μš”. 총 μ‚¬κ³Όμ˜ κ°œμˆ˜λŠ” 5 + 3 = 8κ°œμ—μš”."

 

Self-Consistency

Self-consistencyλŠ” λͺ¨λΈμ˜ 응닡 일관성을 μœ μ§€ν•˜λ„λ‘ ν•˜λŠ” κΈ°λ²•μ΄μ—μš”. μ΄λŠ” λ™μΌν•œ μ§ˆλ¬Έμ— λŒ€ν•΄ μ—¬λŸ¬ 번 닡변을 μƒμ„±ν•˜κ³ , κ°€μž₯ μΌκ΄€λœ 닡변을 μ„ νƒν•˜λŠ” λ°©λ²•μ΄μ—μš”. λ¬Όλ‘  λ‹€μ–‘ν•œ μΆ”λ‘  κ²°κ³Όλ₯Ό μ œκ³΅ν•΄μ•Ό ν•˜λ―€λ‘œ ν† ν°μˆ˜λ₯Ό 많이 μ‚¬μš©ν•œλ‹€λŠ” 단점과 κ²°κ³Ό 취합을 μœ„ν•œ ν›„μ²˜λ¦¬κ°€ ν•„μš”ν•˜λ‹€λŠ” 단점이 μžˆμ–΄μš”.

 

μ˜ˆμ‹œ

  • ν”„λ‘¬ν”„νŠΈ: "λ‹€μŒ μ§ˆλ¬Έμ— λ‹΅λ³€ν•΄μ€˜: 'μ§€κ΅¬μ˜ λ‘˜λ ˆλŠ” μ–Όλ§ˆμΈκ°€μš”?'"
  • λͺ¨λΈμ˜ 응닡: μ—¬λŸ¬ 번의 μ‹€ν–‰ κ²°κ³Ό 각각 "40,075 km", "40,075 km", "40,075 km"

 

이 경우 λͺ¨λΈμ˜ μΌκ΄€λœ 닡변인 "40,075 km"λ₯Ό 선택해 신뒰도λ₯Ό 높일 수 μžˆμ–΄μš”.

 

Selection-Inference

Selection-InferenceλŠ” λ³΅μž‘ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ μΆ”λ‘  단계λ₯Ό 거쳐 μ΅œμ’… 닡을 λ„μΆœν•˜λŠ” κΈ°λ²•μ΄μ—μš”. 이 κ³Όμ •μ—μ„œλŠ” 각 λ‹¨κ³„μ—μ„œ κ°€λŠ₯ν•œ μ—¬λŸ¬ 후보 λ‹΅λ³€ μ€‘μ—μ„œ 졜적의 닡변을 μ„ νƒν•˜κ³ , λ‹€μŒ λ‹¨κ³„μ˜ 좔둠을 μ΄μ–΄κ°€λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰λΌμš”. 이λ₯Ό 톡해 λͺ¨λΈμ΄ 문제λ₯Ό μ²΄κ³„μ μœΌλ‘œ μ ‘κ·Όν•˜κ³ , 보닀 μ •ν™•ν•œ κ²°κ³Όλ₯Ό 얻을 수 있게 λΌμš”.

 

μ˜ˆμ‹œ

문제: "Aμ”¨λŠ” 지갑을 μžƒμ–΄λ²„λ Έμ–΄μš”. κ·ΈλŠ” λ§ˆμ§€λ§‰μœΌλ‘œ μΉ΄νŽ˜μ—μ„œ 지갑을 μ‚¬μš©ν–ˆμ–΄μš”. 지갑은 어디에 μžˆμ„ κ°€λŠ₯성이 κ°€μž₯ λ†’μ„κΉŒμš”?"

Selection-Inference 기법을 μ μš©ν•΄ λ³Όκ²Œμš”.

 

단계 1: 정보 μˆ˜μ§‘

  • A씨가 지갑을 μ‚¬μš©ν•œ λ§ˆμ§€λ§‰ μž₯μ†ŒλŠ” μ–΄λ””μΈκ°€μš”?
  • λ‹΅λ³€ 후보
    • 카페
    • 집
    • νšŒμ‚¬
  • μ„ νƒλœ λ‹΅λ³€: 카페

 

단계 2: μΆ”κ°€ 정보 μˆ˜μ§‘

  • A씨가 μΉ΄νŽ˜μ—μ„œ 무엇을 ν–ˆλŠ”μ§€ μ•Œμ•„λ΄…μ‹œλ‹€.
  • λ‹΅λ³€ 후보
    • 컀피λ₯Ό λ§ˆμ…¨λ‹€
    • 친ꡬλ₯Ό λ§Œλ‚¬λ‹€
    • μ‹ μš©μΉ΄λ“œλ‘œ κ²°μ œν–ˆλ‹€
  • μ„ νƒλœ λ‹΅λ³€: μ‹ μš©μΉ΄λ“œλ‘œ κ²°μ œν–ˆλ‹€

 

단계 3: μ΅œμ’… μΆ”λ‘ 

  • A씨가 μ‹ μš©μΉ΄λ“œλ‘œ κ²°μ œν•œ ν›„ 지갑을 어디에 λ‘μ—ˆμ„ κ°€λŠ₯성이 κ°€μž₯ λ†’μ„κΉŒμš”?
  • λ‹΅λ³€ 후보
    • ν…Œμ΄λΈ” μœ„
    • κ³„μ‚°λŒ€
    • μ£Όλ¨Έλ‹ˆ 속
  • μ„ νƒλœ λ‹΅λ³€: κ³„μ‚°λŒ€

μ΅œμ’…μ μœΌλ‘œ, Selection-Inference 기법을 톡해 Aμ”¨μ˜ 지갑이 κ³„μ‚°λŒ€μ— μžˆμ„ κ°€λŠ₯성이 κ°€μž₯ λ†’λ‹€λŠ” 결둠에 λ„λ‹¬ν–ˆμ–΄μš”.

 

Least-to-Most

Least-to-most 기법은 문제λ₯Ό μž‘μ€ λΆ€λΆ„μœΌλ‘œ λ‚˜λˆ„μ–΄ λ‹¨κ³„μ μœΌλ‘œ ν•΄κ²°ν•˜λŠ” λ°©λ²•μ΄μ—μš”. μ΄λŠ” λͺ¨λΈμ΄ λ³΅μž‘ν•œ 문제λ₯Ό 더 μ‰½κ²Œ ν•΄κ²°ν•  수 μžˆλ„λ‘ λ•λŠ” μ ‘κ·Ό λ°©μ‹μ΄μ—μš”. μ—¬λŸ¬ ν•˜μœ„ μž‘μ—…λ“€μ€ ν•œλ²ˆμ— ν•˜λ‚˜μ”© ν•΄κ²°ν•˜κ³ , 이전에 μƒμ„±ν•œ 닡을 λ‹€μŒ 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ° μ‚¬μš©.

 

μ˜ˆμ‹œ

  • ν”„λ‘¬ν”„νŠΈ: "λ‹€μŒ 문제λ₯Ό λ‹¨κ³„λ³„λ‘œ 해결해봐: 'ν•œ μƒμžμ— 12개의 사과가 λ“€μ–΄μžˆκ³ , 5개의 μƒμžκ°€ μžˆλ‹€λ©΄ 총 λͺ‡ 개의 사과가 μžˆλ‚˜μš”?' 1단계: 'ν•œ μƒμžμ— λͺ‡ 개의 사과가 μžˆλŠ”μ§€ ν™•μΈν•΄λ³΄μž.' 2단계: 'μƒμžμ˜ 수λ₯Ό ν™•μΈν•΄λ³΄μž.' 3단계: '총 μ‚¬κ³Όμ˜ 개수λ₯Ό κ³„μ‚°ν•˜μž.'"
  • λͺ¨λΈμ˜ 응닡: "ν•œ μƒμžμ— 12개의 사과가 μžˆμ–΄μš”. 5개의 μƒμžκ°€ μžˆμ–΄μš”. 총 μ‚¬κ³Όμ˜ κ°œμˆ˜λŠ” 12 * 5 = 60κ°œμ—μš”."

 

이 기법은 문제λ₯Ό λ‹¨κ³„λ³„λ‘œ λ‚˜λˆ„μ–΄ ν•΄κ²°ν•¨μœΌλ‘œμ¨ λͺ¨λΈμ΄ 더 μ •ν™•ν•˜κ²Œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 있게 ν•΄μ€˜μš”.

 

ReAct (Reason and Act)

 

ReActλŠ” λͺ¨λΈμ΄ νŠΉμ • λ¬Έμ œμ— λŒ€ν•΄ μ‚¬κ³ ν•˜κ³  ν–‰λ™ν•˜λŠ” 과정을 톡해 문제λ₯Ό ν•΄κ²°ν•˜λ„λ‘ μœ λ„ν•˜λŠ” κΈ°λ²•μ΄μ—μš”. μ΄λŠ” λͺ¨λΈμ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 논리적 단계λ₯Ό κ±°μΉ˜λ„λ‘ λ„μ™€μ€˜μš”. 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ€ 행동에 λŒ€ν•œ κ³„νšμ„ 생성, μœ μ§€, μ‘°μ •ν•˜λŠ” λ™μ‹œμ— μ™ΈλΆ€ ν™˜κ²½(e.g. μœ„ν‚€λ””ν”Όμ•„)κ³Ό μƒν˜Έ μž‘μš©μ„ 톡해 좔둠에 μΆ”κ°€ 정보λ₯Ό 톡합 ν•  수 μžˆμ–΄μš”. ν•„μš”ν•œ 정보λ₯Ό μ™ΈλΆ€ ν™˜κ²½μ—μ„œ κ²€μƒ‰ν•΄μ™€μ„œ 문제 해결에 도움을 λ°›λŠ” 것이죠.

 

μ˜ˆμ‹œ

  • ν”„λ‘¬ν”„νŠΈ: "μ•„λž˜ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ 논리적 단계λ₯Ό μƒκ°ν•˜κ³  λ‹΅λ³€ν•΄μ€˜: 'λ§Œμ•½ ν•œ μ‚¬λžŒμ΄ ν•˜λ£¨μ— 2λ¦¬ν„°μ˜ 물을 λ§ˆμ‹ λ‹€λ©΄, 일주일 λ™μ•ˆ λͺ‡ λ¦¬ν„°μ˜ 물을 λ§ˆμ‹€κΉŒμš”?' 1단계: 'ν•˜λ£¨μ— λ§ˆμ‹œλŠ” 물의 양을 ν™•μΈν•΄λ³΄μž.' 2단계: '일주일 λ™μ•ˆμ˜ 일수λ₯Ό κ³„μ‚°ν•΄λ³΄μž.' 3단계: '총 물의 양을 κ³„μ‚°ν•˜μž.'"
  • λͺ¨λΈμ˜ 응닡: "ν•˜λ£¨μ— 2λ¦¬ν„°μ˜ 물을 λ§ˆμ…”μš”. 일주일은 7μΌμ΄μ—μš”. 총 물의 양은 2 * 7 = 14λ¦¬ν„°μ—μš”."

 

이 기법은 λͺ¨λΈμ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” κ³Όμ •μ—μ„œ 논리적 단계λ₯Ό κ³ λ €ν•˜λ„λ‘ μœ λ„ν•΄μš”.

 

Self-Evaluation

Self-evaluation은 λͺ¨λΈμ΄ 슀슀둜 μžμ‹ μ˜ 응닡을 ν‰κ°€ν•˜κ³  κ°œμ„ ν•  수 μžˆλ„λ‘ ν•˜λŠ” κΈ°λ²•μ΄μ—μš”. μ΄λŠ” λͺ¨λΈμ΄ μžμ‹ μ΄ μ œκ³΅ν•œ λ‹΅λ³€μ˜ 정확성을 κ²€ν† ν•˜κ³ , ν•„μš”ν•œ 경우 μˆ˜μ •ν•˜λ„λ‘ μœ λ„ν•΄μš”.

 

μ˜ˆμ‹œ

  • ν”„λ‘¬ν”„νŠΈ: "λ‹€μŒ μ§ˆλ¬Έμ— λŒ€ν•œ 닡변을 μ œκ³΅ν•˜κ³ , 슀슀둜 평가해봐: 'μ§€κ΅¬μ˜ μžμ „ μ£ΌκΈ°λŠ” μ–Όλ§ˆμΈκ°€μš”?'"
  • λͺ¨λΈμ˜ 응닡: "μ§€κ΅¬μ˜ μžμ „ μ£ΌκΈ°λŠ” μ•½ 24μ‹œκ°„μ΄μ—μš”. (κ²€ν† : μ •ν™•ν•΄μš”. ν•˜λ£¨λŠ” 24μ‹œκ°„μ΄λ‹ˆκΉŒ.)"

 

이 기법은 λͺ¨λΈμ΄ μžμ‹ μ˜ 응닡을 κ²€ν† ν•˜κ³  κ°œμ„ ν•¨μœΌλ‘œμ¨ 더 μ •ν™•ν•œ κ²°κ³Όλ₯Ό λ„μΆœν•  수 있게 ν•΄μ€˜μš”.


 

이제 ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§μ˜ κ³ κΈ‰ 기법듀을 μ΄ν•΄ν–ˆμœΌλ‹ˆ, 이λ₯Ό μ–΄λ–»κ²Œ ν™œμš©ν•  수 μžˆμ„μ§€μ— λŒ€ν•΄ μƒκ°ν•΄λ³Όκ²Œμš”. μ€‘μš”ν•œ 것은 상황에 맞게 각 기법듀을 적절히 μ‘°ν•©ν•΄μ„œ μ‚¬μš©ν•˜λŠ” κ±°μ˜ˆμš”. 예λ₯Ό λ“€μ–΄, λ³΅μž‘ν•œ 문제λ₯Ό ν•΄κ²°ν•  λ•ŒλŠ” chain-of-thoughtκ³Ό least-to-most 기법을 κ²°ν•©ν•˜κ³ , λͺ¨λΈμ˜ 응닡 일관성을 높이기 μœ„ν•΄ self-consistency 기법을 μΆ”κ°€ν•  수 μžˆμ–΄μš”.

 

각 기법듀을 적절히 ν™œμš©ν•˜λ©΄ AI λͺ¨λΈμ˜ 응닡을 λ”μš± μ •κ΅ν•˜κ²Œ μ‘°μ ˆν•  수 있겠죠? ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§μ˜ 이점은 λ‹€μ–‘ν•œ μƒν™©μ—μ„œ λͺ¨λΈμ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•  수 μžˆλ‹€λŠ” μ μ΄μ—μš”. κ³„μ†ν•΄μ„œ ν”„λ‘¬ν”„νŠΈλ₯Ό μ‹€ν—˜ν•˜κ³  μ‘°μ •ν•˜λ©΄μ„œ μžμ‹ λ§Œμ˜ λ…Έν•˜μš°λ₯Ό μŒ“μ•„κ°€μ„Έμš”!

 

λ°˜μ‘ν˜•