votre avatar

Sajicen

est avec nous depuis le 29 avril 2009 ❤️

19 commentaires

Le 26/11/2024 à 14h 39

Sinon, à ce sujet, ça donne quoi l'usage de @Ness_01 dans l'analyse des messages pour la modération, comme vous en parliez au poing Dev 12 ? Un petit retour d'expérience serait très intéressant :)
Ce projet est le mien, donc je vais me charger de te répondre.
Je prévoyais de faire un post plus détaillé, mais je vais essayer de synthétiser mon approche dans ce commentaire.
On fera un post à part si nécessaire.

Premièrement, un disclaimer.
Je n'ai pas de certification en Machine Learning (pour l'instant) et je me suis lancé dans ce projet par pure passion pour ce domaine que je découvre. Le développement est + / - en standby pendant que je me familiarise avec des techniques plus avancées en ML. Parallèlement, je travaille également sur d'autres projets chez moji.

La première étape a été de concevoir un plugin pour WordPress qui émet un event à chaque commentaire posté. Cet event initie une requête HTTP vers un service interne avec un payload contenant le commentaire, ses parents éventuels et le titre de l'article. Puis de coder la logique de gestion du retour du LLM pour réaliser une action (autoriser ou non la publication d'un commentaire)

Ça c'était la partie facile. On a vu cet outil comme un outil de pré modération dans un premier temps, toujours un humain dans la boucle qui valide ou non la décision.

La deuxième étape, setup un serveur d'inférence.
La plupart des gens sont maintenant familiers avec des solutions comme Ollama, setup avec lequel j'ai commencé à explorer les LLMs après que les possibilités offertes par l'API d'OpenAI m'aient révélé leurs limitations.

(Parenthèse : Aucun de vos commentaires n'est passé chez OpenAI. Je parle uniquement de mon utilisation sur d'autres intégrations à mon workflow.)

J'ai très vite été confronté à deux problèmes.

- La limitation des modèles génératifs disponibles à ce moment sur huggingface
- La génération structurée

Bien que des efforts conséquents aient été faits par la communauté open source, la différence de qualité était encore flagrante. J'ai cependant obtenu des résultats qui se défendaient très bien avec les modèles de Nous Research (big up à eux), notamment Hermès 2.

La question est : comment encoder nos valeurs éthiques dans ce modèle ? Chaque modèle est entraîné sur un corpus censé lui fournir l'ajustement des paramètres idéal pour lui faire remplir toutes les tâches basiques type Q/A, synthèse de texte, extraction d'informations, etc.
Qui plus est, les corpus choisis portent tous indirectement des biais

Mais avant de réfléchir à cela, comment traiter l'output généré par les modèles de langage (LLM) avec du code ?
PHP est loin d'être un langage naturel, et notre modèle est entraîné à produire du texte qui l'est

Je me suis fait les dents sur plusieurs solutions plus ou moins optimales.
La première, proposée sur le cookbook Haystack était lente, couteuse en ressources et peu flexible.
Le principe : demander gentiment au LLM de générer un output correspondant à un schéma json validé via Pydantic
Si le validateur retourne des erreurs, on demande à nouveau au LLM de traiter ces erreurs en lui fournissant le schéma et les erreurs détectées.
Ensuite, on espère qu'en moins de 5 à 10 boucles, le LLM arrivera à générer un output valide. Éventuellement, j'ai mis en place des regex qui pourraient extraire uniquement le JSON si un message supplémentaire était inséré.
Vous vous doutez que c'était loin d'être optimal.

Après un certain temps de pérégrination et d'expérimentations, j'ai choisi llama.cpp comme stack pour mon serveur d'inférence. C'est un projet open-source qui mérite d'être bien plus connu.

En plus d'offrir une perspective plus avancée du fonctionnement d'un modèle et du processus d'inférence, llama.cpp m'offre des possibilités de personnalisation bien plus poussées, comme par exemple la grammaire GBNF.

J'ai lu récemment cet article de blog qui explique visuellement le principe de fonctionnement pour la contrainte de l'output en créant une Finite State Machine. Cette machine implémente la regex de validation du JSON que l'on souhaite générer.

