Uso do KerasHub para fluxos de trabalho simples de aprendizado de máquina de ponta a ponta com o Hugging Face

24 DE JUNHO DE 2025
Yufeng Guo Developer Advocate
Divyashree Sreepathihalli Software Engineer
Monica Song Product Manager

Como carregar pontos de verificação do SafeTensors em diferentes frameworks


À medida que o ecossistema de IA continua a evoluir, há cada vez mais maneiras de definir modelos de aprendizado de máquina e também de economizar em pesos de modelos resultantes de treinamento e ajuste. Nesse conjunto crescente de opções, o KerasHub permite que você misture e combine arquiteturas de modelos populares e seus pesos em diferentes frameworks de ML.

Por exemplo, uma fonte popular para o carregamento de pontos de verificação é o Hugging Face Hub. Muitos desses pontos de verificação de modelos foram criados com a biblioteca transformers do Hugging Face no formato SafeTensors. Independentemente de qual estrutura de ML tenha sido usada para criar o ponto de verificação do modelo, esses pesos podem ser carregados em um modelo do KerasHub, o que permite que você use seu framework escolhido (JAX, PyTorch ou TensorFlow) para executar o modelo.

Sim, isso significa que você pode executar um ponto de verificação do Mistral ou do Llama no JAX, ou até mesmo carregar o Gemma com o PyTorch. Não podia ser mais flexível!

Vamos dar uma olhada em alguns desses termos com mais detalhes e falar sobre como isso funciona na prática.


Arquitetura do modelo versus pesos do modelo

Ao carregar modelos, há duas partes distintas de que precisamos: a arquitetura do modelo e os pesos do modelo (geralmente chamados de "pontos de verificação"). Vamos definir cada um deles mais detalhadamente.

Quando dizemos "arquitetura do modelo", estamos nos referindo à forma como as camadas do modelo são organizadas e às operações que acontecem dentro delas. Outra forma de descrever isso pode ser chamá-la de "estrutura" do modelo. Usamos frameworks do Python, como PyTorch, JAX ou Keras, para expressar arquiteturas de modelos.

Quando falamos de "pesos do modelo", estamos nos referindo aos "parâmetros" de um modelo, ou aos números em um modelo que são alterados ao longo do treinamento. Os valores particulares desses pesos são o que dão a um modelo treinado suas características.

"Pontos de verificação" são um instantâneo dos valores dos pesos do modelo em um ponto específico do treinamento. Os arquivos de ponto de verificação típicos que são compartilhados e amplamente utilizados são aqueles nos quais o modelo alcançou um resultado de treinamento particularmente bom. À medida que a mesma arquitetura do modelo é ainda mais refinada com o ajuste e outras técnicas, novos arquivos de ponto de verificação adicionais são criados. Por exemplo, muitos desenvolvedores usaram o modelo gemma-2-2b-it do Google e o ajustaram com seus próprios conjuntos de dados, e você pode ver mais de 600 exemplos. Todos esses modelos ajustados usam a mesma arquitetura do modelo gemma-2-2b-it original, mas seus pontos de verificação têm pesos diferentes.

Resumindo: a arquitetura do modelo é descrita com código, enquanto os pesos do modelo são parâmetros treinados, salvos como arquivos de ponto de verificação. Quando temos uma arquitetura de modelo junto com um conjunto de pesos de modelo (na forma de um arquivo de ponto de verificação), criamos um modelo funcional que produz saídas úteis.

Pesos de modelo diferentes podem ser carregados na mesma arquitetura de modelo. Esses diferentes conjuntos de pesos são salvos como pontos de verificação.

Ferramentas como a biblioteca transformers do Hugging Face e a biblioteca KerasHub do Google fornecem arquiteturas de modelos e as APIs de que você precisa para experimentá-las. Exemplos de repositórios de pontos de verificação incluem Hugging Face Hub e Kaggle Models.

