A la découverte d’Enterprise GPT

Posté le : 03/07/2023

Partager

Enterprise GPT : Une intégration Azure OpenAI

Comme mentionné dans mon article précédent (Comprendre les fonctionnalités d’Azure OpenAI), « Enterprise GPT » est une intégration d’Azure OpenAI avec d’autres services cognitifs visant à fournir une expérience de type ChatGPT basée sur les données internes de l’entreprise.

 

enterprise_search_1

Pour atteindre cet objectif, Azure OpenAI est associé à Azure Cognitive Search pour fournir des réponses basées sur les documents internes de l’entreprise (RH, juridique, marketing, etc.). Cette combinaison repose sur la capacité de Cognitive Search à indexer, comprendre et retourner des données, et sur la capacité de ChatGPT à interagir en langage naturel pour répondre aux questions et tenir une conversation.

 

azure_openai_16

Indexation de la recherche cognitive

Enterprise GPT s’appuie sur l’indexation de documents pour fournir la réponse. Azure Cognitive Search peut indexer des documents provenant d’une grande variété de sources, telles que Blob Storage, bases de données (SQL Server, Cosmos DB), datalakes, SharePoint (encore en phase d’aperçu), et bien d’autres.

L’indexation se déroule en plusieurs étapes (Aperçu de l’indexeur) :

azure-cognitive-search-pipeline-architecture-1024x426-1

 

  • Craquage de documents : ouverture de documents et extraction du contenu (par exemple, pour un PDF, extraction du texte, des images et des métadonnées). Pour les bases de données, l’indexeur extrait le contenu non binaire correspondant aux champs des enregistrements.
  • Mappage des champs d’entrée : définition des champs à partir de la source. Cela devient plus pertinent s’il existe différents mappages entre la source et la destination.
  • Exécution de l’ensemble des compétences : une étape facultative qui utilise des processus intégrés tels que l’OCR, la traduction et l’extraction de phrases clés.
  • Mappage des champs de sortie : définition des champs pour la destination.
  • Insertion dans l’index.

Une fois l’index de recherche créé, il est nécessaire de s’assurer que ChatGPT comprend la requête en langage naturel et est capable de la traiter pour interroger l’index.

Comment dialoguer avec vos data ?

La possibilité d’interagir avec les données de l’entreprise repose sur ChatGPT, qui sert d’intermédiaire entre l’utilisateur et l’index Cognitive Search. En pratique, l’utilisateur saisit sa requête dans l’interface dédiée, et plusieurs approches ont été conçues à cet effet :

  • La requête de l’utilisateur contient suffisamment d’informations pour interroger directement l’index ; c’est ce qu’on appelle l’approche Retrieve-then-Read (scénarios de questions-réponses en une seule fois). ChatGPT optimise la requête pour rechercher l’index et récupérer les n premiers documents, et construit une réponse basée sur la réponse de l’index, la question de l’utilisateur et les instructions.
  • La requête de l’utilisateur ne contient pas suffisamment d’informations pour interroger l’index. ChatGPT peut utiliser l’historique de la conversation pour rassembler le contexte et générer une requête. Cependant, il arrive que l’historique de la conversation ne suffise pas à lui seul à obtenir suffisamment de contexte.
  • Une approche intéressante est Read-Decompose-Ask, car il est maintenant connu que demander à un modèle LLM de décomposer les réponses en plusieurs tâches plus petites améliore la qualité des réponses et évite certaines erreurs. Ces tâches peuvent varier (questions-réponses classiques, recherche de données externes, chaîne de pensée, etc.)

L’image ci-dessous présente la conversation entre un employé de l’entreprise fictive Contoso et ChatGPT au sujet de l’assurance maladie

 

 

Les réponses fournies par ChatGPT sont présentées avec des citations de documents à l’appui de la réponse. La section du document peut être consultée en cliquant sur le lien fourni. Dans la même interface, on peut accéder au processus de réflexion de ChatGPT. Ce processus se compose de la requête de l’utilisateur, de l’invite (instructions générales concernant le comportement de ChatGPT), des documents retournés par l’index, des résultats intermédiaires… le tout aboutissant à la réponse fournie à l’utilisateur.

 

Sachant que la qualité de la réponse renvoyée par GPT dépend de la qualité de l’information extraite de l’index Cognitive Search, voici quelques options à considérer :

  • Classement sémantique : il améliore la précision en reclassant les résultats des requêtes dans l’index. Il se concentre sur la signification sémantique des termes composant la requête, en utilisant des techniques d’apprentissage en profondeur.
  • Découpage des documents : la taille des morceaux est cruciale pour la lecture des documents – par ChatGPT. Une taille trop petite peut entraîner un manque de contexte. Inversement, une taille trop importante peut rendre difficile la localisation d’informations pertinentes. Un bon compromis semble être de diviser le texte en petits paragraphes (quelques phrases).
  • Résumés : la taille des morceaux renvoyés par Cognitive Search peut être problématique lorsque l’on considère plusieurs documents. Une solution consiste à utiliser les légendes sémantiques (une étape de génération de résumé directement prise en charge par Cognitive Search) ou la mise en évidence des occurrences (un moyen d’extraire des extraits).
  • Questions de suivi : cette fonction permet de suggérer des questions susceptibles d’intéresser l’utilisateur.

 

enterprise_search_2

La combinaison de la compréhension contextuelle de GPT et des capacités de recherche intelligente d’Azure Cognitive Search permet aux utilisateurs de trouver des réponses précises, des idées et des documents pertinents avec une plus grande efficacité. Cela réduit le temps consacré à la recherche manuelle d’informations et élimine la nécessité de passer au crible de nombreux documents manuellement.

En outre, la compréhension sémantique fournie par GPT permet une compréhension plus précise des requêtes, même en cas de requêtes complexes ou ambiguës. Les résultats de la recherche peuvent être affinés et classés en fonction de leur pertinence, ce qui garantit que les informations les plus pertinentes apparaissent en tête des résultats de la recherche.

ElasticSearch GPT

Si vous êtes intéressé par le sujet de l’Enterprise GPT (ou Enterprise Search), je vous suggère un sujet sur ElasticSearch, qui offre sa propre version de l’intégration de ChatGPT avec les données de l’entreprise : ElasticSearch with GPT. Cette intégration est assez similaire à celle réalisée avec Cognitive Search, dans le sens où ElasticSearch est un moteur de recherche analytique basé sur l’indexation.

1_lh9wkwb6cm2bzpnqi26oaw

 

Ecrit par Laurent Gagliardi, Ingénieur Data chez Expertime

Contactez-nous Postuler Nos offres d'emploi