Présentation de Petals
Petals est un projet qui permet d'exécuter des modèles de langage à grande échelle chez soi, en utilisant une architecture peer-to-peer inspirée de BitTorrent. Cela signifie que les utilisateurs peuvent charger une partie d'un modèle, puis rejoindre un réseau de personnes servant les autres parties du modèle.
Fonctionnement de Petals
Petals prend en charge plusieurs modèles de langage, notamment Llama 3.1 (jusqu'à 405 milliards de paramètres), Mixtral (8x22B), Falcon (40B+) et BLOOM (176B). Les utilisateurs peuvent générer du texte avec ces modèles et les affiner pour leurs tâches spécifiques, en utilisant une carte graphique grand public ou Google Colab.
Les performances de Petals sont prometteuses, avec des taux d'inférence allant jusqu'à 6 jetons par seconde pour Llama 2 (70B) et jusqu'à 4 jetons par seconde pour Falcon (180B). Cela suffit pour les chatbots et les applications interactives.
Avantages et flexibilité
Au-delà des API classiques de modèles de langage, Petals permet aux utilisateurs d'employer n'importe quelle méthode d'affinement et d'échantillonnage, d'exécuter des chemins personnalisés à travers le modèle ou de visualiser ses états cachés. Cela offre la flexibilité de PyTorch et de Transformers, tout en conservant les avantages d'une API.
Implémentation et développement
Petals est développé en partie dans le cadre de l'atelier de recherche BigScience. Les utilisateurs peuvent suivre le développement du projet sur Discord ou par e-mail.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# Charger un modèle et un tokenizeur
model = AutoModelForCausalLM.from_pretrained('llama-3.1')
tokenizer = AutoTokenizer.from_pretrained('llama-3.1')