Language Studio에서 발화에 레이블 지정

프로젝트에 대한 스키마가 빌드되면 학습 발화를 프로젝트에 추가해야 합니다. 발화는 사용자가 프로젝트와 상호 작용할 때 사용하는 것과 비슷합니다. 발화를 추가하는 경우 해당 발화가 속하는 의도를 할당해야 합니다. 발화가 추가된 후 엔티티로 추출하려는 발화 내 단어에 레이블을 지정합니다.

데이터 레이블 지정은 개발 수명 주기의 중요한 단계입니다. 이 데이터는 모델이 레이블이 지정된 데이터에서 학습할 수 있도록 모델을 학습할 때 다음 단계에서 사용됩니다. 이미 레이블이 지정된 발화가 있는 경우 프로젝트로 직접 가져올 수 있지만 데이터가 허용되는 데이터 서식을 따르는지 확인해야 합니다. 레이블이 지정된 데이터를 프로젝트로 가져오는 방법에 대한 자세한 내용은 프로젝트 만들기를 참조하세요. 레이블이 지정된 데이터는 모델에 텍스트를 해석하는 방법을 알려 주고 학습 및 평가에 사용됩니다.

필수 조건

데이터에 레이블을 지정하려면 먼저 다음이 필요합니다.

자세한 내용은 프로젝트 개발 수명 주기를 참조하세요.

데이터 레이블 지정 지침

스키마를 빌드하고 프로젝트를 만든 후에는 데이터에 레이블을 지정해야 합니다. 모델에 프로젝트의 의도 및 엔터티와 연결될 단어와 문장을 알 수 있도록 데이터에 레이블을 지정하는 것이 중요합니다. 발화에 레이블을 지정하는 데 시간을 할애하는 것이 좋습니다. 즉, 모델을 학습하는 데 사용할 데이터를 도입하고 수정합니다.

발화를 추가하고 레이블을 지정할 때 다음 사항에 유의합니다.

  • 기계 학습 모델은 사용자가 제공한 레이블이 지정된 예를 기반으로 일반화됩니다. 더 많은 예를 제공할수록 모델이 더 나은 일반화를 만들기 위해 더 많은 데이터 포인트가 필요합니다.

  • 레이블이 지정된 데이터의 정밀도, 일관성 및 완전성은 모델 성능을 결정하는 주요 요소입니다.

    • 정확한 레이블 지정: 각 의도 및 엔터티를 항상 올바른 형식으로 레이블을 지정합니다. 분류 및 추출하려는 항목만 포함하고 레이블에 불필요한 데이터를 포함하지 마세요.
    • 일관된 레이블: 동일한 항목은 모든 발화에서 동일한 레이블을 가져야 합니다.
    • 완전히 레이블 지정: 모든 의도에 대해 다양한 발화를 제공합니다. 모든 발화에서 항목의 모든 인스턴스에 레이블을 지정합니다.

발화에 명확하게 레이블 지정

  • 엔터티가 참조하는 개념이 잘 정의되고 분리 가능한지 확인합니다. 차이점을 안정적으로 쉽게 확인할 수 있는지 확인합니다. 이렇게 할 수 없는 경우 학습된 구성 요소도 어려움을 겪을 수 있습니다.

  • 엔터티 간에 유사점이 있는 경우 데이터 간의 차이점에 대한 신호를 제공하는 데이터의 일부 측면이 있는지 확인합니다.

    예를 들어, 항공편을 예약하기 위한 모델을 구축한 경우 사용자는 "보스턴에서 시애틀까지의 항공편을 원합니다"와 같은 발화를 사용할 수 있습니다. 이러한 발화의 출발지 도시목적지 도시는 비슷할 것으로 예상됩니다. "출발지 도시"를 구별하기 위한 신호는 종종 "from"이라는 단어가 선행된다는 것입니다.

  • 학습 및 테스트 데이터 모두에서 각 엔터티의 모든 인스턴스에 레이블을 지정해야 합니다. 한 가지 방법은 검색 함수를 사용하여 데이터에서 단어나 구문의 모든 인스턴스를 찾아 올바른 레이블이 지정되었는지 확인하는 것입니다.

  • 학습된 구성 요소가 없는 엔터티와 해당 요소가 있는 엔터티에 대한 테스트 데이터에 레이블을 지정합니다. 이렇게 하면 평가 메트릭이 정확한지 확인하는 데 도움이 됩니다.

  • 다국어 프로젝트의 경우 다른 언어로 된 발화를 추가하면 이러한 언어에서 모델의 성능이 향상되지만 지원하려는 모든 언어에서 데이터가 중복되는 것을 방지할 수 있습니다. 예를 들어 사용자를 통해 일정 봇의 성능을 향상시키기 위해 개발자는 주로 예제를 영어로 추가하고, 몇 가지 예제를 스페인어 또는 프랑스어로 추가할 수 있습니다. 추가할 수 있는 발화는 다음과 같습니다.

    • "Set a meeting with Matt and Kevintomorrow at 12 PM."(영어)
    • "Reply as tentative to the weekly update meeting."(영어)
    • "Cancelar mi próxima reunión."(스페인어)

