Gerenciando pacotes e tempo de execução¶
O Snowflake Notebooks é executado em um ambiente de contêiner predefinido e otimizado para desenvolvimento de AI/ML escalonável com a tecnologia Snowflake Container Runtime.
Versões Python¶
O Snowflake Notebooks é compatível com as versões do Python 3.10 a 3.12. Ao criar um serviço de notebook, selecione a versão do Python mais adequada aos seus requisitos de carga de trabalho.
Pacotes pré-instalados¶
O Snowflake Container Runtime inclui aproximadamente 100 pacotes e bibliotecas que oferecem suporte a uma ampla gama de tarefas de desenvolvimento de ML no Snowflake. Esses pacotes são executados nativamente em uma infraestrutura de CPU e GPU gerenciada pelo Snowflake.
Para visualizar os pacotes pré-instalados, execute pip freeze em uma célula Python ou no terminal do notebook.
Instalando pacotes adicionais¶
O Snowflake oferece suporte à instalação de pacotes de várias fontes.
De repositórios externos¶
Depois de configurar integrações de acesso externo (External Access Integrations, EAIs) para acesso seguro ao repositório, você poderá instalar pacotes diretamente de fontes externas, como PyPI. Os usuários têm acesso a um ecossistema abrangente de pacotes além do tempo de execução pré-instalado, garantindo conectividade segura a repositórios externos.
Você pode executar pip install em uma célula Python ou no terminal do notebook.
Para obter mais informações, consulte Configurar acesso externo para o Snowflake Notebooks.
Usando requirements.txt¶
Você pode especificar e instalar as versões de pacote necessárias em um arquivo requirements.txt para garantir uma configuração de ambiente consistente. Instale-as usando o seguinte comando:
!pip install -r requirements.txt
Nota
Se a versão do pacote especificada em requirements.txt entrar em conflito com as versões compatíveis dos pacotes pré-instalados, o ambiente Python poderá falhar. Valide a compatibilidade antes da instalação.
De arquivos do espaço de trabalho¶
Você pode baixar ou construir arquivos .whl ou .py, carregá-los em seu espaço de trabalho e instalá-los ou importá-los.
Arquivos wheel (.wthl): carregue o arquivo
.whle instale-o:!pip install file_name.whl
Se o pacote contiver dependências que ainda não estejam instaladas, carregue a árvore de dependências completa (diretamente no Workspaces ou em uma área de preparação). Como alternativa, anexe uma EAI que permita o acesso a um repositório onde o pacote pode ser baixado (por exemplo, PyPI).
Arquivos Python (.py): os módulos armazenados em seu espaço de trabalho podem ser importados diretamente para compartilhar utilitários e funções entre notebooks. Por exemplo:
from my_utils import my_func
De uma área de preparação do Snowflake¶
As áreas de preparação fornecem uma implantação de pacote segura e controlada, aproveitando os controles existentes de armazenamento de dados e governança do Snowflake para os arquivos de pacote. Use a sessão do Snowpark para recuperar arquivos de pacote de uma área de preparação do Snowflake para o ambiente de contêiner para importação e uso. Por exemplo:
from snowflake.snowpark.context import get_active_session
import sys
session = get_active_session()
session.file.get("@db.schema.stage_name/math_tools.py", "/tmp")
sys.path.append("/tmp")
import math_tools
math_tools.add_one(3)
Gerenciamento de tempo de execução¶
Fixação de tempo de execução¶
Todos os serviços de notebook são fixados no tempo de execução selecionado no momento da criação, a menos que você altere isso explicitamente editando o serviço. Por exemplo, um serviço de notebook criado no Runtime 2.0 não será atualizado automaticamente quando novas versões do tempo de execução forem lançadas.
Verificação de vulnerabilidades no tempo de execução¶
O Snowflake verifica se há vulnerabilidades de segurança nas imagens do tempo de execução diariamente. Vulnerabilidades e exposições comuns (Common Vulnerabilities and Exposures, CVEs) altas ou críticas são resolvidas com o lançamento de novas versões do tempo de execução dentro de 30 dias após a detecção.
Os serviços de notebook existentes podem continuar usando os tempos de execução com CVEs detectadas. Entretanto, os tempos de execução com CVEs conhecidas não podem ser selecionados ao criar novos serviços de notebook.