AI 모델 개발: 프롬프트 엔지니어링

ㅁ 프롬프트 엔지니어링

ㅇ 정의:
– 대규모 언어 모델(LLM) 등 생성형 AI 모델의 출력 품질을 높이기 위해 입력 프롬프트를 전략적으로 설계·조정하는 기법.

ㅇ 특징:
– 모델 재학습 없이도 성능 개선 가능
– 자연어 기반 지시문, 예시, 맥락 정보를 포함
– 과적합 위험은 낮지만 프롬프트 길이에 따른 토큰 비용 증가 가능

ㅇ 적합한 경우:
– 모델 파라미터 수정 없이 빠른 성능 개선이 필요한 경우
– 다양한 태스크를 동일 모델로 처리할 때

ㅇ 시험 함정:
– 프롬프트 엔지니어링은 모델 재학습(파인튜닝)과 동일하다고 오인
– 프롬프트 품질이 항상 데이터 품질보다 중요하다고 착각

ㅇ 시험 대비 “패턴 보기” 예시:
O: “모델 재학습 없이 성능을 높일 수 있는 기법이다.”
X: “모델 파라미터를 업데이트하는 과정이다.”

================================

1. Few-shot

ㅇ 정의:
– 프롬프트에 소수(보통 1~5개)의 작업 예시를 포함하여 모델이 태스크를 이해하도록 하는 기법.

ㅇ 특징:
– 예시 데이터가 적어도 학습 효과 유사
– 태스크 포맷과 출력 형식을 모델에 암시적으로 전달
– 예시 품질에 따라 결과 품질이 크게 좌우됨

ㅇ 적합한 경우:
– 라벨된 데이터가 적거나 빠른 프로토타이핑 필요 시
– 새로운 태스크를 모델에 빠르게 적응시키고자 할 때

ㅇ 시험 함정:
– Few-shot이 반드시 3개 이상의 예시를 포함해야 한다고 오해
– 예시 없이도 Few-shot이 가능하다고 잘못 이해

ㅇ 시험 대비 “패턴 보기” 예시:
O: “프롬프트에 몇 개의 예시를 포함하여 모델의 태스크 이해를 돕는다.”
X: “대량의 학습 데이터로 모델을 재학습하는 방식이다.”

================================

2. Zero-shot

ㅇ 정의:
– 예시 없이 태스크에 대한 지시문만 제공하여 모델이 수행하도록 하는 기법.

ㅇ 특징:
– 데이터 준비 시간이 거의 없음
– 모델 사전 학습 지식에 의존
– 태스크 난이도에 따라 성능 편차가 큼

ㅇ 적합한 경우:
– 예시 데이터가 전혀 없을 때
– 빠른 테스트나 프로토타입 검증 시

ㅇ 시험 함정:
– Zero-shot은 항상 Few-shot보다 성능이 낮다고 단정
– 예시가 1개라도 있으면 Zero-shot이라고 오해

ㅇ 시험 대비 “패턴 보기” 예시:
O: “예시 없이 지시문만으로 태스크를 수행한다.”
X: “반드시 예시 1개를 포함해야 한다.”

================================

3. Chain-of-Thought

ㅇ 정의:
– 모델이 문제 해결 과정을 단계별로 서술하도록 유도하는 프롬프트 기법.

ㅇ 특징:
– 복잡한 추론 문제에서 성능 향상
– 중간 추론 과정을 노출하여 디버깅 가능
– 프롬프트 길이와 응답 시간이 증가할 수 있음

ㅇ 적합한 경우:
– 수학, 논리 추론, 다단계 의사결정 문제
– 모델 추론 과정의 투명성이 필요한 경우

ㅇ 시험 함정:
– Chain-of-Thought이 항상 정답률을 높인다고 오해
– 단순 분류 문제에도 무조건 적용 가능하다고 착각

ㅇ 시험 대비 “패턴 보기” 예시:
O: “모델이 단계별로 사고 과정을 출력하도록 유도한다.”
X: “모델이 반드시 한 줄로 답을 출력하도록 한다.”