발화에 레이블을 지정하는 방법

발화에 레이블을 지정하려면 다음 단계를 따릅니다.

  1. Language Studio에서 프로젝트 페이지로 이동합니다.

  2. 왼쪽 메뉴에서 데이터 레이블 지정을 선택합니다. 이 페이지에서 발화를 추가하고 레이블을 지정할 수 있습니다. 상단 메뉴에서 발화 파일 업로드를 클릭하여 발화를 직접 업로드할 수도 있습니다. 허용되는 형식을 따르는지 확인합니다.

  3. 상단 피벗에서 보기를 학습 세트 또는 테스트 세트로 변경할 수 있습니다. 학습 및 테스트 세트와 이러한 세트가 모델 학습 및 평가에 사용되는 방법에 대해 자세히 알아봅니다.

    A screenshot of the page for tagging utterances in Language Studio.

    자동으로 학습 데이터에서 테스트 세트 분할 분할을 사용하려는 경우 모든 발화를 학습 세트에 추가합니다.

  4. 의도 선택 드롭다운 메뉴에서 의도, 발화 언어(다국어 프로젝트의 경우) 및 발화 자체 중 하나를 선택합니다. 발화의 텍스트 상자에서 Enter 키를 눌러 발화를 추가합니다.

  5. 발화에서 엔터티에 레이블을 지정하는 두 가지 옵션이 있습니다.

    옵션 설명
    브러시를 사용하여 레이블 지정 오른쪽 창에서 엔터티 옆에 있는 브러시 아이콘을 선택한 다음 레이블을 지정하려는 발화의 텍스트를 강조 표시합니다.
    인라인 메뉴를 사용하여 레이블 지정 엔터티로 태그를 지정할 단어를 강조 표시하면 메뉴가 나타납니다. 이 단어에 레이블을 지정할 엔터티를 선택합니다.
  6. 레이블 피벗 아래의 오른쪽 창에서 프로젝트의 모든 엔터티 형식과 레이블이 지정된 각 인스턴스의 개수를 찾을 수 있습니다.

  7. 배포 피벗 아래에서 학습 및 테스트 세트에 대한 배포를 볼 수 있습니다. 다음 두 가지 옵션이 표시됩니다.

    • 특정 항목의 레이블이 지정된 모든 인스턴스의 수를 볼 수 있는 레이블이 지정된 항목당 총 인스턴스입니다.
    • 레이블이 있는 항목당 고유한 발화 여기서 이 항목의 레이블이 지정된 인스턴스가 하나 이상 포함된 경우 각 발화가 계산됩니다.
    • 의도당 발화 수를 볼 수 있는 의도당 발화.

A screenshot showing entity distribution in Language Studio.

참고 항목

목록 및 미리 빌드된 구성 요소는 데이터 레이블 지정 페이지에 표시되지 않으며 여기의 모든 레이블은 학습된 구성 요소에만 적용됩니다.

레이블을 제거하려면 다음을 수행합니다.

  1. 발화 내에서 레이블을 제거할 엔터티를 선택합니다.
  2. 표시되는 메뉴를 스크롤하고 레이블 제거를 선택합니다.

엔터티를 삭제하려면 다음 단계를 따릅니다.

  1. 오른쪽 창에서 편집할 엔터티를 선택합니다.
  2. 엔터티 옆에 있는 세 개의 점을 선택하고 드롭다운 메뉴에서 원하는 옵션을 선택합니다.

Azure OpenAI를 사용하여 발화 제안

CLU에서 Azure OpenAI를 사용하여 GPT 모델을 사용하여 프로젝트에 추가할 발화를 제안합니다. 먼저 액세스 권한을 얻고 Azure OpenAI에서 리소스를 만들어야 합니다. 그런 다음 GPT 모델에 대한 배포를 만들어야 합니다. 여기에서 필수 구성 요소 단계를 따릅니다.

