MediaPipe Text Classifier 태스크를 사용하면 텍스트를 긍정적 또는 부정적 감정과 같은 정의된 카테고리 집합으로 분류할 수 있습니다. 카테고리는 모델 학습 중에 정의됩니다. 이 작업은 머신러닝(ML) 모델을 정적 데이터로 사용하여 텍스트 데이터를 대상으로 작동하며, 카테고리 목록과 가능성 점수를 출력합니다.
시작하기
작업 중인 플랫폼에 대한 다음 구현 가이드 중 하나에 따라 이 작업을 사용하세요.
이러한 플랫폼별 가이드에서는 권장 모델 및 권장 구성 옵션이 있는 코드 예를 포함하여 이 작업의 기본 구현을 설명합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력 및 구성 옵션을 설명합니다.
기능
- 입력 텍스트 처리 - 그래프 내 토큰화 없이 모델에 그래프 외부 토큰화를 지원합니다.
- 여러 분류 헤드 - 각 헤드는 자체 카테고리 집합을 사용할 수 있습니다.
- 라벨 지도 언어 - 표시 이름에 사용되는 언어를 설정합니다.
- 점수 임곗값 - 예측 점수를 기준으로 결과를 필터링합니다.
- Top-k 분류 결과 - 감지 결과 수를 필터링합니다.
- 라벨 허용 목록 및 차단 목록 - 감지된 카테고리를 지정합니다.
작업 입력 | 작업 출력 |
---|---|
Text Classifier에는 다음과 같은 입력 데이터 유형이 허용됩니다.
|
Text Classifier는 다음을 포함하는 카테고리 목록을 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
displayNamesLocale |
가능한 경우 태스크 모델의 메타데이터에 제공되는 표시 이름에 사용할 라벨 언어를 설정합니다. 기본값은 영어의 경우 en 입니다. TensorFlow Lite Metadata Writer API를 사용하여 커스텀 모델의 메타데이터에 현지화된 라벨을 추가할 수 있습니다.
| 언어 코드 | 한국어 |
maxResults |
반환할 최고 점수를 받은 분류 결과의 최대 개수를 선택합니다(선택사항). 0보다 작은 경우 사용 가능한 모든 결과가 반환됩니다. | 모든 양수 | -1 |
scoreThreshold |
모델 메타데이터에서 제공된 값 (있는 경우)을 재정의하는 예측 점수 임곗값을 설정합니다. 이 값보다 낮은 결과는 거부됩니다. | 모든 플로팅 | 설정되지 않음 |
categoryAllowlist |
허용된 카테고리 이름의 선택적 목록을 설정합니다. 비어 있지 않으면 카테고리 이름이 이 세트에 없는 분류 결과는 필터링됩니다. 중복되거나 알 수 없는 카테고리 이름은 무시됩니다.
이 옵션은 categoryDenylist 와 상호 배타적이며 둘 다 사용하면 오류가 발생합니다. |
모든 문자열 | 설정되지 않음 |
categoryDenylist |
허용되지 않는 카테고리 이름의 선택적 목록을 설정합니다. 비어 있지 않으면 카테고리 이름이 이 세트에 있는 분류 결과가 필터링됩니다. 중복되거나 알 수 없는 카테고리 이름은 무시됩니다. 이 옵션은 categoryAllowlist 와 함께 사용할 수 없으며 두 옵션을 모두 사용하면 오류가 발생합니다. |
모든 문자열 | 설정되지 않음 |
모델
Text Classifier는 하나 이상의 ML 모델에서 사용할 수 있습니다. 이 작업으로 개발을 시작할 때는 대상 플랫폼에 권장되는 기본 모델로 시작하세요. 사용 가능한 다른 모델은 일반적으로 성능, 정확성, 해상도, 리소스 요구사항을 절충하며, 경우에 따라 추가 기능을 포함합니다.
선행 학습된 모델은 감정 분석을 위해 학습되며 입력 텍스트의 감정이 긍정적인지 부정적인지 예측합니다. 이 모델은 양성 또는 음성 라벨이 지정된 영화 리뷰로 구성된 SST-2 (Stanford Sentiment Treebank) 데이터세트를 기반으로 학습되었습니다. 이 모델은 영어만 지원합니다. 영화 리뷰 데이터 세트를 학습했기 때문에 다른 주제 영역을 다루는 텍스트의 품질이 저하될 수 있습니다.
BERT 분류기 모델 (권장)
이 모델은 BERT 기반 아키텍처 (특히 MobileBERT 모델)를 사용하며 정확성이 높기 때문에 권장됩니다. 여기에는 태스크가 그래프 외부 BERT 토큰화를 수행할 수 있게 해주는 메타데이터가 포함됩니다.
모델 이름 | 입력 형태 | 양자화 유형 | 버전 |
---|---|---|---|
BERT 분류기 | [1x128],[1x128],[1x128] | Dynamic Range | 최신 |
평균 단어 임베딩 모델
이 모델은 평균적인 워드 임베딩 아키텍처를 사용합니다. 이 모델은 BERT 분류기에 비해 예측 정확도가 낮지만 모델 크기는 더 작고 지연 시간이 짧습니다. 추가 학습을 통해 이 모델을 맞춤설정하는 것도 BERT 기반 분류기를 학습시키는 것보다 빠릅니다. 이 모델에는 태스크가 그래프 외 정규식 토큰화를 수행할 수 있도록 하는 메타데이터가 포함되어 있습니다.
모델 이름 | 입력 형태 | 양자화 유형 | 버전 |
---|---|---|---|
평균 단어 임베딩 | 1 x 256 | 없음 (float32) | 최신 |
작업 벤치마크
다음은 위의 선행 학습된 모델을 기반으로 전체 파이프라인에 대한 작업 벤치마크입니다. 지연 시간 결과는 CPU / GPU를 사용하는 Pixel 6의 평균 지연 시간입니다.
모델 이름 | CPU 지연 시간 | GPU 지연 시간 |
---|---|---|
평균 단어 임베딩 | 0.14밀리초 | - |
BERT 분류기 | 57.68밀리초 | - |
커스텀 모델
제공된 모델의 기능을 개선하거나 변경하려는 경우 이 태스크와 함께 맞춤설정된 ML 모델을 사용할 수 있습니다. Model Maker를 사용하여 기존 모델을 수정하거나 TensorFlow와 같은 도구를 사용하여 모델을 빌드할 수 있습니다. MediaPipe와 함께 사용되는 커스텀 모델은 TensorFlow Lite 형식이어야 하며 모델의 작동 매개변수를 설명하는 특정 메타데이터를 포함해야 합니다. 직접 모델을 빌드하기 전에 이 태스크에 제공된 모델을 수정할 때 Model Maker를 사용하는 것이 좋습니다.