aprendizagem profunda model inference fluxo de trabalho

Para inferência de modelo para aplicativos de aprendizagem profunda, Databricks recomenda o seguinte fluxo de trabalho. Por exemplo Notebook que usa TensorFlow e PyTorch, consulte exemplos de inferência de modelo de aprendizagem profunda.

  1. Carregue os dados em Spark DataFrames. Dependendo do tipo de dados, Databricks recomenda as seguintes maneiras de carregar dados:

    • Arquivos de imagem (JPG, PNG): Carregue os caminhos da imagem em um Spark DataFrame. O carregamento de imagens e os dados de entrada de pré-processamento ocorrem em um UDF pandas.

    files_df = spark.createDataFrame(map(lambda path: (path,), file_paths), ["path"])
    
    df = spark.read.format("tfrecords").load(image_path)
    
    • fonte de dados como Parquet, CSV, JSON, JDBC e outros metadados: Carregue o uso de dados Spark fonte de dados.

  2. Realize inferência de modelo usando UDFs pandas. pandas UDFs usam Apache Arrow para transferir dados e pandas para trabalhar com os dados. Para fazer a inferência de modelo, a seguir estão os passos gerais no fluxo de trabalho com pandas UDFs.

    1. Carregar o modelo treinado: para eficiência, o Databricks recomenda transmitir os pesos do modelo do driver e carregar o gráfico do modelo e obter os pesos das variáveis transmitidas em um UDF do pandas.

    2. Carregar e pré-processar dados de entrada: para carregar dados em lotes, a Databricks recomenda usar a API tf.data para TensorFlow e a classe DataLoader para PyTorch. Ambos também oferecem suporte à pré-busca e ao carregamento multiencadeado para ocultar a latência vinculada ao IO.

    3. predição do modelo de execução: inferência do modelo de execução nos lotes de dados.

    4. Envie as previsões de volta ao Spark DataFrames: colete os resultados da previsão e retorne como pd.Series.

exemplos de inferência de modelos de aprendizagem profunda

Os exemplos nesta seção seguem o fluxo de trabalho de inferência de Aprendizagem Profunda recomendado. Esses exemplos ilustram como executar a inferência de modelo usando um modelo de rede neural de redes residuais profundas pré-treinadas (ResNets).