본문 바로가기
AI/ChatGPT

ChatGPT학습방법

by wenect 2023. 9. 18.

system 역할에서 다음과 같은 지시를 할 수 있습니다:

  1. Domain Expertise: "You are an assistant trained in the information, products, and services offered by Exbody"라고 지시할 수 있습니다. 이렇게 하면 assistant는 Exbody 회사와 그 제품 및 서비스에 대한 전문 지식을 가진 것으로 가정하고 응답을 생성할 것입니다.
  2. Behavioral Context: "Your primary role is to answer questions related to Exbody's products, services, and general information"라고 추가 지시할 수 있습니다. 이로써 assistant는 Exbody에 관련된 질문에 특화된 답변을 제공하려고 노력할 것입니다.
  3. Data Source: "You have been trained on Exbody's official product manuals, FAQs, and customer service dialogues"라고 지시하면, assistant는 공식 문서와 자주 묻는 질문(FAQs), 고객 서비스 대화 등에서 정보를 얻은 것으로 가정하고 응답을 생성할 것입니다.
  4. Tone and Style: "Maintain a professional and informative tone when answering questions about Exbody"라고 지시하면, assistant는 질문에 답할 때 전문적이고 정보 제공의 측면에서 유용한 톤을 유지하려고 할 것입니다.

이러한 지시사항을 적절히 조합하여 assistant의 행동을 더욱 특정화할 수 있습니다.

https://platform.openai.com/docs/guides/gpt-best-practices/six-strategies-for-getting-better-results

 

OpenAI Platform

Explore developer resources, tutorials, API docs, and dynamic examples to get the most out of OpenAI's platform.

platform.openai.com

전술

위에 나열된 각 전략은 특정 전술로 예시될 수 있습니다. 이러한 전술은 시도해 볼 만한 아이디어를 제공하기 위한 것입니다. 이는 완전히 포괄적인 것은 아니며 여기에 제시되지 않은 창의적인 아이디어를 자유롭게 시도해 볼 수 있습니다.

전략: 명확한 지침 작성

전술: 더 관련성이 높은 답변을 얻으려면 쿼리에 세부정보를 포함하세요.

관련성이 높은 응답을 얻으려면 요청이 중요한 세부 정보나 컨텍스트를 제공하는지 확인하세요. 그렇지 않으면 의미하는 바를 추측하기 위해 모델에 맡기게 됩니다.

더 나쁜 더 나은
Excel에서 숫자를 어떻게 추가하나요? Excel에서 달러 금액 행을 어떻게 합산하나요? "Total"이라는 열의 오른쪽에 모든 합계가 끝나는 전체 행 시트에 대해 이 작업을 자동으로 수행하고 싶습니다.
대통령은 누구입니까? 2021년 멕시코 대통령은 누구였으며, 선거는 얼마나 자주 치러지나요?
피보나치 수열을 계산하는 코드를 작성하세요. 피보나치 수열을 효율적으로 계산하는 TypeScript 함수를 작성하세요. 코드에 자유롭게 주석을 달아 각 부분이 무엇을 하는지, 왜 그렇게 작성되었는지 설명합니다.
회의록을 요약합니다. 회의록을 한 문단으로 요약하세요. 그런 다음 발표자와 각 핵심 사항에 대한 마크다운 목록을 작성합니다. 마지막으로, 발표자가 제안한 다음 단계나 실행 항목이 있으면 나열하세요.

전술: 모델에게 페르소나를 채택하도록 요청

시스템 메시지는 응답에서 모델이 사용하는 페르소나를 지정하는 데 사용될 수 있습니다.

체계
내가 글을 쓰기 위해 도움을 요청하면, 당신은 모든 문단에 적어도 하나의 농담이나 장난스러운 코멘트가 포함된 문서로 답장을 보낼 것입니다.
사용자
제 시간에 짧은 시간 안에 배송을 완료한 강철 볼트 공급업체에 감사 편지를 작성하세요. 이를 통해 우리는 중요한 주문을 전달할 수 있었습니다.
놀이터에서 열기

전술: 구분 기호를 사용하여 입력의 개별 부분을 명확하게 나타냅니다.

삼중 따옴표, XML 태그, 섹션 제목 등과 같은 구분 기호는 다르게 처리될 텍스트 섹션을 구분하는 데 도움이 될 수 있습니다.

사용자
하이쿠를 사용하여 삼중따옴표로 구분된 텍스트를 요약합니다. """여기에 텍스트를 삽입하세요"""
놀이터에서 열기
체계
동일한 주제에 대한 한 쌍의 기사(XML 태그로 구분됨)가 제공됩니다. 먼저 각 기사의 주장을 요약해 보세요. 그런 다음 그들 중 어느 것이 더 나은 주장인지 표시하고 그 이유를 설명하십시오.
사용자
<article> 여기에 첫 번째 기사를 삽입하세요 </article> <article> 여기에 두 번째 기사를 삽입하세요 </article>
놀이터에서 열기
체계
논문 초록과 추천 제목이 제공됩니다. 논문 제목은 독자에게 논문 주제에 대한 좋은 아이디어를 제공해야 하지만 시선을 사로잡아야 합니다. 제목이 이러한 기준을 충족하지 않는 경우 5가지 대안을 제안하세요.
사용자
초록: 여기에 초록을 삽입하세요. 제목: 여기에 제목을 삽입하세요.
놀이터에서 열기

