Benvenuto a Stable-baselines3 su Hugging Face Hub 🤗

Benvenuto a Stable-baselines3 su Hugging Face Hub.

A Hugging Face, stiamo contribuendo all’ecosistema per ricercatori ed appassionati di Deep Reinforcement Learning. Ecco perché siamo felici di annunciare che abbiamo integrato Stable-Baselines3 nell’Hugging Face Hub.

Stable-Baselines3 è una delle librerie più popolari per il Deep Reinforcement Learning con PyTorch, che semplifica l’addestramento e il test degli agenti in una varietà di ambienti (Gym, Atari, MuJoco, Procgen…). Con questa integrazione, ora puoi ospitare i tuoi modelli salvati 💾 e caricare potenti modelli dalla comunità.

In questo articolo, ti mostreremo come farlo.

Installazione

Per utilizzare stable-baselines3 con Hugging Face Hub, devi solo installare queste 2 librerie:

pip install huggingface_hub
pip install huggingface_sb3

Ricerca di modelli

Attualmente stiamo caricando modelli salvati di agenti che giocano a Space Invaders, Breakout, LunarLander e altro ancora. Inoltre, puoi trovare tutti i modelli stable-baselines-3 dalla comunità qui

Quando hai trovato il modello di cui hai bisogno, devi solo copiare l’id del repository:

Scarica un modello dall’Hub

La caratteristica più interessante di questa integrazione è che ora puoi facilmente caricare un modello salvato dall’Hub in Stable-baselines3.

Per farlo, devi semplicemente copiare l’id del repository che contiene il tuo modello salvato e il nome del file zip del modello salvato nel repository.

Ad esempio sb3/demo-hf-CartPole-v1 :

import gym

from huggingface_sb3 import load_from_hub
from stable_baselines3 import PPO
from stable_baselines3.common.evaluation import evaluate_policy

# Recupera il modello dall'hub
## repo_id = id del repository del modello nell'Hugging Face Hub (repo_id = {organizzazione}/{nome_repo})
## filename = nome del file zip del modello nel repository, incluso l'estensione .zip
checkpoint = load_from_hub(
    repo_id="sb3/demo-hf-CartPole-v1",
    filename="ppo-CartPole-v1.zip",
)
model = PPO.load(checkpoint)

# Valuta l'agente e osservalo
eval_env = gym.make("CartPole-v1")
mean_reward, std_reward = evaluate_policy(
    model, eval_env, render=True, n_eval_episodes=5, deterministic=True, warn=False
)
print(f"mean_reward={mean_reward:.2f} +/- {std_reward}")

Condividi un modello nell’Hub

In soli pochi minuti, puoi ottenere il tuo modello salvato nell’Hub.

Prima di tutto, devi effettuare il login su Hugging Face per caricare un modello:

  • Se stai usando Colab/Jupyter Notebooks:
from huggingface_hub import notebook_login
notebook_login()
  • Altrimenti:
huggingface-cli login

Quindi, in questo esempio, addestriamo un agente PPO per giocare a CartPole-v1 e lo carichiamo in un nuovo repository ThomasSimonini/demo-hf-CartPole-v1 `

from huggingface_sb3 import push_to_hub
from stable_baselines3 import PPO

# Definisci un modello PPO con una rete di politiche MLP
model = PPO("MlpPolicy", "CartPole-v1", verbose=1)

# Addestralo per 10000 passaggi temporali
model.learn(total_timesteps=10_000)

# Salva il modello
model.save("ppo-CartPole-v1")

# Carica questo modello salvato nell'hf repo
# Se questo repository non esiste, verrà creato
## repo_id = id del repository del modello nell'Hugging Face Hub (repo_id = {organizzazione}/{nome_repo})
## filename: il nome del file == "nome" all'interno di model.save("ppo-CartPole-v1")
push_to_hub(
    repo_id="ThomasSimonini/demo-hf-CartPole-v1",
    filename="ppo-CartPole-v1.zip",
    commit_message="Aggiunto modello Cartpole-v1 addestrato con PPO",
)

Provalo e condividi i tuoi modelli con la comunità!

Cosa succederà?

Nelle prossime settimane e mesi, estenderemo l’ecosistema mediante:

  • Integrazione di RL-baselines3-zoo
  • Caricamento di modelli RL-trained-agents nell’Hub: una grande collezione di agenti di apprendimento per rinforzo pre-addestrati utilizzando stable-baselines3
  • Integrazione di altre librerie di Deep Reinforcement Learning
  • Implementazione di Decision Transformers 🔥
  • E altro ancora 🥳

Il modo migliore per rimanere in contatto è unirsi al nostro server Discord per scambiare idee con noi e con la comunità.

E se vuoi approfondire, abbiamo scritto un tutorial in cui imparerai:

  • Come addestrare un agente di apprendimento per rinforzo Deep Reinforcement Learning per atterrare correttamente sulla Luna 🌕
  • Come caricarlo nell’Hub 🚀

  • Come scaricare e utilizzare un modello salvato dall’Hub che gioca a Space Invaders 👾.

👉 Il tutorial

Conclusioni

Siamo entusiasti di vedere su cosa stai lavorando con Stable-baselines3 e di provare i tuoi modelli nell’Hub 😍.

E ci piacerebbe sentire il tuo feedback 💖. 📧 Sentiti libero di contattarci.

Infine, vorremmo ringraziare il team di SB3 e in particolare Antonin Raffin per il loro prezioso aiuto per l’integrazione della libreria 🤗.

Ti piacerebbe integrare la tua libreria nell’Hub?

Questa integrazione è possibile grazie alla libreria huggingface_hub che contiene tutti i nostri widget e l’API per tutte le librerie supportate. Se desideri integrare la tua libreria nell’Hub, abbiamo una guida per te!