와미의 일상/AI 정복하기

노베이스 프롬프트 엔지니어링 독학(3) - 데이터 유형별 프롬프트 활용

와미쀼 2023. 11. 27. 22:04

드디어 좀 어려운 내용들이 나오는데요. 오늘은 자연어 모델뿐만 아니라 이미지/비정형 데이터 처리 등 유형별로 다른 프롬프트의 활용을 알아볼 거예요. 포스팅 하나로는 끝날 것 같지 않지만, 열심히 해봐요!

 

 

프롬프트 엔지니어링 - 유형별 활용
이미지 데이터 처리를 배우고나면 바꿔야지..


 

노베이스 프롬프트 엔지니어링 독학 - 3) 데이터 유형별 프롬프트 활용

 

목차

 

1. 자연어 이해를 위한 프롬프트 디자인 전략

2. 이미지 및 비정형 데이터 처리를 위한 프롬프트 작성법

3. 코드, 표 등 다양한 형태의 데이터에 대한 활용법

4. 데이터 유형별 모델링과 결과 분석

이전글

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

자연어 이해를 위한 프롬프트 디자인 전략

 

자연어 처리는 텍스트를 이해하고 처리하는 작업입니다. 자연어 처리 프롬프트는 다음과 같은 특징을 가져야 합니다.

 

  • 명확하고 간결해야 합니다. 
    모델이 이해하기 쉽도록 프롬프트를 명확하고 간결하게 작성해야 합니다.

  • 모델의 목적을 명확하게 제시해야 합니다. 
    모델이 어떤 작업을 수행해야 하는지 프롬프트를 통해 명확하게 제시해야 합니다.

  • 모델의 제약 조건을 고려해야 합니다. 
    저의 짧은 지식으로 봤을 때, 가장 중요한 특징이 아닐까 싶습니다. 모델의 제약 조건을 고려했을 때 보다 양질의 답변을 얻을 수 있도록 설계된 것 같아요. 

    간단히 생각해 봐도 짧은 시간 안에 모델이 돌아가려면, 영역을 제한하여 그 안에서 움직이도록 하는 것이 효율적이니까요. 


텍스트 데이터의 활용 예시

 

  • 질문 응답: 텍스트 데이터를 사용하여 사용자의 질문에 답변
    "서울의 날씨는 어때요?"라는 질문에 "오늘 서울의 날씨는 흐리고 기온은 15도입니다."라고 답변

  • 요약: 텍스트 데이터를 요약하여 사용자가 쉽게 이해할 수 있는 형태로 제공 → 긴 논설기사를 짧게 요약

  • 번역: 텍스트 데이터를 다른 언어로 번역할 수 있습니다.

  • 생성: 텍스트 데이터를 사용하여 새로운 텍스트를 생성할 수 있습니다. (시, 소설, 코드, 이메일, 편지 등)

80점짜리 프롬프트와 100점짜리 프롬프트의 비교

 

80점짜리 프롬프트는 모델의 목적을 명확하게 제시하지만, 데이터의 특성이나 모델의 제약 조건을 고려하지 않은 프롬프트입니다.

 

반면, 100점짜리 프롬프트는 데이터의 특성과 모델의 제약 조건을 고려한 프롬프트입니다.

 

예를 들어, 다음은 80점짜리 프롬프트의 예입니다.

 

질문: "'The cat is on the mat'라는 문장을 한국어로 번역하세요."
 

이 프롬프트는 모델이 "The cat is on the mat"라는 문장을 한국어로 번역하는 작업을 수행해야 한다는 것을 명확하게 제시하지만, 데이터의 특성이나 모델의 제약 조건은 고려하지 않습니다.

 

예를 들어, 모델이 특정 언어를 처리하도록 설계되지 않은 경우 이 프롬프트를 사용할 수 없는 거죠.

 

자, 100점짜리 프롬프트의 예입니다.

 

질문: "'The cat is on the mat'라는 영어 문장을 한국어로 번역하세요. 단, 모델은 한국어와 영어만 처리할 수 있습니다."

 

 