이와 같은 간단한 작업의 경우 구분 기호를 사용해도 출력 품질에 차이가 없을 수 있습니다. 그러나 작업이 복잡할수록 작업 세부 사항을 명확하게 하는 것이 더 중요합니다. 당신이 요구하는 것을 정확히 이해하기 위해 GPT가 작동하도록 만들지 마십시오.

전술: 작업을 완료하는 데 필요한 단계를 지정합니다.

일부 작업은 일련의 단계로 지정하는 것이 가장 좋습니다. 단계를 명시적으로 작성하면 모델이 단계를 더 쉽게 따라갈 수 있습니다.

체계
사용자 입력에 응답하려면 다음 단계별 지침을 따르십시오. 1단계 - 사용자는 삼중따옴표로 묶인 텍스트를 제공합니다. "요약: "이라는 접두어를 사용하여 이 텍스트를 한 문장으로 요약합니다. 2단계 - 1단계의 요약을 "번역: "이라는 접두어를 사용하여 스페인어로 번역합니다.
사용자
"""여기에 텍스트를 삽입하세요"""
놀이터에서 열기

전술: 예시 제공

모든 예에 적용되는 일반 지침을 제공하는 것은 일반적으로 예를 통해 작업의 모든 순열을 보여주는 것보다 더 효율적이지만, 경우에 따라 예를 제공하는 것이 더 쉬울 수도 있습니다. 예를 들어 명시적으로 설명하기 어려운 사용자 쿼리에 응답하는 특정 스타일을 모델에서 복사하려는 경우입니다. 이를 "퓨샷" 프롬프트라고 합니다.

체계
일관된 스타일로 대답하세요.
사용자
인내심을 가르쳐 주세요.
어시스턴트
가장 깊은 계곡을 만드는 강은 적당한 샘에서 흘러나온다. 가장 장엄한 교향곡은 단 하나의 음표에서 비롯됩니다. 가장 복잡한 태피스트리는 하나의 실에서 시작됩니다.
사용자
바다에 대해 가르쳐 주세요.
놀이터에서 열기

전술: 원하는 출력 길이를 지정합니다.

주어진 목표 길이의 출력을 생성하도록 모델에 요청할 수 있습니다. 목표 출력 길이는 단어, 문장, 단락, 글머리 기호 개수 등을 기준으로 지정할 수 있습니다. 그러나 특정 수의 단어를 생성하도록 모델에 지시하는 것은 높은 정밀도로 작동하지 않습니다. 모델은 특정 수의 단락 또는 글머리 기호가 포함된 출력을 보다 안정적으로 생성할 수 있습니다.

사용자
삼중따옴표로 구분하여 텍스트를 약 50단어로 요약합니다. """여기에 텍스트를 삽입하세요"""
놀이터에서 열기
사용자
삼중따옴표로 구분하여 2문단으로 텍스트를 요약하세요. """여기에 텍스트를 삽입하세요"""
놀이터에서 열기
사용자
3개의 글머리 기호로 삼중따옴표로 구분된 텍스트를 요약합니다. """여기에 텍스트를 삽입하세요"""
놀이터에서 열기

전략: 참조 텍스트 제공

전술: 모델에게 참조 텍스트를 사용하여 답변하도록 지시합니다.

현재 쿼리와 관련된 신뢰할 수 있는 정보를 모델에 제공할 수 있다면 제공된 정보를 사용하여 답변을 구성하도록 모델에 지시할 수 있습니다.

체계
질문에 답하려면 삼중따옴표로 구분된 제공된 기사를 사용하세요. 기사에서 답변을 찾을 수 없는 경우 "답변을 찾을 수 없습니다."라고 기재하세요.
사용자
<기사 삽입(각각 세 개의 따옴표로 구분)> 질문: <여기에 질문 삽입>
놀이터에서 열기

GPT의 컨텍스트 창이 제한되어 있다는 점을 감안할 때 이 전략을 적용하려면 질문하는 질문과 관련된 정보를 동적으로 조회할 수 있는 방법이 필요합니다. 임베딩을 사용하여 효율적인 지식 검색을 구현할 수 있습니다. 이를 구현하는 방법에 대한 자세한 내용은 "임베딩 기반 검색을 사용하여 효율적인 지식 검색 구현" 전술을 참조하세요 .

전술: 참조 텍스트의 인용으로 답변하도록 모델에 지시

입력이 관련 지식으로 보완된 경우 제공된 문서의 구절을 참조하여 답변에 인용을 추가하도록 모델에 요청하는 것은 간단합니다. 그러면 출력의 인용은 제공된 문서 내의 문자열 일치를 통해 프로그래밍 방식으로 확인할 수 있습니다.

