앱에 대한 데이터 수집

Important

LUIS는 2025년 10월 1일에 사용 중지되며 2023년 4월 1일부터 새 LUIS 리소스를 만들 수 없습니다. 지속적인 제품 지원 및 다국어 기능을 활용하려면 LUIS 애플리케이션대화 언어 이해로 마이그레이션하는 것이 좋습니다.

LUIS(Language Understanding) 앱은 앱 개발의 일부로 데이터가 필요합니다.

LUIS에서 사용되는 데이터

LUIS는 의도 분류 및 엔터티 추출을 위해 텍스트를 데이터로 사용하여 LUIS 앱을 학습하고 테스트합니다. 아래에 나와 있는 다양성 및 배포를 포함하는 학습 및 테스트에 대한 별도의 데이터 세트를 만들 수 있는 충분한 데이터가 있는 큰 데이터 세트가 필요합니다. 이러한 각 집합의 데이터는 겹치지 않아야 합니다.

예제 발화에 대한 학습 데이터 선택

다음 기준에 따라 학습 집합에 대해 발화를 선택합니다.

  • 실제 데이터가 최상:

    • 클라이언트 애플리케이션의 실제 데이터: 클라이언트 애플리케이션의 실제 데이터인 발화를 선택합니다. 고객이 현재 해당 조회를 사용하여 웹 양식을 보내고 봇을 빌드하는 경우 웹 양식 데이터를 사용하여 시작할 수 있습니다.
    • 크라우드소싱된 데이터: 기존 데이터가 없는 경우 크라우드소싱 발화를 고려합니다. 애플리케이션에 표시되는 실제 데이터의 가장 근접한 부분을 얻기 위해 시나리오에 대한 실제 사용자 집단에서 발화를 크라우드소싱합니다. 크라우드소싱된 사용자 발화가 컴퓨터에서 생성된 발화보다 좋습니다. 특정 패턴에서 생성되는 가상 발화의 데이터 세트를 빌드하는 경우 발화를 만드는 사용자에게 표시되는 자연 변형이 많지 않으며 프로덕션 환경에서 제대로 일반화되지 않습니다.
  • 데이터 다양성:

    • 지역 다양성: 각 의도에 대한 데이터가 구문(단어 선택) 및 문법을 포함하여 가능한 한 다양한지 확인합니다. 휴가 기간 관련 HR 정책에 대한 의도를 학습하는 경우 제공되는 모든 지역에 사용되는 용어를 나타내는 발화가 있는지 확인합니다. 예를 들어 유럽에서는 taking a holiday에 대해 문의하고 미국에서는 taking vacation days에 대해 문의할 수 있습니다.
    • 언어 다양성: 두 번째 언어로 커뮤니케이션하는 다양한 네이티브 언어를 사용하는 사용자가 있는 경우 모국어가 아닌 언어를 구사하는 사용자를 나타내는 발화가 있는지 확인합니다.
    • 입력 다양성: 데이터 입력 경로를 고려합니다. 한 명의 사용자, 하나의 부서 또는 입력 장치(마이크)에서 데이터를 수집하는 경우 앱에서 모든 입력 경로를 학습하는 데 중요한 다양성이 누락될 수 있습니다.
    • 문장 부호 다양성: 사용자가 텍스트 애플리케이션에서 다양한 수준의 문장 부호를 사용하는 것이 좋으므로 문장 부호가 다양한 방식으로 사용되는지 확인합니다. 음성에서 제공되는 데이터를 사용하는 경우 문장 부호가 없으므로 데이터도 마찬가지여야 합니다.
  • 데이터 배포: 의도에 분산된 데이터가 클라이언트 애플리케이션에서 수신하는 데이터의 동일한 분산을 나타내는지 확인합니다. LUIS 앱에서 휴가를 예약하는 요청(50%)인 발화를 분류하고 남은 휴가 기간 조회(20%), 휴가 승인(20%) 및 그 외(10%)에 대한 발화도 표시하는 경우 데이터 세트의 각 발화 유형에 대한 샘플 백분율이 동일해야 합니다.

  • 모든 데이터 양식 사용: LUIS 앱이 여러 양식으로 데이터를 사용하는 경우 학습 발화에 해당 양식을 포함해야 합니다. 예를 들어 클라이언트 애플리케이션에서 음성 및 입력된 텍스트 입력을 모두 사용하는 경우에는 입력된 발화뿐만 아니라 음성 텍스트 변환으로 생성된 발화가 있어야 합니다. 사용자의 입력 방식과 말하는 방식에 다양한 변형이 있으며 음성 인식의 오류와 오타도 있습니다. 이 모든 변형이 학습 데이터에 표시되어야 합니다.

  • 긍정 및 부정 예: LUIS 앱을 학습하려면 의도에 해당하는 것(긍정)과 의도가 아닌 것(부정)에 대해 알아야 합니다. LUIS에서 발화는 단일 의도에 대해서만 긍정이 될 수 있습니다. 발화가 의도에 추가되면 LUIS가 자동으로 동일한 예제 발화를 다른 모든 의도에 대한 부정 예로 만듭니다.

  • 애플리케이션 범위 밖의 데이터: 애플리케이션에 정의 의도를 벗어난 발화가 확인되면 해당 항목을 제공해야 합니다. 정의된 특정 의도에 할당되지 않은 예는 None 의도로 레이블이 지정됩니다. 정의된 의도의 범위를 벗어난 발화를 적절히 예측하려면 None 의도에 대한 현실적인 예가 있어야 합니다.

    예를 들어, 휴가 시간에 초점을 맞춘 HR 봇을 만드는 중이며 다음과 같은 세 가지 의도가 있다고 가정합니다.

    • 휴가 예약 또는 편집
    • 사용 가능한 휴가 기간에 대한 조회
    • 휴가 승인/비승인

    이러한 의도를 모두 포함하는 발화가 있는지 확인하고, 다음과 같이 애플리케이션에서 제공해야 하는 범위를 벗어나는 잠재적 발화가 있는지도 확인합니다.

    • What are my medical benefits?
    • Who is my HR rep?
    • tell me a joke
  • 드문 예: 앱에는 일반적인 예뿐만 아니라 드문 예도 있어야 합니다. 앱은 드문 예를 확인한 적이 없는 경우 프로덕션에서 식별할 수 없습니다. 실제 데이터를 사용하는 경우 프로덕션에서 LUIS 앱이 작동하는 방식을 보다 정확하게 예측할 수 있습니다.

