OpenAI
이 페이지는 기계 번역되었습니다. 영어 원문 보기

OpenAI API를 활용한 프롬프트 엔지니어링 모범 사례

OpenAI 모델에 명확하고 효과적인 지침을 제공하는 방법

마지막 수정: 6 days ago

프롬프트 엔지니어링의 작동 방식

OpenAI 모델이 학습되는 방식 때문에, 특히 잘 작동하고 더 유용한 모델 출력을 이끌어내는 특정 프롬프트 형식이 있습니다. 프롬프팅 팁을 시작하기에는 보통 OpenAI 공식 프롬프트 엔지니어링 가이드가 가장 좋습니다.

아래에서는 저희가 잘 작동한다고 판단한 여러 프롬프트 형식을 소개하지만, 작업에 더 잘 맞을 수 있는 다른 형식도 자유롭게 탐색해 보세요.

경험칙 및 예시

참고: “{text input here}”는 실제 텍스트/컨텍스트를 위한 플레이스홀더입니다.

1. 최신 모델 사용하기

최상의 결과를 위해 일반적으로 최신의 가장 뛰어난 모델을 사용하는 것을 권장합니다. 새로운 모델일수록 프롬프트 엔지니어링이 더 쉬운 경향이 있습니다.


참고: 추론 모델에 프롬프트를 작성하는 것과 GPT 모델에 프롬프트를 작성하는 것 사이에는 고려해야 할 몇 가지 차이가 있습니다. 자세한 내용은 여기에서 확인하세요.

2. 지침을 프롬프트의 시작 부분에 두고 ### 또는 """를 사용해 지침과 컨텍스트를 구분하세요.

덜 효과적 ❌:

아래 텍스트를 가장 중요한 요점의 글머리 기호 목록으로 요약하세요.

{text input here}

더 나음 ✅:

아래 텍스트를 가장 중요한 요점의 글머리 기호 목록으로 요약하세요.

텍스트: """
{text input here}
"""

3. 원하는 컨텍스트, 결과, 길이, 형식, 스타일 등에 대해 최대한 구체적이고 설명적으로 자세히 작성하세요.

컨텍스트, 결과, 길이, 형식, 스타일 등에 대해 구체적으로 작성하세요.

덜 효과적 ❌:

OpenAI에 관한 시를 쓰세요. 

더 나음 ✅:

최근 DALL-E 제품 출시(DALL-E는 텍스트를 이미지로 변환하는 ML 모델)에 초점을 맞춰, {famous poet}의 스타일로 OpenAI에 관한 짧고 영감을 주는 시를 쓰세요.

4. 예시를 통해 원하는 출력 형식을 명확히 설명하세요.

덜 효과적 ❌:

아래 텍스트에 언급된 엔터티를 추출하세요. 다음 4가지 엔터티 유형을 추출하세요: 회사 이름, 사람 이름, 특정 주제, 테마.

텍스트: {text}

보여주고 설명하세요. 모델은 구체적인 형식 요구 사항을 보여줄 때 더 잘 반응합니다. 또한 이렇게 하면 여러 출력을 프로그래밍 방식으로 안정적으로 파싱하기가 더 쉬워집니다.

더 나음 ✅:

아래 텍스트에 언급된 중요한 엔터티를 추출하세요. 먼저 모든 회사 이름을 추출한 다음, 모든 사람 이름을 추출하고, 그다음 콘텐츠에 맞는 특정 주제를 추출한 뒤, 마지막으로 전반적인 일반 주제를 추출하세요.

원하는 형식:
회사 이름: <comma_separated_list_of_company_names>
사람 이름: -||-
특정 주제: -||-
일반 주제: -||-

텍스트: {text}

5. 제로샷으로 시작하고, 그다음 퓨샷을 시도하며, 둘 다 효과가 없으면 파인튜닝하세요.

✅ 제로샷

아래 텍스트에서 키워드를 추출하세요.

텍스트: {text}

키워드:

✅ 퓨샷 - 몇 가지 예시 제공하기

아래 해당 텍스트에서 키워드를 추출하세요.

