Architect에서 봇을 빌드하기 위한 모범 사례 권장 사항
봇 기술 개요
Genesys Dialog Engine Bot Flows는 고급 머신 러닝 도구와 마찬가지로 여러 예제에서 학습한 다음 이전에 본 적이 없는 유사한 사례를 분류하기 위해 추가로 정의하여 작동합니다. 봇은 규칙이 아닌 예제에서 학습합니다.
이 접근 방식의 장점은 다음과 같습니다.
- 입력 언어 유연성 및 보이지 않는 데이터 계산. 봇은 이전 대화를 기반으로 추측합니다.
- 봇 응답이 응답에 대해 얼마나 확신하는지 알 수 있도록 통계적 신뢰도 점수를 매깁니다.
- 통과 또는 실패 접근 방식이 아니라 노이즈가 있는 데이터에 대한 확실성의 점진적 손실인 점진적 저하입니다.
기계 학습 접근 방식에는 다음과 같은 대가가 따릅니다. 모든 입력에 대해 미리 결정된 결과가 없을 수도 있습니다. 인공 지능(AI) 의사 결정은 직접적인 명령이 아닌 자체 계산 및 결론을 기반으로 합니다. 학습 예제는 엔진을 올바른 답으로 편향시키지만 항상 보장하지는 않습니다.
이 문서에서는 모델 편향 이동 내에서 위험이 낮고 위험이 높은 모델 변경 유형에 대한 몇 가지 지침을 제공합니다. 자세한 내용은 Genesys Dialog Engine 봇 흐름 정보 그리고 Genesys Dialog Engine Bot Flows 가격 책정.
모델을 설계할 때 다음 시스템 기능을 고려하십시오.
- 전달 기능: 필요한 경우 음성, 메시지 또는 채팅 상호작용을 수신하도록 에이전트 가용성을 구성합니다.
- 내장 기능:
- 가설을 세우고 제안된 의도를 확인하거나 거부하도록 요청하여 불명확한 진술을 확인합니다.
- 슬롯을 채우고 선택적으로 의도에 대한 슬롯 확인과 조치를 취하기 전에 필요한 세부 정보를 입력합니다. 기본 제공 슬롯에는 날짜, 시간, 통화 및 숫자가 포함됩니다.
- 사용자 정의 슬롯 유형을 사용하면 슬롯 유형을 정의하고 이를 사용하여 슬롯을 매핑할 수 있습니다. Architect는 세 가지 사용자 정의 슬롯 유형을 지원합니다.
- 목록 유형
- 동적 목록 유형
- 정규식(regex) 유형
- 다음을 포함한 후속 질문을 할 수 있습니다.
- 예 및 질문 없음
- 슬롯 채우기 질문
- 선택적으로 인사말을 필터링합니다.
- 명확성을 위해 이벤트 처리 동작을 검토하십시오. 예를 들어 오류 이벤트, 인식 실패 및 에이전트 에스컬레이션이 있습니다.
인텐트를 정의할 때 다음 지침을 염두에 두십시오.
잠재적 의도에 대한 작업 항목 정의
- 봇이 다루기를 원하는 작업 항목의 목록을 만드십시오.
- 이러한 요청과 해당 예시가 봇에 적합한지 평가합니다.
- 사례가 잘 정의되어 있습니까?
- 예제는 봇이 학습을 위한 앵커로 사용할 수 있는 어휘를 공유합니까?
- 잠재적인 요청의 예가 충분히 다른가요?
- 당신은 충분히 구별되는 예를 제공할 수 있습니까? 모범 사례는 15-30개의 예를 권장합니다.
- 기존 데이터를 검토하고 목록이 실제 사례와 어떻게 비교되는지 확인합니다.
- 정의에 명확한 경계가 있고 겹치지 않는지 확인하십시오.
- 의도 사이에 해당하는 예가 있는 경우 원하는 위치를 결정하고 이를 수용하기 위해 의도 정의 경계를 다시 그립니다.
- 처음에는 더 작고 가장 중요한 인텐트 목록을 준비하세요. 향후 반복에서는 잘 작동하는 개념 증명 모델을 확장할 수 있습니다.
일관된 인텐트 명명 패턴 사용
- 프롬프트 문장 내에서 작동하도록 의도 이름을 구성합니다. 예: "[의도 이름]에 관심이 있는 것 같습니다."
- 모든 의도가 패턴에 맞는지 확인하십시오.
- 가능하면 더 짧은 이름을 사용하십시오. 이 점은 음성 봇에게 특히 중요합니다. 긴 의도 이름을 포함하는 확인, 명확성 및 프롬프트는 음성으로 잘 작동하지 않습니다.
- 프롬프트 문법에 맞는 짧지만 자연스러운 단어를 사용하십시오.
- 사용 사례에 따라 각 의도에 대해 기본 프롬프트와 사용자 지정 프롬프트 중에서 선택합니다.
- 사용자 지정 및 기본 프롬프트가 짧은지 확인합니다.
의도 예시를 제공할 때 다음 모범 사례 지침을 고려하세요.
- 인텐트당 최소 20~30개의 일반적인 예시를 제공하세요.
- 다음과 같은 의도 변형을 제공해야 합니다.
- 사람들이 할 수 있는 질문이나 진술의 형태로 다양성을 포함하십시오.
- 의도를 나타내는 키워드를 추가합니다.
- 짧은 구문과 전체 문장을 추가합니다.
- 의도의 작업에 대한 동의어를 추가합니다. 예를 들어, 호텔을 예약하고, 객실을 예약하고, 예약합니다.
- 동일한 어휘를 공유하는 의도가 여러 개 있는 경우 양쪽에서 충분히 균형 잡힌 예를 제공하고 두 의도를 구별하는 예제 구문의 우선 순위를 지정합니다. 예를 들어: "의사에게 메시지를 남겨주세요" 및 "의사에게 연락하십시오." 같은 명사에 다른 동작을 구별하는 동사를 포함하면 적절한 학습에 도움이 됩니다.
- 인텐트에 채울 슬롯이 있는 경우 다음을 확인하세요.
- 슬롯 및 슬롯 유형을 정의합니다.
- 복수 값과 동의어를 포함합니다.
- 의도 예시 문구에서 엔터티를 마크업합니다.
- 각 슬롯에 대해 기본 또는 사용자 지정 프롬프트를 선택합니다.
- 프롬프트에서 기본 제공 슬롯 형식에 대한 지침이나 예를 제공합니다.
엔티티를 정의할 때 다음 지침을 염두에 두십시오.
- 의도 작업을 수행하거나 고객 여정을 알리기 위해 슬롯을 채우는 정보 유형을 정의합니다.
- 가능하면 겹치지 않는 슬롯 클래스를 만들고 다음을 요청하십시오.
- 이 정보는 조치를 취하거나 봇 라우팅에 필요합니까?
- 이 정보가 저장되어 고객 여정에 사용됩니까?
- 다음에 대해 "예"라고 답한 경우 데이터에 대해 다른 전략을 선택하는 것이 좋습니다.
- 이 정보는 캡처하기 어렵습니까? 너무 장황한가요? 봇이 고객을 올바른 방향으로 이끄는 데 방해가 될 수 있는 문구가 너무 많습니까?
- 봇이 이 데이터를 캡처하지 않으면 의도 분류가 실패합니까?
- 다른 전략은 필요하지 않거나 존재하는 경우에만 선택되고 프롬프트가 표시되지 않거나 다른 의도로 캡처되는 엔티티 슬롯일 수 있습니다.
- 예상할 수 없는 광범위한 슬롯 값을 가진 일반 슬롯을 피하십시오.
- 방법 또는 이유와 같은 개방형 프롬프트 질문을 피하십시오. 대신 제한된 옵션으로 고객을 안내하는 데 의존하십시오.
- 정보 캡처를 위한 이진 질문을 고려하십시오. 예를 들어 내장된 예 또는 아니오 질문을 사용하여 슬롯을 요청합니다.
엔터티 예를 제공할 때 다음 모범 사례 지침을 고려하세요.
- 인텐트 트레이닝 세트에는 최소 2개의 강조 표시된 슬롯 값 예제가 필요합니다.
- 훈련 세트에 슬롯 예제가 있는 경우 모든 또는 대부분의 경우, 특히 일반적인 값과 동의어를 강조 표시하십시오.
다음과 같은 프롬프트를 생성해야 합니다.
- 짧고 명확합니다.
- 잠재적인 기본 의도 또는 슬롯 이름 삽입의 문법에 잘 맞습니다.
음성 봇에 필요한 변형 및 조정을 고려하십시오.
- 인텐트 숫자 형식을 변경할 필요는 없습니다. 그러나 음성-텍스트 구성 요소가 반환하는 숫자 형식을 알고 있고 의도에서 해당 형식을 나타내는지 확인하십시오.
- 프롬프트 짧고 최소한의 단어 선택으로 음성 안내를 구성해야 합니다. 문자 메시지와 달리 다시 검토할 수 없습니다. 모범 사례는 세 단어 미만으로 반복되지 않는 간단하고 짧은 음성 안내를 권장합니다.
이 섹션에서는 테스트 세트 권장 사항, 음성 봇 테스트 및 텍스트 또는 음성 봇 엔진 테스트에 대한 지침을 설명합니다.
테스트 세트 권장 사항
기계 학습을 기반으로 하는 봇은 예제를 추가하고 훈련 세트를 재조정하여 테스트 및 수정을 여러 번 반복해야 합니다. 모범 사례에서는 실제 고객 발언에서 의도적인 테스트 세트를 만들고 개선을 확인하기 위해 반복할 때마다 이를 재사용할 것을 권장합니다.
최상의 결과를 얻으려면 시뮬레이션된 호출을 통한 종단 간 봇 테스트와 미리 정의된 테스트 예제 집합을 기반으로 하는 NLU 전용 테스트가 모두 권장됩니다. 의도 빈도 정보 또는 비즈니스에 더 중심적이거나 더 중요한 케이스에 대한 아이디어가 있는 경우 테스트 세트에서 이를 잘 나타내야 합니다.
음성 봇 테스트
다음 지침은 자동 음성 인식이 성능에 영향을 미치는지 여부를 결정하는 데 도움이 됩니다. 테스트 프로세스 중에 의도 예제가 다양한 목소리와 환경으로 표현되는지 확인하세요.
- 세대별 어휘 차이
- 지역 방언 자동 음성 인식(ASR) 이해
- 성별 표현. 예를 들어, 더 높은 피치의 음성은 음향 범위가 더 작아서 ASR 엔진이 이해하기 더 어려울 수 있습니다)
- 전화, 트래픽이 있는 전화 또는 백그라운드에서 텔레비전 소음과 같은 시끄러운 환경 테스트.
봇 엔진 테스트(문자 또는 음성)
- 각 인텐트에 변형을 사용합니다. 예를 들어 "내일 방이 필요해요." 또는 "내일 방을 예약하고 싶어요."
- 의도가 불분명한 테스트 케이스. 예를 들어 경계 문제, 의도 간의 어휘 중복, 다른 세부 수준에서 요청한 의도가 있습니다.
- 단일 키워드 또는 짧은 구문을 사용하여 모델을 테스트합니다.
- 슬롯이 있거나 없는 의도를 사용하여 모델을 테스트합니다.
- 일반적인 단어가 강한 편견을 만드는지 확인하십시오. 예를 들어 "왜" 또는 "도와줘"라는 단어가 다른 의도보다 한 의도를 자동으로 선택합니까? 이 경우 권장되는 수정 조치는 해당하는 경우 해당 단어를 다른 의도에 추가하여 모델의 균형을 맞추는 것입니다.
- 공유 키워드가 강한 편견을 유발하는지 확인합니다. 예를 들어 뱅킹 의도의 "계정"입니다. 이 경우 권장되는 시정 조치는 기본 사항을 결정한 다음 하위 사례를 강화하는 것입니다.
테스트 후 분석 중에 개선 영역을 검토하고 모델 테스트의 성공률을 평가하고 학습 패널과 협력합니다.
개선 검토
봇을 교육하고 테스트한 후 개선 영역을 검토하세요. 의도 분류의 신뢰도 정보를 사용하여 문제를 진단하고 개선 사항을 안내합니다.
높은 확신을 가지고 잘못된 의도를 가정하는 경우:
- 테스트 예제에 둘 이상의 의도를 암시하는 필수 단어가 있습니까?
- 의도 경계를 재정의하거나 너무 유사하여 모델을 혼동시키는 의도의 예를 병합 또는 정리해야 합니까?
낮은 신뢰도로 잘못된 의도가 가정된 경우:
- 예가 "전형적인" 것입니까? 이 문서에서 이전에 언급한 지침을 따르십시오.
- 예가 "경계"입니까? 먼저 중심 사례에 초점을 맞춥니다. 이러한 예를 수정한 후 의도 예를 사용하여 경계 사례를 해결할 수 있습니다.
중심 의도 예시에 대한 신뢰도가 확인 임계값 미만인 경우:
- 인텐트 정의 및 관련되거나 유사한 인텐트를 봅니다. 정의와 어휘가 너무 많이 겹치나요? 너무 유사한 의도 간에 잠재적인 병합이 있습니까? 일부 "경쟁 의도" 예시를 제거해야 합니까?
- 예가 "경계"입니까? 인텐트 정의에 더 적은 수의 예제가 있거나 다른 인텐트가 유사한 사례를 공유하는 경우 낮은 신뢰도를 기대할 수 있습니다.
- 이전 포인트가 적용되지 않는 경우 확인 임계값을 하향 조정할 수 있습니다.
모델 테스트의 전반적인 성공 평가
- 테스트 케이스에 대한 의도의 관련성을 평가하고 중앙 케이스가 누락된 경우 조정하십시오.
- 엉뚱한 내용이 아닌 핵심 문구에 주의를 집중하세요. 실제 데이터를 사용하는 경우 문장 표현을 최소화하는 등 테스트에 관련 변경 사항을 적용할지 여부를 고려합니다.
- 더 많은 교육 예제를 포함할지 여부를 고려하십시오. 예를 들어, 구문 변형 및 동의어.
- 일반적인 문구 및 공유 키워드에서 기존 편견을 제거하도록 의도의 균형을 맞추십시오. 예시에 의도 해결을 방해하는 강한 편향이 포함되어 있으면 제거하세요.
학습 패널 작업
학습 패널은 모델 개선에 도움이 되도록 설계되었습니다. 의도 분류로 실제 사용 사례를 보고 분류를 수정할 수 있습니다. 그러나 모델은 잘 훈련되고 균형이 잡혀 있을 때 최상의 성능을 발휘한다는 점을 기억하십시오. 저항은 학습 패널의 모든 것을 모델 훈련 세트에 추가하려고 시도합니다. 이 단계는 공통 의도에 대한 편향을 초래할 가능성이 있으며 모델의 학습을 흐리게 하는 정크 문장을 제공할 수 있습니다.
잘못 분류되었거나 분류 신뢰도가 낮은 중심의 두드러진 사례를 모델에 추가하는 것이 가장 좋습니다.
기계 학습의 통계적 특성은 가장 일반적인 경우의 99%를 잘 다루려고 노력한다는 것을 의미합니다. 흔하지 않은 경우일수록 다루지 않고 학습에서 결석할 가능성이 더 높습니다. 절대적으로 모든 사례를 모델에 추가하려고 하면 가장 중심적인 사례의 성능이 떨어지고 사용 사례의 전반적인 비즈니스 성공도 함께 떨어집니다.