Dataflow ML 정보

예측 및 추론 파이프라인학습용 데이터 준비에 Dataflow ML의 확장 데이터 처리 기능을 사용할 수 있습니다.

Dataflow ML 워크플로 다이어그램

그림 1. 전체 Dataflow ML 워크플로.

요구사항 및 제한사항

  • Dataflow ML은 일괄 및 스트리밍 파이프라인을 지원합니다.
  • RunInference API는 Apache Beam 2.40.0 이상 버전에서 지원됩니다.
  • MLTransform API는 Apache Beam 2.53.0 이상 버전에서 지원됩니다.
  • 모델 핸들러는 PyTorch, scikit-learn, TensorFlow, ONNX, TensorRT에 사용할 수 있습니다. 지원되지 않는 프레임워크의 경우 커스텀 모델 핸들러를 사용할 수 있습니다.

학습용 데이터 준비

예측 및 추론 파이프라인

Dataflow ML은 Dataflow의 강력한 기능을 Apache Beam의 RunInference API와 결합합니다. 개발자는 RunInference API를 사용하여 모델의 특성과 속성을 정의하고 이 구성을 RunInference 변환에 전달합니다. 이 기능을 사용하면 모델의 구현 세부정보를 몰라도 사용자가 Dataflow 파이프라인에서 모델을 실행할 수 있습니다. TensorFlow, PyTorch 등 데이터에 가장 적합한 프레임워크를 선택할 수 있습니다.

파이프라인에서 여러 모델 실행

RunInference 변환을 사용하여 Dataflow 파이프라인에 여러 추론 모델을 추가합니다. 코드 세부정보를 포함한 자세한 내용은 Apache Beam 문서의 멀티 모델 파이프라인을 참조하세요.

교차 언어 파이프라인 빌드

Java 파이프라인에 RunInference를 사용하려면 교차 언어 Python 변환을 만듭니다. 파이프라인이 변환을 호출하여 전처리, 후처리, 추론을 수행합니다.

자세한 안내 및 샘플 파이프라인은 Java SDK에서 RunInference 사용을 참조하세요.

Dataflow에서 GPU 사용

가속기를 사용해야 하는 일괄 또는 스트리밍 파이프라인의 경우 NVIDIA GPU 기기에서 Dataflow 파이프라인을 실행할 수 있습니다. 자세한 내용은 GPU로 Dataflow 파이프라인 실행을 참조하세요.

Dataflow ML 문제 해결

이 섹션에서는 Dataflow ML을 사용할 때 유용할 수 있는 문제 해결 전략과 링크를 제공합니다.

스택은 각 텐서 크기가 같을 것으로 예상함

RunInference API를 사용할 때 크기가 다른 이미지, 또는 길이가 다른 단어 임베딩을 제공하면 다음 오류가 발생할 수 있습니다.

File "/beam/sdks/python/apache_beam/ml/inference/pytorch_inference.py", line 232, in run_inference batched_tensors = torch.stack(key_to_tensor_list[key]) RuntimeError: stack expects each tensor to be equal size, but got [12] at entry 0 and [10] at entry 1 [while running 'PyTorchRunInference/ParDo(_RunInferenceDoFn)']

이 오류는 RunInference API가 크기가 다른 텐서 요소를 일괄 처리할 수 없기 때문에 발생합니다. 해결 방법은 Apache Beam 문서의 텐서 요소를 일괄 처리할 수 없음을 참조하세요.

다음 단계