L'intégration de grands modèles de langage dans les backends de produits réels est le dernier champ de bataille en matière d'innovation. Mais comme pour toutes les tendances technologiques, les vrais gagnants ne sont pas ceux qui se précipitent pour tout savoir. Il s’agit plutôt de faire une pause, de réfléchir et de prendre des décisions intelligentes.
Même si l’IA est plus accessible que jamais, penser qu’il s’agit d’une tâche triviale est une grave erreur. Le domaine en est encore à ses balbutiements, et presque tous les acteurs de la technologie et des affaires tentent de trouver comment lui donner un sens. Internet regorge à la fois d’informations fiables et de battage médiatique trompeur.
Croyez-le ou non, vous n’avez pas besoin de sauter sur chaque potin que vous entendez sur l’IA. Prenez du recul et abordez-le de manière réfléchie.
Si vous êtes un développeur PHP ou si vous travaillez avec une base de code PHP, l'IA peut ressembler à un concept étranger. Les classes, les interfaces, les files d'attente de messages et les frameworks semblent être des mondes différents de la PNL, du réglage fin, des descentes de gradient stochastiques, de LoRA, de RAG et de tout ce jargon. Je comprends. Pour apprendre systématiquement ces concepts, comme tout ce qui concerne le génie logiciel, nous avons besoin de temps et de bonnes pratiques.
Mais l’IA, l’apprentissage automatique et la science des données ne sont-ils pas le domaine des programmeurs Python ou R ? Vous avez en partie raison. La plupart des bases de l’apprentissage automatique sont réalisées en Python. Et honnêtement, Python est un plaisir à apprendre : il est polyvalent et peut être appliqué à d’innombrables projets intéressants. De la création et de la formation d'un modèle de langage à son déploiement via une API, Python a ce qu'il vous faut.
Mais revenons à PHP.
Ne vous inquiétez pas, vous n’êtes pas sur le point de devenir obsolète en tant qu’ingénieur logiciel ordinaire. Bien au contraire. Alors que nous sommes de plus en plus censés comprendre des domaines connexes tels que la conteneurisation, le CI/CD, l’ingénierie des systèmes et l’infrastructure cloud, l’IA devient rapidement une autre compétence essentielle de notre boîte à outils. Il n’y a pas de meilleur moment que maintenant pour commencer à apprendre.
Cela dit, je ne recommande pas de se lancer tête première dans la création de réseaux de neurones à partir de zéro (sauf si vous le souhaitez vraiment). Il est facile de se sentir dépassé. Laissez-moi plutôt vous montrer un point de départ pratique pour vos expériences d’IA.
Voici ce que nous aborderons dans ce guide :
Workflows d'IA asynchrones Je vais vous montrer comment implémenter un workflow d'IA à l'aide d'une file d'attente de messages, qu'il s'agisse de RabbitMQ, d'Amazon SQS ou de votre courtier préféré.
Solution prête pour la production Vous verrez un exemple réel de la solution déployée dans un système de production qui répond aux exigences commerciales de base avec l'IA.
Intégration Symfony La solution est entièrement implémentée dans le framework Symfony PHP.
Outils OpenAI Nous utiliserons la bibliothèque OpenAI PHP et les derniers OpenAI Assistants 2.0.
Structure de l'ensemble de données Comment créer un ensemble de données pour entraîner et évaluer votre modèle d'IA.
Affiner les modèles OpenAI Apprenez à préparer un bon.jsonlfichier et affiner leGPT-4o-minimodèle ou un autre de la famille GPT pour votre cas d'utilisation professionnel spécifique.
Création et test d'un assistant OpenAI 2.0 Comprenez comment configurer un assistant OpenAI et testez-le dans OpenAI Playground.
Bases de connaissances Plongez dans le concept de bases de connaissances : pourquoi GPT ne sait pas tout et comment lui fournir le bon contexte pour augmenter considérablement la précision.
Intégration PHP et Symfony Découvrez comment connecter de manière transparente votre agent IA à votre application Symfony.
Intéressé? Allons rouler.
Plongeons dans le problème que nous résolvons. À la base, nous avons affaire à un bloc de texte qui représente quelque chose – une adresse, dans notre cas. Le but est de classer ses composants en groupes prédéfinis.
Ainsi, lorsqu'un utilisateur nous envoie une adresse, notre objectif est de renvoyer une structure JSON qui segmente l'adresse en plusieurs parties. Par exemple:
{ "street": "Strada Grui", "block": "Bloc 7", "staircase": "Scara A", "apartment": "Apartament 6", "city": "Zărnești" }Pourquoi est-ce important ?
Eh bien, ces adresses sont saisies par des personnes – nos clients – et elles sont souvent incohérentes. Voici pourquoi nous avons besoin de données structurées et analysées :
Pour y parvenir, nous divisons l'adresse en groupes prédéfinis tels que « rue », « maison », « code postal », etc., puis nous la réassemblons dans la séquence souhaitée.
Pourquoi ne pas utiliser des expressions régulières ?
À première vue, cela semble simple. Si nous imposons le formatage aux nouveaux clients ou si nous savons qu'ils écrivent généralement les adresses d'une manière spécifique, les expressions régulières peuvent sembler une solution raisonnable.
Cependant, considérons des exemples d’adresses roumaines :
STRADA GRUI, BLOC 7, SCARA A, APPARTEMENT 6, ZĂRNEŞTI BD. 21 DÉCEMBRE 1989 nr. 93 ap. 50, CLUJ, 400124Les adresses roumaines sont souvent complexes, écrites sans ordre particulier et omettent fréquemment des éléments comme le code postal. Même les expressions régulières les plus sophistiquées ont du mal à gérer une telle variabilité de manière fiable.
C'est là que les modèles d'IA commeGPT-3.5 TurboouGPT-4o-minibriller : ils peuvent gérer les incohérences et les complexités bien au-delà de ce que les règles statiques comme les regex peuvent gérer.
Oui, nous développons un flux de travail d’IA qui améliore considérablement l’approche traditionnelle.
Chaque projet de machine learning se résume à deux éléments essentiels : les ...
[Courte citation de 8% de l'article original]