Container Runtime para ML

Visão geral

O Container Runtime para ML é um conjunto de ambientes personalizáveis pré-configurados criados para aprendizado de máquina no Snowpark Container Services, abrangendo experimentação interativa e cargas de trabalho de ML em lote, como treinamento de modelo, ajuste de hiperparâmetros, inferência em lote e ajuste fino. Eles incluem as estruturas mais populares de aprendizado de máquina e aprendizado profundo. Usados com notebooks Snowflake, eles proporcionam uma experiência de ML completa.

Ambiente de execução

O Container Runtime para ML fornece um ambiente repleto de pacotes e bibliotecas que oferecem suporte a uma ampla variedade de tarefas de desenvolvimento de ML dentro do Snowflake. Além dos pacotes pré-instalados, é possível importar pacotes de fontes externas, como repositórios PyPI públicos ou repositórios de pacote hospedados internamente, que fornecem uma lista de pacotes aprovados para uso dentro de sua organização.

As execuções de suas cargas de trabalho de ML de Python personalizadas e APIs de treinamento com suporte ocorrem no Snowpark Container Services, que oferece a capacidade de execução em pools de CPU ou GPU. Ao usar as APIs de Snowflake ML, o Container Runtime para ML distribui o processamento entre os recursos disponíveis.

Processamento distribuído

A modelagem de ML e as APIs de carregamento de dados Snowflake são desenvolvidas com base na estrutura de processamento distribuído de ML Snowflake, que maximiza a utilização de recurso aproveitando totalmente o poder de computação disponível. Por padrão, esta estrutura usa todas as GPUs em nós com mais de uma GPU, oferecendo melhorias significativas de desempenho em comparação aos pacotes de código aberto e reduzindo o tempo de execução geral.

Diagrama mostrando como a carga de trabalho é distribuída para processamento de ML.

Cargas de trabalho de aprendizado de máquina, incluindo carregamento de dados, são executadas em um ambiente de computação gerenciado pelo Snowflake. A estrutura permite o dimensionamento dinâmico de recursos com base nos requisitos específicos da tarefa em questão, como modelos de treinamento ou carregamento de dados. O número de recursos, incluindo alocação de GPU e memória para cada tarefa, pode ser facilmente configurado por meio das APIs.

Especificação da imagem do Container Runtime

É possível escolher entre os tipos de imagem CPU ou GPU ao criar um notebook para executar no Container Runtime. Ambas as imagens vêm pré-instaladas com estruturas de ML populares como scikit-learn e PyTorch. Também é possível usar o Snowpark ML e tudo o que vem com ele.

Lista completa para a imagem v1 da CPU

Esta tabela é uma lista completa de pacotes Python pré-instalados na imagem v1 da CPU:

Pacote

Versão

absl-py

1.4.0

aiobotocore

2.7.0

aiohttp

3.9.5

aiohttp-cors

0.7.0

aioitertools

0.12.0

aiosignal

1.2.0

aiosignal

1.3.1

altair

5.4.1

annotated-types

0.6.0

anyio

3.5.0

appdirs

1.4.4

arviz

0.17.1

asn1crypto

1.5.1

asttokens

2.0.5

async-timeout

4.0.3

async-timeout

4.0.3

atpublic

4,0

attrs

23.1.0

attrs

23.2.0

backoff

2.2.1

bayesian-optimization

1.5.1

blinker

1.6.2

botocore

1.31.64

bottleneck

1.3.7

brotli

1.0.9

cachetools

5.3.3

causalpy

0.4.0

certifi

2024.8.30

cffi

1.16.0

charset-normalizer

3.3.2

click

8.1.7

clikit

0.6.2

cloudpickle

2.2.1

cmdstanpy

1.2.4

colorama

0.4.6

colorful

0.5.4

cons

0.4.6

contourpy

1.2.0

crashtest

0.3.1

cryptography

42.0.8

cycler

0.11.0

datasets

2.16.1

decorator

5.1.1

deprecated

1.2.13

dill

0.3.7

distlib

0.3.8

etuples

0.3.9

evaluate

0.4.2

exceptiongroup

1.2.0

executing

0.8.3

filelock

3.13.1

flask

3.0.3

fonttools

4.51.0

frozenlist

1.4.0

frozenlist

1.4.1

fsspec

2023.10.0

gitdb

4.0.7

gitpython

3.1.41

gmpy2

2.1.2

google-api-core

2.19.1

google-auth

2.29.0

googleapis-common-protos

1.63.2

graphviz

0.20.1

grpcio

1.66.1

grpcio-tools

1.62.3

gunicorn

22.0.0

h5netcdf

1.2.0