================================

4. Prompt Tuning

ㅇ 정의:
– 프롬프트를 학습 가능한 벡터로 변환하여 모델 파라미터는 고정한 채 최적화하는 기법.

ㅇ 특징:
– 소량의 태스크별 데이터로 효율적 튜닝 가능
– 모델 전체 파라미터 업데이트가 필요 없음
– 특정 태스크에 특화된 프롬프트 벡터 생성

ㅇ 적합한 경우:
– 대규모 모델을 메모리·연산 제약 하에서 특정 태스크에 맞추고자 할 때
– 파인튜닝 대비 빠르고 경제적인 성능 향상이 필요한 경우

ㅇ 시험 함정:
– Prompt Tuning이 일반적인 수동 프롬프트 작성과 동일하다고 오해
– 모델 파라미터를 전혀 사용하지 않는다고 잘못 이해

ㅇ 시험 대비 “패턴 보기” 예시:
O: “학습 가능한 프롬프트 벡터를 최적화하여 모델 성능을 높인다.”
X: “모델 전체를 재학습하는 방식이다.”

ㅁ 추가 학습 내용

[학습 정리]
In-context Learning: 모델이 입력 프롬프트 내에 주어진 예시나 설명을 기반으로 문제 해결 방식을 학습하는 개념. Few-shot, Zero-shot 방식이 여기에 포함됨.
Few-shot: 프롬프트에 몇 개의 예시를 포함하여 모델이 패턴을 학습하도록 하는 방식.
Zero-shot: 예시 없이 지시문만으로 모델이 답변을 생성하는 방식.
Instruction Tuning: 사전 학습된 모델에 대해 다양한 지시문과 그에 대한 응답 데이터를 사용하여, 지시문 수행 능력을 강화하는 파인튜닝 방법.
Hard Prompt: 사람이 직접 작성한 명령문이나 질문 형태의 텍스트 프롬프트.
Soft Prompt: 사람이 작성하지 않고, 학습을 통해 얻어진 임베딩 벡터 형태의 프롬프트.
프롬프트 길이와 토큰 비용: 프롬프트가 길어질수록 토큰 사용량이 증가해 비용이 늘지만, 적절한 길이는 성능 향상에 기여할 수 있음.
Chain-of-Thought(CoT): 모델이 답을 내기 전에 중간 추론 과정을 단계별로 서술하도록 유도하는 기법.
Self-consistency: CoT를 여러 번 생성하여 다양한 추론 경로를 얻고, 그 결과를 비교해 가장 일관된 답을 선택하는 방법.
Prompt Tuning: 특정 작업에 맞춰 프롬프트를 학습하는 방법.
Prefix Tuning: 모델 입력의 앞부분에 학습된 벡터를 추가하여 특정 태스크에 맞게 조정하는 방법.
P-tuning v2: Prefix Tuning을 확장하여 더 효율적이고 다양한 태스크에 적용 가능하도록 개선한 방법.

[시험 대비 체크리스트]
– In-context Learning의 정의와 Few-shot, Zero-shot과의 관계를 설명할 수 있는가?
– Few-shot과 Zero-shot의 차이와 각각의 장단점을 구분할 수 있는가?
– Instruction Tuning의 목적과 과정, 효과를 설명할 수 있는가?
– Hard Prompt와 Soft Prompt의 차이를 명확히 구분할 수 있는가?
– 프롬프트 길이에 따른 토큰 비용과 성능 간 트레이드오프를 이해하고 있는가?
– Chain-of-Thought(CoT)의 개념과 장점을 설명할 수 있는가?
– Self-consistency 기법이 CoT의 성능을 어떻게 향상시키는지 설명할 수 있는가?
– Prompt Tuning, Prefix Tuning, P-tuning v2의 차이점과 특징을 비교할 수 있는가?
– 각 기법이 주로 사용되는 상황과 적용 예시를 제시할 수 있는가?

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*