일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Oracle 테이블 대소문자
- ora-01722
- Oracle 사용자명 입력
- Oracle 테이블 띄어쓰기
- Oracle 윈도우 설치
- Oracle Express Edition
- Oracle 초기 사용자
- Oracle 18c HR schema
- 서평단
- 무료 오라클 설치
- oracle 18c
- Orace 18c
- 무료 오라클 데이터베이스
- Oracle 사용자명
- 윈도우 Oracle
- oracle
- 오라클 캐릭터셋 확인
- 비전공자를 위한 데이터베이스 입문
- ORA-12899
- Oracle 18c HR
- Oracle 18c 설치
- 오라클 캐릭터셋 조회
- 오라클 캐릭터셋 변경
- ORA-00922
- Today
- Total
The Nirsa Way
[LLM] 입문자를 위한 프롬프트 엔지니어링 개념과 3대 원칙 (Role, Instruction, Few-shot) 본문
[LLM] 입문자를 위한 프롬프트 엔지니어링 개념과 3대 원칙 (Role, Instruction, Few-shot)
KoreaNirsa 2025. 9. 12. 21:54
[LLM] 입문자를 위한 프롬프트 엔지니어링 개념과 3대 원칙 (Role, Instruction, Few-shot)
프롬프트 엔지니어링은 AI 모델이 원하는 방식으로 응답할 수 있도록 프롬프트를 설계, 최적화 하는 과정입니다. LLM은 기본적으로 입력된 프롬프트를 기반으로 다음 토큰을 예측하기 때문에 프롬프트를 잘 작성하면 LLM 모델의 답변 품질을 크게 올릴 수 있습니다.
만약 모호한 프롬프트를 주면 예상과 다른 답변이 나올 확률이 그만큼 높으며 AI 활용을 하기 위해서는 명확하고 구조화된 프롬프트를 작성하는 능력이 필요합니다. 이러한 프롬프트 설계 능력을 통해 각 분야에 AI를 활용했을 때 증가하는 생산성은 크게 차이가 나게 됩니다.
보통 GPT와 같은 AI 플랫폼을 사용할 때 "잘 질문해야 좋은 답변을 얻는다"가 프롬프트 엔지니어링에 해당하는 개념인데, 잘 질문하기 위해서는 아래의 3가지 원칙을 따라 작성하는 습관이 필요하며 가장 기본적인 틀이기도 합니다.
- 역할 부여(Role) : 모델에게 특정 역할을 주어 답변을 유도하여 답변의 톤과 관점 제어
- 명확한 지시(Instruction) : 원하는 출력 형태와 조건을 구체적으로 전달
- 예시 제공(Few-shot) : 몇 가지 샘플을 포함하여 전달하여 원하는 답변 스타일을 학습하도록 유도
이제 Role - Instruction - Few-shot(이하 RIF)을 지키지 않고 단순하게 질문한 했을 경우와 RIF를 지켰을 경우 어떠한 답변의 차이가 있는지 살펴보도록 하겠습니다. 아래의 실험은 GPT에서 로그아웃 후 진행하였습니다.
RIF를 지키지 않고 단순하게 질문만 했을 경우 (GPT)
간단하게 질문만 한 경우입니다.
자바 ArrayList와 LinkedList를 비교해.
RIF를 지켜서 질문한 경우 (GPT)
만약 강사가 학생들에게 ArrayList와 LinkedList의 차이를 설명하기 위해 AI를 활용하여 내용을 정리하고자 한다면 아래와 같은 프롬프트를 작성할 수 있습니다.
[Role]
너는 자바를 처음 입문하는 학생들에게 강의를 하는 전문 강사야.
개발 경력이 10년 이상인 시니어 풀스택 개발자이면서 강의 경력이 10년 이상인 강사로
초보자가 이해하기 쉽게 설명하는 데 능숙해.
[Instruction]
"ArrayList"와 "LinkedList"의 차이를 표 형식으로 설명하고
마지막에 어떤 상황에서 어떤 것을 선택하여 사용해야 하는지 간단히 정리해줘.
- 설명은 초보 학생이 이해할 수 있는 간단한 언어로 작성하고
필요한 경우 간단한 코드 예제나 비유를 포함해.
- 표에는 최소 다음 항목을 포함하되 필요하다면
추가 항목(예: 삽입/삭제 성능, 메모리 사용량)을 포함해
- 메모리 구조
- 접근 속도
- 삽입/삭제 속도
- 잘못된 내용을 전달하지 않도록 답변 작성 전 공식 문서(예: Oracle Java 문서) 또는
신뢰할 수 있는 자료를 참조하여 3번 검증해.
- 답변은 한국어로 작성하고, 500~700단어 내로 유지해.
- 실제 개발 경험에서 나온 사례나 비유를 활용하여 학생들이 개념을 쉽게 이해하도록 도와줘.
[Free-shot]
예시 출력은 아래와 같아.
| 비교항목 | ArrayList | LinkedList |
|----------------|-------------------|------------------|
| 메모리 구조 | ... | ... |
| 접근 속도 | ... | ... |
| 삽입/삭제 속도 | ... | ... |
위 예시를 참고하여 ArrayList와 LinkedList 비교를 진행해.
마무리
단순 질문을 했을 경우 기본적인 개념 설명은 간략하게 답변을 받았으나 깊이와 구조가 부족한 느낌이 강하며 RIF를 지켜서 질문했을 경우 조금 더 자세한 설명을 받았습니다.
ArrayList와 LinkedList의 경우 인터넷에 정보가 워낙 많다보니 큰 차이로 안보일 수 있지만, 이러한 프롬프트를 작성하는 능력을 키우다 보면 원하는 정보를 좀 더 자세히 얻고 특정 상황에 주어진 작업을 할 때 똑같은 AI를 활용하더라도 더 좋은 품질의 답변을 얻을 수 있습니다.
이번 포스팅에서 LLM을 활용할 때 가장 기본적이면서도 중요한 프롬프트 엔지니어링에 대해 간단히 알아보았는데, 프롬프트를 설계하는 방식에 따라 답변의 질과 활용도가 크게 달라질 수 있음을 알아야 합니다.
"AI에게 질문을 잘 하자 = 프롬프트 엔지니어링"은 크게 다르지 않지만 급격히 성장하는 AI의 흐름을 따라 활용 능력을 키우는 것은 중요하다고 생각합니다. AI를 활용할 때 어떠한 역할을 맡기고, 어떠한 형식의 답변을 원하며, 어떠한 예시 샘플을 주어 답변을 얻을것인지에 대해 고민하며 AI에게 질문한다면 같은 것을 사용하더라도 더 가치있는 답변을 얻을 수 있습니다.
이후 포스팅에서는 프롬프트 엔지니어링을 위한 세부 기법을 더 알아보도록 하겠습니다.
'AI Engineering > LLM' 카테고리의 다른 글
[LLM] 컨텍스트 엔지니어링이란? (Context Engineering, RAG, Chunking, Embedding, Vector Search, Context Injection) (0) | 2025.09.15 |
---|---|
[LLM] 간단하게 보는 대규모 언어 모델(Large Language Model) 이란 무엇인가? (0) | 2025.09.12 |