MediaPipe 텍스트 삽입기 태스크를 사용하면 텍스트 데이터의 숫자 표현을 만들어 시맨틱 의미를 포착할 수 있습니다. 이 기능은 코사인 유사성과 같은 수학적 비교 기법을 사용하여 두 텍스트의 시맨틱 유사성을 비교하는 데 자주 사용됩니다. 이 작업은 머신러닝 (ML) 모델을 사용하여 텍스트 데이터를 처리하고 텍스트 데이터의 숫자 표현을 부동 소수점 또는 정규화된 형식의 임베딩 벡터라고도 하는 고차원 특성 벡터 목록으로 출력합니다.
시작하기
대상 플랫폼에 관한 다음 구현 가이드 중 하나에 따라 이 작업을 시작합니다. 다음 플랫폼별 가이드에서는 권장 모델, 권장 구성 옵션이 포함된 코드 예시 등 이 작업의 기본 구현을 안내합니다.
태스크 세부정보
이 섹션에서는 이 태스크의 기능, 입력, 출력, 구성 옵션을 설명합니다.
기능
- 입력 텍스트 처리 - 그래프 내 토큰화가 없는 모델의 그래프 외부 토큰화를 지원합니다.
- 임베딩 유사성 계산: 두 특성 벡터 간의 코사인 유사성을 계산하는 내장 유틸리티 함수입니다.
- 양자화 - 특징 벡터의 스칼라 양자화를 지원합니다.
태스크 입력 | 태스크 출력 |
---|---|
텍스트 삽입기는 다음과 같은 입력 데이터 유형을 허용합니다.
|
텍스트 임베더는 다음으로 구성된 임베딩 목록을 출력합니다.
|
구성 옵션
이 태스크에는 다음과 같은 구성 옵션이 있습니다.
옵션 이름 | 설명 | 값 범위 | 기본값 |
---|---|---|---|
l2_normalize |
반환된 특성 벡터를 L2 norm으로 정규화할지 여부입니다. 모델에 아직 네이티브 L2_NORMALIZATION TFLite 연산자가 포함되어 있지 않은 경우에만 이 옵션을 사용하세요. 대부분의 경우 이미 이 연산자가 포함되어 있으므로 이 옵션 없이 TFLite 추론을 통해 L2 정규화가 이루어집니다. | Boolean |
False |
quantize |
반환된 임베딩을 스칼라 정규화를 통해 바이트로 정규화해야 하는지 여부입니다. 임베딩은 단위 노름이라고 암시적으로 가정되므로 모든 측정기준의 값은 [-1.0, 1.0] 범위에 포함됩니다. 그렇지 않은 경우 l2_normalize 옵션을 사용하세요. | Boolean |
False |
모델
이 태스크로 개발을 시작할 때 기본 권장 모델이 제공됩니다.
범용 문장 인코더 모델 (권장)
이 모델은 이중 인코더 아키텍처를 사용하며 다양한 질문-답변 데이터 세트를 기반으로 학습되었습니다.
다음 문장 쌍을 고려해 보세요.
- ('매력적이고 종종 감동을 주는 여정', '멋지고 환상적인 여행')
- ('내 휴대전화가 좋아', '내 휴대전화가 싫어')
- ('이 레스토랑에 좋은 특징이 있어요', '계획 세부정보를 다시 확인해야 합니다')
첫 번째 두 쌍의 문장은 각각 '여행 감정'과 '휴대전화 의견'이라는 공통 주제를 공유하는 반면 세 번째 문장 쌍은 공통 주제를 공유하지 않으므로, 첫 번째 두 쌍의 텍스트 임베딩은 세 번째 쌍의 임베딩보다 코사인 유사성이 높습니다.
두 번째 쌍의 두 문장은 감정이 서로 다르지만 공통 주제를 공유하므로 유사성 점수가 높습니다.
모델 이름 | 입력 셰이프 | 양자화 유형 | 버전 |
---|---|---|---|
Universal Sentence Encoder | string, string, string | None (float32) | 최신 |
작업 벤치마크
다음은 위의 사전 학습된 모델을 기반으로 한 전체 파이프라인의 태스크 벤치마크입니다. 지연 시간 결과는 CPU / GPU를 사용하는 Pixel 6의 평균 지연 시간입니다.
모델 이름 | CPU 지연 시간 | GPU 지연 시간 |
---|---|---|
범용 문장 인코더 | 18.21ms | - |