En plus de cela, llama.cpp offre un temps d'inférence bien inférieurs à ce que peut faire Ollama.

La rédaction de ce commentaire m'a déjà pris plus de temps que je n'avais prévu, et je dois aller me préparer à dîner.

Si le sujet vous intéresse, je pourrais décrire comment j'utilise ensuite FastAPI pour interagir avec llama.cpp, comment j'injecte du contexte et crée une pipeline d'agents pour décomposer la tâche de modération en étapes distinctes.

Ou bien la façon d'encoder des valeurs éthiques dans une surcouche sur le modèle fondationnel pour intégrer la charte constitutionnelle de sa communautée.

Cette étape est, in fine, la plus intéressante, à mon avis. Comment adapter ? Comment tolérer une certaine limite d'humour noir pour ne pas être contraint par le puritanisme qu'on pourrait trouver dans un modèle trop politiquement correct du fait de son statut de produit ? Comment exprimer ses valeurs en vecteurs ?


Qu'est ce qui constitute du discours toxique, jusqu'ou la liberté d'expression peut aller ?

Taxonomie d'un commentaire toxique
Ingénierie automatique de prompts

Actuellement je bloque sur la création d'un golden dataset destiné à fine tuner une surcouche (QLoRA) sur le modèle de fondation choisi.

Pour cela, j'ai besoin de finaliser une pipeline utilisant argilla pour annoter des commentaires destinés à une phase de reinforcement learning via RLHF ou RLAIF . J'aimerais également ajouter la génération de rationales qui permettront d'expliquer les décisions de modération prises par le modèle et de les ajuster au besoin.

Waaah incroyable retour ! Je travaille dans le domaine, sur des projets similaires. Je trouve ça très intéressant et surtout de voir là où nous avons eu les mêmes galères et là où nos choix ont été différents ! Effectivement, si un jour tu as le temps d'expliquer le reste de ta stack avec FastAPI je te lirais avec plaisir. Personnellement, j'ai fini par basculer sur AioHttp notamment sur le sujet des requêtes qui doivent être concurrentes et de celles qui doivent être parallèles.

Merci en tout cas !

Le 12/06/2024 à 10h 57

Depuis quelque temps maintenant, les algos d'OCR SOTA (open source) disponible, utilise du deep learning, je ne vois pas ce qu'il y a de choquant là-dedans.

Le 06/05/2024 à 11h 21

« ne dépendez pas des entreprises pour garantir vos droits.
défendez-les vous-même en utilisant des technologies promouvant la liberté.