양이 아닌 품질

데이터를 더 추가하기 전에 기존 데이터의 품질을 고려합니다. LUIS의 경우 머신 티칭을 사용하고 있습니다. 사용자가 정의하는 기계 학습 기능과 레이블의 조합은 LUIS 앱에서 사용하는 것입니다. 단순히 레이블의 수량을 사용하여 최상의 예측을 만드는 것은 아닙니다. LUIS 앱이 프로덕션에서 볼 수 있는 다양한 예와 그에 대한 표현은 가장 중요한 부분입니다.

데이터 전처리

다음 전처리 단계는 더 나은 LUIS 앱을 빌드하는 데 도움이 됩니다.

  • 중복 제거: 중복 발화는 문제가 되지 않지만 도움이 되지도 않으므로 제거하면 레이블 지정 시간이 단축됩니다.
  • 동일한 클라이언트-앱 전처리 적용: LUIS 예측 엔드포인트를 호출하는 클라이언트 애플리케이션이 LUIS로 텍스트를 보내기 전에 런타임에 데이터 처리를 적용하면 LUIS 앱을 동일한 방식으로 처리되는 데이터에 대해 학습시켜야 합니다.
  • 클라이언트 앱에서 사용하지 않는 새 정리 프로세스 적용 안 함: 클라이언트 앱이 문법 또는 문장 부호 처리와 같은 정리 작업 없이 직접 음성으로 생성된 텍스트를 허용하는 경우 누락된 문장 부호 및 고려해야 할 다른 모든 오인을 동일하게 반영해야 합니다.
  • 데이터 정리 안 함: 잘못된 음성 인식, 우발적 키 입력 또는 잘못 입력하거나 철자가 잘못된 텍스트를 통해 얻을 수 있는 잘못된 형식의 입력을 제거하지 않습니다. 앱이 이와 같은 입력을 확인하는 경우 이를 학습하고 테스트하는 것이 중요합니다. 앱이 인식할 수 없는 잘못된 형식의 입력 의도를 추가합니다. LUIS 앱이 런타임에 올바른 응답을 예측하는 데 도움이 되도록 이 데이터에 레이블을 지정합니다. 클라이언트 애플리케이션은 Please try again과 같이 인식할 수 없는 발화에 대한 적절한 응답을 선택할 수 있습니다.

데이터 레이블 지정

  • 올바른 것처럼 텍스트 레이블 지정: 예제 발화는 모든 형식의 엔터티에 레이블을 지정해야 합니다. 여기에는 철자가 잘못되었거나 잘못 번역된 텍스트가 포함됩니다.

LUIS 앱을 프로덕션에 배포한 후 데이터 검토

앱을 프로덕션에 배포한 후에는 엔드포인트 발화를 검토하여 실제 발화 트래픽을 모니터링합니다. 이렇게 하면 학습 발화를 실제 데이터로 업데이트하여 앱을 개선할 수 있습니다. 크라우드소싱 또는 실제가 아닌 시나리오 데이터로 빌드된 모든 앱은 실제 사용을 기반으로 개선해야 합니다.

일괄 테스트를 위한 테스트 데이터 선택

학습 발화에 대해 위에 나열된 모든 원칙은 테스트 집합에 사용해야 하는 발화에 적용됩니다. 의도 및 엔터티 간의 분포를 통해 실제 분포를 최대한 긴밀하게 미러링합니다.

테스트 집합에서 학습 집합의 발화를 재사용하지 않습니다. 이렇게 하면 결과가 부적절하게 편향되고 프로덕션 환경에서 LUIS 앱이 어떻게 작동하는지 제대로 알 수 없습니다.

앱의 첫 번째 버전이 게시되면 테스트 집합이 프로덕션 배포를 반영하고 시간에 따른 실제적인 성능을 모니터링할 수 있도록 실제 트래픽에서의 발화로 테스트 집합을 업데이트해야 합니다.

다음 단계

LUIS가 예측 전에 데이터를 변경하는 방법 알아보기