상세 컨텐츠

본문 제목

기본 프롬프트 설계

프롬프트 공학

by 달의 언어 2023. 3. 21. 19:39

본문

기본 프롬프트 설계

  • 데이터 준비: 프롬프트를 설계하기 전에 사용할 데이터를 수집하고 정제해야 합니다. 데이터는 작업과 관련이 있어야 하며, 품질이 좋아야 합니다. 데이터의 양과 다양성도 중요합니다.
  • 작업 정의: 프롬프트가 수행할 작업을 명확하게 정의해야 합니다. 작업은 입력과 출력의 형식을 결정합니다. 예를 들어 질문-답변, 요약, 번역 등의 작업이 있습니다.
  • 모델 선택: 프롬프트를 실행할 인공지능 모델을 선택해야 합니다. 모델은 작업에 적합하고 성능이 좋아야 합니다. 예를 들어 GPT-3와 같은 대형 언어 모델을 사용할 수 있습니다.
  • 프롬프트 구성: 프롬프트는 입력과 출력 사이에 있는 명령어입니다. 프롬프트는 구체적이고 작업 및 데이터와 관련이 있어야 합니다. 프롬프트는 모델에게 원하는 결과물을 생성하도록 유도하는 역할을 합니다.
  • 성능 평가: 프롬프트가 생성한 결과물을 평가해야 합니다. 평가는 사용자의 요구사항에 따라 다양한 지표로 할 수 있습니다. 예를 들어 정확도, 정밀도, 재현율 등의 지표가 있습니다. 평가 결과에 따라 프롬프트를 개선할 수 있습니다.

프롬프트 구성요소

<출처>: dair-ai/Prompt-Engineering-Guide

 

GitHub - dair-ai/Prompt-Engineering-Guide: Guides, papers, lecture, and resources for prompt engineering

:octopus: Guides, papers, lecture, and resources for prompt engineering - GitHub - dair-ai/Prompt-Engineering-Guide: Guides, papers, lecture, and resources for prompt engineering

github.com

 

예를 들어, 영화 추천 시스템을 만든다고 가정해봅시다. 데이터 준비 단계에서는 영화 데이터셋과 사용자 데이터를 수집하고, 이를 정제하여 사용할 수 있는 형태로 가공합니다. 작업 정의 단계에서는 사용자가 선호하는 영화를 예측하는 작업을 수행합니다. 모델 선택 단계에서는 협업 필터링(Collaborative Filtering) 알고리즘을 사용할 수 있습니다. 프롬프트 구성 단계에서는 "유저의 이전 선호 영화와 유사한 영화를 추천해주세요"와 같은 형식의 프롬프트를 구성합니다. 마지막으로 성능 평가 단계에서는 추천된 영화가 실제로 사용자의 선호에 부합하는지를 평가하여 시스템의 성능을 개선합니다.

협업 필터링(Collaborative Filtering)은 사용자들의 과거 행동 정보를 기반으로 사용자의 관심사를 예측하는 방법 중 하나입니다. 이 방법은 사용자들이 공통적으로 선호하는 아이템을 찾아서 이를 추천하는 방식입니다.

예를 들어, 영화 추천 시스템에서는 사용자가 시청한 영화 정보를 바탕으로 해당 사용자와 비슷한 취향을 가진 다른 사용자들이 시청한 영화를 추천합니다. 이를 위해서는 먼저 사용자들 간의 유사도를 계산해야 합니다. 유사도는 일반적으로 코사인 유사도(Cosine Similarity) 등의 방법으로 계산됩니다.

유사도를 계산한 후에는, 해당 사용자와 가장 유사한 사용자들이 시청한 영화를 추천합니다. 이 방법은 과거 데이터를 기반으로 추천을 하기 때문에 새로운 사용자나 아이템에 대해서는 정확한 예측을 하기 어렵습니다. 이러한 한계를 극복하기 위해서는 다양한 방법을 활용하는 하이브리드 방식 등이 사용될 수 있습니다.

협업 필터링은 사용자의 행동 정보를 바탕으로 추천을 하기 때문에, 사용자들이 자발적으로 정보를 제공해야 합니다. 따라서 사용자들의 개인 정보 보호 문제와 관련된 이슈도 존재합니다.

단계 설명
데이터 준비 사용할 데이터를 수집하고 정제합니다. 데이터는 작업과 관련이 있으며, 품질이 좋아야 합니다.
작업 정의 프롬프트가 수행할 작업을 명확하게 정의합니다.
모델 선택 프롬프트를 실행할 인공지능 모델을 선택합니다. 모델은 작업에 적합하고 성능이 좋아야 합니다.
프롬프트 구성 프롬프트는 입력과 출력 사이에 있는 명령어입니다. 프롬프트는 구체적이고 작업 및 데이터와 관련이 있어야 합니다.
성능 평가 프롬프트가 생성한 결과물을 평가합니다.

예시: 영화 리뷰를 긍정적인지 부정적인지 분류하는 작업

단계 설명
데이터 준비 영화 리뷰와 그에 해당하는 라벨(긍정 또는 부정)로 이루어진 데이터셋을 준비합니다.
작업 정의 영화 리뷰 텍스트를 입력으로 받아서 긍정 또는 부정으로 분류하는 작업입니다.
모델 선택 GPT-3와 같은 대형 언어 모델을 선택합니다.
프롬프트 구성 영화 리뷰 감성 분석 리뷰 텍스트: {영화 리뷰} 감성 라벨:
성능 평가 예측된 결과와 실제 라벨을 비교하여 정확도 등의 지표로 평가합니다.

영화 리뷰 감성 분석 리뷰 텍스트: 스토리도 연기도 별로였다. 시간 낭비다.
감성 라벨: 부정
영화 리뷰 감성 분석 리뷰 텍스트: 잘 만든 영화다. 배우들의 연기력이 돋보인다.
감성 라벨: 긍정

관련글 더보기

댓글 영역