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:
- Ricerca potenziata su 🤗 Hub
- Rendere il riconoscimento automatico del parlato su file di grandi dimensioni con Wav2Vec2 in 🤗 Transformers
- Ottimizza ViT per la classificazione delle immagini con 🤗 Transformers
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!