Notas de lançamento de Snowflake ML Python¶
Este artigo contém as notas de versão do Snowflake ML Python, incluindo o seguinte, quando aplicável:
Mudanças de comportamento
Novos recursos
Correções de bugs voltados para o cliente
Nota
Estas notas não incluem mudanças em recursos que não foram anunciados publicamente. Esses recursos podem aparecer no código-fonte do Snowflake ML Python, mas não na documentação pública.
Consulte Snowflake ML: aprendizado de máquina de ponta a ponta para ver a documentação.
Verificação do pacote snowflake-ml-python¶
Todos os pacotes do Snowflake são assinados, permitindo que você verifique sua origem. Para verificar o pacote snowflake.ml.python, siga as etapas abaixo:
Instale
cosign. Este exemplo usa a instalação do Go: Instalação do cosign com o Go.Baixe o arquivo de um repositório como PyPi.
Baixe um arquivo
.sigpara esse lançamento na página de lançamentos do GitHub.Verifique a assinatura usando
cosign. Por exemplo:
cosign verify-blob snowflake_ml_python-1.27.0.tar.gz --key snowflake-ml-python-1.27.0.pub --signature resources.linux.snowflake_ml_python-1.27.0.tar.gz.sig
cosign verify-blob snowflake_ml_python-1.27.0.tar.gz --key snowflake-ml-python-1.27.0.pub --signature resources.linux.snowflake_ml_python-1.27.0.tar.gz.sig
Nota
This example uses the library and signature for version 1.27.0 of the package. Use the filenames of the version you are verifying.
Avisos de descontinuação¶
snowflake.ml.fileset.FileSetfoi descontinuado e será removido em uma versão futura. Em vez disso, use snowflake.ml.dataset.Dataset e snowflake.ml.data.DataConnector.Os nomes das funções “CamelCase” em
snowflake.ml.cortexforam descontinuados e serão removidos em uma versão futura. Em vez disso, use os nomes “snake_case” para essas funções. Por exemplo, useclassify_textem vez deClassifyText.O decorador
partitioned_inference_apifoi descontinuado e será removido em uma versão futura. Usecustom_model.partitioned_apiem vez disso.O argumento
additional_payloadsdos métodosMLJob.submit_*se tornou obsoleto e será removido em uma versão futura. Use o argumentoimportsem vez disso.A classe
snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModelfoi descontinuada e será removido em uma versão futura.
Version 1.27.0 (2026-02-12)¶
Correções de bugs¶
Correções de bugs no registro do modelo:
Correção da falha de
model_version.runcausada pela exigência do privilégio READ no modelo, em vez de USAGE quando a função do usuário tinha apenas o privilégio USAGE.
Feature store bug fixes:
Correção da falha de
register_feature_viewcomoverwrite=Truequando a exibição de recurso existente é externa e a nova exibição de recurso é gerenciada, ou vice-versa.
Version 1.26.0 (2026-02-05)¶
Novos recursos¶
Novos recursos de registro do modelo:
As assinaturas de modelo agora podem incluir parâmetros de inferência por
ParamSpec, permitindo que você defina parâmetros constantes a serem passados no momento da inferência sem os incluir nos dados de entrada. Exemplo:import pandas as pd from snowflake.ml.model import custom_model, model_signature from snowflake.ml.registry import Registry # Define a custom model with inference parameters class MyModelWithParams(custom_model.CustomModel): @custom_model.inference_api def predict( self, input_df: pd.DataFrame, *, temperature: float = 1.0, # keyword-only param with default ) -> pd.DataFrame: return pd.DataFrame({"output": input_df["feature"] * temperature}) # Create sample data model = MyModelWithParams(custom_model.ModelContext()) sample_input = pd.DataFrame({"feature": [1.0, 2.0, 3.0]}) sample_output = model.predict(sample_input, temperature=1.0) # Define ParamSpec for the inference parameter params = [ model_signature.ParamSpec( name="temperature", dtype=model_signature.DataType.FLOAT, default_value=1.0, ), ] # Infer signature with params sig = model_signature.infer_signature( input_data=sample_input, output_data=sample_output, params=params, ) # Log model with the signature registry = Registry(session) mv = registry.log_model( model=model, model_name="my_model_with_params", version_name="v1", signatures={"predict": sig}, ) # Run inference with custom parameter value result = mv.run(sample_input, function_name="predict", params={"temperature": 2.0})
Novos recursos da Feature Store:
Novo parâmetro
auto_prefixe métodowith_namepara impedir colisões de nomes de colunas ao unir várias exibições de recursos na geração do conjunto de dados.As tabelas Iceberg dinâmicas agora podem ser usadas como armazenamento de backup para exibições de recursos. Use
StorageConfigcomStorageFormat.ICEBERGpara armazenar dados no formato Apache Iceberg em armazenamento em nuvem externo. Um novo parâmetrodefault_iceberg_external_volumeestá disponível emFeatureStorepara definir um volume externo padrão para exibições de recursos Iceberg.
Version 1.25.1 (2026-02-03)¶
Nenhuma alteração voltada ao público. Essa versão inclui alterações em um recurso em versão preliminar que não foi anunciado publicamente.
Version 1.25.0 (2026-01-28)¶
Novos recursos¶
New Model Serving features:
O método
create_serviceaceita um novo argumentoautocapturepara indicar se os dados de inferência devem ser capturados (consulte Capturar automaticamente logs de inferência para ter inferência em tempo real).Os métodos
create_serviceelog_model_and_create_serviceagora aceitam um argumentomin_instancesopcional para especificar o número mínimo de instâncias para o serviço. O serviço faz o dimensionamento automático entre as instâncias mínima e máxima especificadas com base no tráfego e na utilização do hardware. Semin_instancesfor 0, o serviço será suspenso automaticamente quando nenhum tráfego for detectado durante um período. O valor padrão demin_instancesé 0.
Versão 1.24.0 (22/01/2026)¶
Novos recursos¶
Novos recursos da Feature Store:
Tile-based aggregation support using a new
FeatureAPI for efficient and point-in-time correct time-series feature computation using pre-computed tiles.
Novos recursos de registro do modelo:
Os modelos SentenceTransformer agora oferecem suporte à inferência automática de assinatura. Ao registrar um modelo SentenceTransformer,
sample_input_dataé opcional. A assinatura é inferida automaticamente da dimensão de incorporação do modelo quando os dados de entrada de amostra não são fornecidos. Os métodosencode,encode_query,encode_document,encode_querieseencode_documentssão compatíveis.import sentence_transformers from snowflake.ml.registry import Registry # Create model model = sentence_transformers.SentenceTransformer("all-MiniLM-L6-v2") # Log model without sample_input_data - signature is auto-inferred registry = Registry(session) mv = registry.log_model( model=model, model_name="my_sentence_transformer", version_name="v1", ) # Run inference with auto-inferred signature (input: "text", output: "output") import pandas as pd result = mv.run(pd.DataFrame({"text": ["Hello world"]}))
Versão 1.23.0 (2026-01-165)¶
Novos recursos¶
Novos recursos de trabalhos ML:
Os trabalhos de ML agora oferecem suporte a Python 3.11 e Python 3.12. Os trabalhos selecionam automaticamente um ambiente de tempo de execução que corresponde à versão do Python do cliente.
Correções de bugs¶
Correções de bugs no registro do modelo:
Saída vazia nos modelos de classificação de token do HuggingFace (reconhecimento de entidade nomeada) não causam mais falhas.
Correções de bugs do serviço de modelos:
Os status de contêineres agora são relatados corretamente e não devem ficar em branco.
Versão 1.22.0 (09/01/2026)¶
Novos recursos¶
Novos recursos de registro do modelo:
Agora é possível registrar remotamente um modelo de pipeline de transformador usando um trabalho do Snowpark Container Services (SPCS).
# create reference to the model model = huggingface.TransformersPipeline( model="TinyLlama/TinyLlama-1.1B-Chat-v1.0", task="text-generation", ) # Remotely log the model, a SPCS job will run async and log the model mv = registry.log_model( model=model, model_name="tinyllama_remote_log", target_platforms=["SNOWPARK_CONTAINER_SERVICES"], signatures=openai_signatures.OPENAI_CHAT_SIGNATURE, )
Versão 1.21.0 (05/01/2026)¶
Mudanças de comportamento¶
Mudanças no comportamento dos trabalhos de ML:
O comportamento do parâmetro
additional_payloadsestá sendo alterado. Use o argumentoimportspara declarar dependências adicionais, como arquivos ZIP e módulos Python. Diretórios locais e arquivos Python são compactados automaticamente, e o layout interno é determinado pelo caminho de importação especificado. O caminho de importação se aplica somente a diretórios locais, arquivos Python e arquivos Python preparados; ele não tem efeito sobre outros tipos de importação. Ao referenciar arquivos em uma área de preparação, somente arquivos individuais são permitidos, não diretórios.
Mudanças no comportamento do rastreamento de experimentos:
ExperimentTrackingagora é uma classe singleton.
Correções de bugs¶
Correções de bugs do rastreamento de experimentos:
Quando o limite de tamanho de metadados de execução é atingido em
log_metricsoulog_params, agora é emitido um aviso em vez de gerar uma exceção.
Correções de bugs no registro do modelo:
ModelVersion.runagora gera umValueErrorse o modelo é somente SPCS eservice_namenão é fornecido.
Novos recursos em versão preliminar¶
O método
create_serviceagora aceita o argumento boolianoautocapturepara indicar se os dados de inferência são capturados automaticamente.
Novos recursos da versão¶
Novos recursos de registro do modelo:
A nova classe
snowflake.ml.model.models.huggingface.TransformersPipelinevisa a substituirsnowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel, embora a classe mais antiga ainda não esteja obsoleta. A nova classe reconhece assinaturas de modelo de tarefas comuns para que você não precise especificá-las manualmente. As tarefas compatíveis no momento são:fill-maskquestion-answeringsummarizationtable-question-answeringtext2text-generationtext-classification(aliassentiment-analysis)text-generationtoken-classification(aliasner)translationtranslation_xx_to_yyzero-shot-classification(permite registrar modelos sem os carregar na memória)
A API
list_servicesagora mostra um ponto de extremidade interno que pode ser chamado de outro nó ou notebook do SPCS sem integração de aplicativos empresariais. Ela também indica se a captura automática é habilitada para cada serviço.
Novos recursos DataConnector:
O novo método
to_huggingface_datasetconverte os dados do Snowflake em conjuntos de dados HuggingFace. Oferece suporte aDataset(streaming=False) na memória eIterableDataset(streaming=True) de streaming.
Avisos de descontinuação¶
A classe
snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModelfoi descontinuada e será removido em uma versão futura.