텍스트 1: Stripe은 웹 개발자가 웹사이트와 모바일 애플리케이션에 결제 처리를 통합하는 데 사용할 수 있는 API를 제공합니다.
키워드 1: Stripe, 결제 처리, API, 웹 개발자, 웹사이트, 모바일 애플리케이션
##
텍스트 2: OpenAI는 텍스트를 이해하고 생성하는 데 매우 뛰어난 최첨단 언어 모델을 학습시켰습니다. 당사의 API는 이러한 모델에 대한 액세스를 제공하며, 언어 처리가 포함된 사실상 모든 작업을 해결하는 데 사용할 수 있습니다.
키워드 2: OpenAI, 언어 모델, 텍스트 처리, API.
##
텍스트 3: {text}
키워드 3:

✅파인튜닝: 파인튜닝 모범 사례는 여기에서 확인하세요.

6. “군더더기 많고” 부정확한 설명 줄이기

덜 효과적 ❌:

이 제품 설명은 몇 문장 정도로 비교적 짧아야 하며, 너무 길지 않아야 합니다.

더 나음 ✅:

이 제품을 3~5문장으로 된 단락으로 설명하세요.

7. 하지 말아야 할 것만 말하지 말고, 대신 무엇을 해야 하는지 말하세요.

덜 효과적 ❌:

다음은 에이전트와 고객 간의 대화입니다. 사용자 이름이나 비밀번호를 묻지 마세요. 반복하지 마세요.

고객: 제 계정에 로그인할 수 없습니다.
에이전트:

더 나음 ✅:

다음은 에이전트와 고객 간의 대화입니다. 에이전트는 PII와 관련된 질문은 하지 않으면서, 문제를 진단하고 해결책을 제안하려고 합니다. 사용자 이름이나 비밀번호와 같은 PII를 묻는 대신 사용자를 도움말 문서 www.samplewebsite.com/help/faq로 안내하세요.

고객: 제 계정에 로그인할 수 없습니다.
에이전트:

8. 코드 생성 관련 - “선행 단어”를 사용해 모델을 특정 패턴으로 유도하세요.

덜 효과적 ❌:

# 다음을 수행하는 간단한 Python 함수를 작성하세요
# 1. 마일 단위의 숫자를 입력받습니다
# 2. 마일을 킬로미터로 변환합니다

아래 코드 예시에서 “import”를 추가하면 모델에 Python으로 작성을 시작해야 한다는 힌트를 줍니다. (마찬가지로 “SELECT”는 SQL 문의 시작을 알리는 좋은 힌트입니다.)

더 나음 ✅:

# 다음을 수행하는 간단한 Python 함수를 작성하세요
# 1. 마일 단위의 숫자를 입력받습니다
# 2. 마일을 킬로미터로 변환합니다

import

9. ‘무엇이든 생성’ 기능 사용하기

개발자는 ‘무엇이든 생성’ 기능을 사용해 작업이나 예상되는 자연어 출력을 설명하고, 이에 맞춤화된 프롬프트를 받을 수 있습니다.


‘무엇이든 생성’ 기능 사용 방법에 대해 자세히 알아보세요.

매개변수

일반적으로 모델 출력을 변경하는 데 가장 흔히 사용되는 매개변수는 `model``temperature`입니다.

  1. `model` - 성능이 더 높은 모델은 일반적으로 비용이 더 많이 들고 지연 시간이 더 길 수 있습니다.

  2. `temperature` - 모델이 가능성이 낮은 토큰을 얼마나 자주 출력하는지를 나타내는 척도입니다. temperature가 높을수록 출력은 더 무작위적이고, 보통 더 창의적입니다. 하지만 이는 “진실성”과 같지 않습니다. 데이터 추출 및 진실한 Q&A와 같은 대부분의 사실 기반 사용 사례에는 temperature 0이 가장 좋습니다.

  3. `max_completion_tokens` (최대 길이) - 출력 길이를 제어하는 것이 아니라 토큰 생성을 강제로 중단하는 한도입니다. 이 한도에 자주 도달하지 않는 것이 이상적입니다. 모델은 완료되었다고 판단하거나 사용자가 정의한 중지 시퀀스에 도달하면 멈추기 때문입니다.

  4. `stop` (중지 시퀀스) - 생성되면 텍스트 생성을 멈추게 하는 문자(토큰) 집합입니다.

다른 매개변수 설명은 API 참조를 확인하세요.

이 문서가 도움이 되었나요?