체계
세 개의 따옴표로 구분된 문서와 질문이 제공됩니다. 귀하의 임무는 제공된 문서만을 사용하여 질문에 답하고 질문에 답하는 데 사용된 문서의 구절을 인용하는 것입니다. 문서에 이 질문에 답하는 데 필요한 정보가 포함되어 있지 않으면 "정보가 부족합니다."라고 적으십시오. 질문에 대한 답변이 제공되면 인용 주석을 달아야 합니다. 관련 구절을 인용하려면 다음 형식을 사용하십시오({"citation": …}).
사용자
"""<여기에 문서 삽입>""" 질문: <여기에 질문 삽입>
놀이터에서 열기

전략: 복잡한 작업을 더 간단한 하위 작업으로 분할

전술: 의도 분류를 사용하여 사용자 쿼리에 가장 관련성이 높은 지침을 식별합니다.

다양한 사례를 처리하기 위해 많은 독립적인 지침 세트가 필요한 작업의 경우 먼저 쿼리 유형을 분류하고 해당 분류를 사용하여 필요한 지침을 결정하는 것이 도움이 될 수 있습니다. 이는 특정 범주의 작업 처리와 관련된 고정 범주 및 하드코딩 지침을 정의하여 달성할 수 있습니다. 이 프로세스는 작업을 일련의 단계로 분해하기 위해 재귀적으로 적용될 수도 있습니다. 이 접근 방식의 장점은 각 쿼리에 작업의 다음 단계를 수행하는 데 필요한 지침만 포함되므로 단일 쿼리를 사용하여 전체 작업을 수행하는 것에 비해 오류율이 낮아질 수 있다는 것입니다. 프롬프트가 클수록 실행 비용이 더 많이 들기 때문에 비용이 절감될 수도 있습니다( 가격 정보 참조 ).

예를 들어 고객 서비스 애플리케이션의 경우 쿼리를 다음과 같이 유용하게 분류할 수 있다고 가정해 보겠습니다.

체계
고객 서비스 문의 사항이 제공됩니다. 각 쿼리를 기본 카테고리와 보조 카테고리로 분류합니다. 기본 및 보조 키를 사용하여 json 형식으로 출력을 제공합니다. 기본 카테고리: 청구, 기술 지원, 계정 관리 또는 일반 문의. 청구서 보조 범주: - 구독 취소 또는 업그레이드 - 지불 방법 추가 - 청구에 대한 설명 - 청구에 대한 이의 제기 기술 지원 보조 범주: - 문제 해결 - 장치 호환성 - 소프트웨어 업데이트 계정 관리 보조 범주: - 비밀번호 재설정 - 개인 정보 업데이트 - 계정 폐쇄 - 계정 보안 일반 문의 보조 카테고리: - 제품 정보 - 가격 - 피드백 - 상담원과의 상담
사용자
인터넷을 다시 작동시켜야 해요.
놀이터에서 열기

고객 문의 분류에 따라 다음 단계를 처리하기 위해 보다 구체적인 지침 세트가 GPT 모델에 제공될 수 있습니다. 예를 들어, 고객이 "문제 해결"에 대한 도움을 필요로 한다고 가정해 보겠습니다.

체계
기술 지원 맥락에서 문제 해결이 필요한 고객 서비스 문의가 제공됩니다. 다음을 통해 사용자를 도와주세요. - 라우터와 라우터 사이의 모든 케이블이 연결되어 있는지 확인하도록 요청하세요. 시간이 지남에 따라 케이블이 느슨해지는 것은 흔한 일입니다. - 모든 케이블이 연결되어 있고 문제가 지속되면 사용 중인 라우터 모델이 무엇인지 물어보세요. - 이제 장치를 다시 시작하는 방법을 알려줄 것입니다. -- 모델 번호가 MTD-327J인 경우 빨간색 버튼을 누르고 5초 동안 누른 다음 5분 동안 기다린 후 연결을 테스트합니다. -- 모델 번호가 MTD-327S인 경우 플러그를 뽑았다가 다시 연결한 다음 5분 정도 기다린 후 연결을 테스트하도록 안내합니다. - 기기를 다시 시작하고 5분 동안 기다린 후에도 고객의 문제가 지속되면 {"IT 지원 요청됨"}을 출력하여 IT 지원팀에 연결하세요.
사용자
인터넷을 다시 작동시켜야 해요.
놀이터에서 열기

모델은 대화 상태가 변경되는 시기를 나타내기 위해 특수 문자열을 내보내도록 지시받았습니다. 이를 통해 시스템을 상태에 따라 주입되는 명령이 결정되는 상태 머신으로 전환할 수 있습니다. 상태, 해당 상태와 관련된 명령 및 선택적으로 해당 상태에서 허용되는 상태 전환을 추적함으로써 덜 구조화된 접근 방식으로는 달성하기 어려운 사용자 경험 주위에 가드레일을 배치할 수 있습니다.

전술: 매우 긴 대화가 필요한 대화 애플리케이션의 경우 이전 대화를 요약하거나 필터링합니다.

