A Kaggle Models foi inaugurada há um ano e já hospeda cerca de 4.000 modelos pré-treinados de uma ampla variedade de organizações. E agora, a Kaggle Models está aceitando contribuições de usuários, com uploads de modelos Keras. Se você ajustou um modelo que deseja compartilhar com o mundo, veja como funciona:
import keras
import keras_nlp
# Load the model
gemma = keras_nlp.models.CausalLM.from_preset("gemma_1.1_instruct_7b_en")
# Fine tune the model here. Example: Gemma fine-tuned to
# speak like a pirate. See bit.ly/gemma-pirate-demo
# ...
# Save the finetuned model as a KerasNLP preset.
gemma.save_to_preset("./gemma-pirate-instruct-7b")
# Upload the preset as a new model variant on Kaggle
kaggle_uri = "kaggle://my_kaggle_username/gemma-pirate/keras/gemma-pirate-instruct-7b"
keras_nlp.upload_preset(kaggle_uri, "./gemma-pirate-instruct-7b")
As pessoas poderão carregar o modelo usando exatamente a mesma chamada .from_preset(url) como se estivessem carregando o Gemma original, desde que apontem o URL para a versão personalizada ajustada.
gemma = keras_nlp.models.CausalLM.from_preset("kaggle://my_kaggle_username/gemma-pirate/keras/gemma-pirate-instruct-7b")
Para facilitar a descoberta de modelos carregados pelos usuários, o Kaggle fornece páginas de modelos nas quais é possível adicionar uma descrição, detalhes sobre o conjunto de dados usado para ajustes, etc. Também é nessa página que você torna público o modelo carregado (guia "Settings" na captura de tela abaixo).
Um toque bacana da equipe Kaggle é a classificação de usabilidade. Isso ajuda você a ver quais detalhes de modelo estão faltando no seu para que ele seja visto e apreciado pela comunidade.
Você deve ter notado que as chamadas model.save_to_preset() e keras_nlp.upload_preset() são incorporadas diretamente no Keras para tornar o upload conveniente. Embora seja possível fazer upload de modelos em qualquer formato, desde que você publique instruções para carregá-los, o Kaggle escolheu o Keras como o formato de modelo preferido devido à experiência do usuário consistente fornecida pelo Keras para modelos pré-treinados:
Mas é sempre importante verificar nossas suposições. O lançamento dos modelos Gemma, os mais recentes Modelos de Linguagem Grandes (LLM, na sigla em inglês) abertos do Google, foi um ótimo teste. Eles foram lançados em nada menos que 9 formatos (!), e os dados de download do Kaggle mostram que há mais do que o dobro de downloads em keras do que em todos os outros formatos combinados.
O Kaggle realizou duas competições do Gemma, e os notebooks iniciais da KerasNLP para ambas foram copiados mais de 950 vezes entre elas (de acordo com o nosso comparativo de mercado interno: >500 cópias = "uau, os usuários do Kaggle o acharam útil", >1000 cópias ="incrível"):
E os usuários do Kaggle estão fazendo coisas incríveis com esses modelos. Veja a seguir alguns exemplos:
A disponibilização de um notebook costumava ser a única maneira de compartilhar um modelo modificado com a comunidade no Kaggle. Porém, com a demora para fazer ajustes, é muito melhor poder compartilhar o resultado final diretamente, como um Modelo Kaggle.
Com este lançamento, a KerasNLP também se torna uma cidadã VIP na Hugging Face. Os modelos Keras podem ser carregados diretamente da Hugging Face usando a KerasNLP, que agora é uma das bibliotecas de modelos pré-treinados aceitas na Hugging Face, da mesma forma que a Transformers ou Diffusers. Esta é a página da Gemma Keras na Hugging Face, por exemplo. Você pode carregar o modelo com:
# Load the model
gemma = keras_nlp.models.CausalLM.from_preset("hf://google/gemma-7b-instruct-keras")
E, a seguir, veja como fazer upload do modelo na Hugging Face. O que muda em comparação com os uploads do Kaggle é o uso de "hf://" em vez de "kaggle://" no URL.
# Fine-tune model
# ...
# Then save it as a KerasNLP preset.
gemma.save_to_preset('./gemma-pirate-instruct-7b)
# Upload the preset to Hugging Face Hub
hf_uri = "hf://my_hf_username/gemma-pirate-instruct-7b"
keras_nlp.upload_preset(hf_uri, './gemma-pirate-instruct-7b)
Este é o resultado: um cartão de modelo pré-preenchido na Hugging Face. Você pode adicionar mais informações e tornar o modelo público usando a guia "settings":
Observe como o modelo foi reconhecido automaticamente na Hugging Face e marcado automaticamente com "KerasNLP" e "Text Generation".
Agora é a sua vez. Sucesso no upload do modelo!
Para testar o código de upload do modelo diretamente, experimente Gemma 7B pirate upload to Kaggle and Hugging Face.
Encontre a documentação oficial desse recurso aqui.