Monthly Shaarli
March, 2023
Une histoire d'optimisation d'un cluster Elasticsearch.
Le problème chez Netflix venait d'une mauvaise allocation des shards des indices, tous les indices avaient le même nombre de shards et donc certains noeuds se retrouvent à héberger des shards contenant des millions de documents.
Leur stratégie a été de distribuer les documents non pas par type mais par date de création (time buckets) en utilisant des index template pour la création automatique et des alias pour la recherche (comme pour l'ingestion des logs donc).
Les scammeurs utilisent des IA pour générer la voie d'une personne connue afin de soutirer de l'argent.
On entre dans une nouvelle ère du scam, c'est inquiétant
Onboarder une personne avec une position "haute" dans la hiérarchie n'est jamais simple.
Il est crucial de passer les premières semaines à apprendre et à appliquer les méthodes actuelles avant d'essayer de lancer ses propres méthodes.
Aussi, il est préférable de commencer par résoudre un problème mineur plutôt que de se casser les dents sur le problème majeur.
Nomic supporte maintenant le format Apache Arrow.
C'est véritablement entrain de devenir le standard de l'industrie data!
Nomic est une lib python qui permet d'intéragir avec de très gros jeux de données dans son navigateur.
Observable est une plateforme de dataviz qui propose des notebooks en Javascript.
C'est du même gout que Jupyter Notebook, très facile à manipuler et à créer, même pour des personnes pour qui le frontend n'est pas la compétence principale.
Une extension navigateur qui permet de manipuler les site web avec le langage naturel.
Voir aussi:
Un récapitulatif très complet sur les web component et ce qu'il est possible de faire avec.
Apache Arrow est un projet qui développe des SDK dans la plupart des langages afin de manipuler efficacement des données tabulaires (vecteurs, matrices) en RAM.
Ils ont notamment des optimisations des calculs spécialement conçues pour les CPU et les GPU.
Par exemple, les données sont regroupées pour éviter les "jump" CPU et tenter de les faire tenir dans les différents caches.
Pour les GPU, Arrow utilise CUDA afin de paralléliser les calculs.
C'est utilisé dans la nouvelle version 2.0 de Pandas, la lib de référence en Python pour manipuler les données.
Les performances peuvent être jusqu'à 25x supérieurs (!)
(Merci Ocav pour le partage)
Très bon conseil pour booster une carrière.
Il est important de rester curieux et de s'intéresser aux autres métiers de la tech (product, management, marketing, sales), c'est ce qui permet d'avoir une meilleure compréhension de l'ensemble d'une entreprise et d'améliorer la qualité de ses contributions.
Les personnes ayant été à des rôles de manager et d'individual contributor sont très souvent plus ouvertes car elles connaissent les deux côtés de la barrière.
Attention car OpenAI conserve toutes vos données et pourrait les ressortir dans d'autres conversations!
Des codes qui feront hurler n'importe quel développeur, mais que fait la cour de justice internationale!
(Merci Yannick)
Un framework C++ pour construire des application server performantes.
Au menu:
- sharding
- network stack
- futur et promises (JS like <3)
- message passing pour le multithread (afin d'éviter les couteux lock)
ScyllaDB est écrit avec
Tout est dans le titre, OpenAI a beaucoup changé depuis 2015.
Les modèles ne sont plus ouverts, les investisseurs privés affluent, la rapidité prime sur la qualité, bref une entreprise tout ce qu'il y a de plus capitaliste et pas du tout dans le goût de la fondation créée au départ.
Les nouvelles API de OpenAI sont disponibles.
Notamment celle de ChatGPT (gpt-3.5) avec un coût par token 10x inférieur!
Whisper est une quand à elle une API de text to speech
Un article sur l'utilisation de React Context dans une app pour partager facilement des informations entre les composants plutôt que les passer dans les props.
L'utilisation est un peu complexe et s'apparente à de l'injection de dépendances.
On fournit les contextes en encapsulant l'application dans des balises donc attention à l'utilisation de plusieurs contextes qui s'encapsulent entre eux et réintroduisent du couplage.
// ContainerContext a besoin de LangContext
<LangContext.Provider value={translate}>
<ContainerContext.Provider value={findTasks}>
<TodoList/>
</ContainerContext.Provider>
</LangContext.Provider>Un mod de Half-life 2 en VR!
19 ans après sa sortie, Half-life 2 reste un monument incontournable du jeux vidéo
Excellent article sur les CRDTs (Conflict Free Replicated Data types).
Un CRDT c'est une structure de données qui
- peut être copiée sur plusieurs clients (souvent en p2p)
- peut être modifiée sans coordination par plusieurs clients
- chaque copie peut être mergée sur chaque client afin de former un état final déterministe
C'est ce qui est utilisé pour les outils de collaboration type Google Doc pour résoudre les conflits par exemple.
Cerebras, une entreprise qui fait aussi des supercalculateurs, a publié en Open Source un modèle LLM avec le code ET le modèle entrainé!
C'est le premier modèle 100% open source en licence Apache 2.
Arquero est une librairie Javascript qui permet de manipuler des données tabulaires en RAM.
Elle supporte l'algèbre relationnelle comme pour une base SQL.
C'est du même genre que Pandas en Python mais du coup pour faire de la datascience directement en Javascript!
Derrière les performances de la lib on retrouve encore une fois le format binaire Arrow
beers
.orderby(aq.desc('ibu'))
.select('name', 'style', 'ibu')
.filter(d => op.includes(op.lower(d.name), 'hop'))
.view()Un builder de site vitrine / landing page en no-code
Une lib de scrapping qui utilise GPT pour extraire les informations voulues depuis une page web.
Ça fonctionne assez bien et ça permet de réduire le coût total en faisant un clean sur le HTML.
Un peut spécifier un budget de token et le scrapper s'arrête une fois le budget consommé.
Responsive AI Licence (RAIL) est une licence pour les modèles entraînés (weight) que l'ont pourrait considérer comme Open Source.
Elle permet la réutilisation, la modification, même dans un contexte commercial tout comme la licence Apache 2.
Néanmoins elle restreint l'usage du modèle à des utilisation "harmful" qui restent à la discrétion des créateurs en fonction des usages qui apparaîtront.
L'autre différence est son caractère copyleft (ou "viral") comme les licences GPL car un modèle dérivé doit reproduire la licence
Une application de bout en bout qui créé des histoires pour les enfants en utilisant des services AWS et OpenAI.
Ça génère l'histoire, l'audio, une image de couverture et sauvegarde le tout.
Write a title and a rhyming story on 2 main characters called Parker and Jackson. The story needs to be set within the scene haunted woods and be at least 200 words long
Google met des IA génératives dans sa suite Google Workspace donc dans Docs, Sheet, Slides etc
Des centaines de millions d'utilisateurs à travers le monde vont avoir accès à une IA générative pour écrire leur contenu.
GPT-4 commence à être rendu disponible sur liste d'attente.
Ils ont fait passé des examens non corrigés sur une vingtaine de sujets et GPT-4 a obtenu la moyenne dans 12 sujets sur 26!
Une autre nouveauté, GPT-4 peut aussi accepter les images en complément du texte.
ControlNet permet de controller la génération d'images faite avec StableDiffusion.
C'est notamment utilisé pour générer des création cohérentes entre elles par exemple dans un jeu vidéo.
Un retour d'expérience sur l'utilisation de Cassandra à un très haut niveau chez Discord.
Des problèmes de maintenance majoritairement liés à la manière dont ils utilisaient Cassandra car des ralentissements en lecture sur un noeud impactaient tout le cluster car la lecture/écriture se fait en quorum.
La "compaction" (réindexation) des tables par Cassandra et le GC de la JVM causaient aussi des problèmes de latence.
Ils ont décidé de migrer toutes leurs DB vers ScyllaDB qui est compatible Cassandra mais en C++ donc plus rapide et pas de GC!
Il n'ont pas réglé leur problème qu'avec une nouvelle base de données mais aussi avec des middleware de cache écrit en Rust pour la performance C++ et la sureté mémoire.
La migration fut aussi très compliqué et les premières prévisions étaient extrèmement longues (3 mois) mais la encore un rewrite du connecteur en Rust sauve la mise (9 jours!)
Conclusions:
- plus de stabilité
- 177 noeuds Cassandra à 72 ScyllaDB
- latence p99 40-125ms avec Cassandra et 15ms avec ScyllaDB
Une belle performance algorithmique sur l'algorithme de chunking de Rollup avec 3.3s au lieu de 2 heures pour la génération du plus petit nombre de chunks.
L'auteur utilise un seul BigInt et manipule directement les bits au lieu de manipuler un Set.
Un retour d'expérience de Cloudflare sur la ré-écriture d'un module Nginx en Rust.
Analyse de l'attaque qui a touché les utilisateurs de la téléphonie IP 3CX.
Une attaque supply chain bien organisé qui avait le potentiel d'ouvrir des backdoor chez les 12 millions d'utilisateurs de 3CX.
Superbe démonstration pas à pas d'utilisation de la data science au travers d'une suite de suppositions pour détecter les faux comptes Github.
Par exemple, en analysant les comptes qui agissent les même jours on a plus de chance de détecter des comptes instrumentés par des scripts.
Un article plus posé sur l'éventuel remplacement des moteurs de recherche par des LLM.
Il faut considéré les problèmes de biais induit par les données sur lesquels les modèles sont entrainés mais il faut surtout prendre en compte le coût d'entrainement et de génération d'une réponse.
Pour avoir un modèle à jour, il faut constamment l'entrainer et ça coûte très cher.
Pareil pour une réponse qui coûte beaucoup plus cher à générer (Google traite ~10 000 requêtes/sec)
A priori, les LLM vont surtout être utilisé pour répondre à des sujets précis. Par exemple, entrainer un LLM sur toutes les publications relatives au cancer des 20 dernières années.
Un jouet pour enfant low-tech sans écran ni connexion internet qui raconte des histoires.
Il est possible de personnaliser les histoires en choisissant le héro, le lieu, etc
Bon c'était plus ou moins sur qu'on se retrouve avec de la publicité dans toutes ces réponses générées par des IA.
Un autre outil no-code de création de site web.
Un peu à la Notion mais avec un grand canvas.
La face cachée de l'IA qui est loin d'être aussi magique qu'on le croit.
Des milliers de travailleurs en provenances des pays moins développés ont pour tâche d'annoter les datasets pour entrainer les grands modèles des GAFAM et startups.
Un benchmark des librairies et bases de données (en RAM) pour traiter des données tabulaires dans le genre de Pandas.
Polars remporte haut la main le benchmark, c'est une lib écrite en Rust et qui utilise aussi le standard Arrow
Très bon article qui récapitule l'utilisation des streams avec l'API fetch incluse dans Node.js 18.
Le point de vu de Bill Gates sur les récentes avancées en IA.
Selon lui les IA vont notamment permettre de grandes avancées dans la productivité, la santé et l'éducation.
Un très bon article de l'équipe tech de Malt sur l'observabilité code/équipe en utilisant Git.
Cela permet d'identifier:
- les dépendances entre services
- les "hot spots" fréquemment édités
- les personnes ayant la meilleur connaissance de portions du code
Une liste de Slack communautaires sur pleins de sujets!
Whoa Docker lâche un pavé dans la marre, c'est la fin des organisations open source qui publient leurs images sur Docker Hub. (ou alors il faut payer 420$/an)
Github est une solution de remplacement.. Jusqu'au jour où ils feront aussi payer !
EDIT: Docker a depuis fait marche arrière
Des modèles concurrents de GPT-3 commencent à émerger.
Celui-ci est même capable de tourner sur un téléphone (26sec/token) ou un raspberry pi! (ça sera très lent)
Il est intéressant de voir qu'ils ont pu fine-tune le modèle pour un coup assez bas, 600$ (de cloud j'imagine)
À noter, ce modèle n'est pas utilisable sous licence commerciale.
Une IA qui est capable de manipuler le navigateur depuis des instructions en langage naturel.
Par exemple, elle est capable de rechercher une location sur un site comme Airbnb simplement depuis une demande comme "trouver une maison pour 6 personnes à Houston pour maximum 600$"
Excellent article de Cory Doctorow traduit par Framablog sur la situation actuelle de Microsoft et surtout Google par rapports aux IA génératrices de texte.
Outre la critique des ces IA qui ne seraient pas prêtes à remplacer les moteurs de recherche et les humains, Google est aussi descendu de son piédestal et ramené à une société financière incapable d'innover et qui rachète d'autres entreprise pour ça.
Injection de contexte dans le prompt de Bing Chat pour demander à l'utilisateur des informations personnelles.
Ces info sont ensuite retransmises à un serveur distant.
Des outils pour détecter si un texte a été généré par une IA du style de GPT-X