GPT는 고정된 컨텍스트 길이를 가지므로 컨텍스트 창에 전체 대화가 포함되는 사용자와 어시스턴트 간의 대화는 무한정 지속될 수 없습니다.

이 문제에 대한 다양한 해결 방법이 있으며 그 중 하나는 대화의 이전 차례를 요약하는 것입니다. 입력 크기가 미리 결정된 임계 길이에 도달하면 대화의 일부를 요약하는 쿼리가 트리거될 수 있으며 이전 대화의 요약이 시스템 메시지의 일부로 포함될 수 있습니다. 또는 이전 대화가 전체 대화 전반에 걸쳐 백그라운드에서 비동기적으로 요약될 수 있습니다.

대체 솔루션은 현재 쿼리와 가장 관련성이 높은 대화의 이전 부분을 동적으로 선택하는 것입니다. "임베딩 기반 검색을 사용하여 효율적인 지식 검색 구현" 전술을 참조하세요 .

전술: 긴 문서를 부분적으로 요약하고 재귀적으로 전체 요약을 구성합니다.

GPT는 고정된 컨텍스트 길이를 가지므로 단일 쿼리에서 생성된 요약의 길이를 뺀 컨텍스트 길이보다 긴 텍스트를 요약하는 데 사용할 수 없습니다.

책과 같이 매우 긴 문서를 요약하려면 일련의 쿼리를 사용하여 문서의 각 섹션을 요약할 수 있습니다. 섹션 요약을 연결하고 요약하여 요약 요약을 생성할 수 있습니다. 이 프로세스는 전체 문서가 요약될 때까지 반복적으로 진행될 수 있습니다. 이후 섹션을 이해하기 위해 이전 섹션에 대한 정보를 사용해야 하는 경우 유용할 수 있는 추가 트릭은 책의 특정 지점 앞에 있는 텍스트의 연속 요약을 포함하는 동시에 해당 지점의 내용을 요약하는 것입니다. 책을 요약하기 위한 이 절차의 효율성은 GPT-3의 변형을 사용하는 OpenAI의 이전 연구 에서 연구되었습니다 .

전략: GPT에게 '생각'할 시간을 주세요.

전술: 성급하게 결론을 내리기 전에 모델에게 자체 솔루션을 찾도록 지시합니다.

때로는 결론에 도달하기 전에 첫 번째 원칙을 토대로 추론하도록 모델에 명시적으로 지시할 때 더 나은 결과를 얻을 수도 있습니다. 예를 들어 수학 문제에 대한 학생의 해결책을 평가하는 모델을 원한다고 가정해 보겠습니다. 이에 접근하는 가장 확실한 방법은 단순히 모델에 학생의 해법이 올바른지 물어보는 것입니다.

체계
학생의 해결 방법이 올바른지 확인하십시오.
사용자
문제 설명: 저는 태양광 발전소를 건설하고 있는데 재정 문제를 해결하는 데 도움이 필요합니다. - 토지 비용은 평방피트당 $100입니다. - 태양광 패널은 평방피트당 $250에 구입할 수 있습니다. - 연간 고정 비용은 $100,000이고 평방피트당 추가 비용은 $10인 유지 관리 계약을 협상했습니다. 평방 피트 수에 따른 운영 첫해. 학생의 해결 방법: x를 설치 면적(제곱 피트)이라고 하겠습니다. 1. 토지 비용: 100x 2. 태양광 패널 비용: 250x 3. 유지 관리 비용: 100,000 + 100x 총 비용: 100x + 250x + 100,000 + 100x = 450x + 100,000
어시스턴트
학생의 답이 맞습니다.
놀이터에서 열기

하지만 학생의 해법은 실제로는 옳지 않습니다! 모델이 먼저 자체 솔루션을 생성하도록 유도하여 모델이 이를 성공적으로 인식하도록 할 수 있습니다.

체계
먼저 문제에 대한 자신만의 해결책을 찾아보세요. 그런 다음 여러분의 해법을 학생의 해법과 비교하고 학생의 해법이 올바른지 평가해 보세요. 문제를 직접 해결하기 전에는 학생의 해결책이 올바른지 결정하지 마십시오.
사용자
문제 설명: 저는 태양광 발전소를 건설하고 있는데 재정 문제를 해결하는 데 도움이 필요합니다. - 토지 비용은 평방피트당 $100입니다. - 태양광 패널은 평방피트당 $250에 구입할 수 있습니다. - 연간 고정 비용은 $100,000이고 평방피트당 추가 비용은 $10인 유지 관리 계약을 협상했습니다. 평방 피트 수에 따른 운영 첫해. 학생의 해결 방법: x를 설치 면적(제곱 피트)이라고 하겠습니다. 1. 토지 비용: 100x 2. 태양광 패널 비용: 250x 3. 유지 관리 비용: 100,000 + 100x 총 비용: 100x + 250x + 100,000 + 100x = 450x + 100,000
어시스턴트
x를 평방 피트 단위의 설치 크기로 설정합니다. 1. 토지 비용: 100x 2. 태양광 패널 비용: 250x 3. 유지 관리 비용: 100,000 + 10x 총 비용: 100x + 250x + 100,000 + 10x = 360x + 100,000 학생의 답이 잘못되었습니다. 그들은 10x 대신 100x를 사용하여 유지 관리 비용 계산에 오류를 범했습니다. 운영 첫해의 정확한 총 비용은 360x + 100,000입니다.
놀이터에서 열기

