Dataflow ML

Dataflow ML을 사용하면 Dataflow를 사용하여 완전한 머신러닝(ML) 파이프라인을 배포하고 관리할 수 있습니다. ML 모델을 사용하여 일괄 및 스트리밍 파이프라인으로 로컬 및 원격 추론을 수행하세요. 데이터 처리 도구를 사용하여 모델 학습용 데이터를 준비하고 모델 결과를 처리합니다.
실시간으로 이미지를 분류하거나, 원격 추론 호출을 실행하거나, 커스텀 모델 핸들러를 빌드하려는 경우, 완전한 Dataflow ML 예시를 찾아볼 수 있습니다.
MLTransform 클래스를 사용하여 머신러닝(ML) 워크플로에 대해 데이터를 사전 처리합니다. 한 클래스에 여러 데이터 처리 변환을 결합하면 MLTransform에서 Apache Beam ML 데이터 처리 변환을 워크플로에 적용하는 프로세스를 간소화합니다.
with pipeline as p:
  predictions = (
      p
      | beam.ReadFromSource('a_source')
      | RunInference(MODEL_HANDLER))
RunInference 사용은 파이프라인에 변환 코드를 추가하는 것만큼 간단합니다. 이 예시에서 MODEL_HANDLER는 모델 구성 객체입니다.
with beam.Pipeline() as p:
  transformed_data = (
    p
    | beam.Create(data)
    | MLTransform(...)
    | beam.Map(print))
ML 모델 학습을 위해 데이터를 준비하려면 파이프라인에서 MLTransform을 사용합니다. MLTransform은 하나의 클래스에 여러 개의 데이터 처리 변환을 래핑하여, 여러 전처리 태스크에 하나의 클래스를 사용할 수 있게 해줍니다.

선행 학습된 모델로 예측 및 추론

Pytorch에서 선행 학습된 모델을 사용하세요.
scikit-learn으로 선행 학습된 모델을 사용하세요.
TensorFlow와 함께 선행 학습된 모델을 사용하세요.
Apache Beam에는 원격으로 배포된 Vertex AI 엔드포인트에 요청을 전송하기 위한 기본 제공 지원이 포함됩니다. 이 노트북은 Vertex AI를 사용해서 이미지를 분류하기 위해 Apache Beam RunInference 변환을 사용하는 방법을 보여줍니다.
동일한 RunInference 변환에서 여러 모델을 사용하려면 키가 지정된 모델 핸들러와 함께 RunInference 변환을 사용합니다.

MLTransform을 사용하여 데이터 처리

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

허브 모델을 사용하여 예측 및 추론

추론 파이프라인에서 Gemma 모델을 사용하여 감정 분석을 수행할 수 있습니다.
Hugging Face의 학습된 모델과 함께 RunInference 변환을 사용합니다.
TensorFlow Hub에서 학습된 모델과 함께 TensorFlow용 RunInference 변환을 사용합니다.
생성형 AI 태스크에 RunInference 변환을 사용합니다. 이 메모장은 Hugging Face Model Hub의 언어 모델을 사용합니다.

ML 워크플로 조정

Vertex AI Pipelines는 서버리스 방식으로 ML 워크플로를 조정하여 ML 시스템을 자동화, 모니터링, 제어하는 데 도움이 됩니다. Vertex AI Pipelines를 사용하여 TFX 또는 KFP로 정의된 워크플로 DAG를 조정하고 Vertex ML Metadata를 사용하여 ML 아티팩트를 자동으로 추적합니다.
TensorFlow Extended(TFX)를 사용하면 Apache Beam 및 Dataflow 실행기와 기본 통합된 조정 프레임워크를 사용하여 완전한 ML 파이프라인을 배포할 수 있습니다.
Kubeflow는 Kubernetes에서 ML 워크플로 배포를 간편하게 수행하고 이동 및 확장할 수 있게 해줍니다. Kubeflow Pipelines는 Kubeflow Pipelines SDK를 사용하여 빌드된 재사용 가능한 완전한 ML 워크플로입니다.

모델 유지보수 및 평가

RunInference를 사용하면 Apache Beam 파이프라인을 중지하지 않고도 자동 모델 업데이트를 수행할 수 있습니다. 파이프라인이 실행되는 동안에도 부 입력을 사용하여 모델을 실시간으로 업데이트할 수 있습니다.
TensorFlow 모델 분석(TFMA)을 사용하여 두 모델을 만들고 비교하여 모델의 성능을 조사하고 시각화합니다. Apache Beam을 사용하면 한 번에 여러 모델을 평가하고 비교할 수 있습니다.

리소스

Dataflow 작업에서 GPU를 사용하면 이미지 처리 및 머신러닝 처리 작업을 가속화할 수 있습니다.
Dataflow ML 예시를 실행하려면 Google Cloud 권한을 구성해야 할 수 있습니다. Dataflow 파이프라인에 필요한 권한에 대한 상세 가이드를 읽어보세요.
예시 및 해당 소스 코드는 GitHub에서 확인할 수 있습니다. GitHub에서는 Colab의 예제를 실행하기 위한 안내도 찾을 수 있습니다.