h5py

3.11.0

holidays

0,57

httpstan

4.13.0

huggingface-hub

0.24.6

idna

3.6

idna

3.7

importlib-metadata

6.11.0

importlib-resources

6.4.5

ipython

8.27.0

itsdangerous

2.2.0

jedi

0.19.1

jinja2

3.1.4

jmespath

1.0.1

joblib

1.4.2

jsonschema

4.19.2

jsonschema-specifications

2023.7.1

kiwisolver

1.4.4

lightgbm

3.3.5

lightgbm-ray

0.1.9

logical-unification

0.4.6

markdown-it-py

2.2.0

markupsafe

2.1.3

marshmallow

3.22.0

Matplotlib

3.8.4

matplotlib-inline

0.1.6

mdurl

0.1.0

minikanren

1.0.3

mkl-fft

1.3.10

mkl-random

1.2.7

mkl-service

2.4.0

mlruntimes-client

0.2.0

mlruntimes-service

0.2.0

modin

0.31.0

mpmath

1.3.0

msgpack

1.0.3

multidict

6.0.4

multidict

6.0.5

multipledispatch

0.6.0

multiprocess

0.70.15

narwhals

1.8.4

networkx

3,3

nltk

3.9.1

numexpr

2.8.7

numpy

1.24.3

opencensus

0.11.3

opencensus-context

0.1.3

opencv-python

4.10.0.84

opentelemetry-api

1.23.0

opentelemetry-exporter-otlp-proto-common

1.23.0

opentelemetry-exporter-otlp-proto-grpc

1.25.0

opentelemetry-proto

1.23.0

opentelemetry-sdk

1.23.0

opentelemetry-semantic-conventions

0.44b0

packaging

23,1

pandas

2.2.3

parso

0.8.3

pastel

0.2.1

patsy

0.5.6

pexpect

4.8.0

pillow

9.5.0

pip

24,2

platformdirs

2.6.2

plotly

5.22.0

ply

3,11

prometheus-client

0.20.0

prompt-toolkit

3.0.43

prophet

1.1.5

proto-plus

1.24.0

protobuf

4.24.4

psutil

5.9.0

ptyprocess

0.7.0

pure-eval

0.2.2

pyarrow

15.0.0

pyarrow-hotfix

0,6

pyasn1

0.4.8

pyasn1-modules

0.2.8

pycparser

2,21

pydantic

2.8.2

pydantic-core

2.20.1

pydeck

0.9.1

pygments

2.15.1

pyjwt

2.8.0

pylev

1.4.0

pymc

5.16.1

pympler

1,1

pyopenssl

24.2.1

pyparsing

3.0.9

pyqt5

5.15.10

pyqt5-sip

12.13.0

pysimdjson

6.0.2

pysocks

1.7.1

pystan

3.10.0

pytensor

2.13.1

pytensor

2.23.0

python-dateutil

2.8.3+snowflake1

pytimeparse

1.1.8

pytz

2024,1

pytz-deprecation-shim

0.1.0.post0

pyyaml

6.0.1

ray

2.10.0

referencing

0.30.2

regex

2024.7.24

requests

2.32.3

retrying

1.3.4

rich

13.7.1

rpds-py

0.10.6

rsa

4.7.2

s3fs

2023.10.0

safetensors

0.4.4

scikit-learn

1.3.0

scipy

1.13.1

seaborn

0.13.2

setproctitle

1.2.2

setuptools

70.0.0

sip

6.7.12

six

1.16.0

smart-open

5.2.1

smmap

4.0.0

sniffio

1.3.0

snowbooks

1.46.0

snowflake

0.12.1

snowflake-connector-python

3.12.0

snowflake-core

0.12.1

snowflake-legacy

0.12.1

snowflake-ml-python

1.6.2

snowflake-snowpark-python

1.18.0

snowflake-telemetry-python

0.5.0

sortedcontainers

2.4.0

sqlparse

0.5.1

stack-data

0.2.0

stanio

0.5.1

statsmodels

0.14.2

streamlit

1.26.0

sympy

1.13.2

tenacity

8.2.3

tensorboardx

2.6.2.2

threadpoolctl

3.5.0

tokenizers

0.15.1

toml

0.10.2

tomli

2.0.1

tomlkit

0.11.1

toolz

0.12.0

torch

2.3.0

tornado

6.4.1

tqdm

4.66.4

traitlets

5.14.3

transformers

4.36.0

typing-extensions

4.12.2

tzdata

2024,2

tzlocal

4.3.1

unicodedata2

15.1.0

urllib3

2.0.7

validators

0.34.0

virtualenv

20.17.1

watchdog