전술: 내부 독백이나 일련의 쿼리를 사용하여 모델의 추론 과정을 숨깁니다.

이전 전략은 모델이 특정 질문에 대답하기 전에 문제에 대해 자세히 추론하는 것이 때로는 중요하다는 것을 보여줍니다. 일부 애플리케이션의 경우 모델이 최종 답변에 도달하기 위해 사용하는 추론 프로세스는 사용자와 공유하기에 부적절합니다. 예를 들어, 개인교습 애플리케이션에서 우리는 학생들이 스스로 답을 찾도록 격려하고 싶을 수 있지만, 학생의 솔루션에 대한 모델의 추론 프로세스를 통해 학생에게 답이 공개될 수 있습니다.

내면의 독백은 이를 완화하는 데 사용할 수 있는 전술입니다. 내부 독백의 개념은 사용자에게 숨겨야 하는 출력 부분을 쉽게 구문 분석할 수 있는 구조화된 형식으로 배치하도록 모델에 지시하는 것입니다. 그런 다음 사용자에게 출력을 제공하기 전에 출력을 구문 분석하고 출력의 일부만 표시합니다.

체계
사용자 쿼리에 응답하려면 다음 단계를 따르세요. 1단계 - 먼저 문제에 대한 자신만의 해결책을 찾아보세요. 학생의 해결책이 틀릴 수 있으므로 의존하지 마십시오. 이 단계의 모든 작업을 삼중따옴표(""")로 묶습니다. 2단계 - 학생의 해법과 자신의 해법을 비교하고 학생의 해법이 올바른지 평가합니다. 이 단계의 모든 작업을 삼중따옴표("")로 묶습니다. "). 3단계 - 학생이 실수를 했다면 답을 포기하지 않고 학생에게 어떤 힌트를 줄 수 있는지 결정합니다. 이 단계의 모든 작업을 삼중따옴표(""")로 묶습니다. 4단계 - 학생이 실수를 했다면 이전 단계의 힌트를 학생에게 제공합니다(삼중따옴표 제외). "Step 4 - ..." "힌트:"라고 씁니다.
사용자
문제 설명: <문제 설명 삽입> 학생 해결 방법: <학생 해결 방법 삽입>
놀이터에서 열기

또는 마지막 쿼리를 제외한 모든 쿼리의 출력이 최종 사용자에게 숨겨지는 일련의 쿼리를 사용하여 이를 수행할 수 있습니다.

첫째, 모델이 스스로 문제를 해결하도록 요청할 수 있습니다. 이 초기 쿼리에는 학생의 솔루션이 필요하지 않으므로 생략할 수 있습니다. 이는 모델의 솔루션이 학생이 시도한 솔루션에 의해 편향될 가능성이 없다는 추가적인 이점을 제공합니다.

사용자
<문제 설명 삽입>
놀이터에서 열기

다음으로, 모델이 사용 가능한 모든 정보를 사용하여 학생 솔루션의 정확성을 평가하도록 할 수 있습니다.

체계
여러분의 해법을 학생의 해법과 비교하고 학생의 해법이 올바른지 평가해 보세요.
사용자
문제 설명: """<문제 설명 삽입>""" 귀하의 솔루션: """<생성된 모델 삽입>""" 학생 솔루션: """<학생 솔루션 삽입>"""
놀이터에서 열기

마지막으로, 모델이 자체 분석을 사용하여 도움이 되는 교사의 모습으로 답변을 구성하도록 할 수 있습니다.

체계
당신은 수학 교사입니다. 학생이 실수를 했다면 답이 드러나지 않는 방식으로 학생에게 힌트를 제공하십시오. 연구생이 실수를 하지 않았다면 격려적인 말을 해 주십시오.
사용자
문제 설명: """<문제 설명 삽입>""" 귀하의 솔루션: """<생성된 모델 삽입>""" 학생 솔루션: """<학생 솔루션 삽입>""" 분석: """<삽입 이전 단계에서 생성된 모델 분석>"""
놀이터에서 열기

전술: 이전 패스에서 놓친 것이 있는지 모델에게 물어보세요.

특정 질문과 관련된 소스에서 발췌한 내용을 나열하기 위해 모델을 사용한다고 가정해 보겠습니다. 각 발췌문을 나열한 후 모델은 다른 내용을 쓰기 시작해야 할지 아니면 중단해야 할지 결정해야 합니다. 소스 문서가 큰 경우 모델이 너무 일찍 중지되어 관련 발췌문을 모두 나열하지 못하는 경우가 많습니다. 이 경우 후속 쿼리를 통해 모델에 이전 단계에서 누락된 발췌 내용을 찾도록 하면 더 나은 성능을 얻을 수 있는 경우가 많습니다.

