1. Introduction
Un chatbot d’IA générative pour concurrencer les offres pour entreprises de Microsoft et OpenAI. C’était la grande annonce d’AWS lors du re:Invent 2023, qui s’est tenu à Las Vegas du 27 novembre au 1er décembre. Le service est déjà disponible en preview publique, et sera commercialisé entre 20 et 25 $ par mois par utilisateur. Il est évidemment conçu pour s’intégrer et interagir avec des services AWS mais aussi avec un grand nombre de solutions externes telles que Atlassian, Zendesk, Google Drive, Microsoft 365 ou Salesforce.
Amazon décide donc (enfin) de rattraper le retard pris sur la concurrence en lançant plusieurs services orientés IA dont Amazon Bedrock qui permet d’utiliser plusieurs modèles tels que Claude 2, Mistral ou encore Titan. Le chatbot Amazon Q se base sur Bedrock ce qui permet aux entreprises de créer leur propre solution en choisissant le modèle à utiliser avec Amazon Q avant de l’alimenter avec les données.
Bien que le service soit en bêta, je vous propose de tester déjà quelques use cases afin d’etrevoirn le potentiel et les limites d’Amazon Q.
2. Guide sur AWS
Amazon Q permet d’interroger la documentation, les bonnes pratiques et le Well-Architected Framework d’AWS avec un langage naturel. Il est possible de poser des questions sur les fonctionnalités des services ou encore d’obtenir des solutions d’architectures dans l’écosystème AWS.
Cette fonctionnalité se base sur plus de 17 ans d’expérience et de construction du cloud AWS. Elle peut être très intéressante pour trouver rapidement des solutions prêtes à l’emploi ou encore pour permettre aux débutants de savoir par où commencer pour construire leurs solutions sur AWS. Pour chaque question, la réponse inclut des suggestions de services et de fonctionnalités, mais aussi des liens vers de la documentation détaillée.
Première question posée: comment déployer une application conteneurisée sur AWS?
Comme on pouvait s’y attendre, les réponses du bot dirigent vers les services ECS (Elastic Container Service), EKS (Elastic Kubernetes Service) et Lambda.
3. Troubleshooting
Pour tester la capacité d’Amazon Q à proposer des solutions à des problèmes rencontrés sur AWS, je suis parti d’un scénario assez classique : une instance EC2 Linux dont le Security group est mal configuré. Je souhaite avoir de l’aide pour me connecter en SSH.
Les questions de résolution de problèmes réseaux renvoient vers Amazon Q network troubleshooting basé sur VPC Reachability Analyzer qui est un outil permettant d’effectuer des tests de connectivité entre des services et de produire une analyse des possibles raisons du dysfonctionnement. Il faut noter que l’outil est en version bêta et disponible, pour l’instant, uniquement sur la région Virginie du Nord.
Ici la raison est tout de suite trouvée : le Security group est mal configuré. Mais les limites du troubleshooting se font vite ressentir quand j’ouvre le Security group à toutes les IPs. Je n’arrive toujours pas à me connecter à l’instance parce que je n’ai pas la bonne clé SSH. Pourtant, la réponse ne propose pas d’autres pistes que la connectivité réseau.
Même avec une précision supplémentaire, on reste sur la même réponse.
4. Recommandations : optimisation des coûts
Vous avez besoin de lancer une instance EC2 pour un usage très spécifique tout en maintenant un équilibre coûts/performances ? Si vous êtes perdus(es) dans la longue liste des types d’instances disponibles sur AWS, vous pouvez directement poser la question à Amazon Q. Encore mieux, sur la console de création d’instance EC2, un bouton Get advice permet de donner les détails du cas d’usage de la machine pour une réponse détaillée du chatbot.
Ici, je précise que l’instance sera utilisée pour du Calcul intensif (ou Calcul Haute Performance) notamment pour faire du Deep Learning. Je précise également que j’ai besoin d’un bon rapport coût/performances et d’une machine qui tourne avec des processeurs Amazon Graviton. Amazon q propose les types d’instances C7g, G5g et C6g qui sont des choix très pertinents. Chaque type d’instance est décrit, ce qui permet de justifier leurs choix.
Si vous souhaitez obtenir des recommandations personnalisées pour optimiser les coûts de vos ressources réseau par exemple, la réponse est assez décevante pour des utilisateurs avancés.
Le bot répond avec des bonnes pratiques et des recommandations générales. Très intéressant donc pour des débutants, mais encore une fois beaucoup moins pour des cas complexes ou des utilisateurs expérimentés.
5. Intégration à VSCode et génération de code
Une autre fonctionnalité que j’ai voulu tester c’est l’intégration à un IDE et la génération de code. Une extension Amazon Q existe déjà pour VSCode et nécessite de connecter un compte Amazon Builder. Ensuite il est possible de discuter directement avec le chatbot dans l’IDE et de manipuler du code. Dans mon exemple, je lui demande de générer une fonction lambda destinée à supprimer des volumes EBS vieux de plus de 30 jours. Le code est généré en quelques secondes et peut être inséré directement dans un fichier avec le bouton “Insert at cursor”.
Nous sommes d’accord, ce n’est pas parfait. Ce bout de code ne fonctionnera pas, mais c’est une bonne base pour commencer. Il ne faut donc pas compter dessus à 100% pour le code généré. Pour de petites fonctions comme un générateur de nombre random, il fait très bien le travail.
Ce ramdomizer en python est très simple et fonctionne comme prévu. L’IA est aussi capable de comprendre du code, ce qui en fait un excellent Code companion. Je teste avec une fonction Lambda, et le résultat est très intéressant. En plus de la compréhension globale de ce qui est fait, chaque bloc de code est expliqué.
C’est bien du code en python qui sert à récupérer les informations des fonctions Lambda existant sur un compte AWS et qui organise ces informations dans un tableau PrettyTable.
Ensuite, grâce à cette compréhension du code, il peut fournir des conseils pour optimiser le code.
Amazon Q fait d’excellentes suggestions en proposant déjà de réduire de nombre de boucles utilisées dans le code ou encore d’optimiser le nombre d’appels API en utilisant le cache.
6. Conclusion
Pour un service encore en bêta, les premiers tests sont prometteurs. Je n’ai testé que des fonctionnalités liées aux opérations sur le Cloud AWS, mais il y a beaucoup de choses à améliorer. C’est clairement par volonté de se positionner sur le terrain de l’IA générative que le service a été publié parce que jusqu’ici, Amazon Q est loin derrière la concurrence. Les débutants y trouveront leur compte, néanmoins pour des cas d’usage complexes, il faudra pousser les capacités du service plus loin surtout dans l’analyse et dans la prise en compte des ressources du compte AWS sur lequel la question est posée. J’espère vivement de futures mises à jour d’Amazon Q qui en feront sûrement un excellent compagnon !