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