transcribe/transcribe.ipynb

201 lines
22 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "bc566fe1-26f3-4e4f-9c62-ef5e480e0055",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from openai import OpenAI"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b1f11cc6-4daa-4563-8dc0-fcb763b3c44f",
"metadata": {},
"outputs": [],
"source": [
"client = OpenAI()\n",
"client.api_key = os.getenv('OPENAI_API_KEY')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "87169d33-5a39-4270-91d7-50353b888a80",
"metadata": {},
"outputs": [],
"source": [
"def transcrire_audio(fichier_audio):\n",
" reponse = client.audio.transcriptions.create(\n",
" model=\"whisper-1\",\n",
" file=open(fichier_audio, \"rb\"),\n",
" language=\"fr\"\n",
" )\n",
" return reponse.text"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "89eb827d-abb9-4b46-92be-f26c02e3ba4c",
"metadata": {},
"outputs": [],
"source": [
"def resumer_texte(texte):\n",
" completion = client.chat.completions.create(\n",
" model=\"gpt-4\",\n",
" messages=[\n",
" {\"role\": \"system\", \"content\": \"Tu es un assistant personnel compétent, utile et pertinent.\"},\n",
" {\"role\": \"user\", \"content\": \"\"\"\n",
"Tu dois résumer un texte qui est une transcription d'un enregistrement audio d'une intervention faite à l'occasion d'une conférence.\n",
"\n",
"Tu dois d'abord proposer un court paragraphe de résumé du contexte global de l'intervention du conférencier.\n",
"Puis, tu dois proposer une synthèse de l'intervention sous forme d'une liste à puces.\n",
"La liste à puces doit être organisée sur au maximum 2 niveaux hiérarchiques.\n",
"Les entrées de la liste à puces doivent être très synthétiques, exprimées en quelques mots.\n",
"Il est très important que le résumé n'omette pas d'informations importantes.\n",
"Tu dois bien mettre en relief les données chiffrées mentionnés durant le discours. \n",
"\n",
"Le résultat doit être au format Markdown. La réponse doit contenir uniquement le code Markdown et rien d'autre.\n",
"Voici le modèle de réponse au format Markdown :\n",
"\n",
"# Un titre pour le résumé\n",
"## Contexte\n",
"Court paragraphe qui résume le contexte de l'intervention.\n",
"## Synthèse\n",
"- Premier point important\n",
" - Premier détail sur le premier point important.\n",
" - Second détail sur le premier point important.\n",
" - Etc. Etc.\n",
"- Second point important\n",
" - Premier détail sur le second point important.\n",
" - Etc. Etc.\n",
"- Etc. Etc.\n",
" -Etc. Etc.\n",
" - Etc. Etc.\n",
"\n",
"Voici le texte que tu dois résumer :\n",
"\n",
" \"\"\" + texte}\n",
" ]\n",
" )\n",
" return completion.choices[0].message.content"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "279849d5-56f8-4b59-906e-14992ac10c4a",
"metadata": {},
"outputs": [],
"source": [
"texte_transcrit = transcrire_audio('../transcribe_data/jardin_du_carrousel_2.m4a')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "382c92b9-1c28-4906-beff-1d9405b765ee",
"metadata": {},
"outputs": [],
"source": [
"texte_transcrit"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3c5df824-f3cc-4a51-b1ad-c52695fa475f",
"metadata": {},
"outputs": [],
"source": [
"texte_transcrit_2 = transcrire_audio('../transcribe_data/jardin_du_carrousel_1.m4a')"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "8db68ab5-7351-4872-b5e7-0fe02c9760cb",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"Tant pis, je vous le fais avec les mains, la slide, si vous avez de la mémoire, il y avait « On est parti », « On a réalisé une partie de ce qu'on voulait faire il y a 6 ans », et puis quand on regarde les enjeux d'aujourd'hui, arrivent des nouveaux mots, des nouveaux challenges. C'est-à-dire qu'on ne change plus rien, et normalement vous avez ça. Donc Florent Manigault m'a dit « C'est bien, mais est-ce qu'on peut avoir une feuille de route pour notre comité exécutif, notre conseiller de surveillance qui décrivent un peu qu'est-ce qu'on cherche à faire ? » Dans la slide d'avant, vous l'avez vu très vite, il y a 20 de « Key Capabilities », et là on les a un peu ordonnés, alors ça bouge dans tous les sens, autour de trois piliers. Le premier, c'est le côté « Custom Centric », et c'est essentiel, on va parler de technologie après, mais ça commence par « Custom Centric », et sans rentrer en détail, on s'est dit « Est-ce qu'on est bon en techno de personnalisation, en parcours ? » Voilà, ce qui nous permet de passer du push produit au monde digital, dans lequel le market s'appelle « Conversations », c'est comment on a des conversations, est-ce qu'on sait personnaliser la relation ? Quelle est notre savinesse, notre savoir-faire en termes de technologie d'interaction, et l'arrivée de chat GPT et des LLM est un bon exemple, mais avant il y a eu l'époque métaverse, on est dans un monde où constamment on doit explorer des nouvelles façons d'interagir, et puis, ce qu'on appelle CFRL, « Customer Feedback Learning Loop », c'est-à-dire dans un monde digital, une expérience qui correspond au succès d'un produit, elle n'est jamais designée, elle est construite, elle évolue, elle est cultivée. La très jolie citation qu'il utilise, c'est « Join our design ». Et ça, ça se base sur une boucle continue. Donc ça, c'est notre premier ensemble de skills. On a beaucoup progressé depuis 2016. Je ne vais pas rentrer en détail, mais on s'est évolué. On sait qu'on a un long chemin devant nous. Le deuxième pavé, on va voir avec le LAG, c'est celui « Data-Driven AI », dont je vais plus parler dans la suite, évidemment, de l'exposer, autour des fondations, de ce qu'on a comme stratégie data et comme plateforme pour faire circuler nos datas. Notre utilisation, et ça correspond parfaitement au fil de l'introduction, de l'IA pour transformer Michelin et aller attaquer des nouveaux défis, des nouveaux challenges. Et puis, l'utilisation de l'IA pour bien comprendre le contexte dans lequel on est. Vous l'avez mis en « Marketing Data Intelligence », ça se ressemble avec « Personalization Engine », c'est le point de vue du client versus le point de vue de Michelin. C'est pour ça que c'est dans deux endroits différents. Et puis, on a un troisième aspect qui est fondamental. Et vous avez vu notre petit film, le promotionnel, qui nous sert de recrutement. C'est l'aspect « Software-Driven ». Parce que, comme l'a très bien dit Florian, le monde bouge très très vite et on ne peut pas, chez Michelin, dans la boîte ou une grosse boîte, faire tout tout seul. Donc, on doit absolument avoir une stratégie basée sur les écosystèmes du logiciel. S'appuyer sur des partenaires, comme DataIQ et plein d'autres. Des partenaires qui changent vite, eux aussi. Et donc, pour être capable d'avoir une stratégie logicielle efficace, il faut être très bon dans cette capacité à comprendre le monde du logiciel. C'est pour ça que, dans le petit film, vous avez vu son importance sur le « Software Craftmanship ». Le dernier aspect, c'est le petit « Workplace ». Mais on va plutôt parler un peu de data, maintenant. Alors, on a une stratégie, chez Michelin, qui est de devenir un « Data-Driven Company ». Que mes deux boss, Yves Chapeau et Florian Méliot, expriment souvent. Et c'est basé sur trois piliers de cette transformation « Data-Driven ». Le premier, c'est la plateforme technique. Et c'est une plateforme, en fait, c'est une fédération de plateformes distribuées. C'est grand. On est en croissance permanente. Donc, en ce moment, on fait des pneus, comme on vous l'a dit dans le film. Mais on fait aussi des services autour des pneus, puis on va plus loin. Parce qu'en fait, on est une entreprise de « Deep Tech ». Notre connaissance, c'est la chimie, c'est la structure des polymères. Et on s'étend dans d'autres domaines. Et pour accompagner cette stratégie de croissance assez dynamique, on ne peut pas avoir une vision monolithique, stable, d'une plateforme data. En fait, on a un ensemble de plateformes data qui doivent former un tout. Le mot-clé ici, c'est « self-service ». C'est-à-dire, vraiment, c'est la démocratisation, et ce n'est pas par hasard que je parle ici, aujourd'hui, chez DataEQ. Le deuxième sujet, c'est bien construire une plateforme technique. Et ça nous prend... c'est un long chemin, on n'a pas fini. Mais au départ, il s'agit de s'assurer qu'on a une vision métier de ce qu'on fait avec la plateforme. Donc, la gouvernance data, et je ne vous apprends rien, je parle dans la table, est fondamentale. Chez nous, elle est organisée en réseau, avec des « Data Owners », des « Business Owners », un certain nombre de choses. Le mot-clé du bas, c'est « Fidelité de gouvernance ». C'est-à-dire, c'est vraiment une fédération, on laisse l'autonomie. En particulier, on fait beaucoup d'acquisitions. On a des entreprises qui ont leurs propres stratégies data. Il ne s'agit absolument pas de les ralentir. Et donc, on développe un organisme de gouvernance qui permettra à la fois d'avoir la qualité de données nécessaire, mais aussi de garder l'agilité, et je vais y revenir un peu plus loin. Alors, chez Michelin, du salaire de matière, on pourrait dire qu'on est indépendant depuis 130 ans. C'est une boîte d'ingénieurs, on est une boîte qui a la culture du fait. Et depuis plus d'un siècle, on prend des décisions basées sur les données. A l'époque, c'était des petits carnets à souches, mais c'était vraiment des décisions basées sur les données. En revanche, comme je l'ai dit, on est une entreprise de chimie, une entreprise de savoir-faire profond, et on la protège. Donc, on est une entreprise qui avance à être cloisonnée. Si le désert mes datas, ma décision, non. Et l'enjeu pour Michelin Data Driven, c'est de devenir... de faire du data entre-people. Alors, c'est dommage parce qu'en faisant la télécommande, j'ai cliqué, donc il faudrait revenir au truc d'avant. On a besoin d'avoir ces stratégies produistes, c'est-à-dire on fait de la data par produit pour que de la data inventée au manufacturing serve à la supply chain, la data fabriquée à la R&D serve au service, et puis après les datas de fin de vie de produit, on la retake dans la R&D. Donc, toutes ces capacités à faire des enterprise-wide flows, ça suppose une stratégie data-produits. Et c'est une stratégie métier. Alors, je vais zoomer sur trois aspects qui me semblent fondamentaux, et je vous laisse un peu ces trois choses que je pousse chez Michelin. La première, c'est qu'on ne peut pas faire tout ça sans avoir une vraie stratégie de modèle métier. Alors, pour plusieurs raisons. D'abord, comme je l'ai dit, ce n'est pas une vision unique, c'est une fédération. Il faut qu'on soit agile, il faut que ça bouge, on n'est pas capable de faire un modèle... Donc, on a besoin d'un modèle pivot, d'où cette illustration. On a des rouages qui se fonclent. C'est ce qui permet de faire de l'IA. Si vous n'avez pas une connaissance claire et partagée de la sémantique de nos données et partout, sur les cinq continents et tous les use cases de Michelin, vous n'arriverez pas à faire de la conciliation, et vous ferez ce qu'on fait depuis très longtemps, de l'IA local. Alors ça, on sait très bien faire, on n'en a pas besoin. Mais pour faire de l'IA at scale, il faut avoir cette pierre de rosette, en quelque sorte. Et c'est fondamental pour faire de la valeur at scale, parce que c'est ce qui permet de faire de l'automatisation, de la standardisation. Nous, la grande difficulté qu'on a, comme toutes les entreprises de manufacturing, c'est qu'on a 70 usines sur les cinq continents, elles ne sont pas identifiées. Donc, ça peut être surprenant. Donc, il faut qu'on arrive à transcender cette difficulté pour avoir quand même des modèles de métier qui permettent qu'un use case, et on en a beaucoup en ce moment, qui fonctionne très bien dans une usine, on puisse rapidement le déployer dans le reste du monde. Le deuxième sujet, c'est que chez Michelin, on est dans une grande transformation pour passer vers de l'event driven architecture, de l'entreprise qui réagit au fil de l'eau, sur des flux d'événements, pour caricaturer, il y a dix ans, Michelin écoutait le jour, on accueillait tous les événements, et la nuit, en mode badge classique, on refaisait tout, la supply chain, les usines. Donc, ça donne un certain lag. Pour passer l'entreprise qui est au fil de l'eau, qui réagit en permanence, il faut fixement remplacer toute notre architecture, pas d'architecture event driven. Cinq ans plus tard, on a fait pas mal du chemin, mais c'est un grand chemin, c'est long et compliqué. Et c'est basé sur un objet pivot qui est le modèle d'événements. Et le dernier point que je veux partager, c'est qu'on cherche à faire deux choses qui sont contradictoires, à s'assurer qu'on a une qualité parfaite de données et une vision extrêmement structurée, et qu'on est agile et qu'on est distribué. Donc pour être agile, il faut être distribué, donc il faut avoir des data produits un peu partout, et la façon de combiner ça, je n'ai pas eu le temps de vous raconter ça aujourd'hui, mais c'est de faire du data mesh. Donc on a, comme beaucoup d'entre vous, lu le bouquin de Zamath, on s'y est mis il y a 3-4 ans. Alors c'est un art de faire du data mesh, mais c'est vraiment de faire un réseau, c'est un point de gouvernance, c'est de faire un réseau pour que tous ces produits data puissent circuler et qu'on puisse faire des longues chaînes de valeurs et aller atteindre ce qu'on a appelé l'effet réseau. C'est-à-dire qu'on sait faire beaucoup plus de valeurs que la somme des valeurs des data products, il y a vraiment des effets de multiplication. Donc on fait de l'IA depuis un certain temps, et là je vous ai remis un schéma produit par la Chine des technologies qui montre que, effectivement, la boîte à outils IA, elle est large, et je vais vous dire qu'on fait un peu de tout ça. Alors la petite bulle rouge aurait dû apparaître un peu plus tard. Deux idées importantes, la première c'est qu'on fait de tout et on les combine. Et si ça ne vous parle pas, allez voir ce que fait DeepMind. DeepMind c'est l'exemple parfait d'une société qui fait beaucoup de ses brides IA et qui les combine. C'est d'où le mot de toolbox. Et puis évidemment le sujet qui nous rassemble aujourd'hui, je vais en parler un peu plus tard, c'est le fait qu'il y a une nouvelle boîte qui est apparue, c'est ce qu'on peut faire avec des large languages model et un peu de machine learning autour, enfin de reinforcement learning, qui a au moins deux conséquences importantes, c'est qu'on peut, le national language, le langage actuel, devient une façon quasiment d'interagir avec n'importe quel système, on peut l'utiliser partout. Mais si on prend un peu de recul, en fait cette révolution elle est bien beaucoup plus large que ça, donc nous on fait du manufacturing, donc on a des automates, de l'IA partout, des time series. Et ce qu'on peut faire avec les modèles, qui sont pas de large modèles mais avec la techno-curve, qui sont les transformers, on peut aussi révolutionner complètement la façon dont on traite les signaux intelligents dans une usine. Donc c'est le début d'une grande aventure. Alors un petit mot, parce que je vois l'heure, mais il faut que je respecte mon timing, un petit mot sur ce qu'on fait chez Insta avec quelques exemples. Le premier c'est le tire scan, où on est capable de prendre des photos de pneus ou de faire des photos à plat, et de déduire plein de choses sur l'histoire du pneu. Donc ça c'est du computer vision, avec notre savoir-faire propre à Michelin sur la structure du pneu. Un autre exemple, c'est ce qu'on lance d'ici 15 jours au UK, qui est un chatbot qui vous aide à trouver le bon pneu pour votre voiture, en utilisant à la fois du savoir-faire très propre à Michelin, et qu'on a développé depuis un certain temps, mais des API d'OpenAI pour la puissance des LLM, pour avoir un vrai dialogue avec le client. Et puis pour prendre un dernier exemple, on fait beaucoup de forecasting, comme je pense qu'on le trouve à table, et on fait aussi beaucoup d'analyse, donc de data-analyse plus classique, parce qu'un des points importants, c'est pour ça que je parle de toolbox, c'est que le GenAI est assez extraordinaire, mais il y a beaucoup de choses qu'on fait chez Insta qu'on ne fera pas avec du GenAI. On ne fait pas du planning avec du GenAI, on ne fait pas du forecasting avec du GenAI, on ne fait pas du scheduling avec du GenAI, donc il y a un tas de choses, ça complémente, ça enrichit, mais on ne fait pas tout. Alors, ça c'est des exemples d'aujourd'hui, qui marchent bien d'ailleurs. Pour dire un peu où on va, là je vous ai mis un petit dessin un peu complexe, qui exprime deux idées, la première c'est qu'en fait il y a des opportunités sur toute la chaîne de valeur, donc en fait il faudrait deux heures et deux semaines, le deuxième, je vous ai mis en couleur les thèmes un peu chauds du moment, donc vous voyez du machine vision, on fait du machine vision partout, dans les usines, pour la qualité, pour détecter des tas de choses, parce que c'est compliqué de fabriquer des pneus, on fait du machine vision en amont, R&D, pour inventer de nouvelles formes de pneus, on fait beaucoup de machine vision dans le monde du service, on a acquis il y a deux ans Robotics, qui fait de la capture d'images dans une ville et après est capable de faire en mesure de l'IA dans les endroits les plus dangereux, les endroits qu'il va falloir réparer, donc ça c'est le vert, en rouge là vous avez tout ce qu'on fait autour du LLM, autour du GNI, pour enrichir nos pratiques, alors il y a un énorme coeur en R&D Manufacturing sur faire du Knowledge Assistance, mais on l'utilise aussi dans le monde du service, et puis en bleu, il y a ce qu'on fait en système de système, c'est en simulation, simulation hybride, méthode de calcul et IA, et ça c'est quelque chose dont on est fier chez Michelin, on n'en parle pas trop parce que c'est assez propriétaire, mais on travaille avec Iberia, on travaille avec un certain nombre de labos dans le monde, pour faire du calcul d'éléments finis, enrichi par l'IA, et pour ceux qui ont vu l'annonce récente de DeepMind qui dit qu'on fait mieux sur certains problèmes de météo avec du Deep Learning qu'avec des modèles, on a aussi cette constatation qu'en fait, il faut faire les deux, il faut absolument utiliser le Deep Learning pour enrichir et accélérer les performances des modèles classiques on va dire d'ingénierie. Alors pour conclure, première chose que je voulais partager avec vous, c'est que notre vision de la transformation digitale elle est vraiment de la Customer Centricity, qui a un gros enjeu de transformation pour l'entreprise, de la transformation de Data et AI Driven, mais aussi de la dimension software. Le second point, c'est que comme on est une grosse entreprise et qu'on cherche à être agile et à avoir des gros objectifs de croissance, cette transformation Data, elle s'appuie sur cette notion de Data Mesh et de Data Platform, pour être à la fois avoir les effets at scale, mais rester flexible. Le point suivant, c'est que chez Unisphere, il y a de l'IA partout, il y a vraiment de l'IA partout, et en plus, c'est vraiment la volonté de Florent et je vais tout de suite mettre sa citation comme ça. Hop, on l'aura. Donc, Florent, on voyait un peu les stades, mais c'était important finalement le message principal, c'est-à-dire l'IA chez Michelin, c'est ce qui nous permet de réaliser notre rêve. Et notre rêve chez Michelin, c'est important, c'est un travail collectif, c'est vraiment la vision qu'a Michelin en 2050, ce qu'on peut apporter à la société. Michelin est une entreprise de Deep Tech, ce qu'on sait faire essentiellement, c'est de la science, de la science du matériau, de la science des polymères, du calcul de structure, des systèmes de transport, et on l'a pas dit encore, mais l'enjeu qu'on a principalement, c'est le réchauffement climatique, et c'est baisser notre bilan carbone, et aller vers des modes de transport zéro carbone, et on a besoin de l'IA pour ça. Voilà, et je vais arrêter là, parce qu'il est 01, et que il est temps de parler un peu.\""
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"texte_transcrit_2"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3272e3b0-e758-4d0b-b4bd-01633d2aab20",
"metadata": {},
"outputs": [],
"source": [
"resume_texte_2 = resumer_texte(texte_transcrit_2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0287311f-9c68-4443-bed4-c7fcf2de2344",
"metadata": {},
"outputs": [],
"source": [
"print(resume_texte_2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c4a18f17-1bf6-48e1-a2d2-c850c2d8c266",
"metadata": {},
"outputs": [],
"source": [
"client.api_key"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "af604560-1798-4817-80c4-3be63ea7d8f6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "TRANSCRIBE_ENV",
"language": "python",
"name": "transcribe_env"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.18"
}
},
"nbformat": 4,
"nbformat_minor": 5
}