5.0.3

wcwidth

0.2.5

webargs

8.6.0

werkzeug

3.0.3

wheel

0.43.0

wrapt

1.14.1

xarray

2023.6.0

xarray-einstats

0.6.0

xgboost

1.7.6

xgboost-ray

0.1.19

xxhash

2.0.2

yarl

1.11.0

yarl

1.9.4

zipp

3.17.0

Lista completa para a imagem v1 da GPU

Esta tabela é uma lista completa de pacotes Python pré-instalados na imagem v1 da GPU:

Pacote

Versão

absl-py

1.4.0

accelerate

0.34.2

aiobotocore

2.7.0

aiohttp

3.9.5

aiohttp-cors

0.7.0

aioitertools

0.12.0

aiosignal

1.2.0

aiosignal

1.3.1

altair

5.4.1

annotated-types

0.6.0

anyio

3.5.0

appdirs

1.4.4

arviz

0.17.1

asn1crypto

1.5.1

asttokens

2.0.5

async-timeout

4.0.3

async-timeout

4.0.3

atpublic

4,0

attrs

23.1.0

attrs

23.2.0

backoff

2.2.1

bayesian-optimization

1.5.1

blinker

1.6.2

botocore

1.31.64

bottleneck

1.3.7

brotli

1.0.9

cachetools

5.3.3

causalpy

0.4.0

certifi

2024.8.30

cffi

1.16.0

charset-normalizer

3.3.2

click

8.1.7

clikit

0.6.2

cloudpickle

2.0.0

cmake

3.30.3

cmdstanpy

1.2.4

colorama

0.4.6

colorful

0.5.4

cons

0.4.6

contourpy

1.2.0

crashtest

0.3.1

cryptography

42.0.8

cycler

0.11.0

datasets

2.16.1

decorator

5.1.1

deprecated

1.2.13

dill

0.3.7

diskcache

5.6.3

distlib

0.3.8

distro

1.9.0

etuples

0.3.9

evaluate

0.4.2

exceptiongroup

1.2.0

executing

0.8.3

fastapi

0.115.0

filelock

3.13.1

flask

3.0.3

fonttools

4.51.0

frozenlist

1.4.0

frozenlist

1.4.1

fsspec

2023.10.0

gitdb

4.0.7

gitpython

3.1.41

gmpy2

2.1.2

google-api-core

2.19.1

google-auth

2.29.0

googleapis-common-protos

1.63.2

graphviz

0.20.1

grpcio

1.66.1

grpcio-tools

1.62.3

gunicorn

22.0.0

h11

0.14.0

h5netcdf

1.2.0

h5py

3.11.0

holidays

0,57

httpcore

1.0.5

httpstan

4.13.0

httptools

0.6.1

httpx

0.27.2

huggingface-hub

0.24.6

idna

3.6

idna

3.7

importlib-metadata

6.11.0

importlib-resources

6.4.5

interegular

0.3.3

ipython

8.27.0

itsdangerous

2.2.0

jedi

0.19.1

jinja2

3.1.4

jiter

0.5.0

jmespath

1.0.1

joblib

1.4.2

jsonschema

4.19.2

jsonschema-specifications

2023.7.1

kiwisolver

1.4.4

lark

1.2.2

lightgbm

4.5.0

lightgbm-ray

0.1.9

llvmlite

0.43.0

lm-format-enforcer

0.10.3

logical-unification

0.4.6

markdown-it-py

2.2.0

markupsafe

2.1.3

marshmallow

3.22.0

Matplotlib

3.8.4

matplotlib-inline

0.1.6

mdurl

0.1.0

minikanren

1.0.3

mkl-fft

1.3.10

mkl-random

1.2.7

mkl-service

2.4.0

mlruntimes-client

0.2.0

mlruntimes-service

0.2.0

modin

0.31.0

mpmath

1.3.0

msgpack

1.0.3

multidict

6.0.4

multidict

6.0.5

multipledispatch

0.6.0

multiprocess

0.70.15

narwhals

1.8.4

nest-asyncio

1.6.0

networkx

3,3

ninja

1.11.1.1

nltk

3.9.1

numba

0.60.0

numexpr

2.8.7

numpy

1.24.3

nvidia-cublas-cu12

12.1.3.1

nvidia-cuda-cupti-cu12

12.1.105

nvidia-cuda-nvrtc-cu12

12.1.105

nvidia-cuda-runtime-cu12

12.1.105

nvidia-cudnn-cu12

8.9.2.26

nvidia-cufft-cu12

11.0.2.54

nvidia-curand-cu12

10.3.2.106

nvidia-cusolver-cu12

11.4.5.107

