프롬포트 엔지니어링
프롬포트 엔지니어링이란?
- 사용자가 원하는 결과물을 인공지능으로부터 정확하게 얻기 위해 효과적인 명령어(프롬포트)를 설계하는 작업
- 장기 기억을 가지지 못하는 생성형 인공지능의 한계를 극복하고 이를 통해 더 좋은 추론과 응답을 끌어낼 수 있도록 만들어 주는 기술
프롬포트를 어떻게 사용하고 있나?
- GPT를 제어할 수 있는 방법?
- 자연어를 어떻게 쓰느냐에 따라서 달라짐
- 내가 어떻게 하냐에 따라서 효과적인 답변을 도출해낼 수 있는지 없는지가 달려있음
- 그래서 해당 원리를 알고 있어야지 정확성이 있는 답변을 받을 수가 있는 것
- 자연어를 어떻게 쓰느냐에 따라서 달라짐
우리가 일상에서 사용하는 컴퓨터의 지능 수준을 사람의 나이로 표현하면 몇 살일까?
→ 4살
4살에게 심부름을 시킬라면 어떻게 해야될까?
- 하나하나 자세히 알려준다.
- 순서대로, 쉽게 알려준다.
- 예시를 들어준다, 이해를 했는지 확인
위와 같은 답변은 코드를 작성하는 방식과 같다.
기본원칙
- 주제가 바뀔 때마다 새로운 채팅을 만들어야 한다.
- 일관성 있는 주제로 얘기해야 답변의 정확성이 올라간다.
- 질문 하나하나를 변수처럼 인식하고, 새로운 질문을 할 때마다 생성형 인공지능은 첫 질문부터 마지막질문까지 다시 읽는 과정을 거친다. → 결론은 기억을 다 하고 있는 상태가 아니라는 것
- 예를들어 계산기 역할을 해주는 프로그램을 만들어 달라고 하다가, 서울 맛집을 알려달라고 한다면?
- 답변은 해주겠다만, 일관성이 없기 때문에 답변의 정확성이 떨어질 수 있음
- 멀티턴과 싱글턴을 이해한다.
- 학습데이터의 한계성에 대해 이해한다.
- 줄 바꿈을 사용한다.
Few Shot enginerring (퓨샷 엔지니어링)
- 인공지능이 특정 작업을 수행할 때 소수의 예시만으로도 학습 및 이해할 수 있도록 효과적인 프롬포트를 구성하는 기술
- AI가 처음 접하는 작업이나 상황에 대해 몇 가지 예시만 주어도 정확한 답을 생성하도록 도와주는 방식
Role assignment prompting (역할지정 기법)
- 인공지능에게 특정 역할을 미리 정해준 다음, 원하는 작업을 지시하는 방법
- AI가 좀 더 명확한 맥락을 가지고, 구체적이고 목적에 맞는 결과를 제공할 수 있음
프롬프트 구조화
- 한글은 영어보다 문맥과 뉘앙스가 풍부해 오해가 발생하기 쉬움
- 한글 프롬프트일수록 논리적 구조와 단계적 지시가 필수적
4S Principles (원칙)
AI 프롬프트 작성을 위한 네 가지 기준
- Single 단일 작업 요청
- 하나의 명령이나 작업만 요청. 복수 요청은 결과 품질을 떨어뜨릴 수 있음
- Specific 구체적인 내용
- 원하는 작업에 대해 명확하고 구체적으로 설명
- Short 짧고 간결하게
- 불필요한 서술 없이 핵심 내용만 포함해 짧게 작성
- Surround 맥락을 제공
- 코드가 어떤 상황에서 쓰이는지, 입/출력 조건 등을 함께 설명
프롬프트는 마크다운 형식을 사용하는 것이 좋다
→ 생성형 AI가 뱉어내는 답변의 형식또한 마크다운이기 때문
질문 하나하나 마크다운으로 언제 작성해서 하냐?
- 웹노트 사용을 추천 (ex, 노션, 컨플.. 등)
- 해당 노트에 자주 사용하는 프롬프트를 저장해두고 복사해서 사용하자
AI 페어 프로그래밍
AI 페어 프로그래밍이란?
- 사람 개발자와 AI 도우미가 함께 코드를 작성하는 방식
- 전통적인 페어 프로그래밍(2명이 함께 코딩)의 연장선
- AI는 코드 작성, 오류 수정, 문서화 등을 도와주는 역할
AI 페어 프로그래밍 장점
- 인공지능이 코드 자동완성 및 오류 감지
- 반복 작업 시간을 절약할 수 있음
- 다양한 언어와 라이브러리에 대한 빠른 접근이 가능
- 코드 리뷰나 문서화까지 자동으로 만들어 지원
코드 작성 방식의 진화
- 수기 코드 작성
- 텍스트 기반 개발 환경 (IDE 이전)
- 통합 개발 환경 IDE 등장
- 코드 추천 & 자동 완성 강화
- AI 페어 프로그래밍