이 프롬프트는 80점짜리 프롬프트와 동일한 작업을 수행해야 한다는 것을 명확하게 제시하면서도, 모델이 특정 언어만 처리할 수 있다는 제약 조건을 고려합니다.

 

지금은 간단한 예를 들었지만, 복잡한 요구조건이 입력될수록 제약조건을 걸었을 때 최적화된 효과를 확인하실 수 있을 거예요.

 

 

이미지 및 비정형 데이터 처리를 위한 프롬프트 작성법

 

우리가 흔히 사용하는 챗GPT의 경우 이미지 활용이 어렵지만, 이미지 및 비정형 데이터 역시 다양한 분야에서 활용될 수 있는데요.

  • 이미지 분류: 이미지에서 특정 물체나 개체를 식별하는 작업 → 이미지에서 사람, 자동차, 동물 등 식별
  • 이미지 검출: 이미지에서 특정 물체나 개체의 위치를 찾는 작업 → 이미지에서 사람의 얼굴이나 자동차의 번호판
  • 이미지 생성: 새로운 이미지를 생성하는 작업 → 텍스트 설명을 기반으로 이미지를 생성

     
  • 음성 인식: 음성으로부터 텍스트를 추출하는 작업 → 전화 통화나 회의 녹음을 텍스트로 변환
     

 

이미지나 비정형 데이터는 우리가 모델에 직접 입력하는 것이 아니기 때문에 효과적인 프롬프트 작성이 필요한데요.

 

이미지의 핵심 특징을 언급하고 모델이 더 정확한 설명을 생성하도록 유도하는 것이 중요하다고 하네요.

 

 

80점짜리 프롬프트와 100점짜리 프롬프트의 비교

 

 

"이미지에 있는 동물을 식별하세요." 

vs

"이미지에 있는 동물을 식별하세요. 단, 모델은 개, 고양이, 말만 처리할 수 있습니다."

 

마찬가지로 제약 조건을 걸었을 때 보다 최적화된 결과를 확인할 수 있습니다. 하지만 이미지 데이터에 있어서 어떠한 조건들이 적용될 수 있는지에 대한 개념자체가 없어서, 추가로 알아보겠습니다.

 


  • 이미지의 크기를 제한할 수 있습니다. "640x480 이하의 이미지만 처리해줘"

  • 이미지의 해상도를 제한할 수 있습니다. "300dpi 이상의 이미지만 처리해줘"

  • 이미지의 색상 범위를 제한할 수 있습니다. "RGB 색상만 처리해줘"

  • 이미지의 컨텐츠를 제한할 수 있습니다. "사람의 얼굴만 식별해줘"

  • 이미지의 위치를 제한할 수 있습니다. "이미지의 중앙에 있는 물체만 식별해줘"
 

코드, 표 등 다양한 형태의 데이터에 대한 프롬프트 활용법

 

코드나 표와 같은 구조화된 데이터에 대한 프롬프트 작성은 명확하고 구체적인 지시사항이 필요합니다. 모델이 원하는 작업을 이해하고 수행할 수 있도록 코드 또는 데이터에 대한 명확한 지시사항이 포함되어야 합니다.

 

데이터 처리나 프로그래밍과 관련된 프롬프트를 작성할 때, 입력 데이터에 대한 명확한 설명과 요청 사항이 있어야 모델이 원하는 결과를 생성할 수 있습니다.

 

  • 코드 이해: "이 코드의 의미를 설명하세요."

  • 코드 생성: "이 기능을 구현하는 코드를 작성하세요."

  • 표 분석: "이 표에서 특정 정보를 찾으세요."

  • 지도 분석: "이 지도를 사용하여 최단 경로를 찾으세요."

  • 센서 데이터 처리: "이 센서 데이터에서 이상 징후를 찾으세요."

 

"매 시간 알람이 울리는 코드" 작성요청 프롬프트의 좋은 예

매시간 알람이 울리는 코드를 작성하세요.

