AI

[AI] LLM 실행 전략 (Prompt Engineering / zero-shot / ToT / ReAct / AI 기초)

비전공자 기록광 2025. 5. 12. 18:32
반응형

이전 포스팅으로 LLM 기본 개념을 정리했다.

 

2025.02.20 - [기타 학습] - [AI] LLM과 LangChain (랭체인 입문 / 기본 개념 / AI 기초/ RAG)

 

[AI] LLM과 LangChain (랭체인 입문 / 기본 개념 / AI 기초/ RAG)

신규 프로젝트에 들어가며 프롬프트 엔지니어링을 접했다.  단순히 OpenAI API / 네이버 Clova API를 사용하는 걸 넘어 랭체인도 접목해보고 하다 보니 자세히 이해하지 않고는 못 쓰겠

datamoney.tistory.com

 


LLM 기반 애플리케이션 개발에 앞서 프롬프트 엔지니어링을 알아둬야 한다.
LLM 의 기반은 컴퓨터다. 세상의 지식을 학습했다고 한대도 이는 실제로 이해한게 아니다. 학습한 데이터를 통해 응답을 만들어내는 것이다.

응답이라는 것도 결국 앞선 단어들의 조합으로 다음 나올 단어들을 추측해 내는 것이다.

프롬프트는 우리가 알다시피 AI모델에게 요청하는 질문(입력)이다.
이 질문이 너무 특정 도메인에 관련되어 있다거나, 복잡하다거나, 그들이 학습한 데이터가 대답하기에 충분치 않다면 엉뚱한 답을 내놓게 된다. 이게 저번에 말했던 할루시네이션이다.


이런 문제점을 줄이기 위해선 좀 더 명확하게 요청을 해야한다.
여기서 나온게 프롬프트 엔지니어링이다.

 

Prompt Engineering

프롬프트 엔지니어링
: LLM 이 더 정확하고 논리적인 답을 도출하게 도와주는 추론 및 문제 해결 방법론을 말한다.
간단히 말해 LLM 사용기법 / LLM 실행 전략이며, 쉽게 말하면 LLM이 응답을 잘 하게 유도하는 법이다.


여기에는 샷기법와 추론 기법이 있다.

 

Shot 기법

프롬프트 엔지니어링의 기초 기법으로 어려울 거 없이 예제에 따라 구분되는 방식이다.

🔵 Zero-shot 제로샷
: 예제 없이 질문

Q: 5 + 7 = ?
A: 12



일반적으로 많이들 쓰는 기법이다. 빠르고 간단하지만 할루시네이션이 나올 수 있다.


🔵 Few-shot 퓨샷
: 예제 몇개 제공해 학습시킴

Q: 2 + 3 = 5
Q: 4 + 6 = 10
Q: 5 + 7 = ?
A: 12




🔵 Multi-shot 멀티샷
: 예제 여러개 제공해 다양한 상황 학습시킴


다양한 상황을 학습시켜 맥락을 이해시킨다.

당연히 제로샷이나 원샷에 비해 토큰 비용이 발생할 수 있다.

 

 

추론 기법

LLM 이 문제를 어떻게 해결해 나갈지에 대해 생각, 판단하게 하는 고급 사고 방식을 말한다.

위에서 프롬프트 엔지니어링이 LLM이 응답을 잘 하게 유도하는 법이라고 말했고 응답은 앞선 단어들의 조합으로 다음 나올 단어들을 추측해내는 것이라고 했다.

 

다시 말해 추론 기법은 LLM이 생각하는 것 처럼 답할 수 있게 유도를 하는 것이다. 

즉 인간 처럼 사고하는 흐름을 LLM에게 흉내내게 하는 기술이다.

 

 

🔵 Chain of Thought (CoT)

: 단계적으로 사고 과정을 전개해 답을 도출

 

수학문제나 퍼즐 등 단계적이고 논리적은 사고가 필요한 문제에서 유용하다.

LLM 이 왜 그런 답을 내렸는지 디버깅이 가능하는 점이 장점이다.

 

