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.
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_dataset
eto_torch_datapipe
agora 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
None
emto_torch_dataset
para 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
ModelContext
para 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
CategoricalDtype
do pandas para colunas categóricas.O método
log_model
agora aceita os parâmetrossignature
esample_input_data
para 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_dataset
eto_torch_datapipe
agora 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
ExampleHelper
usava 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.run
com 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_model
quando 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_model
por meio do parâmetrotask
.
Novos recursos da Feature Store:
FeatureView
agora oferece suporte aos modos de inicializaçãoON_CREATE
eON_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_view
agora aceita um objetoFeatureView
como 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
run
de 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_params
agora 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
Entity
desc
Inicializador
FeatureView
timestamp_col
,refresh_freq
,desc
Inicializador
FeatureStore
creation_mode
FeatureStore.update_entity
desc
FeatureStore.register_feature_view
block
,overwrite
FeatureStore.list_feature_views
entity_name
,feature_view_name
FeatureStore.get_refresh_history
verbose
Feature:Store.retrieve_feature_values
spine_timestamp_col
,exclude_columns
,include_feature_view_timestamp_col
FeatureStore.generate_training_set
save_as
,spine_timestamp_col
,spine_label_cols
,exclude_columns
,include_feature_view_timestamp_col
FeatureStore.generate_dataset
version
,spine_timestamp_col
,spine_label_cols
,exclude_columns
,include_feature_view_timestamp_col
,desc
,output_type
Adicione 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
SimpleImputer
nã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.run
com 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
FeatureView
quanto de nome/versão. As APIs afetadas incluemread_feature_view
,refresh_feature_view
,get_refresh_history
,resume_feature_view
,suspend_feature_view
edelete_feature_view
.Adição dos exemplos de docstring em linha para todas as APIs públicas.
Adição da classe de utilitário
ExampleHelper
para ajudar no carregamento de dados de origem para simplificar notebooks públicos.Adição do método
update_entity
.Adição do argumento
warehouse
ao construtorFeatureView
para 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_freq
ewarehouse
em exibições de recurso de “rascunho”.
Correções de bugs de modelagem:
Correção de problemas com a chamada de
OneHotEncoder
eOrdinalEncoder
com um dicionário como o parâmetrocategories
e os dados em um DataFrame pandas.
Novos recursos¶
Novos recursos de registro do modelo:
Permissão da substituição de
device_map
edevice
ao carregar modelos de pipeline do Hugging Face.Adicione os métodos
set_alias
eunset_alias
às instâncias deModelVersion
para gerenciar os aliases da versão do modelo.Adicione um decorador
partitioned_inference_api
para criar métodos de inferência particionados em modelos.
Novos recursos da Feature Store:
Novas colunas
refresh_freq
,refresh_mode
escheduling_state
adicionadas à saída do métodolist_feature_views
.O método
update_feature_view
agora oferece suporte à atualização da descrição de uma exibição de recurso.Os novos métodos
refresh_feature_view
eget_refresh_history
gerenciam as atualizações de exibições de recurso.O novo método
generate_training_set
gera instantâneos de recurso baseados em tabela.generate_dataset(..., output_type="table")
foi descontinuado e gera umDeprecationWarning
.
Novos recursos de modelagem:
OneHotEncoder
eOrdinalEncoder
agora 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.run
em procedimentos armazenados.
Correções de bugs de modelagem:
Correção de um problema ao passar categorias para
OneHotEncoder
eOrdinalEncoder
como 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:
OneHotEncoder
eOrdinalEncoder
agora oferecem suporte a uma lista de valores semelhantes a uma matriz ao argumentocategories
.
Novos recursos de conjunto de dados:
As instâncias
DatasetVersion
agora têm propriedadeslabel_cols
eexclude_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_model
em um procedimento armazenado.
Correções de bugs de modelagem:
Correção rápida para
import snowflake.ml.modeling.parameters.enable_anonymous_sproc
que 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_model
edelete_model
agora 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_sproc
para 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_transform
agora 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_version
nã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
apply
nã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_name
nã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_model
foram adicionados à assinatura do modelo para modelos do Snowpark ML.Corrigir bug em métodos de inferência em lote, como
predict
epredict_log_probe
, que sen_jobs
nã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.SFFileSystem
agora 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 argumentooptions
delog_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=True
ao chamar o métodorun
do modelo.
Mudanças no comportamento de desenvolvimento do modelo:
O método
fit_predict
agora 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.SFFileSystem
agora 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_model
em 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_samples
para 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-requirements
atualmente 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_support
retornou 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 argumentooptions
delog_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_predict
nas classes AgglomerativeClustering, DBSCAN e OPTICS.Adicionado suporte para o método
fit_transform
nas classes MDS, SpectralEmbedding e TSNE.