Notas de lançamento de Snowflake ML¶
Este artigo contém as notas de versão do Snowflake ML, 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. Tais características podem aparecer no código-fonte do Snowflake ML, 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.7.0.tar.gz --key snowflake-ml-python-1.7.0.pub --signature resources.linux.snowflake_ml_python-1.7.0.tar.gz.sig
cosign verify-blob snowflake_ml_python-1.7.0.tar.gz --key snowflake-ml-python-1.7.0.pub --signature resources.linux.snowflake_ml_python-1.7.0
Nota
Este exemplo usa a biblioteca e a assinatura da versão 1.7.0 do pacote. Use os nomes de arquivo da versão que você está verificando.
Versão 1.7.2 (21/11/2024)¶
Novos recursos¶
Novos recursos de registro do modelo:
O registro de modelos agora oferece suporte à criação assíncrona de serviços de inferência de modelos com a opção
blockno métodoModelversion.create_service. Defina essa opção comoFalsepara criar o serviço de forma assíncrona. O padrão éTrue.
Correções de bugs¶
Correções de bugs de explicabilidade do modelo:
Correção do problema em que
explainera ativado para pipelines do scikit-learn cuja tarefa era UNKNOWN, mas depois falhava quando invocado.
Versão 1.7.1 (05/11/2024)¶
Novos recursos¶
Novos recursos de registro do modelo:
Os valores nulos agora são ignorados no dataframe usado para inferência de assinatura de modelos. Somente valores não nulos são usados para inferir assinaturas.
Os valores nulos agora são permitidos nos dataframes usados para previsão.
Os tipos de dados de extensão pandas agora são compatíveis com a inferência de assinatura de modelos.
O pandas
Seriespode ser usado em dados de entrada e saída.
Novos recursos de monitoramento de modelos:
A opção
enable_monitoringagora está disponível ao registrar um modelo no registro. Essa opção dá acesso aos recursos de visualização privada do monitoramento de modelos.
Correções de bugs¶
Correções de bugs de dados:
Foram adicionadas as exportações de
snowflake.ml.dataque estavam faltando no wheel.
Correções de bugs em conjuntos de dados:
Foram adicionadas as exportações de
snowflake.ml.datasetque estavam faltando no wheel.
Correções de bugs no registro do modelo:
Correção do problema em que
tf_keras.Modelnão era reconhecido como um modelo keras durante o registro.
Versão 1.7.0 (22 de outubro de 2024)¶
Mudanças de comportamento¶
Mudanças gerais de comportamento:
Python 3.9 é agora a versão mínima necessária.
Alterações no comportamento do conector de dados:
to_torch_dataseteto_torch_datapipeagora criam uma dimensão de 1 para dados escalar. Isso permite uma integração mais fluida com o PyTorch DataLoader, que cria lotes empilhando entradas. O exemplo a seguir ilustra a diferença.ds = connector.to_torch_dataset(shuffle=False, batch_size=3)
Dados de entrada:
"col1": [10, 11, 12]Resultado anterior:
array([10., 11., 12.])com a forma(3,)Novo resultado:
array([[10.], [11.], [12.]])com a forma(3, 1)
Dados de entrada:
[[0, 100], [1, 110], [2, 200]]Resultado anterior:
array([[ 0, 100], [ 1, 110], [ 2, 200]])com a forma(3,2)Novo resultado: Nenhuma alteração
Agora você pode especificar um tamanho de lote de
Noneemto_torch_datasetpara comprimir dimensões de 1 para melhor interoperabilidade com o PyTorch DataLoader. ::code::Noneé o novo tamanho de lote padrão.
Mudanças no comportamento de desenvolvimento do modelo:
O argumento
eps(epsilon) não é mais usado com a métricalog_loss. O argumento ainda é aceito para compatibilidade com versões anteriores, mas seu valor é ignorado, e o epsilon agora é computado pela implementação subjacente do scikit-lean.
Alterações no comportamento do registro do modelo:
Integrações de acesso externo não são mais necessárias ao criar um serviço de inferência no Snowflake 8.40 ou posterior.
Novos recursos¶
Novos recursos de registro do modelo:
Agora você pode passar argumentos de palavra-chave ao instanciar
ModelContextpara fornecer um número variável de valores de contexto. Por exemplo:mc = custom_model.ModelContext( config = 'local_model_dir/config.json', m1 = model1 ) class ExamplePipelineModel(custom_model.CustomModel): def __init__(self, context: custom_model.ModelContext) -> None: super().__init__(context) v = open(self.context['config']).read() self.bias = json.loads(v)['bias'] @custom_model.inference_api def predict(self, input: pd.DataFrame) -> pd.DataFrame: model_output = self.context['m1'].predict(input) return pd.DataFrame({'output': model_output + self.bias})
Suporte para o
CategoricalDtypedo pandas para colunas categóricas.O método
log_modelagora aceita os parâmetrossignatureesample_input_datapara capturar dados em segundo plano da explicabilidade e linhagem de dados.
Correções de bugs¶
Correções de bugs do Data Connector:
Para dados multidimensionais,
to_torch_dataseteto_torch_datapipeagora retornam uma matriz numpy com um tipo de dados apropriado em vez de uma lista.
Correções de bugs da Feature Store:
Correção de um problema em que
ExampleHelperusava um nome de tabela incompleto.Alteração do tempo de agregação dos recursos climáticos para uma hora em vez de um dia.
Correções de bugs de explicabilidade do modelo:
Correção de um problema com a explicabilidade dos modelos XGBoost usando uma nova versão da biblioteca SHAP.
Versão 1.6.4 (17 de outubro de 2024)¶
Correções de bugs¶
Correções de bugs no registro do modelo:
Correção do problema com o uso de
ModelVersion.runcom o Model Serving (inferência no SPCS).
Versão 1.6.3 (7 de outubro de 2024)¶
Mudanças de comportamento¶
Alterações no comportamento do registro do modelo:
Este lançamento não contém mais a versão preliminar da Model Registry API. Em vez disso, use a API pública em
snowflake.ml.model_registry.
Correções de bugs¶
Correções de bugs no registro do modelo:
Correção de normalizações inesperadas de nomes de pacote que não seguem as convenções PEP-508 ao registrar um modelo em log.
Correção do erro “Não é um URI remoto válido” ao registrar modelos MLflow.
Correção de chamadas aninhadas para
ModelVersion.run.Correção da falha
log_modelquando um número de versão de pacote local contém partes diferentes da versão base.
Novos recursos¶
Novos recursos de registro do modelo:
Agora é possível definir um tipo de tarefa para o modelo em
log_modelpor meio do parâmetrotask.
Novos recursos da Feature Store:
FeatureViewagora oferece suporte aos modos de inicializaçãoON_CREATEeON_SCHEDULE.
Versão 1.6.2 (4 de setembro de 2024)¶
Correções de bugs¶
Correção de um bug envolvendo nomes inválidos passados onde nomes totalmente qualificados eram necessários. Agora eles geram corretamente uma exceção.
Correções de bugs de modelagem:
Registra corretamente os modelos criados usando a versão 2 e superior do XGBoost.
Correções de bugs de explicabilidade do modelo:
Soluções alternativas e melhor tratamento de erro para a versão 2.1.0 e superior do XGBoost.
Manipule corretamente modelos de classificação XGBoost multiclasse
Novos recursos¶
Novos recursos da Feature Store:
O método
update_feature_viewagora aceita um objetoFeatureViewcomo alternativa ao nome e à versão.
Versão 1.6.1 (13 de agosto de 2024)¶
Correções de bugs¶
Correções de bugs da Feature Store:
O tamanho dos metadados não é mais limitado ao gerar um conjunto de dados.
Correções de bugs no registro do modelo:
Correção de uma mensagem de erro no método
runde versões do modelo quando um nome de função não é fornecido e o modelo tem vários métodos de destino.
Novos recursos¶
Novos recursos de modelagem:
O método
set_paramsagora está disponível para definir os parâmetros do estimador scikit-learn subjacente, se o modelo de ML Snowpark tiver sido ajustado.
Novos recursos de registro do modelo:
Suporte à explicabilidade de modelo em XGBoost, LightGBM, CatBoost e scikit-learn compatíveis com biblioteca
shap.
Versão 1.6.0 (29 de julho de 2024)¶
Mudanças de comportamento¶
Alterações no comportamento da Feature Store:
Muitos argumentos posicionais agora são argumentos de palavra-chave. A tabela a seguir lista os argumentos afetados para cada método.
Método
Argumentos
Inicializador
EntitydescInicializador
FeatureViewtimestamp_col,refresh_freq,descInicializador
FeatureStorecreation_modeFeatureStore.update_entitydescFeatureStore.register_feature_viewblock,overwriteFeatureStore.list_feature_viewsentity_name,feature_view_nameFeatureStore.get_refresh_historyverboseFeature:Store.retrieve_feature_valuesspine_timestamp_col,exclude_columns,include_feature_view_timestamp_colFeatureStore.generate_training_setsave_as,spine_timestamp_col,spine_label_cols,exclude_columns,include_feature_view_timestamp_colFeatureStore.generate_datasetversion,spine_timestamp_col,spine_label_cols,exclude_columns,include_feature_view_timestamp_col,desc,output_typeAdicione uma nova coluna
warehouseà saída delist_feature_views.
Correções de bugs¶
Correções de bugs de modelagem:
Correção de um problema no qual
SimpleImputernão conseguia imputar colunas de inteiros com valores inteiros.
Correções de bugs no registro do modelo:
Correção de um problema ao fornecer um pandas Dataframe
ModelVersion.runcom base em índice diferente de zero.
Novos recursos¶
Novos recursos da Feature Store:
Adição de sobrecargas a determinados métodos para aceitar tanto uma cadeias de caracteres
FeatureViewquanto de nome/versão. As APIs afetadas incluemread_feature_view,refresh_feature_view,get_refresh_history,resume_feature_view,suspend_feature_viewedelete_feature_view.Adição dos exemplos de docstring em linha para todas as APIs públicas.
Adição da classe de utilitário
ExampleHelperpara ajudar no carregamento de dados de origem para simplificar notebooks públicos.Adição do método
update_entity.Adição do argumento
warehouseao construtorFeatureViewpara substituir o warehouse padrão.
Novos recursos de registro do modelo:
Adição da opção para habilitar a explicabilidade ao registrar modelos XGBoost, LightGBM e Catboost.
Adição de suporte para registrar um modelo de um objeto
ModelVersion.
Novos recursos de modelagem:
Você pode desabilitar o limite de tamanho dos dados de treinamento de 10GB na otimização de hiperparâmetros distribuídos executando:
from snowflake.ml.modeling._internal.snowpark_implementations import ( distributed_hpo_trainer, ) distributed_hpo_trainer.ENABLE_EFFICIENT_MEMORY_USAGE = False
Versão 1.5.4 (11 de julho de 2024)¶
Correções de bugs¶
Correções de bugs no registro do modelo:
Correção do problema “401 Não autorizado” ao implementar um modelo no Snowpark Container Services.
Correções de bugs da Feature Store:
Algumas exceções em setters de propriedade foram rebaixadas para avisos, permitindo que você altere
desc,refresh_freqewarehouseem exibições de recurso de “rascunho”.
Correções de bugs de modelagem:
Correção de problemas com a chamada de
OneHotEncodereOrdinalEncodercom um dicionário como o parâmetrocategoriese os dados em um DataFrame pandas.
Novos recursos¶
Novos recursos de registro do modelo:
Permissão da substituição de
device_mapedeviceao carregar modelos de pipeline do Hugging Face.Adicione os métodos
set_aliaseunset_aliasàs instâncias deModelVersionpara gerenciar os aliases da versão do modelo.Adicione um decorador
partitioned_inference_apipara criar métodos de inferência particionados em modelos.
Novos recursos da Feature Store:
Novas colunas
refresh_freq,refresh_modeescheduling_stateadicionadas à saída do métodolist_feature_views.O método
update_feature_viewagora oferece suporte à atualização da descrição de uma exibição de recurso.Os novos métodos
refresh_feature_vieweget_refresh_historygerenciam as atualizações de exibições de recurso.O novo método
generate_training_setgera instantâneos de recurso baseados em tabela.generate_dataset(..., output_type="table")foi descontinuado e gera umDeprecationWarning.
Novos recursos de modelagem:
OneHotEncodereOrdinalEncoderagora aceitam uma lista de valores semelhantes a uma matriz para o argumentocategories.
Versão 1.5.3 (17 de junho de 2024)¶
Correções de bugs¶
Correções de bugs no registro do modelo:
Correção de um problema que causava resultados incorretos ao usar um Dataframe pandas com mais de 100 mil linhas como entrada do método
ModelVersion.runem procedimentos armazenados.
Correções de bugs de modelagem:
Correção de um problema ao passar categorias para
OneHotEncodereOrdinalEncodercomo um dicionário ou como um DataFrame pandas.
Novos recursos¶
Novos recursos de registro do modelo:
O Model Registry agora oferece suporte a colunas de carimbo de data/hora (TIMESTAMP_NTZ) em dados de entrada e saída.
Novos recursos de modelagem:
OneHotEncodereOrdinalEncoderagora oferecem suporte a uma lista de valores semelhantes a uma matriz ao argumentocategories.
Novos recursos de conjunto de dados:
As instâncias
DatasetVersionagora têm propriedadeslabel_colseexclude_cols.
Versão 1.5.2 (10 de junho de 2024)¶
Correções de bugs¶
Correções de bugs no registro do modelo:
Correção de um problema que impedia chamadas para
log_modelem um procedimento armazenado.
Correções de bugs de modelagem:
Correção rápida para
import snowflake.ml.modeling.parameters.enable_anonymous_sprocque não funcionava devido a erro de dependência de pacote.
Versão 1.5.1 (22/05/2024)¶
Novos recursos¶
Novos recursos de registro do modelo:
Os métodos
log_model,get_modeledelete_modelagora oferecem suporte a nomes totalmente qualificados.
Novos recursos de modelagem:
Agora você pode usar um procedimento armazenado anônimo durante o ajuste, para que a modelagem não exija privilégios para operar no esquema do registro. Chame
import snowflake.ml.modeling.parameters.enable_anonymous_sprocpara habilitar esse recurso.
Correções de bugs¶
Correções de bugs no registro do modelo:
Corrigir problema com carregamento de modelos mais antigos.
Versão 1.5.0 (01/05/2024)¶
Mudanças de comportamento¶
Alterações no comportamento do registro do modelo:
O método
fit_transformagora pode retornar um Snowpark DataFrame ou um panda DataFrame, correspondendo ao tipo de DataFrame passado para o método.
Novos recursos¶
Novos recursos de registro do modelo:
Adicionado suporte para exportar modelos do registro (
ModelVersion.export).Adicionado suporte para carregar o objeto do modelo subjacente (
ModelVersion.load).Adicionado suporte para renomear modelos (
Model.rename).
Correções de bugs¶
Correções de bugs no registro do modelo:
Corrigido o erro «parâmetro inválido
SHOW_MODEL_DETAILS_IN_SHOW_VERSIONS_IN_MODEL».
Versão 1.4.1 (18/04/2024)¶
Novos recursos¶
Novos recursos de registro do modelo:
Adicionado suporte para modelos catboost (
catboost.CatBoostClassifier,catboost.CatBoostRegressor).Adicionado suporte para modelos lightgbm (
lightgbm.Booster,lightgbm.LightGBMClassifier,lightgbm.LightGBMRegressor).
Correções de bugs¶
Correções de bugs no registro do modelo:
Corrigido o bug que fez com que a opção
relax_versionnão trabalhasse.
Versão 1.4.0 (08/04/2024)¶
Mudanças de comportamento¶
Alterações no comportamento do registro do modelo:
O método
applynão é mais incluído como um método de destino por padrão ao registrar um modelo XGBoost. Se você precisar que esse método esteja disponível em modelos registrados, inclua-o manualmente na opçãotarget-methods:log_model(..., options={"target_methods": ["apply", ...]})
Novos recursos¶
Novos recursos de registro do modelo:
O registro agora oferece suporte a modelos de transformadores de sentenças de registro (
sentence_transformers.SentenceTransformer).O argumento
version_namenão é mais necessário ao registrar um modelo. Um ID aleatório legível por humanos é gerado se nenhum for fornecido.
Correções de bugs¶
Correções de bugs no registro do modelo:
Corrigir o problema em que, quando vários modelos são chamados na mesma consulta, os modelos posteriores ao primeiro retornavam resultados incorretos. Essa correção é aplicada quando os modelos são registrados e não beneficia os modelos existentes; você deve registrar seus modelos novamente para corrigir esse comportamento.
Correções de bugs de modelagem:
Corrigir bug no registro de um modelo onde apenas métodos mencionados em
save_modelforam adicionados à assinatura do modelo para modelos do Snowpark ML.Corrigir bug em métodos de inferência em lote, como
predictepredict_log_probe, que sen_jobsnão fosse 1, os métodos não seriam executados.Corrigir bug em métodos de inferência em lote onde eles não podiam inferir tipos de dados quando a primeira linha de dados continha NULL.
Os nomes das colunas de saída da otimização de hiperparâmetros distribuídos agora correspondem corretamente ao identificador Snowflake.
Relaxou as versões de dependências dos métodos de otimização de hiperparâmetros distribuídos; elas eram muito rígidas e faziam com que esses métodos falhassem.
scikit-learn agora está listado como uma dependência do pacote LightGBM.
Versão 1.3.1 (21/03/2024)¶
Novos recursos¶
Atualizações de FileSet/FileSystem:
snowflake.ml.fileset.sfcfs.SFFileSystemagora pode ser usado em UDFs e procedimentos armazenados.
Versão 1.3.0 (12/03/2024)¶
Mudanças de comportamento¶
Alterações no comportamento do registro do modelo:
Conforme anunciado anteriormente, o padrão para a opção
relax_version(no argumentooptionsdelog_model) é agoraTrue, permitindo uma implantação mais confiável na maioria dos casos, permitindo versões de dependência disponíveis no Snowflake.Ao executar métodos de modelo, a validação de entrada baseada em intervalo de valores (que evita estouro de entrada) agora é opcional. Isso deve melhorar o desempenho e não deve causar problemas para a maioria dos tipos de modelos. Para habilitar a validação, passe o argumento nomeado
strict_input_validation=Trueao chamar o métodorundo modelo.
Mudanças no comportamento de desenvolvimento do modelo:
O método
fit_predictagora retorna um DataFrame do pandas ou do Snowpark, dependendo do tipo de dados de entrada, e está disponível em todas as classes onde está disponível na classe subjacente scikit-learn, xgboost ou lightgbm.
Novos recursos e atualizações¶
Atualizações de FileSet/FileSystem:
Instâncias de
snowflake.ml.fileset.sfcfs.SFFileSystemagora podem ser serializadas compickle.
Correções de bugs¶
Correções de bugs no registro do modelo:
Corrigir um problema com a importação de
log_modelem algumas circunstâncias.Corrigir uma mensagem de erro incorreta ao validar a entrada do DataFrame do Snowpark com um recurso de matriz.
Correções de bugs no desenvolvimento do modelo:
Relaxe as versões do pacote para todos os métodos de inferência quando a versão instalada de uma dependência não estiver disponível no canal conda do Snowflake.
Versão 1.2.3 (26/02/2024)¶
Novos recursos e atualizações¶
Atualizações de desenvolvimento de modelo:
Todas as classes de modelagem agora incluem um método
score_samplespara calcular a probabilidade logarítmica das amostras fornecidas.
Atualizações de registro de modelo:
Os recursos do tipo decimal são convertidos automaticamente (com um aviso) para DOUBLE ou FLOAT em vez de produzir um erro.
Melhoria na mensagem de erro da opção
pip-requirementsatualmente não suportada.Agora você pode excluir uma versão de um modelo.
Correções de bugs¶
Correções de desenvolvimento de modelo:
precision_recall_fscore_supportretornou resultados incorretos comaverage="samples".
Correções de registro de modelo:
Descrições, modelos e tags não foram recuperados corretamente em registros recém-criados na API de registro de modelo de versão preliminar privada devido a uma alteração recente no comportamento do Snowflake.
Versão 1.2.2 (13/02/2024)¶
Novos recursos e atualizações¶
Atualizações de registro de modelo:
Agora você pode especificar integrações de acesso externo ao implantar um modelo no Snowpark Container Services usando a API de registro de versão preliminar privada, permitindo que os modelos acessem a Internet para recuperar dependências durante a implantação. Os seguintes pontos de extremidade são necessários para todas as implantações:
docker. com:80
docker. com:443
anaconda.com:80
anaconda.com:443
anaconda.org:80
anaconda.org:443
pypi.org:80
pypi.org:443
Para modelos derivados de
HuggingFacePipeLineModel, os seguintes pontos de extremidade são necessários.huggingface. com:80
huggingface. com:443
huggingface.co:80
huggingface.co:443
Versão 1.2.1 (25/01/2024)¶
Novos recursos e atualizações¶
Atualizações de desenvolvimento de modelo:
Inferir o tipo de dados da coluna para transformadores quando possível.
Atualizações de registro de modelo:
A opção
relax_version(no argumentooptionsdelog_model) relaxa as dependências das versões declaradas para permitir versões secundárias mais recentes quando definida comoTrue.
Versão 1.2.0 (12/01/2024)¶
Novos recursos e atualizações¶
Versão preliminar pública do registro do modelo. Consulte Registro de modelo Snowflake. A versão de versão preliminar privada anterior do registro do modelo foi descontinuada, mas continuará a ter suporte enquanto incluir recursos ainda não disponíveis na versão preliminar pública.
Atualizações de desenvolvimento de modelo:
Adicionado suporte para o método
fit_predictnas classes AgglomerativeClustering, DBSCAN e OPTICS.Adicionado suporte para o método
fit_transformnas classes MDS, SpectralEmbedding e TSNE.