프롬프트란?
LLM에게 입력하는 모든 문장.
LLM의 정체성, 주 임무, 사용자를 설정하기 위해 사용한다.
프롬프트 요소
- 지시(Instruction) → LLM이 수행할 명령
- 입력 값(Input Data) → LLM이 받아들일 값, 그림, 글 등
- 문맥(Context) → 추가 정보, 어조, 말투
- 출력 지시자(Output Indicator) → 출력 틀, 양식
- 예시(Example) → 사용자가 원하는 추가 예시
매개변수 요소
- 자유도(temperature) → LLM의 답변 자유도를 설정하는 값
- 최대 토큰(token) 수 → LLM이 소화할 수 있는 최대 토큰 수
자유도가 너무 높으면 환각이 발생(거짓말 생성 등)하거나 낮으면 추론 능력이 낮아질 수 있다.
토큰은 문장을 자르는 기준. LLM의 용량이 클수록 토큰 수를 늘릴 수 있다.
프롬프트 엔지니어링(Prompt Engineering)
Zero-Shot Prompting
모델에 예시 없이 원하는 작업을 지시하여, 사전 학습된 일반 지식만으로 문제 해결하는 방법
별도의 학습 없이 지시문을 작성하기 때문에 직관적이고 간편하다.
LLM의 기존 학습 내용에 의존해, 얼마나 학습되었는지 중요

Few-Shot Prompting
프롬프트 내에 소수의 관련 예시를 포함시켜서 성능을 향상시키는 기법
예시를 포함하여 다음 출력 결과 예상 가능
예시가 명확해야 하며, 정확한 답변을 원할수록 더 많은 예시와 예외처리 필요

Chain-of-Thought Prompting(생각의 사슬)
복잡한 문제를 해결할 때, 정답을 바로 제시하는 대신 사고 과정을 단계벌로 거쳐 추론하도록 유도하는 방식
추론 과정을 볼 수 있어, 잘못 추론한 부분을 피드백하기 쉽다.
필요없는 내용까지 방대해질 수 있으며, 후처리 가공이 필요할 수 있다.

Tree of Thoughts(생각의 나무)
복잡한 문제의 해결과정을 나무처럼 그려 여러 가능성을 탐색하고 최적의 경로를 찾는 방식
여러 해결책을 구할 수 있다.
어떤 답이 제일 적절한지, 환각이 없는지 검증해야 하거나 검증이 어렵다.

Structured prompting(구조화 지시)
구조를 갖춰서 절차지향적으로 프롬프트를 작성하는 방법(구체적으로 키와 벨류를 설정해주기)
LLM이 절차를 수행하는데 가장 직관적인 방법
사람이 이해하는데 초점이 가기보다는 기계 입장에서 프롬프트를 이해하도록 작성하는데 초점을 둬야 한다.


Generated Knowledge Prompting(지식 생성)
응답 정확도와 추론 능력을 향상시키기 위한 프롬프트 엔지니어링 기법
모델이 지식을 정리하고 사고 기반을 만들어 정확도와 추론력 향상에 도움
생성된 지식이 부정확할 경우, 잘못된 정보를 기반으로 해 답이 더 크게 틀릴 위험

참고 자료
영문 번역체 느낌이라 문장이 단번에 들어오지 않는 느낌이지만 기본적인 정리가 다 되어있어서 쉽게 익힐 수 있을 것 같다.
https://www.promptingguide.ai/kr
프롬프트 엔지니어링 가이드 – Nextra
A Comprehensive Overview of Prompt Engineering
www.promptingguide.ai