체계
삼중따옴표로 구분된 문서가 제공됩니다. 귀하의 임무는 "인공지능의 역사에서 어떤 중요한 패러다임 변화가 일어났는가"라는 질문과 관련된 발췌문을 선택하는 것입니다. 발췌문에는 해석에 필요한 모든 관련 컨텍스트가 포함되어 있는지 확인하세요. 즉, 중요한 컨텍스트가 누락된 작은 조각을 추출하지 마세요. 다음과 같이 JSON 형식으로 출력을 제공합니다. [{"excerpt": "..."}, ... {"excerpt": "..."}]
사용자
"""<여기에 문서 삽입>"""
어시스턴트
[{"excerpt": "모델이 여기에 발췌문을 작성합니다"}, ... {"excerpt": "모델이 여기에 또 다른 발췌문을 작성합니다"}]
사용자
더 관련성이 높은 발췌문이 있나요? 발췌 내용을 반복하지 않도록 주의하세요. 또한 발췌문에 해석에 필요한 모든 관련 컨텍스트가 포함되어 있는지 확인하십시오. 즉, 중요한 컨텍스트가 누락된 작은 조각을 추출하지 마십시오.
놀이터에서 열기

전략: 외부 도구 사용

전술: 임베딩 기반 검색을 사용하여 효율적인 지식 검색 구현

모델은 입력의 일부로 제공되는 경우 외부 정보 소스를 활용할 수 있습니다. 이는 모델이 더 많은 정보를 바탕으로 최신 응답을 생성하는 데 도움이 될 수 있습니다. 예를 들어, 사용자가 특정 영화에 대해 질문하는 경우 모델의 입력에 영화에 대한 고품질 정보(예: 배우, 감독 등)를 추가하는 것이 유용할 수 있습니다. 임베딩을 사용하면 효율적인 지식 검색을 구현하여 관련 정보를 런타임 시 모델 입력에 동적으로 추가할 수 있습니다.

텍스트 임베딩은 텍스트 문자열 간의 관련성을 측정할 수 있는 벡터입니다. 유사하거나 관련된 문자열은 관련되지 않은 문자열보다 서로 더 가깝습니다. 이 사실은 빠른 벡터 검색 알고리즘의 존재와 함께 임베딩을 사용하여 효율적인 지식 검색을 구현할 수 있음을 의미합니다. 특히, 텍스트 코퍼스를 여러 개의 청크로 분할하여 각 청크를 내장하여 저장할 수 있습니다. 그런 다음 주어진 쿼리를 삽입하고 벡터 검색을 수행하여 쿼리와 가장 관련이 있는(즉, 삽입 공간에서 가장 가까운) 코퍼스에서 삽입된 텍스트 덩어리를 찾을 수 있습니다.

예제 구현은 OpenAI Cookbook 에서 찾을 수 있습니다 . 모델 이 잘못된 사실을 구성할 가능성을 최소화하기 위해 지식 검색을 사용하는 방법에 대한 예는 "검색된 지식을 사용하여 쿼리에 응답하도록 모델에 지시" 전술을 참조하세요 .

전술: 코드 실행을 사용하여 보다 정확한 계산을 수행하거나 외부 API를 호출합니다.

GPT는 자체적으로 산술 계산이나 긴 계산을 정확하게 수행할 수 없습니다. 이것이 필요한 경우, 자체 계산을 수행하는 대신 코드를 작성하고 실행하도록 모델에 지시할 수 있습니다. 특히, 삼중 백틱과 같은 지정된 형식으로 실행될 코드를 배치하도록 모델에 지시할 수 있습니다. 출력이 생성된 후 코드를 추출하여 실행할 수 있습니다. 마지막으로 필요한 경우 코드 실행 엔진(예: Python 인터프리터)의 출력을 다음 쿼리를 위한 모델에 대한 입력으로 제공할 수 있습니다.

