텍스트 삽입 가이드

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 문자열, 문자열, 문자열 없음 (float32) 최신

작업 벤치마크

다음은 위의 선행 학습된 모델을 기반으로 전체 파이프라인에 대한 작업 벤치마크입니다. 지연 시간 결과는 CPU / GPU를 사용하는 Pixel 6의 평균 지연 시간입니다.

모델 이름 CPU 지연 시간 GPU 지연 시간
Universal Sentence Encoder 18.21밀리초 -