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.

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¶
Para testar o notebook usando o Container Runtime para ML, consulte Notebooks no Container Runtime para ML.