Si le nom de votre bucket S3 est publique alors vous pouvez vous faire DDoS "financièrement" car les requêtes à S3 sont facturées même quand elles ne sont pas correctement authentifiées.
En gros, n'importe qui peut faire des millions de requête PUT sur un bucket et le propriétaire sera facturé 0.05$ / 1000 requêtes
Les recommandations de l'ANSSI en matière de sécurité autour de la GenAI.
Ils s'attardent sur 3 catégories d'attaques:
- Attaques par manipulation: c'est l'injection de prompt
- Attaques par infection: injecter de fausses données d'entrainement pour fausser le système plus tard
- Attaques par exfiltration: récupérer des données d'entrainements ou les paramètres du modèle
Sinon c'est de la sécurité assez classique au final, DevSecOps, confidentialité, hébergement de confiance, etc.
Concernant les LLMs, ils conseillent de
- filtrer les entrées / sorties du système d'IA
- limiter les actions automatiques des Agents
vLLM est un serveur d'inférence pour LLM.
Avec (Text Generation Inference](https://links.aschen.tech/shaare/Go1xSQ) (TGI) de Hugging Face, c'est une des référence pour monter sa propre infrastructure capable de servir des LLMs.
Les LogProbs sont des métadonnées retournées avec la génération et elles indiquent la confiance du modèle dans le texte généré.
Dans le cas d'un RAG cela est extrêmement utile car ces informations peuvent nous aider à renvoyer un score de pertinence de la réponse généré.
Par exemple, si le prompt ne contient pas suffisamment d'informations pour répondre à la question, au mieux la réponse sera incomplète, au pire elle sera pleine d'hallucination.
Avec les LogProbs, il est possible de savoir quel degré de confiance accorder à cette réponse et de transmettre cette information à l'utilisateur ou de basculer sur un autre processus (nouvelle requête, prompt différent, etc)
Cet article utilise l'API d'OpenAI mais techniquement c'est possible de le faire avec n'importe quel modèle (pour peu que l'API retournent ces métadonnées)
Un guide très complet sur le fine tuning de modèles.
La méthode décrite dans ce guide se nomme PEFT (Parameter Efficient Fine-Tuning) et permet de fine tuné uniquement un certain nombres de paramètres d'un modèle.
Cela permet de conserver les performances d'origines sur la majorité des cas (e.g. la compréhension de la langue et les connaissances d'entrainement) tout en améliorant les performances sur une tâche précise.
C'est ce genre de méthode qui est très populaire dans les modèles d'image pour contrôler la génération et avoir des images du même style.
Langfuse est un outil Open Source très utile pour l'observabilité des applications GenAI avec un système de trace très réussi qui permet d'analyser le comportement des applications en production. ((On en parlait déjà il y a quelque temps](https://links.aschen.tech/shaare/k-yB-Q))
Ils ont sorti Langfuse v2 avec notamment une fonctionnalité très attendu: l'évaluation automatique
Il est maintenant possible de définir des "evaluator" qui utilisent un LLM pour évaluer la qualité d'une réponse ayant été générée.
Par exemple, on peut utilise un evaluator pour noter automatiquement de manière négative les interactions ou un RAG n'a pas réussi à répondre à la question de l'utilisateur.
Nous utilisons Langfuse pour tous nos usages de GenAI et je dois dire que c'est un franc succès car cela permet aux équipes de Prompt Engineer de superviser ce qu'ils déploient en production et l'évaluation automatique va nous permettre de passer à la vitesse supérieur.
Ce modèle est une version fine tuné de LlaMa 3 pour le domaine médical.
Il surpasse GPT-4 sur les benchmark portant sur des dataset du domaine médical.
Encore une fois un signe que le fine tuning a de l'avenir pour créer des LLMs spécialisés.
Un cours de Stanford sur les transformers.
Un article que j'ai écrit à propos des tokens pour comprendre la manière dont ils découpent le texte avant d'être envoyé au LLM.
Microsoft sort Phi-3 et tente de changer de paradigme avec un "Small Language Model" (SLM) vs les traditionnels LLMs.
SLM car une des version de Phi-3 ne possède "que" 4 milliards de paramètres, c'est 2 fois moins que LlaMa-3 8B ou Mistral 7B (le "B" signifie "billions").
Cette version Phi-3-mini surpasserait les modèles LlaMa-3 8B et Mistral 7B.
Un petit modèle c'est un modèle moins gourmand en ressources et donc plus rapide sur une grosse carte graphique de datacenter mais aussi possible sur du matériel de particulier.
Deux autres versions sont aussi disponibles: Phi-3-small (7B) et Phi-3-medium (14B).
Tous les modèles ont une fenêtre de contexte de 128K tokens.
Un moteur d'inférence LLM qui fonctionne avec CPU et GPU.
C'est utilisable depuis du code python mais aussi en API HTTP.
Ça supporte la plupart des modèles Open Source:
- Mistral 7B et 8x7B
- LlaMa 2 et 3
- Phi 2 et 3
Pour de la production je conseille d'utiliser le moteur d'inférence de Hugging Face car c'est scalable et surtout maintenu mais c'est une alternative plus portable à garder sous le coude.
Une IA qui appel et répond au téléphone.
C'est assez incroyable, on peut mettre son numéro de téléphone et l'IA nous appelle.
Je lui ait demandé ce qu'elle pensait de mon entreprise par exemple et on a eu une conversation sur le futur de e-learning.
L'État français a fine tuné des modèles Open Source (LlaMa 2 et Mistral 7b) avec les données des procédures administratives afin de répondre correctement aux questions des utilisateurs.
C'est un choix curieux de fine tune les modèles plutôt que de faire un RAG car du coup la mise à jour de la connaissances est très difficile (impossible sans ré-entrainer)
Je me demande combien ça a coûté pour le fine tuning.
Une solution clé en main complète autour des LLMs:
- Assistant IA en NoCode
- Génération de documents
- Traduction
- Ingestion de sources externes (fichier, web, Notion)
- RAG intégré
Il y a aussi une version Open Source.
Ça fait un peu usine à gaz mais ça à le mérite d'être complet et rapide à mettre en place.
La communication d'Ecosia pue le greenwashing.
Le deal c'est Ecosia vous fait voir des pubs et en échange ils plantent des arbres avec l'argent.
A voir si le coût énergétique des pubs est vraiment contrebalancé par les arbres qu'ils plantent.
Dans tous les cas, je préfère ne pas utiliser ce genre d'outil.
2 modèles de re-ranking open source ont été release par Jina.
Pour rappel, le re-ranking est une méthode supplémentaire utilisée pour noter la pertinence de documents retrouvés dans la partie retrieval d'un RAG.
Ce sont de plus petits modèles de langue qui coûtent beaucoup moins cher à faire fonctionner et qui donne une note de similarité supplémentaire en plus de la simple recherche vectorielle.
Ça me rappelle le temps des modèles comme BERT par exemple.
Une collection de datasets pour évaluer un RAG est disponible chez LlaMa Hub.
Par exemple, ce dataset contient 44 questions et réponses basées sur les articles de Paul Graham. (Pas forcément le meilleur car il y a de fortes chances que ces articles soient dans les données d'entraînement de votre LLM)
Les évaluations se font entre autre avec le module LabelledRagDataset de LlaMaIndex.
On peut aussi créer ses propres datasets bien sûr.
Un papier de recherche sur une méthode pour avoir une fenêtre de contexte virtuellement infinie.
Le mécanisme d'attention de Transformers présente une complexité quadratique (sous la forme O(na)) la fois en termes d'empreinte mémoire et de temps de calcul.
Leur méthode propose de réduire cette complexité en utilisant une une "mémoire compressée".
Dans les benchmarks, leur modèle utilise seulement 1.6Mo de mémoire vs 50 à 180Mo que des modèle Transformer classique ayant le même nombre de paramètre (et les perfs sont meilleures)
Cela questionne l'utilisation des RAG sans toutefois les remettre en question entièrement.
-
un contexte infini ne fait pas tout car on a remarqué que même avec 128K de contexte dans GPT-4, les résultats sont quand même meilleurs lorsque les prompts sont moins longs.
-
le coût de poser 128K tokens dans un prompt n'est pas le même que de sélectionner attentivement et de poser seulement les 4K tokens intéressants
PS: j'aime beaucoup ce format HTML des papiers de recherche, j'avoue ne jamais avoir apprécié le format LaTeX standard
Des chercheurs exploitent des "failles" des anti-virus pour les amener à supprimer des fichiers.
Pour ça, il leur suffit d'ajouter des chaines de caractères faisant partie de la base de signatures de virus connus.
Par exemple en remplissant un formulaire, la chaine de caractère identifiée comme étant part d'un virus va se retrouver dans un fichier du serveur et l'antivirus risque de le supprimer (surement avec d'autres données au passage)
La syntax de Javascript est tellement nul que depuis le début du langage, tout le monde cherche à utiliser des syntaxes alternatives.
Aucune de ces syntaxes ne survit sur le long terme car cela rajoute une couche de complexité à appréhender pour les développeurs.
Ici on a une nouvelle syntaxe qui change complètement le paradigme et le flow d'exécution.
Attention à ne pas mettre ce genre de chose en prod car c'est une énorme dette technique instantanément