다음을 통해 공유


Petastorm을 사용하여 데이터 로드

이 문서에서는 페타스토밍을 사용하여 Apache Spark에서 TensorFlow 또는 PyTorch로 데이터를 변환하는 방법을 설명합니다. 또한 Petastorm을 사용하여 ML용 데이터를 준비하는 방법을 보여 주는 예제도 제공합니다.

Petastorm은 오픈 소스 데이터 액세스 라이브러리입니다. Apache Parquet 형식의 데이터 세트와 Apache Spark DataFrames로 이미 로드된 데이터 세트에서 직접 딥 러닝 모델을 단일 노드 또는 분산 학습 및 평가할 수 있습니다. Petastorm은 TensorFlow, PyTorch, PySpark 같은 인기 Python 기반 ML(기계 학습) 프레임워크를 지원합니다. Petastorm에 대한 자세한 내용은 Petastorm API 설명서를 참조 하세요.

Petastorm을 사용하여 Spark DataFrames에서 데이터 로드

Petastorm Spark 변환기 API는 Spark에서 TensorFlow 또는 PyTorch로의 데이터 변환을 간소화합니다. 입력 Spark DataFrame은 먼저 Parquet 형식으로 구체화된 다음 tf.data.Dataset 또는 torch.utils.data.DataLoader로 로드됩니다. Petastorm API 설명서의 Spark 데이터 세트 변환기 API 섹션을 참조하세요.

권장 워크플로는 다음과 같습니다.

  1. Apache Spark를 사용하여 데이터를 로드하고 필요에 따라 전처리합니다.
  2. Petastorm spark_dataset_converter 메서드를 사용하여 Spark DataFrame에서 TensorFlow 데이터 세트 또는 PyTorch DataLoader로 데이터를 변환합니다.
  3. 학습 또는 유추 시 DL 프레임워크에 데이터를 공급합니다.

캐시 디렉터리 구성

Petastorm Spark 변환기는 사용자가 지정한 캐시 디렉터리 위치에 Parquet 형식의 입력 Spark DataFrame을 캐시합니다. 캐시 디렉터리는 file:///dbfs/로 시작하는 DBFS 경로여야 합니다. 예를 들어 file:///dbfs/tmp/foo/dbfs:/tmp/foo/와 동일한 위치를 나타냅니다. 캐시 디렉터리는 다음의 두 가지 방법으로 구성할 수 있습니다.

  • 클러스터 Spark 구성에서 petastorm.spark.converter.parentCacheDirUrl file:///dbfs/... 줄을 추가합니다.

  • Notebook에서 spark.conf.set()를 호출합니다.

    from petastorm.spark import SparkDatasetConverter, make_spark_converter
    
    spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, 'file:///dbfs/...')
    

converter.delete()를 호출하여 캐시를 사용한 후 명시적으로 삭제하거나, 개체 스토리지에서 수명 주기 규칙을 구성하여 캐시를 암시적으로 관리할 수 있습니다.

Databricks는 다음의 세 가지 시나리오에서 DL 학습을 지원합니다.

  • 단일 노드 학습
  • 분산된 하이퍼 매개 변수 튜닝
  • 분산 학습

엔드 투 엔드 예제는 다음 Notebook을 참조하세요.

Petastorm을 사용하여 Parquet 파일 직접 로드

이 메서드는 Petastorm Spark 변환기 API보다 덜 선호됩니다.

권장 워크플로는 다음과 같습니다.

  1. Apache Spark를 사용하여 데이터를 로드하고 필요에 따라 전처리합니다.
  2. 도우미 DBFS가 탑재된 DBFS 경로에 Parquet 형식으로 데이터를 저장합니다.
  3. DBFS 탑재 지점을 통해 Petastorm 형식으로 데이터를 로드합니다.
  4. 학습 또는 유추 시 DL 프레임워크에서 데이터를 사용합니다.

엔드 투 엔드 예제는 예제 Notebook을 참조하세요.

예: TensorFlow 또는 PyTorch를 사용하여 데이터 전처리 및 모델 학습

이 예제 Notebook은 Databricks에서 다음 워크플로를 보여 줍니다.

  1. Spark를 사용하여 데이터를 로드합니다.
  2. Petastorm을 사용하여 Spark DataFrame을 TensorFlow 데이터 세트로 변환합니다.
  3. 학습을 위해 데이터를 단일 노드 TensorFlow 모델에 공급합니다.
  4. 분산 하이퍼 매개 변수 튜닝 함수에 데이터를 공급합니다.
  5. 학습을 위해 분산 TensorFlow 모델에 데이터를 공급합니다.

Spark에서 TensorFlow Notebook으로 데이터 변환 간소화

전자 필기장 가져오기

이 예제 Notebook은 Databricks에서 다음 워크플로를 보여 줍니다.

  1. Spark를 사용하여 데이터를 로드합니다.
  2. Petastorm을 사용하여 Spark DataFrame을 PyTorch DataLoader로 변환합니다.
  3. 학습을 위해 데이터를 단일 노드 PyTorch 모델에 공급합니다.
  4. 분산 하이퍼 매개 변수 튜닝 함수에 데이터를 공급합니다.
  5. 학습을 위해 분산 PyTorch 모델에 데이터를 공급합니다.

Spark에서 PyTorch Notebook으로 데이터 변환 간소화

전자 필기장 가져오기

예: Petastorm을 사용하여 데이터를 전처리하고 Parquet 파일 로드

이 예제 Notebook에서는 Databricks에서 다음 워크플로를 보여 줍니다.

  1. Spark를 사용하여 데이터를 로드하고 전처리합니다.
  2. 아래의 Parquet을 사용하여 데이터를 저장합니다 dbfs:/ml.
  3. 최적화된 FUSE 탑재 file:/dbfs/ml를 통해 Petastorm을 사용하여 데이터를 로드합니다.
  4. 학습 또는 유추를 위해 데이터를 딥 러닝 프레임워크에 공급합니다.

Spark 및 Petastorm을 사용하여 딥 러닝 Notebook에 대한 데이터 준비

전자 필기장 가져오기