nvidia-cusparse-cu12

12.1.0.106

nvidia-ml-py

12.560.30

nvidia-nccl-cu12

2.20.5

nvidia-nvjitlink-cu12

12.6.68

nvidia-nvtx-cu12

12.1.105

openai

1.50.1

opencensus

0.11.3

opencensus-context

0.1.3

opencv-python

4.10.0.84

opentelemetry-api

1.23.0

opentelemetry-exporter-otlp-proto-common

1.23.0

opentelemetry-exporter-otlp-proto-grpc

1.25.0

opentelemetry-proto

1.23.0

opentelemetry-sdk

1.23.0

opentelemetry-semantic-conventions

0.44b0

outlines

0.0.46

packaging

23,1

pandas

2.2.3

parso

0.8.3

pastel

0.2.1

patsy

0.5.6

peft

0.5.0

pexpect

4.8.0

pillow

9.5.0

pip

24,2

platformdirs

2.6.2

plotly

5.22.0

ply

3,11

prometheus-client

0.20.0

prometheus-fastapi-instrumentator

7.0.0

prompt-toolkit

3.0.43

prophet

1.1.5

proto-plus

1.24.0

protobuf

4.24.4

psutil

5.9.0

ptyprocess

0.7.0

pure-eval

0.2.2

py-cpuinfo

9.0.0

pyairports

2.1.1

pyarrow

15.0.0

pyarrow-hotfix

0,6

pyasn1

0.4.8

pyasn1-modules

0.2.8

pycountry

24.6.1

pycparser

2,21

pydantic

2.8.2

pydantic-core

2.20.1

pydeck

0.9.1

pygments

2.15.1

pyjwt

2.8.0

pylev

1.4.0

pymc

5.16.1

pympler

1,1

pyopenssl

24.2.1

pyparsing

3.0.9

pyqt5

5.15.10

pyqt5-sip

12.13.0

pysimdjson

6.0.2

pysocks

1.7.1

pystan

3.10.0

pytensor

2.13.1

pytensor

2.23.0

python-dateutil

2.8.3+snowflake1

python-dotenv

1.0.1

pytimeparse

1.1.8

pytz

2024,1

pytz-deprecation-shim

0.1.0.post0

pyyaml

6.0.1

pyzmq

26.2.0

ray

2.10.0

referencing

0.30.2

regex

2024.7.24

requests

2.32.3

retrying

1.3.4

rich

13.7.1

rpds-py

0.10.6

rsa

4.7.2

s3fs

2023.10.0

safetensors

0.4.4

scikit-learn

1.3.0

scipy

1.9.3

seaborn

0.13.2

sentencepiece

0.1.99

setproctitle

1.2.2

setuptools

70.0.0

sip

6.7.12

six

1.16.0

smart-open

5.2.1

smmap

4.0.0

sniffio

1.3.0

snowbooks

1.46.0

snowflake

0.12.1

snowflake-connector-python

3.12.0

snowflake-core

0.12.1

snowflake-legacy

0.12.1

snowflake-ml-python

1.6.2

snowflake-snowpark-python

1.18.0

snowflake-telemetry-python

0.5.0

sortedcontainers

2.4.0

sqlparse

0.5.1

stack-data

0.2.0

stanio

0.5.1

starlette

0.38.6

statsmodels

0.14.2

streamlit

1.26.0

sympy

1.13.2

tenacity

8.2.3

tensorboardx

2.6.2.2

threadpoolctl

3.5.0

tiktoken

0.7.0

tokenizers

0.20.0

toml

0.10.2

tomli

2.0.1

tomlkit

0.11.1

toolz

0.12.0

torch

2.3.1

torchvision

0.18.1

tornado

6.4.1

tqdm

4.66.4

traitlets

5.14.3

transformers

4.45.1

triton

2.3.1

typing-extensions

4.12.2

tzdata

2024,2

tzlocal

4.3.1

unicodedata2

15.1.0

urllib3

2.0.7

uvicorn

0.31.0

uvloop

0.20.0

validators

0.34.0

virtualenv

20.17.1

vllm

0.5.3.post1

vllm-flash-attn

2.5.9.post1

watchdog

5.0.3

watchfiles

0.24.0

wcwidth

0.2.5

webargs

8.6.0

Websockets

13,1

werkzeug

3.0.3

wheel

0.43.0

wrapt

1.14.1

xarray

2023.6.0

xarray-einstats

0.6.0

xformers

0.0.27

xgboost

1.7.6

xgboost-ray

0.1.19

xxhash

2.0.2

yarl

1.11.0

yarl

1.9.4

zipp

3.17.0

Próximos passos