조건:
* 알람은 매시간 울립니다.
* 알람은 소리가 납니다.
* 알람은 '딩동' 소리가 납니다.

 

  • 목적을 명확하게 제시합니다. "매시간 알람이 울리는 코드를 작성하세요."라는 문장은 모델이 수행해야 할 작업을 명확하게 제시합니다.
  • 데이터 특성을 고려합니다. "알람은 소리가 납니다."라는 문장은 알람이 소리가 난다는 데이터 특성을 고려합니다.
  • 모델 제약 조건을 고려합니다. "알람은 '딩동' 소리가 납니다."라는 문장은 모델이 '딩동' 소리만 내는 알람을 생성하도록 제약 조건을 설정합니다.

이러한 구조적 특징을 통해 모델은 매시간 '딩동' 소리가 나는 알람을 생성할 수 있습니다.


나쁜 예

알람이 울리는 코드를 작성하세요.

 

  • 목적을 명확하게 제시하지 않습니다. "알람이 울리는 코드를 작성하세요."라는 문장은 모델이 수행해야 할 작업을 명확하게 제시하지 않습니다.
  • 데이터 특성을 고려하지 않습니다. 이 프롬프트는 알람이 어떤 소리가 나는지, 얼마나 자주 울리는지 등의 데이터 특성을 고려하지 않습니다.
  • 모델 제약 조건을 고려하지 않습니다. 이 프롬프트는 모델이 생성해야 하는 알람의 특성에 대한 제약 조건을 설정하지 않습니다.

이러한 구조적 특징을 통해 모델은 알람이 울리는 코드를 생성할 수 있지만, 그 코드의 품질이나 정확성은 보장할 수 없습니다.

 

 

각 데이터 유형에 대한 프롬프트 모델링과 결과 분석

 

아래와 같은 방식으로 각 데이터 유형에 맞춰 프롬프트 모델링과 결과 분석을 진행하면, 다양한 데이터 유형에 대응하며 모델을 효과적으로 개발하고 평가하는 방법을 이해할 수 있을 거예요.

 

데이터 유형 프롬프트 모델링 결과 분석
자연어 데이터 - 질문-답변 형식 프롬프트
- 키워드 기반 요약/추론 프롬프트
- 모델의 정확성 평가
- 잘못된 응답 분석
이미지 데이터 - 이미지 분류/설명 프롬프트
- 이미지 생성 프롬프트
- 생성된 이미지 품질 평가
- 이미지 분류 정확도 평가
코드/표 데이터 - 코드 생성 프롬프트
- 표 데이터 분석 프롬프트
- 생성된 코드 실행 가능성 평가
- 표 데이터 분석 결과 평가
기타 데이터 유형 - 음성 데이터 분석 프롬프트
- 시계열 데이터 예측 프롬프트
- 음성 데이터 분석 정확도 평가
- 시계열 데이터 예측 결과 평가

 

 

오늘은 다양한 데이터 유형에 따른 프롬프트 작성 및 활용법에 대해서 알아봤는데요. 아무래도 실전연습이 꼭 병행되어야 할 것 같습니다. 다음시간엔 텍스트 / 이미지 / 코드 / 표 등 다양한 데이터를 기반으로 실습을 해볼게요!

 

이전글

 

노베이스 문과아재의 프롬프트 엔지니어링 독학(1) - 기본 개념

 

노베이스 문과아재의 프롬프트 엔지니어링 독학(1) - 기본 개념

생성형 AI 들과 보다 원활하게 대화하기 위한 기술인 프롬프트 엔지니어링(prompt engineering)이라는 것이 있다고 알게 되었어요. 그래서 저는 그 당사자인 챗GPT로부터 도움을 받아, 오늘부터 프롬프

meant2b-wami.tistory.com

 

노베이스 프롬프트 엔지니어링 독학(2) - 프롬프트 디자인

 

노베이스 프롬프트 엔지니어링 독학(2) - 프롬프트 디자인

프롬프트 엔지니어링 두 번째 컨텐츠로, 프롬프트 디자인에 대해 알아보려고 합니다. 우리가 말을 할 때 육하원칙만 따라서 말하면 효율적인 의사전달이 되는 것처럼, 프롬프트는 어떤 사항들

meant2b-wami.tistory.com

반응형