Salut tout le monde! Je m'appelle Nataraj et tout comme vous, je suis fasciné par les récents progrès de l'intelligence artificielle. Réalisant que je devais me tenir au courant de tous les développements, j'ai décidé de me lancer dans un parcours personnel d'apprentissage. C'est ainsi que 100 jours d'IA sont nés ! Avec cette série, je vais découvrir les LLM et partager des idées, des expériences, des opinions, des tendances et des apprentissages à travers mes articles de blog. Vous pouvez suivre le voyage sur HackerNoon ici ou sur mon site Web personnel ici . Dans l'article d'aujourd'hui, nous chercherons à créer un noyau sémantique à l'aide de GPT-4.
Si vous lisez la série 100 Days of AI, j'écris un thème commun que vous remarquerez : la plupart des articles contiennent une sorte d'expérience ou de démo. À la fin des articles, j'énumère également des idées possibles avec les technologies que j'ai explorées. La prochaine question évidente est donc la suivante : existe-t-il un moyen de regrouper facilement ces expériences dans des produits démontables, de les partager avec les gens et d'obtenir des commentaires ?
Dans cet article, nous explorerons comment convertir facilement une expérience d'IA en une démo pouvant être utilisée et obtenir des commentaires.
Supposons que vous souhaitiez créer une application d'IA qui récupère du texte et renvoie un résumé. Et vous souhaitez le partager avec les gens et obtenir des commentaires. Si vous devez créer une application Web pour cette application, vous devez coder l'interface utilisateur, vous assurer de trouver une solution d'hébergement et déterminer ce que sera l'ensemble de la pile. Bien sûr, il existe des piles d'applications Web démarrées qui permettront de le faire plus rapidement, mais vous n'avez pas besoin de toute cette complexité pour votre cas d'utilisation. Au lieu de cela, nous utiliserons Gradio qui crée une interface de type application Web sans écrire de code pour cette application.
Gradio est une bibliothèque Python qui vous permet de créer facilement des démos de vos applications d'IA et de les partager avec un public sous la forme d'une application Web.
Pour comprendre comment faire facilement une démonstration d'une expérience gen AI avec Gradio, nous allons créer une application Web de résumé dans laquelle vous pourrez donner à l'application un long texte et l'application affichera le résumé de ce long texte.
Avec Gradio, nous utiliserons l'application Hugging Face, donc pour suivre, assurez-vous de garder votre clé API Hugging Face à portée de main. Pour commencer, chargeons la clé API à partir du fichier .env et ajoutons les modules Python requis.
import os import io from IPython.display import Image, display, HTML #from PIL import Image import base64 import openai env_path = '../.env' from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv(env_path)) # read local .env file hf_api_key = os.environ['HF_API_KEY']
La logique fondamentale de ce que nous voulons réaliser est d'envoyer un long texte à un modèle et d'obtenir un résumé du texte. Nous allons définir une fonction qui prend le texte long en entrée et appelle un modèle sur le visage câlin appelé distilbart . Voici la fonction pour ce faire.
def get_completion(inputs, parameters=None, ENDPOINT_URL=os.environ['HF_API_SUMMARY_BASE']): headers = { "Authorization": f"Bearer {hf_api_key}", "Content-Type": "application/json" } data = { "inputs": inputs } if parameters is not None: data.update({"parameters": parameters}) response = requests.request("POST", ENDPOINT_URL, headers=headers, data=json.dumps(data) ) return json.loads(response.content.decode("utf-8"))
Le principal moyen d’interagir avec Gradio consiste à utiliser la fonction d’interface . Nous devons transmettre une fonction et ses entrées et sorties correspondantes. Notez que nous avons défini une nouvelle fonction appelée summary à cet effet. Cette fonction prend une entrée, qui sera le texte long qui doit être résumé et la fonction appellera la fonction get_completion à partir de l'étape 2 pour obtenir le résumé du texte d'entrée et le renvoyer comme sortie . Dans la dernière ligne, nous demandons à gradio de lancer la démo de cette application. En fournissant share=True , nous demandons à gradio de créer un lien public qui peut être partagé avec d'autres et nous donnons également le port_serveur sur lequel l'hébergeur local doit s'exécuter. Dans le code ci-dessous, nous personnalisons également le titre, la description et les étiquettes des champs d'entrée et de sortie que vous remarquerez dans la sortie.
import gradio as gr def summarize(input): output = get_completion(input) return output[0]['summary_text'] gr.close_all() demo = gr.Interface(fn=summarize, inputs=[gr.Textbox(label="Text to summarize", lines=6)], outputs=[gr.Textbox(label="Result", lines=3)], title="Text summarization with distilbart-cnn", description="Summarize any text using the `shleifer/distilbart-cnn-12-6` model under the hood!" ) demo.launch(share=True, server_port=int(os.environ['PORT1']))
Une fois que vous avez exécuté ceci, voici à quoi ressemble maintenant la sortie dans votre navigateur à l'adresse http://127.0.0.1 :<votre numéro de port>.
C'est aussi simple que cela de faire une démonstration d'un projet avec Gradio. La beauté ici est que vous, en tant que développeur, n'avez pas eu à proposer une pile d'interface utilisateur et à passer par la complexité de l'apprentissage de cette pile et de sa mise en production. Gradio le fait pour vous.
Gradio propose différents types d'entrées et de sorties grâce auxquels vous pouvez créer des démos plus complexes et intéressantes qui peuvent être facilement partagées. Nous explorerons plus de démos avec Gradio et d'autres outils dans les prochains articles.
C'est tout pour le jour 12 des 100 jours d'IA.
J'écris une newsletter intitulée Above Average dans laquelle je parle des idées de second ordre derrière tout ce qui se passe dans la grande technologie. Si vous êtes dans la technologie et que vous ne voulez pas être dans la moyenne, abonnez-vous .
Suivez-moi sur Twitter , LinkedIn ou HackerNoon pour les dernières mises à jour sur 100 jours d'IA. Si vous êtes dans le domaine de la technologie, vous pourriez être intéressé à rejoindre ma communauté de professionnels de la technologie ici .