Daily Shaarli

All links of one day in a single page.

April 28, 2024

Matching Retrieved Context With Question Context Using LogProbs With OpenAI for RAG

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)

PEFT - Parameter Efficient Fine-Tuning

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.

Model-based evaluations - Langfuse

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.