Você pode misturar e combinar bibliotecas de arquiteturas de modelos com sua seleção de repositórios de pontos de verificação. Por exemplo, você pode carregar um ponto de verificação do Hugging Face Hub em uma arquitetura de modelo JAX e ajustá-lo com o KerasHub. Para uma tarefa diferente, você pode encontrar um ponto de verificação no Kaggle Models adequado às suas necessidades. Essa flexibilidade e separação significam que você não está preso a um ecossistema.


O que é o KerasHub?

Já mencionamos o KerasHub algumas vezes. Agora, vamos entrar nos detalhes.

O KerasHub é uma biblioteca Python que ajuda a facilitar a definição de arquiteturas de modelos. Ele contém muitos dos modelos de aprendizado de máquina mais populares e comumente usados atualmente, e mais estão sendo adicionados o tempo todo. Por ser baseado no Keras, o KerasHub dá suporte a todas as três principais bibliotecas de aprendizado de máquina Python usadas hoje: PyTorch, JAX e TensorFlow. Isso significa que você pode ter arquiteturas de modelos definidas em qualquer biblioteca que desejar.

Além disso, como o KerasHub dá suporte aos formatos de pontos de verificação mais comuns, você pode carregar facilmente pontos de verificação de muitos repositórios. Por exemplo, você pode encontrar centenas de milhares de pontos de verificação no Hugging Face e no Kaggle para carregar nessas arquiteturas de modelos.


Comparações com a biblioteca transformers do Hugging Face

Um fluxo de trabalho comum dos desenvolvedores é usar a biblioteca transformers do Hugging Face para ajustar um modelo e fazer o upload dele no Hugging Face Hub. E, se você é usuário da biblioteca transformers, também encontrará muitos padrões de API familiares no KerasHub. Confira a documentação da API KerasHub para saber mais. Um aspecto interessante do KerasHub é que muitos dos pontos de verificação encontrados no Hugging Face Hub são compatíveis não apenas com a biblioteca de transformers, mas também com o KerasHub. Vamos ver como isso funciona.


O KerasHub é compatível com o Hugging Face Hub

O Hugging Face tem um repositório de pontos de verificação de modelos chamado Hugging Face Hub. Esse é um dos muitos locais nos quais a comunidade de aprendizado de máquina faz upload de seus pontos de verificação de modelos para compartilhar com o mundo. Especialmente popular no Hugging Face é o formato SafeTensors, que é compatível com o KerasHub.

Você pode carregar esses pontos de verificação do Hugging Face Hub diretamente em seu modelo KerasHub, desde que a arquitetura do modelo esteja disponível. Quer saber se o seu modelo favorito está disponível? Veja a lista de arquiteturas de modelos com suporte em https://keras.io/keras_hub/presets/. E lembre-se: todos os pontos de verificação ajustados criados pela comunidade para essas arquiteturas de modelos também são compatíveis! Recentemente, criamos um novo guia para ajudar a explicar o processo com mais detalhes.

Como tudo isso funciona? O KerasHub possui conversores integrados que simplificam o uso de modelos transformers do Hugging Face. Esses conversores lidam automaticamente com o processo de tradução dos pontos de verificação de modelos do Hugging Face em um formato compatível com o KerasHub. Isso significa que você pode carregar facilmente uma grande variedade de modelos transformers do Hugging Face pré-treinados diretamente no KerasHub com apenas algumas linhas de código.

Para adicionar uma arquitetura de modelo que esteja faltando, preencha uma solicitação de envio no GitHub.


Como carregar um ponto de verificação do Hugging Face Hub no KerasHub

Mas como carregar pontos de verificação do Hugging Face Hub no KerasHub? Vamos dar uma olhada em alguns exemplos concretos.

Começaremos escolhendo nossa biblioteca de aprendizado de máquina como nosso "back-end" do Keras. Usaremos o JAX nos exemplos mostrados, mas você pode escolher entre JAX, PyTorch ou TensorFlow para qualquer um deles. Todos os exemplos abaixo funcionam independentemente da escolha. Em seguida, podemos prosseguir importando keras, keras_hub e huggingface_hub e, depois, fazendo login com nosso token de acesso de usuário do Hugging Face a fim de acessar os pontos de verificação de modelos.