챗GPT API를 활용한 챗봇 만들기 (https://product.kyobobook.co.kr/detail/S000214146018)

 

 

Chain of Thought Prompting Elicits Reasoning in Large Language Models

 

 

일반적인 프롬프트인 경우 LLM이 그저 그럴싸한 숫자를 응답할 수 있는 걸
[Let's think step by step]

이 한 문장를 통해 CoT를 유도하게 된다.

 

쉽게 말해 중간 과정을 설명하라고 요구해 정답률을 높이는 전략이다.

 

Q: 나는 시장에 가서 사과 10개를 샀어. 나는 사과 2개를 이웃에게 주고, 2개를 수리공에게 주었어. 그리고 사과 5개를 더 사서 1개는 내가 먹었어. 사과가 몇 개나 남았니?
단계별로 생각해 보자.

 

이게 Zero-Shot-CoT 이다.

 

 

직선으로 흐르는 방식이기 때문에

중간에 잘 못된 논리가 끼어들어도 끝까지 이어져 오답이 발생하게 된다.

 

 

🔵 Tree of Thought (ToT)

: 여러 해결 방법을 동시에 탐색하며 최적의 답을 선택

 

창의성을 요하는 문제나, 복잡한 선택의 문제의 경우 유용하다.

CoT와 마찬가지로 단계별로 이어지지만 한 개의 단계에서 여러가지 분기를 생성하고 평가해 최적의 경로로 나아간다.

직선으로 흐르는 방식의 문제점을 해결할 수 있다.

 

동작 흐름

  1. "A, B, C 방법이 있다. 어떤 게 좋을까?"
  2. 각 방법을 시도하면서, 실패하면 다른 방법으로 변경
  3. 여러 가지 시도 후 최적의 방법을 선택
  4. 최종적으로 가장 좋은 답을 도출!

 

ToT는 즉 탐색 알고리즘 기반으로 문제를 해결하는 구조이다.

 


Q: 나는 아침에 시장에서 사과를 10개 샀어. 친구 A에게 2개, 친구 B에게 3개를 줬어.
동생이 사과파이를 만들겠다고 했는데 사과파이는 일반적으로 사과가 2개가 필요해서 줬어.
이후 5개를 더 샀고, 그중 하나는 상해서 버렸어

저녁에는 A가 아침에 받은 사과 중 1개를 다시 돌려줬는데 그러면 지금 난 사과를 몇 개 가지고 있어?
여러 경로로 계산하고, 가장 정확한 해석을 선택해보자.

 

[Let’s explore multiple reasoning paths and choose the most reliable one]

이 한 문장을 더해줘 ToT를 유도한다.

 

 

 

🔵 ReAct

= Reasoning + Acting

: 추론-계획생성-행동-추론 순환 과정을 프롬프트를 통해 구현하는 기법

 

ToT가 이론상으로 강력하지만 탐색&평가 처리가 문제가 되어 현실적으로 많이 쓰는게 CoT + ReAct 조합이다.

외부 검색이 필요하거나 행동의 결과에 따라 추론 경로가 달라지는 경우 유용하다.

 

동작 흐름

  1. Thought: 문제를 이해하고 계획을 세움
  2. Action: 필요한 행동 수행 (ex: 검색, 계산)
  3. Observation: 행동 결과를 관찰
  4. Thought: 결과를 바탕으로 다시 추론
  5. 반복 또는 최종 답변 도출

 

ReAct는 외부 정보를 활용해 정확성을 높이고

중간 추론 과정을 통해 논리를 보충하며

반복 재추론 과정을 통해 다양한 상황에서 대응할 수 있다.

 

ReAct와 Agent의 경계가 헷갈렸는데, ReAct는 그냥 프롬프트 설계 방식으로  프롬프트에 따라 도구 호출이 가능한 거고

Agent는 스스로 유연하게 행동할 수 있는 것이다.

 

 


https://blog.kakaocloud.com/85?category=1219445

 

<지식 사전> 프롬프트 엔지니어링이란 ① - Chat-GPT(LLM)를 스마트하게 활용하는 방법

안녕하세요! 오늘부터 프롬프트 엔지니어링이라는 흥미로운 주제에 대해 함께 알아보려고 합니다. 프롬프트 엔지니어링은 Chat-GPT와 같은 AI 모델과 효과적으로 소통하기 위한 방법인데요, 이를

blog.kakaocloud.com

https://www.promptingguide.ai/kr

 

프롬프트 엔지니어링 가이드 – Nextra

A Comprehensive Overview of Prompt Engineering

www.promptingguide.ai

 

https://product.kyobobook.co.kr/detail/S000214146018

 

챗GPT API를 활용한 챗봇 만들기 | 이승우 - 교보문고

챗GPT API를 활용한 챗봇 만들기 | 챗GPT, 아직도 ‘사용’만 하나요? 생성형 AI 실무 개발자가 알려주는 챗GPT 200% 활용하기이 책은 비전공자, 비개발자도 LLM을 기반으로 챗봇을 개발하는 과정을 짧

product.kyobobook.co.kr

 

https://www.udemy.com/course/langchain-korean/

 

반응형