MLTransform을 사용하여 데이터 사전 처리

이 페이지에서는 MLTransform 특성을 사용하여 머신러닝(ML) 모델을 학습시킬 수 있는 데이터를 준비하는 이유와 방법을 설명합니다. 한 클래스에 여러 데이터 처리 변환을 결합하면 MLTransform에서 Apache Beam ML 데이터 처리 작업을 워크플로에 적용하는 프로세스를 간소화합니다.

데이터 처리 단계가 강조표시된 Dataflow ML 워크플로 다이어그램

그림 1. 전체 Dataflow ML 워크플로. 워크플로의 전처리 단계에서 MLTransform을 사용합니다.

이점

MLTransform 클래스는 다음과 같은 이점을 제공합니다.

  • 복잡한 코드를 작성하거나 기본 라이브러리를 관리하지 않고도 데이터를 변환할 수 있습니다.
  • 데이터를 벡터 데이터베이스로 푸시하거나 추론을 실행하는 데 사용할 수 있는 임베딩을 생성합니다.
  • 인터페이스 하나에서 여러 유형의 처리 작업을 효율적으로 연결할 수 있습니다.

지원 및 제한 사항

MLTransform 클래스에는 다음과 같은 제한사항이 있습니다.

  • Apache Beam Python SDK 버전 2.53.0 이상을 사용하는 파이프라인에 사용할 수 있습니다.
  • 파이프라인에서 기본 기간을 사용해야 합니다.

텍스트 임베딩 변환:

TFT를 사용하는 데이터 처리 변환:

  • Python 3.9, 3.10, 3.11을 지원합니다.
  • 일괄 파이프라인을 지원합니다.

사용 사례

예시 메모장에서는 특정 사용 사례에 MLTransform를 사용하는 방법을 보여줍니다.

Vertex AI를 사용하여 LLM의 텍스트 임베딩 생성
Vertex AI 텍스트 임베딩 API와 함께 Apache Beam MLTransform 클래스를 사용하여 텍스트 임베딩을 생성합니다. 텍스트 임베딩은 텍스트를 숫자 벡터로 표현하기 위한 방법으로, 많은 자연어 처리(NLP) 작업에 필요합니다.
Hugging Face를 사용하여 LLM의 텍스트 임베딩 생성
Hugging Face Hub 모델과 함께 Apache Beam MLTransform 클래스를 사용하여 텍스트 임베딩을 생성합니다. Hugging Face SentenceTransformers 프레임워크는 Python을 사용하여 문장, 텍스트, 이미지 임베딩을 생성합니다.
데이터 세트에서 어휘 계산
데이터 세트에서 고유 어휘를 계산한 다음 각 단어 또는 토큰을 고유한 정수 색인에 매핑합니다. 이 변환을 사용하여 텍스트 데이터를 머신러닝 작업에 사용되는 숫자 표현으로 변경합니다.
ML 모델 학습에 필요한 데이터 확장
데이터를 ML 모델을 학습시키는 데 사용할 수 있도록 확장합니다. Apache Beam MLTransform 클래스에는 여러 데이터 확장 변환이 포함되어 있습니다.

사용 가능한 변환의 전체 목록은 Apache Beam 문서에서 변환을 참조하세요.

MLTransform 사용

MLTransform 클래스를 사용하여 데이터를 사전 처리하려면 파이프라인에 다음 코드를 포함합니다.

  import apache_beam as beam
  from apache_beam.ml.transforms.base import MLTransform
  from apache_beam.ml.transforms.tft import TRANSFORM_NAME
  import tempfile

  data = [
      {
          DATA
      },
  ]

  artifact_location = gs://BUCKET_NAME
  TRANSFORM_FUNCTION_NAME = TRANSFORM_NAME(columns=['x'])

  with beam.Pipeline() as p:
    transformed_data = (
        p
        | beam.Create(data)
        | MLTransform(write_artifact_location=artifact_location).with_transform(
            TRANSFORM_FUNCTION_NAME)
        | beam.Map(print))

다음 값을 바꿉니다.

  • TRANSFORM_NAME: 사용할 변환의 이름
  • BCUKET_NAME: Cloud Storage 버킷 이름
  • DATA: 변환할 입력 데이터
  • TRANSFORM_FUNCTION_NAME: 코드에서 변환 함수에 할당하는 이름

다음 단계