import os
os.environ["KERAS_BACKEND"] = "jax" # or "torch" or "tensorflow"
 
import keras
from keras_hub import models
from huggingface_hub import login
login('HUGGINGFACE_TOKEN')
Python

Colocação de um modelo Mistral no JAX

Primeiro, talvez queiramos executar um ponto de verificação do Mistral no JAX. No KerasHub, há um punhado de modelos Mistral disponíveis na lista de arquiteturas de modelos disponíveis do KerasHub, então vamos experimentar o mistral_0.2_instruct_7b_en. Ao clicar nele, vemos que devemos usar a classe MistralCausalLM para chamar from_preset. No lado do Hugging Face Hub, vemos que o ponto de verificação do modelo correspondente está armazenado aqui, com mais de 900 versões ajustadas. Nessa lista, há um popular modelo ajustado com foco em segurança cibernética chamado Lily, com o nome de caminho segolilylabs/Lily-Cybersecurity-7B-v0.2. Também precisaremos adicionar "hf://" antes desse caminho para especificar que o KerasHub deve procurar no Hugging Face Hub.

Ao juntar tudo isso, obtemos o seguinte código:

# Model checkpoint from Hugging Face Hub
gemma_lm = models.MistralCausalLM.from_preset("hf://segolilylabs/Lily-Cybersecurity-7B-v0.2")
gemma_lm.generate("Lily, how do evil twin wireless attacks work?", max_length=30)
Python

Execução do Llama 3.1 no JAX

O Llama 3.1-8B-Instruct é um modelo popular, com mais de 5 milhões de downloads no mês passado. Vamos colocar uma versão ajustada no JAX. Com mais de 1.400 pontos de verificação ajustados, não faltam opções. O ponto de verificação ajustado xVerify parece interessante, então vamos carregá-lo no JAX no KerasHub.

Usaremos a classe Llama3CausalLM para refletir a arquitetura do modelo que estamos usando. Como antes, precisaremos do caminho apropriado do Hugging Face Hub, prefixado com "hf://". É incrível poder carregar e chamar um modelo com apenas duas linhas de código, não é?

# Model checkpoint from Hugging Face Hub
gemma_lm = models.Llama3CausalLM.from_preset("hf://IAAR-Shanghai/xVerify-8B-I")
gemma_lm.generate("What is the tallest building in NYC?", max_length=100)
Python

Carregamento do Gemma no JAX

Por fim, vamos carregar um ponto de verificação Gemma-3-4b-it ajustado no JAX. Usaremos a classe Gemma3CausalLM e selecionaremos um dos pontos de verificação ajustados. Que tal o EraX, um tradutor multilíngue? Como antes, usaremos o nome do caminho com o prefixo do Hugging Face Hub para criar o caminho completo "hf://erax-ai/EraX-Translator-V1.0".

# Model checkpoint from Hugging Face Hub
gemma_lm = models.Gemma3CausalLM.from_preset("hf://erax-ai/EraX-Translator-V1.0")
gemma_lm.generate("Translate to German: ", max_length=30)
Python

Flexibilidade ao seu alcance

Como vimos, a arquitetura de um modelo não precisa estar vinculada a seus pesos, o que significa que você pode combinar arquiteturas e pesos de diferentes bibliotecas.

O KerasHub preenche a lacuna entre diferentes frameworks e repositórios de pontos de verificação. Você pode pegar um ponto de verificação de modelo do Hugging Face Hub — até mesmo um criado usando a biblioteca transformers baseada no PyTorch — e carregá-lo diretamente em um modelo Keras em execução no back-end de sua escolha: JAX, TensorFlow ou PyTorch. Isso permite que você aproveite uma vasta coleção de modelos ajustados da comunidade, mantendo total escolha sobre qual framework de back-end executar.

Ao simplificar o processo de combinação e correspondência de arquiteturas, pesos e frameworks, o KerasHub permite que você experimente e inove com flexibilidade simples, porém poderosa.