ChatGPT 프롬프트 엔지니어링 전략 시리즈 중 세번째인 복잡한 작업을 더 간단한 하위 작업으로 나누기에 대한 설명을 드리겠습니다.

프롬프트 엔지니어링 전략 시리즈
3. (현재글)복잡한 작업을 더 간단한 하위 작업으로 나누기
전략 1: 인텐트 분류를 사용하여 사용자 쿼리에 가장 관련성이 높은 지침을 식별하세요.
다양한 경우를 처리하기 위해 많은 독립적인 명령어 집합이 필요한 작업의 경우 먼저 쿼리 유형을 분류하고 이 분류를 사용하여 어떤 명령어가 필요한지 결정하는 것이 유용할 수 있습니다. 이는 고정 카테고리를 정의하고 해당 카테고리의 작업을 처리하는 데 관련된 지침을 하드코딩함으로써 달성할 수 있습니다.
이 프로세스를 재귀적으로 적용하여 작업을 일련의 단계로 분해할 수도 있습니다. 이 접근 방식의 장점은 각 쿼리에는 작업의 다음 단계를 수행하는 데 필요한 명령어만 포함되므로 전체 작업을 수행하는 데 단일 쿼리를 사용하는 것보다 오류 발생률이 낮다는 것입니다. 또한 프롬프트가 클수록 실행하는 데 더 많은 비용이 들기 때문에 비용도 절감할 수 있습니다.
예를 들어 고객 서비스 애플리케이션의 경우 쿼리를 다음과 같이 유용하게 분류할 수 있다고 가정해 보겠습니다:
시스템 :
고객 서비스 쿼리가 제공됩니다. 각 쿼리를 기본 카테고리와 보조 카테고리로 분류합니다. 기본 및 보조 키가 포함된 json 형식의 출력을 제공합니다.
기본 카테고리: 청구, 기술 지원, 계정 관리 또는 일반 문의.청구 보조 카테고리:
– 구독 취소 또는 업그레이드
– 결제 방법 추가
– 청구에 대한 설명
– 청구에 대한 이의 제기기술 지원 보조 카테고리
– 문제 해결
– 장치 호환성
– 소프트웨어 업데이트계정 관리 보조 카테고리
– 비밀번호 재설정
– 개인 정보 업데이트
– 계정 폐쇄
– 계정 보안일반 문의 보조 카테고리:
– 제품 정보
– 가격
– 피드백
– 사람과 대화하기
유저 :
인터넷이 다시 작동하도록 해야 합니다.
고객 문의의 분류에 따라 모델이 다음 단계를 처리할 수 있도록 보다 구체적인 지침을 모델에 제공할 수 있습니다. 예를 들어 고객이 “문제 해결”에 대한 도움이 필요하다고 가정해 보겠습니다.
시스템 :
기술 지원 맥락에서 문제 해결이 필요한 고객 서비스 문의를 제공받게 됩니다. 다음과 같이 사용자를 도와주세요:– 라우터에 연결되는 모든 케이블이 연결되어 있는지 확인하도록 요청합니다. 시간이 지나면 케이블이 느슨해지는 것이 일반적이라는 점에 유의하세요.
– 모든 케이블이 연결되었는데도 문제가 지속되면 사용 중인 라우터 모델을 물어봅니다.
– 이제 장치를 다시 시작하는 방법을 알려줍니다:
— 모델 번호가 MTD-327J인 경우, 빨간색 버튼을 5초간 누른 다음 5분간 기다렸다가 연결을 테스트하라고 안내합니다.
— 모델 번호가 MTD-327S인 경우, 플러그를 뽑았다가 다시 꽂은 다음 5분간 기다렸다가 연결을 테스트하라고 조언합니다.
– 디바이스를 재시작하고 5분을 기다린 후에도 고객의 문제가 지속되면 {“IT 지원 요청”}을 출력하여 IT 지원팀에 연결합니다.
– 사용자가 이 주제와 관련이 없는 질문을 하기 시작하면 문제 해결에 대한 현재 채팅을 종료할 것인지 확인하고 다음 체계에 따라 요청을 분류합니다:<위에서 기본/보조 분류 체계 삽입>하세요.
유저 :
인터넷을 다시 작동시켜야 합니다.
모델에 대화 상태가 변경될 때를 나타내는 특수 문자열을 내보내도록 지시했음을 알 수 있습니다. 이를 통해 시스템을 상태에 따라 주입되는 명령어가 결정되는 상태 머신으로 전환할 수 있습니다.
상태, 해당 상태와 관련된 명령어, 그리고 선택적으로 해당 상태에서 허용되는 상태 전환을 추적함으로써 덜 구조화된 접근 방식으로는 달성하기 어려운 사용자 경험에 가드레일을 설치할 수 있습니다.
전략 2: 매우 긴 대화가 필요한 대화 애플리케이션의 경우 이전 대화를 요약하거나 필터링하세요.
모델은 컨텍스트 길이가 고정되어 있기 때문에 전체 대화가 컨텍스트 창에 포함되는 사용자와 어시스턴트 간의 대화를 무한정 계속할 수는 없습니다.
이 문제를 해결하는 방법에는 여러 가지가 있는데, 그 중 하나는 대화의 이전 턴을 요약하는 것입니다. 입력의 크기가 미리 정해진 임계값 길이에 도달하면 대화의 일부를 요약하는 쿼리가 트리거되고 이전 대화의 요약이 시스템 메시지의 일부로 포함될 수 있습니다. 또는 전체 대화에 걸쳐 백그라운드에서 비동기적으로 이전 대화를 요약할 수도 있습니다.
또 다른 해결책은 현재 쿼리와 가장 관련성이 높은 대화의 이전 부분을 동적으로 선택하는 것입니다.
전략 3: 긴 문서를 단편적으로 요약하고 재귀적으로 전체 요약 구성하기
모델에는 고정된 문맥 길이가 있기 때문에 단일 쿼리에서 생성된 요약의 길이를 뺀 문맥 길이보다 긴 텍스트를 요약하는 데는 사용할 수 없습니다.
책과 같이 매우 긴 문서를 요약하려면 일련의 쿼리를 사용하여 문서의 각 섹션을 요약할 수 있습니다. 섹션 요약을 연결하고 요약하여 요약의 요약을 생성할 수 있습니다. 이 프로세스는 전체 문서가 요약될 때까지 재귀적으로 진행될 수 있습니다.
이후 섹션을 이해하기 위해 이전 섹션에 대한 정보를 사용해야 하는 경우, 해당 지점의 내용을 요약하면서 해당 지점의 앞부분에 있는 텍스트의 실행 요약을 포함하는 것도 유용한 방법이 될 수 있습니다. 책을 요약할 때 이 절차의 효과는 GPT-3의 변형을 사용한 OpenAI의 이전 연구에서 연구된 바 있습니다.