Daily Shaarli

All links of one day in a single page.

July 14, 2024

Chrome Built-in AI Doesn't Require The Internet

Google a commencé à distribuer son modèle Gemini Nano directement dans Chrome.

Le modèle fonctionne totalement en local avec une API dédiée:

const ts = ai.createTextSession()
const gemi = await ts
const output = gemi.prompt('Tell me you best programmer joke')

C'est une grande avancée car il sera maintenant beaucoup plus simple de créer des applications utilisant des LLM directement en utilisant les API du navigateur.

Par contre en faisant cela, Google va encourager la fragmentation du web par navigateur avec des sites web qui ne fonctionneront que sur Chrome car exploitant des API non standards.

J'espère qu'une standardisation de ce genre d'API arrivera sous peu, comme cela a été le cas pour la reconnaissance vocale avec les Web Speech API

Judge dismisses DMCA copyright claim in GitHub Copilot suit

Les poursuites judiciaires engagées contre GitHub pour violation de copyright par Copilot ont été abandonnées par les juges.

GitHub modifie légèrement les exemples de code par rapport aux sources originelles et c'est entre autre cette raison qui a convaincu les juges.

Q-GaLore: Quantized GaLore with INT4 Projection and Layer-Adaptive Low-Rank Gradients

La recherche en optimisation des modèles de langue fais des pas de géant avec GaLore et maintenant Q-GaLore !

Concrètement ces techniques permettent de réduire la mémoire nécessaire pour entraîner un LLM.

Un modèle comme LlaMa 7B ne peut être entraîné que sur des GPU de datacenter car les poids pèsent lourd en mémoire.

Avec Q-GaLore, on peut entraîner ce modèle avec seulement 16Go de RAM et donc sur des GPU grand publique comme la RTX 4060 de Nvidia.

Autant du vote de l'inférence que de l'entraînement, les exigences en matériel dont de plus en plus basses, ce qui contribue à la baisse de coût du token.

My finetuned models beat OpenAI’s GPT-4

Un retour d'expérience sur le fine tuning de modèles pour améliorer les performances sur un cas d'usage d'extraction de données structurées.

Les modèles fine tuné offrent de meilleures performances que GPT-4o !

Ici le processus de fine tuning a permis au modèle d'augmenter les poids lui permettant de "comprendre" ou étaient les données à extraire.

C'est intéressant mais compliqué à mettre en place entre la constitution du jeu de données et l'évaluation des modèles fine tuné.

Les résultats sont quand même très encourageant, je pense qu'il va falloir de plus en plus considérer le fine tuning pour certains cas d'usages.

The carbon emissions of writing and illustrating are lower for AI than for humans

C'est peut-être vrai que l'IA consomme moins qu'un humain pour écrire une page de texte mais à cause de l'effet rebond, l'IA pourrait quand même générer beaucoup plus de CO2 car la ou l'humain écrit une page par jour, ChatGPT en écrit 100 000.

Coalescence: making LLM inference 5x faster

Outlines propose une bibliothèque Python pour contrôler la génération et produire un JSON valide à tous les coups.

Pour cela, ils vont tout d'abord créer un regex qui correspond au JSON à parser, puis ils vont transformer cette regex en une Finite-State Machine (FSM).

Chaque token généré est une étape de cette state machine et la prochaine étape peut avoir une ou plusieurs possibilité de token.

Par exemple, si format du JSON est { "age": <number> } et les tokens générés ont été: {"ag alors le prochain token est forcément e": afin de respecter le format ({"age":)

Donc en faisant appel au modèle, ils peuvent aller sélectionner dans les tokens potentiels ceux qui correspondent au format attendu et en quelque sorte "force la main" du LLM.

Ils peuvent aussi ignorer des appels au LLM lorsqu'il n'y a qu'un seul token de possible pour la prochaine étape de la state machine.

C'est une technique très maline et intéressante car elle permet de s'assurer de la structure du JSON mais aussi de réduire le nombre d'appels au LLM.

A noter que cela n'est vraiment intéressant que sur un modèle local dont on contrôle l'inférence, si on utilise l'API d'OpenAI par exemple alors cela ne va pas accélérer l'inférence ou réduire les coûts car il faudrait envoyer le prompt entier et payer le coût de tous les tokens à l'intérieur pour chaque étape de la state machine. (Par contre la sortie sera du JSON à 100% grâce au choix du prochain token via les logprobs)