gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

IT 트렌드/AI

프롬프트 엔지니어, 프롬프트 엔지니어링의 개념

gbmin 2023. 6. 12. 23:58

ChatGTP 로 새로운 세상으로 변화하고있다. 여러 직업들이 AI 에 의해 없어질거라고 우려의 목소리가 많지만 이에 맞춰 앞으로 새로운 직업이 유망직종으로 각광 받기도 한다. 그중 하나가 "프롬프트 엔지니어"다. 실 생활에서 매일 수많은 프롬프트에 마주한다. 이메일을 쓸 때, 받는 사람 란에 무엇을 입력할지에 대한 힌트, 구글이나 네이버의 검색창의 자동 완성 기능, 스마트폰에서 단어 자동 완성 기능 등, 이 모든 것이 프롬프트의 예시이다. 이러한 프롬프트를 만드는 과정, 즉 '프롬프트 엔지니어링'에 대해 정리해보고자 한다.

- 목차

1. 프롬프트 엔지니어링 이란?

2. 프롬프트 엔지니어링의 중요성

3. 프롬프트 엔지니어링의 예시

4. 프롬프트 엔지니어링 과정

1. 프롬프트 엔지니어링 이란?

프롬프트 엔지니어링(Prompt Engineering)은 특정 동작, 반응, 또는 결과를 유도하도록 설계된 입력이나 신호를 만드는 과정을 의미한다. 이 용어는 사용자 경험 디자인, 인터랙션 디자인, 소프트웨어 개발, 인공지능, 머신러닝 등 여러 분야에서 사용된다.
예를 들어, 대화형 AI 시스템에서 프롬프트 엔지니어링은 사용자의 질문에 따라 적절한 대답을 제공하도록 AI를 학습시키는 프로세스를 포함할 수 있다. 이는 사용자에게 특정한 질문이나 명령을 하도록 유도하는 프롬프트를 제공하거나, 시스템이 적절하게 반응할 수 있도록 훈련 데이터를 공급하는 것을 포함한다. 프롬프트 엔지니어링은 신중하게 설계되어야 하며, 그 결과가 사용자와 시스템 간의 성공적인 상호작용에 매우 중요하다. 잘못된 프롬프트는 사용자의 혼란을 초래하거나, 원치 않는 결과를 만들어낼 수 있다. 반대로, 잘 설계된 프롬프트는 사용자가 원하는 정보를 빠르게 제공하고, 불필요한 단계를 줄여 시스템 사용의 효율성을 향상시킨다

프롬프트 엔지니어링은 사용자 시스템 사용에 대한 불편을 개선하고, 디지털 제품이나 서비스의 가치를 높이는 데 매우 중요한 역할을 한다.

2. 프롬프트 엔지니어링의 중요성

잘 설계된 프롬프트는 사용자가 어떤 작업을 수행하려고 할 때 필요한 모든 정보를 제공하며, 어떤 동작을 취하면 좋을지 명확하게 알려준다. 예를 들어, 잘 설계된 검색 엔진의 자동 완성 기능은 사용자가 찾고자 하는 정보를 빠르게 찾을 수 있도록 돕는다. 반면, 잘못 설계된 프롬프트는 사용자에게 혼란을 줄 수 있다. 예를 들어, 사용자가 입력한 검색어와 관련이 없는 단어를 추천하거나, 입력한 정보를 잘못 해석하는 자동 완성 기능은 사용자의 편의를 해칠수 있다.
이처럼, 프롬프트 엔지니어링은 사용자와 디지털 시스템 간의 상호작용을 돕는데 중요한 역활을 수행 한다. 사용자 사용 편의성을 개선하고, 시스템의 효율성을 향상시키는 데 큰 역할을 하는 이 기술은 앞으로 더욱 발전하고 활용될 것으로 전망되고있다.


3. 프롬프트 엔지니어링의 예시

챗봇

챗봇은 대화형 인터페이스로, 사용자의 질문에 적절하게 반응하는 프롬프트를 제공한다. 예를 들어, 고객센터에서 운영 하는 챗봇은 사용자가 제품에 대한 문제를 제기했을 때, 문제 해결을 위한 질문을 하는 프롬프트를 생성한다. 이런 식으로, 프롬프트는 챗봇이 사용자의 문제를 이해하고, 적절한 해결책을 제안하는 데 도움이 된다. 잘 설계된 프롬프트는 챗봇을 통한 고객지원을 원활하게 만들어준다.

