Les Frameworks avec l'IA - API.Plan de ce document sur les Frameworks avec l'IA.
Définition du framework
AVANT D'EXPOSER LES SOLUTIONS, VOYONS LES AVANTAGES D'AVOIR UN FRAMEWORK :
LES AVANTAGES POUR LES DÉVELOPPEURS D'AVOIR UN FRAMEWORK :
Pour conclure en ce qui concerne le Dev.
LA DIFFÉRENCE ENTRE LIBRARY ET FRAMEWORK :
Les API :
TOP 5 DES FRAMEWORKS ET PLUS :
MICROSOFT CNTK EST UN FRAMEWORKS IA OPEN SOURCE :
UN SDK (SOFTWARE DEVELOPMENT KIT) :
Kit de développement logiciel (SDK) Windows :
LA MICROSOFT FOUNDATION CLASS (MFC) :
Parmi les inconvénients de la MFC, on trouve :
AWS :
LANGCHAIN :
Il existe 2 principaux accessoires de valeur fournis par le framework LangChain.
TECHNOLOGIES :
POUR CONCLURE :
VIDÉOS :
LangChain Crash Course - Build apps with language models.
Je suis sur une "petite étude" sur ce sujet afin de mieux comprendre leurs impacts :
Je suis sur une "petite étude" sur ce sujet afin de mieux comprendre leurs impacts :
Définition du framework
Il est possible de compiler un framework si celui-ci est écrit dans un langage de programmation compilé tel que C++.
Un SDK (Software Development Kit) propose un ensemble d’outils (instructions CLI, bibliothèques de classes, etc.) pour aider les développeurs à créer des applications pour une plateforme spécifique³. Les SDK peuvent être un excellent moyen pour une entreprise de présenter ses produits aux développeurs et de les encourager à créer des applications en utilisant sa plateforme ou son système d'exploitation.
Les frameworks sont donc conçus et utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des middlewares et des composants logiciels. Les frameworks sont acquis par les informaticiens, puis incorporés dans des logiciels applicatifs mis sur le marché, ils sont par conséquent rarement achetés et installés séparément par un utilisateur final.
Les principaux avantages de ces frameworks sont la réutilisation de leur code, la standardisation du cycle de vie du logiciel (spécification, développement, maintenance, évolution), ils permettent de formaliser une architecture adaptée au besoin de l'entreprise. Ils tirent parti de l'expérience des développements antérieurs.
En programmation orientée objet, un framework est typiquement composé de classes mères qui seront dérivées et étendues par héritage en fonction des besoins spécifiques à chaque logiciel qui l'utilise.
Avant d'exposer les solutions, voyons les avantages d'avoir un Framework :
L'intelligence artificielle (IA) peut offrir de nombreux avantages lorsqu'elle est intégrée dans un framework. Pour les citoyens, l'IA pourrait permettre d'accéder à de meilleurs soins de santé, des voitures et d'autres modes de transport plus sûrs, ainsi que des services moins coûteux et mieux adaptés à leurs besoins¹. Elle pourrait également faciliter l'accès à l'information, l'éducation et les formations¹. Du point de vue des entreprises, l'IA peut favoriser le développement d'une nouvelle génération de produits et services, y compris dans des secteurs où les entreprises européennes occupent déjà une place importante : l'économie verte et circulaire, la machinerie, l'agriculture, la santé, la mode et le tourisme¹. Elle peut créer de nouvelles voies de vente, améliorer la maintenance de machines, augmenter le rendement, améliorer les services pour les consommateurs et permettre d'effectuer des économies d'énergie¹. En effet, 86% des dirigeants français affirment qu'ils ne pourront atteindre leurs objectifs de croissance qu'en déployant l'IA à grande échelle³.
Source :
(1) Intelligence artificielle : opportunités et risques | Actualité .... https://www.europarl.europa.eu/news/fr/headlines/society/20200918STO87404/intelligence-artificielle-opportunites-et-risques
(2) Services et Solutions en Intelligence Artificielle (IA) | Accenture. https://www.accenture.com/fr-fr/services/ai-artificial-intelligence-index
(3) Le développement de l'intelligence artificielle - Vie publique. https://www.vie-publique.fr/eclairage/18495-le-developpement-de-lintelligence-artificielle-risque-ou-opportunite
-----------------------------
Les avantages pour les développeurs d'avoir un Framework :
Il y a plusieurs avantages pour les développeurs à utiliser un framework. Les frameworks permettent de gagner du temps en fournissant des fonctionnalités et des outils prêts à l'emploi pour la création de sites web². Ils fournissent une hiérarchie de fichiers et dossiers optimisés, ce qui permet d'avoir un cadre de travail clair et organisé¹. Les frameworks permettent également une meilleure maintenabilité du code en utilisant une structure de code cohérente et en fournissant une documentation complète². Ils offrent souvent des fonctionnalités de sécurité intégrées qui peuvent aider à protéger les applications contre les attaques de pirates informatiques². Enfin, les frameworks offrent une grande flexibilité en permettant aux développeurs de choisir parmi différents frameworks en fonction des besoins spécifiques de leur projet².
Source :
(1) 4 avantages d’utiliser des frameworks en développement web. https://koul.io/blog/4-avantages-d-utiliser-des-frameworks-en-developpement-web
(2) Qu’est-ce qu’un framework ? - Wild Code School. https://bing.com/search?q=avantages+pour+les+d%c3%a9veloppeurs+d%27avoir+un+Framework
(3) Les frameworks : avantages et inconvénients - Hello Pomelo. https://www.hello-pomelo.com/articles/les-frameworks-avantages-et-inconvenients
(4) Utilisation des frameworks : les avantages et désavantages - 243tech.com. https://www.243tech.com/utilisation-des-frameworks-avantages-et-desavantages/
Pour conclure en ce qui concerne le Dev.
1. Accélération du développement
2. Meilleure maintenabilité du code
3. Sécurité améliorée
4. Flexibilité et suivis.
La différence entre Library et Framework :
La vidéo traite des différences entre les bibliothèques, les frameworks et les APIs.
Une bibliothèque est une collection de classes et de fonctions développées par quelqu'un d'autre et pouvant être réutilisées dans un programme afin d'éviter de réinventer la roue.
Les bibliothèques sont disponibles dans des domaines spécifiques, tels que le traitement d'images ou les protocoles de communication comme HTTP.
Un framework est une plateforme logicielle pré-conçue qui fournit un environnement pour le développement d'applications en imposant une certaine structure et en offrant des classes et des fonctions pré-construites.
Les frameworks gèrent les détails tels que le routage, la séparation des vues, des modèles et des contrôleurs, ainsi que les relations de données avec la base de données, libérant les développeurs pour se concentrer sur la logique métier.
https://www.youtube.com/watch?v=RNrwKpDj7Us
Les API :
Une api en fait ça peut être tout simplement cela peut être une librairie mais ce sont des librairies ou des fragments spéciaux dont le but est justement d'interagir avec un service externe un service tiers.
Par exemple je vais pouvoir citer les google apps pays et google api qui sont basés sur le framework zend donc en fait quand on veut utiliser de l'api en fait on va prendre un framework qui est jeune et qui va nous permettre cette fois de communiquer avec le service de google que ce soit youtube que cela soit google calendar ou d'autres choses comme les produits google et bien cela va se passer avec une api exemple.
En fait si vous regardez le code derrière on a besoin de zen pour faire tourner l'api. En fait c'est un mélange des deux (framework et library). Le but réel est vraiment d'utiliser un service tiers par exemple ceux de google l'api mais aussi les graph api de facebook qui nous permet notamment de récupérer différentes informations sur une personne sur un profit sur des recherches.
Vous voyez alors qu'une api se fait toujours avec un service extérieur.
Les collections suivantes d’API peuvent être utilisées pour créer des applications de bureau Windows pour Windows 11 et Windows 10.
https://learn.microsoft.com/fr-fr/windows/apps/api-reference/
Informations de référence pour les applications de plateforme Windows universelle (UWP)
https://learn.microsoft.com/fr-fr/uwp/
L'API de ChatGPT est devenue accessible le 1er mars 2023.
Elle permet d’effectuer des requêtes comme on le fait depuis le site de ChatGPT mais de manière programmatique¹. Pour commencer à utiliser l’API ChatGPT, vous devez suivre les étapes suivantes: obtenir une clé API en vous inscrivant sur le site d'OpenAI, choisir un langage de programmation pour interagir avec l’API d’OpenAI et installer les outils nécessaires pour interagir avec l'API¹.
Avec l'API de ChatGPT, vous pouvez créer vos propres applications en utilisant les fonctionnalités de ChatGPT. Par exemple, vous pouvez créer un chatbot personnalisé basé sur le modèle gpt-3.5-turbo d’OpenAI².
Source :
(1) Comment utiliser l'API de ChatGPT ? Le tutoriel complet. https://www.commentcoder.com/api-chatgpt/ Accédé à 21/04/2023.
(2) API ChatGPT : comment l'utiliser pour créer vos propres applis ? Le .... https://www.lebigdata.fr/api-chatgpt-comment-utiliser
(3) Tutoriel : utiliser l'API ChatGPT avec Python. https://larevueia.fr/tutoriel-utiliser-lapi-chatgpt-avec-python/
--------------------------------------
TOP 5 des frameworks et plus :
Selon un récent rapport de la firme de recherche américaine Gartner, 80 % des technologies émergentes seront basées sur l’intelligence artificielle d’ici la fin de 2021. Une autre enquête de Statista indique que d’ici 2025, les revenus de l’intelligence artificielle devraient atteindre 31,2 milliards de dollars.
Cette avancée s’explique par le fait que les entreprises accumulent d’énormes quantités de données au point qu’il est devenu indispensable d’automatiser leur traitement. Une automatisation qui nécessite la mobilisation de frameworks IA, dont nous vous présentons notre top 5 : #1 TensorFlow - #2 Amazon SageMaker Neo - #3 Microsoft CNTK - #4 Theano - #5 Keras.
Capture à partir de : https://www.epsi.fr/top-frameworks-ia/
Microsoft CNTK est un frameworks IA open source :
Le Microsoft Cognitive Toolkit (CNTK) est un kit de ressources open source pour le deep learning distribué de niveau commercial³. Il décrit les réseaux neuronaux comme une série d’étapes de calcul via un graphique dirigé³. CNTK a permis aux équipes Microsoft et aux utilisateurs externes d'exécuter des charges de travail complexes et à grande échelle dans toutes sortes d'applications d'apprentissage en profondeur².
CNTK nécessite une installation Windows 64 bits¹. Nous avons testé le processus de génération sur Windows 8.1, Windows 10 et Windows Server 2012 R2 et versions ultérieures¹.
Source :
(1)Le Microsoft Cognitive Toolkit - Cognitive Toolkit - CNTK. https://learn.m icrosoft.com/fr-fr/cognitive-toolkit/(2) News - Cognitive Toolkit - CNTK | Microsoft Learn. https://learn.microsoft.com/en-us/cognitive-toolkit/news
(3) Configurer CNTK sur Windows - Cognitive Toolkit - CNTK | Microsoft Learn. https://learn.microsoft.com/fr-fr/cognitive-toolkit/setup-cntk-on-windows .
Le Microsoft Cognitive Toolkit (CNTK) est un kit de ressources open source pour le deep learning distribué de niveau commercial. Il décrit les réseaux neuronaux comme une série d’étapes de calcul via un graphique dirigé. CNTK permet à l’utilisateur de réaliser et de combiner facilement des types de modèles populaires tels que des réseaux de réseau réseau partagés, des réseaux neuronaux convolutionnels (CNN) et des réseaux neuronaux récurrents (RNN/LSTMs). CNTK implémente l’apprentissage de descente de dégradé stochastique (SGD, backpropagation d’erreur) avec une différenciation et une parallélisation automatiques sur plusieurs GPU et serveurs.
Cette vidéo fournit une vue d’ensemble générale du kit de ressources. Pour plus d’informations sur Deep Learning avec Microsoft Cognitive Toolkit CNTK.
La dernière version de CNTK est 2.7.
CNTK peut être inclus en tant que bibliothèque dans vos programmes Python, C#ou C++, ou utilisé comme outil machine learning autonome via son propre langage de description de modèle (BrainScript). En outre, vous pouvez utiliser la fonctionnalité d’évaluation du modèle CNTK à partir de vos programmes Java.
CNTK prend en charge les systèmes d’exploitation Windows 64 bits ou Linux 64 bits. Pour installer, vous pouvez choisir des packages binaires pré-compilés ou compiler le kit de ressources à partir de la source fournie dans GitHub.
Une licence distincte n’est plus nécessaire pour utiliser la descente stochastique stochastique (SGD 1 bits) dans CNTK ; le SGD 1 bits est disponible sous la licence fournie dans GitHub.
À partir de l’adresse < https://learn.microsoft.com/fr-fr/cognitive-toolkit/ >
Un SDK (Software Development Kit) :
Les avantages d'utiliser un SDK pour un même projet sont nombreux. Tout d'abord, il permet de gagner du temps en fournissant des outils et des bibliothèques prêts à l'emploi pour le développement de logiciels. Ensuite, il permet de réduire les coûts de développement en fournissant des outils et des bibliothèques gratuits. Enfin, il permet de faciliter la collaboration entre les développeurs en fournissant des outils et des bibliothèques standardisés.
Source :
(1) SDK : qu’est-ce qu’un Software Development Kit ? - IONOS. https://www.ionos.fr/digitalguide/sites-internet/developpement-web/software-development-kit/.
(2) Un SDK, qu'est-ce que c'est - Red Hat. https://www.redhat.com/fr/topics/cloud-native-apps/what-is-SDK.
(3) API ou SDK : quel est le meilleur choix pour vos applications ... - LeMagIT. https://www.lemagit.fr/conseil/API-ou-SDK-quel-est-le-meilleur-choix-pour-vos-applications-dentreprise.
Kit de développement logiciel (SDK) Windows :
Le Kit de développement logiciel (SDK) Windows (10.0.22621) pour Windows 11, version 22H2 fournit les derniers en-têtes, bibliothèques, métadonnées et outils pour la création d’applications Windows. Utilisez ce Kit de développement logiciel (SDK) pour générer des applications plateforme Windows universelle (UWP) et Win32 pour Windows 11, version 22H2 et versions antérieures de Windows.
https://developer.microsoft.com/fr-fr/windows/downloads/windows-sdk/
Microsoft/Windows-universal-samples: API samples for the Universal Windows Platform. (github.com)
https://github.com/Microsoft/Windows-universal-samples
https://github.com/microsoft/WindowsAppSDK
Le kit SDK Windows App est un ensemble de nouveaux composants et outils de développement qui représentent la prochaine évolution de la plateforme de développement d’applications Windows. Le kit SDK Windows App fournit un ensemble unifié d’API et d’outils qui peuvent être utilisés de manière cohérente par n’importe quelle application de bureau sur Windows 11 ainsi que sur les versions antérieures allant jusqu’à Windows 10, version 1809.
La Microsoft Foundation Class (MFC) :
Est une bibliothèque de classes en C++ encapsulant l'API Win32 (écrite en C) de Windows. Sa première apparition date de 1992.
Elle offre également un framework de développement de type Document/Vue inspirée du motif de conception Modèle-Vue-Contrôleur (MVC).
Ses détracteurs lui reprochent son manque d'abstraction de l'API Win32, ainsi que son manque d'encapsulation, tandis que ses partisans apprécient la possibilité d'accéder à la plus grande partie des fonctionnalités de cette API.[réf. nécessaire] Les MFC ont atteint leur maturité avec la version 7.0 de Visual Studio. Microsoft n'a pas arrêté la prise en charge des MFC malgré le passage de Win32/MFC vers .NET/CLR. Bien que .NET soit portable et facile d'accès, MFC reste plus abouti notamment pour Win32 kernel API, DirectX, STL, ATL, (pas ADO). Microsoft prend en charge la MFC par l'utilisation de wrapper.
Parmi les inconvénients de la MFC, on trouve :
• Documentation pléthorique, mais pas structurée
• Problème de gestion de l’Unicode
• Internationalisation dans le code (au lieu d'être une simple option à indiquer)
• Emploi de gabarits figés qui créent souvent les vues (document - vue)
• Utilisation de boucle d'événements (messages) et pas de callback /listener
• Surcouche orientée objet (pas objet) permettant d'accéder à l'API Windows qui est en C
• Utilisation exclusive de Visual Studio
• Utilisation sans API de la surcouche C++
Voir aussi[modifier | modifier le code]
• Visual C++
• Component Object Model (COM)
• Automation
• Windows Template Library (WTL)
À partir de l’adresse < https://fr.wikipedia.org/wiki/Microsoft_Foundation_Class_Library >
AWS :
Amazon SageMaker est une énorme collection de choses! Dans cette vidéo, nous renversons la façon dont nous regardons SageMaker et allons dans les coulisses pour examiner les composants qui alimentent la plateforme de machine learning d’AWS. Si vous êtes intéressé par mon cours AWS ML, jetez un coup d’œil ici : http://link.mls-c01.com
LangChain :
LangChain est un framework pour le développement d’applications alimentées par des modèles de langage. Nous pensons que les applications les plus puissantes et différenciées feront non seulement appel à un modèle de langage via une API, mais aussi :
Être conscient des données : connecter un modèle de langage à d’autres sources de données
Être agent : permettre à un modèle de langage d’interagir avec son environnement
En tant que tel, le framework LangChain est conçu avec l’objectif à l’esprit de permettre ces types d’applications.
Il existe 2 principaux accessoires de valeur fournis par le framework LangChain :
Composants : LangChain fournit des abstractions modulaires pour les composants nécessaires à l’utilisation des modèles de langage. LangChain possède également des collections d’implémentations pour toutes ces abstractions. Les composants sont conçus pour être faciles à utiliser, que vous utilisiez le reste du framework LangChain ou non.
Chaînes spécifiques au cas d’utilisation : Les chaînes peuvent être considérées comme l’assemblage de ces composants de manière particulière afin d’accomplir au mieux un cas d’utilisation particulier. Ceux-ci sont destinés à être une interface de niveau supérieur à travers laquelle les gens peuvent facilement commencer avec un cas d’utilisation spécifique. Ces chaînes sont également conçues pour être personnalisables.
Par conséquent, nous avons divisé la documentation suivante en ces deux accessoires de valeur. Dans cette documentation, nous passons en revue les composants et les cas d’utilisation de haut niveau et de manière indépendante du langage. https://docs.langchain.com/docs/
GitHub - hwchase17/langchain: Building applications with LLMs through composability.OpenAI — LangChain 0.0.144
LangChain fournit une interface standard pour les agents, une sélection d'agents à choisir et des exemples d'agents de bout en bout³. Memory est le concept de persistance de l'état entre les appels d'une chaîne/agent. LangChain fournit une interface standard pour la mémoire, une collection d'implémentations de mémoire et des exemples de chaînes/agents qui utilisent la mémoire³.
(2) Quickstart Guide — 🦜🔗 LangChain 0.0.144. https://python.langchain.com/en/latest/getting_started/getting_started.html.
(3) langchain · PyPI. https://pypi.org/project/langchain/https://blog.langchain.dev/LangChain est un framework pour le développement d’applications alimentées par des modèles de langage. Nous pensons que les applications les plus puissantes et différenciées feront non seulement appel à un modèle de langage via une API.
Technologies :
Ces aspects technologiques ne sont cependant pas suffisants sans une extrême rigueur sur les bonnes pratiques de développement et la mise en place de procédures de contrôle et de boucles de feedback pour constamment monitorer et valider les performances des algorithmes déployés en production. Il faudra aussi inclure des "bacs à sables".
Pour conclure :
Vidéos :
LangChain Crash Course - Build apps with language models
"Langages et frameworks | Radar technologique | Thoughtworks"
Résumé du texte : Les recommandations de la technologie radar de Thoughtworks sont les suivantes :
Il est recommandé d'utiliser Gradle Kotlin DSL en utilisant Gradle pour les nouveaux projets. Pour les anciens projets, il convient de considérer l'utilisation de Kotlin plutôt que de Groovy. Kotlin offre un meilleur support pour le refactoring dans les IDE et produit du code plus lisible et facile à maintenir.
PyTorch est recommandé comme framework de machine learning (ML). Il est préféré à TensorFlow et les opérations de ML qu'il contient sont plus faciles à déboguer que celles de TensorFlow. PyTorch Geometric offre un écosystème plus mature pour le ML graphique et donne de bons résultats pour la distribution et la mise à l'échelle des modèles avec TorchServe.
L'utilisation de l'API Jetpack CameraViewfinder est recommandée pour les fonctionnalités de caméra dans les applications Android.
Jetpack DataStore est une nouvelle solution de stockage de données qui permet de stocker des données à l'aide de Kotlin coroutines et de Flow.
Micro ORM est un framework ORM basé sur TypeScript qui se distingue par sa performance rapide d'exécution de requêtes.
Android 13 introduit un nouveau paramètre système et une API permettant de choisir la langue au niveau de l'application.
Quarto est recommandé comme système de publication scientifique et technique open source. Des documents peuvent être écrits en Markdown et des rapports dynamiques peuvent être générés en incorporant du code R et Python.
River est une bibliothèque Python qui permet l'apprentissage incrémental en machine learning.
Aucun commentaire:
Enregistrer un commentaire