Salut tout le monde! 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 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 ou sur mon site Web personnel . Dans l'article d'aujourd'hui, nous chercherons à créer un noyau sémantique à l'aide de GPT-4. Je m'appelle Nataraj 100 jours d'IA ici ici Semantic Kernel est un SDK open source de Microsoft qui aide les développeurs à créer des applications d'IA, notamment des chatbots, des RAG, des copilotes et des agents. C'est similaire à ce que fait Langchain. Nous pouvons probablement l'appeler la réponse de Microsoft à Langchain. Il est conçu pour rendre les logiciels existants extensibles et faciles à exposer aux fonctionnalités d’IA. Il est également conçu en prévision du fait que les applications souhaitent mettre à jour leurs modèles d'IA vers les versions les plus récentes et les plus performantes au fil du temps. Bien que l'espace évolue très rapidement, voici quelques définitions à garder à l'esprit lorsque nous explorons le noyau sémantique. discutez simplement avec l’utilisateur. Chat Bot : chatbot simple mais basé sur des données privées et en temps réel. RAG : destinés à nous aider côte à côte à accomplir des tâches en recommandant et en suggérant. Copilotes : Répondez aux stimuli avec une intervention humaine limitée. Les agents exécutent des tâches telles que l'envoi d'e-mails et la réservation de billets au nom de l'utilisateur. Agents : Comment fonctionne le noyau sémantique ? Pour expliquer le fonctionnement du noyau sémantique, prenons un exemple de prise d'un morceau de texte et de sa conversion en tweet de 140 caractères. Mais nous le ferons en utilisant le noyau sémantique. . Nous avons fait un résumé similaire dans des articles précédents ici J'utiliserai la bibliothèque python du noyau sémantique, mais comme le noyau sémantique est créé par Microsoft, vous pouvez également le faire en C#. Consultez la documentation publique de Microsoft pour savoir comment procéder. Étape 1 : lancer le noyau sémantique Ci-dessous, nous lançons le noyau sémantique et configurons son service de complétion de texte en lui disant d'utiliser le modèle gpt-4 d'OpenAI comme LLM à utiliser pour la complétion de texte. import semantic_kernel as sk from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion, OpenAIChatCompletion import os from IPython.display import display, Markdown import asyncio from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) # read local .env file api_key = os.environ['OPENAI_API_KEY'] kernel = sk.Kernel() kernel.add_text_completion_service("openai", OpenAIChatCompletion("gpt-4",api_key)) print("Kernel Initiated") Étape 2 : Comprendre une fonction sémantique : Dans le monde du noyau sémantique, nous avons un concept de fonction sémantique qui est différent d'une fonction native. Une fonction native correspond aux fonctions régulières que nous écrivons dans n’importe quel langage de programmation. Vous aurez une meilleure idée de ce qu’est la fonction sémantique à l’étape suivante où nous en rédigerons une. Les fonctions sémantiques sont des encapsulations d'invites LLM répétables qui peuvent être orchestrées par le noyau. Étape 3 : Créer une fonction sémantique Ici, nous créons une invite qui résume la connexion en moins de 140 caractères (c'est notre objectif avec cet exercice). Nous passons ensuite l'invite en entrée pour créer une fonction sémantique avec le noyau et stockons ce qui nous donne en retour l'objet qui représente la fonction sémantique que nous avons créée et qui est accessible à plusieurs reprises via le noyau. Notez que lorsque nous avons créé une fonction sémantique, nous utilisons une Revenons maintenant à l'image précédente des fonctions natives et sémantiques et cela aura plus de sens. sk_prompt summary_function invite client et donnons également des informations de configuration LLM telles que max_tokens, température, etc.. sk_prompt = """ {{$input}} Summarize the content above in less than 140 characters. """ summary_function = kernel.create_semantic_function(prompt_template = sk_prompt, description="Summarizes the input to length of an old tweet.", max_tokens=200, temperature=0.1, top_p=0.5) print("A semantic function for summarization has been registered.") Étape 4 : Utilisation de la fonction sémantique pour résumer le texte dans un tweet de 140 caractères. Maintenant, nous créons le texte que nous voulons résumer à l'aide de la variable et appelons la fonction sématique via kernal puis affichons le résultat. sk_input sk_input = """ Let me illustrate an example. Many weekends, I drive a few minutes from my house to a local pizza store to buy a slice of Hawaiian pizza from the gentleman that owns this pizza store. And his pizza is great, but he always has a lot of cold pizzas sitting around, and every weekend some different flavor of pizza is out of stock. But when I watch him operate his store, I get excited, because by selling pizza, he is generating data. And this is data that he can take advantage of if he had access to AI. AI systems are good at spotting patterns when given access to the right data, and perhaps an AI system could spot if Mediterranean pizzas sell really well on a Friday night, maybe it could suggest to him to make more of it on a Friday afternoon. Now you might say to me, "Hey, Andrew, this is a small pizza store. What's the big deal?" And I say, to the gentleman that owns this pizza store, something that could help him improve his revenues by a few thousand dollars a year, that will be a huge deal to him. """ # using async to run the semantic function async def run_summary_async(): summary_result = await kernel.run_async(summary_function, input_str=sk_input) display(summary_result) asyncio.run(run_summary_async()) Voici le résultat que j'ai obtenu : L’IA peut analyser les données de vente pour aider un petit propriétaire de pizzeria à optimiser son stock, augmentant ainsi potentiellement son chiffre d’affaires annuel. Le noyau sémantique a plus de fonctionnalités, telles que l'utilisation conjointe des fonctions sémantiques et des fonctions natives, et est conçu pour créer des applications d'IA puissantes. J'écrirai davantage à leur sujet dans les prochains articles. C'est tout pour le jour 8 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 , ou ** ** 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 . Twitter LinkedIn HackerNoon ici Jour précédent 7 : Comment créer Chat-GPT pour vos données à l'aide de Langchain ?