(vous êtes sur une d'elles) »
Cela dit pas sûr que la parenthèse soit "vous êtes sur l'une d'elle" fasse référence à une entreprise ou a une freedom technology

Je pense que ça fait directement référence à X. Elon Musk à même répondu "Donc, en d'autres termes, utilisez X"

Le 18/04/2024 à 11h 49

Que la diversité soit légèrement sur-compensé (encore faudrait-il le prouver) pour pallier manque de diversité des 20 premières années du JV, je n'y vois aucun problème.
ça c'est quand même le pire des raisonnements :
"C'est pas vrai parce qu'il n'y a pas eu d'étude que je considère comme valide, et puis même si c'était vrai, c'est quand même normal et mérité !"

Je ne comprends pas le commentaire. Toutefois, cela m'a encouragé à aller voir ce qu'il y a comme informations à ce sujet, donc merci.

Un point départ étant l'article wikipedia
qui permet (malgré le fait que l'article doit être consolidé en termes de source) d'avoir une partie de la vision d'ensemble sur le sujet.

Le 18/04/2024 à 11h 04

Je vote pour. Supprimez le 1er commentaire et la flopée de réponses.

Edit : Commentaire non constructif. Je ne sais pas comment le supprimer. (C'est possible ?)

Le 18/04/2024 à 11h 00

A force de vouloir inclure toutes les minorités dans les jeux/films etc, on en finit par avoir une sur-représentation exagérée et les stéréotypes en deviennent carrément bien moins représentés que la réalité.

Au bout d'un moment, ca pue le passage à coup de forceps quand dans une série (ou un film), tu as forcément parmi les 4-5 personnage principaux : un(e) black, un(e) beurre, un(e) métis, un LGBTQ+ (j'en oublie le reste de l'alphabet)... parfois en cumulant les rôles, avec des allusions à ces traits là qui n'ont rien à voir avec le scénario. Cette "bien pensance forcée" et non représentative des proportions de notre société, c'est juste agaçant, navrant et finalement repoussant : en tout cas, si l'effet désiré est l'acception de telles minorités, j'ai comme l'impression que l'excès qu'on vit actuellement a pour principal effet de dresser les uns contre les autres, chacun revendiquant son appartenance à une catégorie particulière.

J'ajouterais un peu de nuance la quand même...
Ce que tu appelle "non représentative des proportions de notre société", ne serait-ce pas "non représentative des proportions de ta société" ? Comprendre ici un genre de phénomène de bulle, ou l'on navigue chacun que dans un petit cercle de personne.

Des jeux, y en a plein pour tout le monde, cela fait des années qu'on nous sert des héros de jeux où l'on incarne des hommes, des vrais, avec des couilles viriles à la Gear of Wars. Que la diversité soit légèrement sur-compensé (encore faudrait-il le prouver) pour pallier manque de diversité des 20 premières années du JV, je n'y vois aucun problème.

Le 16/04/2024 à 11h 29

Mais pourquoi bloquer les payants ? C'est tellement bizarre.

Pour utiliser X régulièrement, je parle simplement sur un ressenti personnel, les personnes ayant un comportement que je considère comme problématique, on soit un pseudo de la forme prénom + chiffre soit une coche bleue.

C'est surement un biais de confirmation, mais ma bulle de filtre X (quel nom 🙄) il n'y a que peu de coche bleu.

Donc dès que je passe sur la page des recommandations, X se fait un plaisir de mettre des tas de coches bleues en avant avec des avis désastreux, mais faisant du tap-in / de la désinfo / du click bait / "mes nues dans mon profil" ou tout ça à la fois.

Le 12/04/2024 à 14h 48

Je ne comprends pas le rapport ?

Le 02/06/2023 à 13h 18

Je pense qu’à la base, c’était pour distinguer les deux architectures PowerPC vs x86 dans les années 2000.



Puis, après la migration d’Apple vers les x86-64 je trouvais que cela n’avait plus de sens de faire la distinction effectivement.



Plus récemment avec le changement vers de l’ARM je trouve que la distinction est de nouveau pertinente tant les changements sont importants.

Le 09/07/2017 à 09h 48

Donne à Android 24GO de RAM il les utilisera. Se plaindre que Android prends de la RAM c’est juste avoir une méconnaissance profonde de l’OS et juste être un bon gros troll sans une once de subtilité ou de jugeote.

Le 24/04/2017 à 10h 55

”[…] à un con qui gueule en jouant”.

Tu ne sais visiblement pas de quoi tu parles. Dans ce cas, au moins, évite les insultes.



Pour aller plus loin voici un article de Daniel Fenner datant de 2015

Le 18/09/2016 à 18h 02

C’est pas vraiment comparable quand même. Ce n’est ni la même architecture ni la même gestion de la mémoire. Car Chrome reste une application Android comme une autre et donc obéis au même contrainte.



Donc non pas vraiment. Effectivement d’autre navigateurs le faisaient déjà, mais c’était très attendu dans Chrome, comme dit dans l’article d’ou la news.



 





mickaelb a écrit :



C’est vrai, la miniaturisation c’est trop nul et surfait…



Parce que une calculatrice qui fait autant qu’un ordinateur qui faisait la taille d’un appart, c’est exactement pareil et même pas bandand finalement.



Je vois pas en quoi les gens ont trouvé génial les calculatrices scientifiques en fait.



Merci de m’avoir ouvert l’esprit, les telsa avec auto pilote c’est quand même bien pourri alors que des avions on des pilotes automatique depuis xx années





Voila c’est ça.



Au bout d’un moment faut arrêter de râler.


Le 18/09/2016 à 01h 24







127.0.0.1 a écrit :



Amazing !!! C’est une véritable révolution, doublée d’une incroyable prouesse technique !



Et tout ca avec un banal Quad/Octa-core 2 GHz et 4 Go de Ram…



L’informatique ne cesse de m’émerveiller.







J’ai pas trop compris le troll / la blague…



C’est sensé dire que Chrome c’est nul ?


Le 29/08/2016 à 12h 56







Carpette a écrit :



Le probleme des maj de secu dans la duree est un vrai probleme en effet. On en parlait dans les precedentes news sur android 7. Je suis etonne qu’il n’y ait pas plus de pression de la part des assos de consommateurs et que google n’y reflechisse pas serieusement. Sur le plan technique, avec un noyau Linux modulaire et un systeme maitrise par google, des solutions sont parfaitement envisageables. 





Autant comme déja dis dans les commentaires, certains composants sont mis à jour par le playstore, autant je vois pas comment associer AOSP et ce genre de MAJ. Sans compter que les failles ne se trouve pas toujours sur AOSP mais sur certaines surcouches, ou même alors en fonction des composant hardware. Pire certain distributeurs propose des versions d’Android dont je doute même de la bienveilllance, ex : Wiko qui installe par défaut un clavier bourré de pub pas très transparent de ce que fait l’application des données récupéré du clavier. :/


Le 25/08/2016 à 16h 14







Slash a écrit :



MIUI est un android customisé apportant des fonctionnalités qui ne sont pas encore implémentées ou qui le seront dans 2 ou 3 versions d’Android.

Il existe un launcher MIUI qui permet de retrouver à peu près le même look & feel de MIUI sur n’importe quel téléphone android.





Ah ouais, ils prédisent carrément l’avenir ? C’est plus des développeurs mais des médiums ahahah.


Le 19/08/2016 à 08h 32

C’est pas un compte twitter hyper raciste ? Les quelques tweets que j’ai vu passer, j’ai pas du bien les comprendre.

Le 11/06/2016 à 11h 12

Non plus, je pense qu’ici on parle d’une durée engagement, Spotify sait obligatoirement si on est abonné ou non, par contre ce qu’il n’est possible de savoir c’est sur combien de temps. (Enfin toujours d’après ce que j’en déduit de la news…)



Dans ce cas je suppose que l’argent de l’abonnement doit être versé tout les mois sur les mois restant et donc que même si changement d’OS il y a la période pendant laquelle l’utilisateur à payé reste valide

Le 11/06/2016 à 11h 10

Rien a voir, on parle ici d’un éditeur, pas d’un client, si un éditeur propose son application plus d’un elle aura alors le droit à 8515, ça ne concerne aucunement les utilisateurs d’après ce que j’ai compris.

Le 05/01/2016 à 07h 36







Exception a écrit :



Et si les adorateurs de Java (qui ne sont autres que des développeurs pour qui les langages comme C++, qui nécessitent par exemple de libérer des pointeurs, sont trop compliqués pour eux) avaient le moindre argument pour répondre autre que “trooool”…









maxscript a écrit :



  désolé pour mes camarades… je ne souhaitais pas troller et emporter une cordée de comm avec moi ;)



java c’est bien java c’est bien java c’est bien.. (bon ok même comme ça, ça passe pas), mais chacun ses outils de prédilection on va dire….





Faudrait songer à faire preuve d’ouverture d’esprit les gens hein… On croirait entendre des enfants pensant que parcequ’ils n’aiment pas une chose tout le monde devrait la détester. Je ne pense pas que vous ayez conscience du nombre de périphériques qui tourne en Java et qu’on se sert quotidiennement. Je ne dis pas que ce langage est le meilleur ou le plus beau ou je ne sais quoi d’autre. Juste qu’il faut lui reconnaître des qualités comme des défauts et se rappeler que si Google a choisi la technologie Java pour son OS ce n’est pas pour rien.