시작 전에 발화 제안 기능은 언어 리소스가 다음 지역에 있는 경우에만 사용할 수 있습니다.

  • 미국 동부
  • 미국 중남부
  • 서유럽

데이터 레이블 지정 페이지에서 다음을 수행합니다.

  1. 발화 제안 단추를 선택합니다. 오른쪽에 창이 열리고 Azure OpenAI 리소스 및 배포를 선택하라는 메시지가 표시됩니다.
  2. Azure OpenAI 리소스를 선택할 때 연결을 선택하여 언어 리소스가 Azure OpenAI 리소스에 직접 액세스할 수 있도록 합니다. 현재 언어 리소스가 Azure OpenAI의 서비스에 액세스할 수 있도록 Cognitive Services User 언어 리소스의 역할을 Azure OpenAI 리소스에 할당합니다. 연결에 실패하면 아래 단계에 따라 Azure OpenAI 리소스에 올바른 역할을 수동으로 추가합니다.
  3. 리소스가 연결되면 배포를 선택합니다. Azure OpenAI 배포에 권장되는 모델은 text-davinci-002입니다.
  4. 제안을 받을 의도를 선택합니다. 선택한 의도에 발화 제안을 사용하도록 설정할 저장된 발화가 5개 이상 있는지 확인합니다. Azure OpenAI에서 제공하는 제안은 해당 의도에 대해 추가한 최신 발화를 기반으로 합니다.
  5. 발화 생성을 선택합니다. 완료되면 제안된 발화가 주위에 점선으로 표시되고 AI에 의해 생성됐음이 표시됩니다. 이러한 제안은 수락되거나 거부되어야 합니다. 제안을 수락하면 직접 추가한 것처럼 프로젝트에 추가됩니다. 거부하면 제안이 완전히 삭제됩니다. 수락된 발화만 프로젝트의 일부가 되며 학습 또는 테스트에 사용됩니다. 각 발화 옆에 있는 녹색 검사 또는 빨간색 취소 단추를 클릭하여 수락하거나 거부할 수 있습니다. 도구 모음에서 Accept allReject all 단추를 사용할 수도 있습니다.

A screenshot showing utterance suggestions in Language Studio.

이 기능을 사용하면 생성된 제안된 발화와 비슷한 수의 토큰에 대해 Azure OpenAI 리소스에 대한 요금이 부과됩니다. Azure OpenAI의 가격 책정에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Azure OpenAI 리소스에 필수 구성 추가

언어 리소스를 Azure OpenAI 리소스에 연결하지 못하는 경우 다음 단계를 따릅니다.

다음 옵션을 사용하여 언어 리소스에 대한 ID 관리를 사용하도록 설정합니다.

Azure Portal을 사용하여 사용하도록 설정하려면 언어 리소스에 ID 관리가 있어야 합니다.

  1. 언어 리소스로 이동
  2. 왼쪽 메뉴의 리소스 관리 섹션 아래에서 ID를 선택합니다.
  3. 시스템 할당 탭에서 상태켜기로 설정해야 합니다.

관리 ID를 사용하도록 설정한 후 언어 리소스의 관리 ID를 사용하여 Azure OpenAI 리소스에 Cognitive Services User 역할을 할당합니다.

  1. Azure Portal에 로그인하고 Azure OpenAI 리소스로 이동합니다.
  2. 왼쪽에서 IAM(액세스 제어) 탭을 선택합니다.
  3. 추가 > "역할 할당 추가" 선택
  4. "직무 역할"을 선택하고 다음을 클릭합니다.
  5. 역할 목록에서 Cognitive Services User를 선택하고 다음을 클릭합니다.
  6. "관리 ID"에 대한 액세스 권한 할당을 선택하고 "멤버 선택"을 선택합니다.
  7. "관리 ID"에서 "언어"를 선택합니다.
  8. 리소스를 검색하고 선택합니다. 그런 다음 아래 및 다음 선택 단추를 선택하여 프로세스를 완료합니다.
  9. 세부 정보를 검토하고 검토 + 할당을 선택합니다.

Multiple screenshots showing the steps to add the required role to your Azure OpenAI resource.

몇 분 후에 Language Studio를 새로 고치면 Azure OpenAI에 성공적으로 연결할 수 있습니다.

다음 단계