자동 완성

이 기능은 사용자가 검색어나 텍스트를 입력하는 동안, 사용자가 입력하려고 하는 나머지 부분을 예측한다. 이러한 프롬프트는 사용자가 원하는 정보를 더 빠르게 찾을 수 있도록 돕는다.
구글, 네이버와 같은 검색엔진에서 주로 사용하며 스마트폰의 OS 에 내장된 기능이나 카카오톡 같은 채팅 앱에서 사용자의 편의성을 향상 시켜준다.

인터랙티브 튜토리얼(Interactive Tutorial)

새로운 소프트웨어나 앱을 배울 때 매우 유용한 도구다. 컴퓨터 기반의 프로그램이나 애플리케이션 형태로 제공되는데, 이러한 튜토리얼은 학습자가 개념을 이해하고 실습할 수 있는 다양한 상호작용 요소를 포함하고 있다. 예를 들어, 학습자는 튜토리얼 내에서 시뮬레이션, 퀴즈, 문제 해결 과정 등과 같은 활동을 수행하면서 실제로 학습할 수 있다. 이러한 프롬프트는 사용자가 새로운 시스템을 빠르게 이해하고 효과적으로 사용할 수 있도록 돕는다. 구글 고객센터 문제 해결 도구나 MS Azure 의 서비스 튜토리얼이 잘구현된 예시 이다.


4. 프롬프트 엔지니어링 과정

프롬프트 엔지니어링은 여러 단계로 구성되어 있다. 먼저, 명확한 목표를 설정한다. 사용자가 원하는 반응이나 행동이 무엇인지 결정하는 과정이다. 이후, 이 목표를 달성하기 위한 프롬프트를 설계한다. 프롬프트는 사용자의 주목을 끌고, 원하는 행동을 유도하기 위한 텍스트, 그래픽, 오디오, 비디오 등 다양한 형식으로 표현 할수 있다. 프롬프트 설계 후에는 테스트를 거친다. 사용자가 프롬프트에 어떻게 반응하는지 확인하고, 프롬프트가 원하는 반응을 유도하는지, 사용자가 불편해 하지 않는지 확인한다. 테스트 결과를 바탕으로 프롬프트를 수정하고, 이 과정을 반복하여 최적의 프롬프트를 만들어 나간다.


프롬프트 엔지니어링에서는 중요한 요소는, 사용자의 필요와 기대를 파악하는 것이 중요하다. 사용자가 어떤 정보나 도움을 필요로 하는지, 어떤 결과를 기대하는지 이해하는 것은 효과적인 프롬프트를 만드는 데 중요하다. 또한, 프롬프트는 사용자가 직면한 특정 문맥과 상황에 맞춰져야 한다. 마지막으로, 사용자의 의도를 파악하는 것이 중요합니다. 사용자가 원하는 결과를 이룰 수 있도록 돕는 프롬프트를 제공하는 것은 프롬프트 엔지니어링의 핵심이다.

프롬프트 엔지니어링 과정 요약

1. 목표 설정: 시스템의 목적과 기능을 정의
2. 데이터 수집: 적절한 데이터셋을 수집하고 정제
3. 프롬프트 설계: GPT 모델에 전달될 프롬프트를 설계
4. 모델 훈련: 수집한 데이터와 프롬프트를 사용하여 GPT 모델을 훈련
5. 평가 및 튜닝: 생성된 출력을 평가하고 필요한 경우 프롬프트를 조정
6. 시스템 통합: 훈련된 모델을 실제 시스템에 통합
7. 피드백 수집: 사용자의 피드백을 수집하여 시스템을 개선
8. 유지 보수: 모델 성능을 모니터링하고 필요한 경우 수정과 업데이트를 수행


이러한 과정과 요소들을 고려하면서 프롬프트 엔지니어링을 수행하면, 사용자의 편의성을 향상시키고 디지털 상호작용을 원활하게 만드는 데 도움이 된다. 이런 접근법은 사용자 중심의 디자인 원칙을 따르며, 사용자와 시스템 간의 효과적인 소통을 지향해야 한다.