본문 바로가기
카테고리 없음

[LLM] 프롬프트 엔지니어링

by BTC_One 2024. 6. 17.

베하~

1 Tier 팀의 One입니다!

 

요새 굉장히 핫한 AI 다들 주목하고 계실텐데요!

대규모 언어 모델 다루기의 시작! 프롬프트 엔지니어링에 대해서 알아 보고자 합니다

 

프롬프트란?

프롬프트는 특정 작업을 수행하도록 생성형 AI에 요청하는 자연어 텍스트인데요,

생성형 AI 시스템이 정확하고 연관성 있는 응답을 생성하기 위해, 프롬프트 엔지니어링이 나왔습니다

 

프롬프트를 체계적으로 설계하면, 보다 의미있고 유영한 결과물을 얻을 수 있기 때문에

프롬프트 엔지니어링에서는 AI 시스템에서 원하는 결과를 얻을 떄 까지 프롬프트를 지속적으로 조정합니다

 

💡 프롬프트 엔지니어링의 핵심

 

사용자의 요청을 정확하게 파악하고 그에 맞는 질문을 AI 모델에 적용한다.

- 사용자는 모델을 활용하여 사용자의 요청을 최적화된 프롬프트로 변환하는 능력을 갖추어야 한다.

- 프롬프트를 효과적으로 설계하기 위해, 사용하는 LLM 모델의 강점과 약점에 대한 깊은 이해가 필요하다.

 

프롬프트의 구성 요소

프롬프트는 크게 네가지의 구성 요소로 이루어져 있습니다.

 

1. 지시사항 (명령)

: 언어 모델이 실행해야 하는 특정 작업이나 명령을 명확하게 설명

 

2. 컨텍스트 (맥락)

: 언어 모델이 명령을 정확히 이해하고 응답할 수 있도록 외부 정보나 추가적인 맥락을 제공

 

3. 입력

: 사용자가 제공한 내용이나 질문을 포함하여 모델이 출력을 생성하는 기반이 되는 정보를 제공함

 

4. 출력

: 원하는 출력 유형이나 형식을 명시

 

프롬프트 엔지니어링 가이드

1. 짧고 명료하게 적기

: 지시문을 최대한 짧고 명료하게 입력하는 것이 중요하다.

핵심만 담아 구체적인 출력 지도 사항을 입력해야 한다.

👎 올여름 휴가는 어디로 가면 좋을까? 바다도 가고 싶은데 산도 좋을 것 같아서 고민이야. 국내 여행지를 추천받긴 했는데 요즘 해외여행도 끌리네.. 어딜 가야 하지?

8월에 가기 좋은 자연경관이 아름다운 해외 여행지 3개 추천해 줘.

 

2. 아웃풋을 확실하게 지시하기

: 어떠한 형식으로 출력해야 하는지 구체적으로 요청한다.

글자 수, 줄 단위와 같은 일반적인 형식부터, json, 표, html 포맷 등 사용자가 원하는대로 지정한다.

✅ 머신러닝의 종류를 비교하는 를 만들어줘.

 

3. 예시 들기

: 원하는 아웃풋이 확실하게 정해져있다면, 예시를 드는 것도 좋은 방법이다,

샘플 아웃풋과 함께 결과를 도출해달라고 요청하면, 이를 반영해 결과를 만들어 낸다.

👎 가상의 회사를 하나 만들어줘. 어떤 회사인지 간단히 설명도 덧붙여주면 좋겠어.

다음 포맷으로 가상의 패션 회사 "BBB"를 만들어봐.
- 기업명: 업스테이지
- 업종: 시스템 소프트웨어 개발 및 공급업
- 제품/사업: 인공지능(AI) 시스템 개발 및 공급업,소프트웨어 개발 및 제작,기타 시스템 운용 관련업

 

4. Task를 순서대로 정리하기

: 다양한 업무 처리에 활용할 때엔 해야할 일을 단계별로 정리하여 출력 순서를 알려주는 것이 좋다.

 

어떠한 내용을 바탕으로 보고서를 써달라고 지시하기 보단, 여러 Task를 순차적으로 정리해주는 것이 완성도 있는 결과를 만들어 낼 수 있다.

✅ Step 1. AI발전 과정의 주요 내용을 연도별로 시간의 흐름에 따라 표로 정리해줘.
Step2. AI가 다양한 산업에 적용될 수 있는 예시를 불렛 포인트로 정리해 줘
Step3. AI 산업의 성장 전망을 요약해서 알려줘

 

이때, 유의해야 할 점은 거대 언어 모델(LLM)이 명확히 판단할 수 있는 Task를 주어야 만족할 만한 결과가 나올 수 있다는 점이다.

 

정상적인 평가가 이루어지는 항목은 명확한 기준이 없기 때문에, 해당 여부를 판단할 수 있을 만한 기준을 제시해주는 것이 좋다. 

 

프롬프트 엔지니어링의 단점

모델의 입력에 대한 조정으로 성능을 개선하기 때문에 모델에 의존적이다.

- 프롬프트 엔지니어링으로 생성된 결과물이 항상 일관성이 있지는 않다.

- 모델의 크기와 연산량이 매우 크기 때문에, 모델을 학습하고 사용하는 데에 많은 컴퓨팅 자원과 시간이 필요하다.

 

프롬프트 엔지니어링 사용 사례

1. 주제별 전문 지식

: AI가 주제별 전문 지식으로 답해야하는 애플리케이션에서 중요한 역할을 한다.

예를 들어 의료 분야에서 복잡한 사례에 대해 감별 진단을 생성할 수 있다.

 

전문가는 증상과 환자의 세부 정보만 입력을 하면, 애플리케이션이 엔지니어링된 프롬프트를 사용하여 관련된 질병을 나열하도록 유도한다.

 

2. 비판적 사고

: 의사 결정 시나리오에서 가능한 모든 옵션을 나열하고 평가하여, 최상의 솔루션을 추천하도록 모델에 지시할 수 있다.

 

3. 창의성

: 시나리오를 작성할 때, 작가는 프롬프트 엔지니어링 모델을 사용하여 스토리에 대한 아이디어를 생성할 수 있다. 

인물, 배경 및 줄거리를 나열하도록 지시한 다음에 이러한 요소를 사용해 스토리를 전개할 수 있다.

 

여기까지 프롬프트 엔지니어링에 대해 기초적인 내용을 설명드렸는데요,

프롬프트 엔지니어링에는 제로샷, 퓨샷 등 여러 기법이 있습니다.

다음에 기회가 되면 소개 드릴게요! AI 전문가가 될 그날까지 달려가봅시다 

 

다음 포스팅에서 만나요 👋

 

댓글