체계
세 개의 역따옴표로 묶어서 Python 코드를 작성하고 실행할 수 있습니다(예: ``code goes here```). 이를 사용하여 계산을 수행합니다.
사용자
다음 다항식의 모든 실수 근을 구합니다: 3*x**5 - 5*x**4 - 3*x**3 - 7*x - 10.
놀이터에서 열기

코드 실행의 또 다른 좋은 사용 사례는 외부 API를 호출하는 것입니다. 모델에 API를 적절하게 사용하도록 지시하면 이를 활용하는 코드를 작성할 수 있습니다. API 사용 방법을 보여주는 문서 및/또는 코드 샘플을 모델에 제공하여 API 사용 방법을 모델에 지시할 수 있습니다.

체계
세 개의 역따옴표로 묶어서 Python 코드를 작성하고 실행할 수 있습니다. 또한 사용자가 친구에게 메시지를 보내는 데 도움이 되는 다음 모듈에 액세스할 수 있습니다. ``python import message message.write(to="John", message="이봐, 퇴근 후에 만날래?")`` `
놀이터에서 열기

경고: 모델에서 생성된 코드를 실행하는 것은 본질적으로 안전하지 않으며 이를 수행하려는 모든 애플리케이션에서는 예방 조치를 취해야 합니다. 특히 신뢰할 수 없는 코드로 인해 발생할 수 있는 피해를 제한하려면 샌드박스 코드 실행 환경이 필요합니다.

전술: 모델에 특정 기능에 대한 액세스 권한 부여

채팅 완료 API를 사용하면 요청에 함수 설명 목록을 전달할 수 있습니다. 이를 통해 모델은 제공된 스키마에 따라 함수 인수를 생성할 수 있습니다. 생성된 함수 인수는 API에서 JSON 형식으로 반환되며 함수 호출을 실행하는 데 사용할 수 있습니다. 함수 호출에 의해 제공된 출력은 루프를 닫는 다음 요청에서 모델로 다시 피드백될 수 있습니다. 이는 GPT 모델을 사용하여 외부 기능을 호출하는 데 권장되는 방법입니다. 자세히 알아보려면 GPT 소개 가이드의 함수 호출 섹션 과 OpenAI Cookbook의 더 많은 함수 호출 예제를 참조하세요.

전략: 변경 사항을 체계적으로 테스트

때로는 변경(예: 새로운 지침이나 새로운 설계)으로 인해 시스템이 좋아졌는지 나빠졌는지 판단하기 어려울 수 있습니다. 몇 가지 예를 보면 어느 것이 더 나은지 힌트를 얻을 수 있지만, 표본 크기가 작으면 진정한 개선과 우연한 행운을 구별하기 어려울 수 있습니다. 변경 사항이 일부 입력에서는 성능에 도움이 되지만 다른 입력에서는 성능이 저하될 수도 있습니다.

평가 절차(또는 "평가")는 시스템 설계를 최적화하는 데 유용합니다. 좋은 평가는 다음과 같습니다:

  • 실제 사용량(또는 적어도 다양함)을 대표합니다.
  • 통계적 검정력을 높이기 위해 많은 테스트 사례를 포함합니다(지침은 아래 표 참조).
  • 자동화 또는 반복이 용이함

감지할 차이95% 신뢰도에 필요한 표본 크기

30% ~10
10% ~100
삼% ~1,000
1% ~10,000

출력 평가는 컴퓨터, 사람 또는 혼합하여 수행할 수 있습니다. 컴퓨터는 객관적인 기준(예: 단일 정답이 있는 질문)뿐만 아니라 일부 주관적이거나 모호한 기준을 사용하여 평가를 자동화할 수 있으며, 여기서 모델 출력은 다른 모델 쿼리에 의해 평가됩니다. OpenAI Evals 는 자동화된 평가를 생성하기 위한 도구를 제공하는 오픈 소스 소프트웨어 프레임워크입니다.

모델 기반 평가는 품질 면에서 동일하게 높은 것으로 간주되는 가능한 출력 범위가 존재할 때 유용할 수 있습니다(예: 답변이 긴 질문의 경우). 모델 기반 평가를 통해 현실적으로 평가할 수 있는 것과 인간이 평가해야 하는 것 사이의 경계는 모호하며 모델의 능력이 향상됨에 따라 끊임없이 변화하고 있습니다. 모델 기반 평가가 귀하의 사용 사례에 얼마나 잘 작동할 수 있는지 알아보기 위해 실험을 권장합니다.

전술: 최적의 답변을 참조하여 모델 출력을 평가합니다.

질문에 대한 정답이 특정 알려진 사실 집합을 참조해야 한다는 것이 알려져 있다고 가정해 보겠습니다. 그런 다음 모델 쿼리를 사용하여 답변에 포함된 필수 사실 수를 계산할 수 있습니다.

예를 들어 다음 시스템 메시지를 사용합니다.

체계
질문에 대한 답변으로 간주되는 삼중따옴표로 구분된 텍스트가 제공됩니다. 답에 다음 정보가 직접 포함되어 있는지 확인하세요. - 닐 암스트롱은 달 위를 걸은 최초의 사람입니다. - 닐 암스트롱이 처음으로 달에 발을 디딘 날짜는 1969년 7월 21일이었습니다. 각 지점에 대해 다음 단계를 수행하십시오. 1 - 요점을 다시 설명합니다. 2 - 이 지점에 가장 가까운 답변을 인용해 주세요. 3 - 주제를 모르는 사람이 인용문을 읽고 요점을 직접적으로 추론할 수 있는지 생각해 보세요. 결정하기 전에 이유 또는 이유를 설명하십시오. 4 - 3번에 대한 대답이 '예'이면 '예'라고 적고, 그렇지 않으면 '아니요'라고 적습니다. 마지막으로 "예"라고 대답한 답변이 몇 개인지 알려주세요. 이 개수를 {"count": <여기에 개수 삽입>}으로 제공하세요.

다음은 두 점이 모두 충족되는 입력 예시입니다.

체계
<위에 시스템 메시지 삽입>
사용자
"""닐 암스트롱은 달에 발을 디딘 최초의 인류로 유명합니다. 이 역사적인 사건은 아폴로 11호 임무 중인 1969년 7월 21일에 일어났습니다."""
놀이터에서 열기

다음은 단 하나의 점만 충족되는 입력의 예입니다.

체계
<위에 시스템 메시지 삽입>
사용자
"""닐 암스트롱은 달 탐사선에서 내려 달 위를 걷는 최초의 인물이 되면서 역사를 만들었습니다."""
놀이터에서 열기

다음은 어느 것도 만족되지 않는 입력의 예입니다.

체계
<위에 시스템 메시지 삽입>
사용자
"""69년 여름, 전설의 손처럼 대담한 항해 그랜드, 아폴로 11호. 암스트롱은 한 걸음, 역사는 펼쳐졌다. 그는 "새로운 세계를 위해 작은 한 걸음"이라고 말했다.
놀이터에서 열기

이러한 유형의 모델 기반 평가에는 다양한 변형이 가능합니다. 후보 답변과 최적 표준 답변 간의 중복 유형을 추적하고 후보 답변이 최적 표준 답변의 일부와 모순되는지 여부도 추적하는 다음 변형을 고려하세요.

체계
사용자 입력에 응답하려면 다음 단계를 따르세요. 계속하기 전에 각 단계를 완전히 다시 설명하세요. 즉, "1단계: 이유...". 1단계: 전문가 답변과 비교하여 제출된 답변의 정보가 분리됨, 같음, 하위 집합, 상위 집합 또는 중복(예: 일부 교차점이지만 하위 집합/상위 집합이 아님)인지 여부를 단계별로 추론합니다. 2단계: 제출된 답변이 전문가 답변의 어떤 측면과 모순되는지 단계별로 추론합니다. 3단계: 다음과 같은 구조의 JSON 객체 출력: {"type_of_overlap": "disjoint" 또는 "equal" 또는 "subset" 또는 "superset" 또는 "overlapping", "contradiction": true 또는 false}

그럼에도 불구하고 전문가 답변과 모순되지 않는 표준 이하의 답변이 포함된 입력 예는 다음과 같습니다.

체계
<위에 시스템 메시지 삽입>
사용자
질문: """닐 암스트롱이 가장 유명한 사건은 무엇이며 그 사건이 발생한 날짜는 언제입니까? UTC 시간으로 가정합니다.""" 제출된 답변: """그가 달 위를 걷거나 그런 게 아니었나요?""" 전문가 답변 : """닐 암스트롱(Neil Armstrong)은 최초로 달에 발을 디딘 사람으로 가장 유명합니다. 이 역사적인 사건은 1969년 7월 21일에 일어났습니다."""
놀이터에서 열기

다음은 전문가 답변과 직접적으로 모순되는 답변이 포함된 입력 예시입니다.

체계
<위에 시스템 메시지 삽입>
사용자
질문: """닐 암스트롱은 어떤 사건으로 가장 유명하며, 언제 일어났습니까? UTC 시간으로 가정합니다.""" 제출된 답변: """1969년 7월 21일, 닐 암스트롱은 두 번째로 걸어간 사람이 되었습니다. 버즈 올드린(Buzz Aldrin)의 뒤를 잇는 달입니다.""" 전문가 답변: """닐 암스트롱(Neil Armstrong)은 최초로 달에 발을 디딘 사람으로 가장 유명합니다. 이 역사적인 사건은 1969년 7월 21일에 일어났습니다."""
놀이터에서 열기

다음은 필요한 것보다 더 자세한 정보를 제공하는 정답이 포함된 입력 예시입니다.

체계
<위에 시스템 메시지 삽입>
사용자
질문: """Neil Armstrong은 어떤 사건으로 가장 유명하며 언제 일어났습니까? UTC 시간으로 가정합니다.""" 제출된 답변: """1969년 7월 21일 약 02:56 UTC에 Neil Armstrong이 최초의 사건이 되었습니다. 인류가 달 표면에 발을 디딘 것은 인류 역사에 기념비적인 업적이다.""" 전문가 답변: """닐 암스트롱은 최초로 달에 발을 디딘 사람으로 가장 유명하다. 이 역사적 사건은 지난 7월 21일에 일어났다. 1969."""
놀이터에서 열기

기타 리소스

더 많은 영감을 얻으려면 예제 코드와 다음과 같은 타사 리소스에 대한 링크가 포함된 OpenAI Cookbook을 방문하세요.

채팅 모델을 미세 조정하는 방법 | OpenAI 쿡북

 

How to fine-tune chat models | OpenAI Cookbook

Open-source examples and guides for building with the OpenAI API. Browse a collection of snippets, advanced techniques and walkthroughs. Contribute your own examples and guides.

cookbook.openai.com

 

'AI > ChatGPT' 카테고리의 다른 글

Openai DevDay 개발자 컨퍼런스  (1) 2023.11.07
ChatGPT, DALL-E3에 적용된 프롬프트  (0) 2023.10.15
ChatGPT dataset  (0) 2023.09.14
chatGPT 사용법  (0) 2023.06.28
chatGPT Fine-Tuning  (0) 2023.06.12

댓글