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:

  1. Instale cosign. Este exemplo usa a instalação do Go: Instalação do cosign com o Go.

  2. Baixe o arquivo de um repositório como PyPi.

  3. Baixe um arquivo .sig para esse lançamento na página de lançamentos do GitHub.

  4. 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
Copy

Nota

Este exemplo usa a biblioteca e a assinatura da versão 1.27.0 do pacote. Use os nomes de arquivo da versão que você está verificando.

Avisos de descontinuação

  • snowflake.ml.fileset.FileSet foi 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.cortex foram descontinuados e serão removidos em uma versão futura. Em vez disso, use os nomes “snake_case” para essas funções. Por exemplo, use classify_text em vez de ClassifyText.

  • O decorador partitioned_inference_api foi descontinuado e será removido em uma versão futura. Use custom_model.partitioned_api em vez disso.

  • O argumento additional_payloads dos métodos MLJob.submit_* se tornou obsoleto e será removido em uma versão futura. Use o argumento imports em vez disso.

  • A classe snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel foi descontinuada e será removido em uma versão futura.

Versão 1.27.0 (12-02-2026)

Correções de bugs

Correções de bugs no registro do modelo:

  • Correção da falha de model_version.run causada 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.

Correções de bugs de armazenamento de recursos:

  • Correção da falha de register_feature_view com overwrite=True quando a exibição de recurso existente é externa e a nova exibição de recurso é gerenciada, ou vice-versa.

Versão 1.26.0 (05-02-2026)

Novos recursos

Novos recursos de registro do modelo:

  • Model signatures can now include inference parameters via ParamSpec, allowing you to define constant parameters to be passed at inference time without including them in the input data. Example:

    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})
    
    Copy

Novos recursos da Feature Store:

  • Novo parâmetro auto_prefix e método with_name para 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 StorageConfig com StorageFormat.ICEBERG para armazenar dados no formato Apache Iceberg em armazenamento em nuvem externo. Um novo parâmetro default_iceberg_external_volume está disponível em FeatureStore para definir um volume externo padrão para exibições de recursos Iceberg.

Versão 1.25.1 (03-02-2026)

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.

Versão 1.25.0 (28-01-2026)

Novos recursos

Novos recursos do Model Serving:

  • O método create_service aceita um novo argumento autocapture para 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_service e log_model_and_create_service agora aceitam um argumento min_instances opcional 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. Se min_instances for 0, o serviço será suspenso automaticamente quando nenhum tráfego for detectado durante um período. O valor padrão de min_instances é 0.

Versão 1.24.0 (22/01/2026)

Novos recursos

Novos recursos da Feature Store:

  • Suporte à agregação baseada em blocos usando uma nova API Feature para computação correta de recursos de série temporal eficiente e pontual usando blocos pré-computados.

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étodos encode, encode_query, encode_document, encode_queries e encode_documents sã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"]}))
    
    Copy

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,
    )
    
    Copy

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_payloads está sendo alterado. Use o argumento imports para 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:

  • ExperimentTracking agora é 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_metrics ou log_params, agora é emitido um aviso em vez de gerar uma exceção.

Correções de bugs no registro do modelo:

  • ModelVersion.run agora gera um ValueError se o modelo é somente SPCS e service_name não é fornecido.

Novos recursos em versão preliminar

  • O método create_service agora aceita o argumento booliano autocapture para 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.TransformersPipeline visa a substituir snowflake.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-mask

    • question-answering

    • summarization

    • table-question-answering

    • text2text-generation

    • text-classification (alias sentiment-analysis)

    • text-generation

    • token-classification (alias ner)

    • translation

    • translation_xx_to_yy

    • zero-shot-classification (permite registrar modelos sem os carregar na memória)

  • A API list_services agora 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_dataset converte os dados do Snowflake em conjuntos de dados HuggingFace. Oferece suporte a Dataset (streaming=False) na memória e IterableDataset (streaming=True) de streaming.

Avisos de descontinuação

  • A classe snowflake.ml.model.models.huggingface_pipeline.HuggingfacePipelineModel foi descontinuada e será removido em uma versão futura.