Un framework Pythonic pour simplifier la création de services d'IA
Page d'accueil • API Playground • Exemples • Documentation • Références CLI • Twitter • Blog
La bibliothèque LeptonAI Python vous permet de créer facilement un service d'IA à partir du code Python. Les principales fonctionnalités incluent :
Photon
d'abstraction Pythonique, permettant de convertir du code de recherche et de modélisation en un service avec quelques lignes de code.Installez la bibliothèque avec :
pip install -U leptonai
Cela installe la bibliothèque leptonai
Python, ainsi que l'interface de ligne de commande lep
. Vous pouvez ensuite lancer un modèle HuggingFace, disons gpt2
, en une seule ligne de code :
lep photon runlocal - - name gpt2 - - model hf : gpt2
Si vous avez accès au modèle Llama2 (demandez l'accès ici) et que vous disposez d'un GPU de taille raisonnable, vous pouvez le lancer avec :
# hint: you can also write `-n` and `-m` for short
lep photon runlocal - n llama2 - m hf : meta - llama / Llama - 2 - 7 b - chat - hf
(Assurez-vous d'utiliser la version -hf
pour Llama2, qui est compatible avec les pipelines Huggingface.)
Vous pourrez ensuite accéder au service avec :
from leptonai . client import Client , local
c = Client ( local ( port = 8080 ))
# Use the following to print the doc
print ( c . run . __doc__ )
print ( c . run ( inputs = "I enjoy walking with my cute dog" ))
Les modèles Llama2 et CodeLlama entièrement gérés peuvent être trouvés dans l’aire de jeux.
De nombreux pipelines HuggingFace standard sont pris en charge - découvrez plus de détails dans la documentation. Cependant, tous les modèles HuggingFace ne sont pas pris en charge, car beaucoup d'entre eux contiennent du code personnalisé et ne sont pas des pipelines standard. Si vous trouvez un modèle populaire que vous aimeriez soutenir, veuillez ouvrir un problème ou un PR.
Vous pouvez trouver plus d'exemples dans le référentiel d'exemples. Par exemple, lancez le modèle Stable Diffusion XL avec :
git clone [email protected]:leptonai/examples.git
cd examples
lep photon runlocal - n sdxl - m advanced / sdxl / sdxl . py
Une fois le service exécuté, vous pouvez y accéder avec :
from leptonai . client import Client , local
c = Client ( local ( port = 8080 ))
img_content = c . run ( prompt = "a cat launching rocket" , seed = 1234 )
with open ( "cat.png" , "wb" ) as fid :
fid . write ( img_content )
ou accédez à l'interface utilisateur de Gradio montée sur http://localhost:8080/ui. Consultez le fichier README pour plus de détails.
Un SDXL entièrement géré est hébergé sur https://dashboard.lepton.ai/playground/sdxl avec accès API.
Écrire votre propre photon est simple : écrivez une classe Python Photon et décorez les fonctions avec @Photon.handler
. Tant que vos entrées et sorties sont sérialisables en JSON, vous êtes prêt à partir. Par exemple, le code suivant lance un simple service d'écho :
# my_photon.py
from leptonai . photon import Photon
class Echo ( Photon ):
@ Photon . handler
def echo ( self , inputs : str ) -> str :
"""
A simple example to return the original input.
"""
return inputs
Vous pouvez ensuite lancer le service avec :
lep photon runlocal -n echo -m my_photon.py
Ensuite, vous pouvez utiliser votre service comme suit :
from leptonai . client import Client , local
c = Client ( local ( port = 8080 ))
# will print available paths
print ( c . paths ())
# will print the doc for c.echo. You can also use `c.echo?` in Jupyter.
print ( c . echo . __doc__ )
# will actually call echo.
c . echo ( inputs = "hello world" )
Pour plus de détails, consultez la documentation et les exemples.
Les contributions et collaborations sont les bienvenues et très appréciées. Veuillez consulter le guide du contributeur pour savoir comment vous impliquer.
La bibliothèque Lepton AI Python est publiée sous la licence Apache 2.0.
Note du développeur : les premiers développements de LeptonAI se faisaient dans un mono-dépôt distinct, c'est pourquoi vous pouvez voir des validations du dépôt leptonai/lepton
. Nous avons l'intention d'utiliser ce dépôt open source comme source de vérité à l'avenir.