1 points par GN⁺ 2 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Needle est un modèle expérimental distillé de Gemini 3.1 en un Simple Attention Network de 26 millions de paramètres, avec possibilité de fine-tuning local sur Mac/PC
  • L’objectif est de redéfinir les petites IA utilisées sur des appareils grand public comme les téléphones, montres et lunettes, en se concentrant sur l’appel d’outils à exécution unique pour l’IA personnelle
  • En production, il fonctionne sur Cactus et atteint prefill 6000 toks/sec et decode 1200
  • Les poids sont entièrement publics sur Cactus-Compute/needle, et la génération du dataset est également publiée
  • Le préentraînement a été effectué sur 16 TPU v6e avec 200B tokens pendant 27 heures, et l’entraînement de suivi a duré 45 minutes sur un dataset de 2B tokens d’appels de fonctions à exécution unique
  • Sur les appels de fonctions à exécution unique, il est présenté comme meilleur que FunctionGemma-270m, Qwen-0.6B, Graninte-350m et LFM2.5-350m, mais ces modèles couvrent un champ plus large, disposent d’une plus grande capacité et excellent dans des configurations conversationnelles
  • Les petits modèles pouvant être délicats à manier, il est recommandé d’utiliser le web UI fourni pour tester avec ses propres outils et effectuer un fine-tuning personnalisé en cliquant sur un bouton
  • needle playground ouvre le web UI sur http://127.0.0.1:7860, et les poids sont téléchargés automatiquement pour les tests et le fine-tuning
  • En Python, on peut utiliser SimpleAttentionNetwork, load_checkpoint, generate et get_tokenizer pour injecter une requête et un schéma d’outils afin de générer un JSON d’appel d’outil comme get_weather
  • La CLI propose playground, finetune, run, train, pretrain, eval, tokenize, generate-data et tpu pour l’inférence, l’entraînement, l’évaluation, la génération de données et la gestion des TPU
  • La configuration du modèle est d=512, 8H/4KV, BPE=8192, avec 12 couches d’encodeur et 8 couches de décodeur, ainsi que GQA+RoPE, cross attention, gated residual, tied linear et shared embedding

1 commentaires

 
GN⁺ 2 시간 전
Avis sur Hacker News
  • Je me demande s’il existe des exemples ou des données sur la capacité de discernement des modèles utilisant des outils
    Un exemple serait quelque chose comme « Quel temps fait-il à San Francisco ? », avec un outil fourni du type tools='[{"name":"get_weather","parameters":{"location":"string"}}]'
    J’ai construit il y a plus de 10 ans quelque chose[1] qui pouvait traiter ce genre de problème avec SPARQL et des graphes de connaissances
    Ce qui m’intéresse vraiment, c’est de savoir à quel point la gestion de l’ambiguïté fonctionne bien
    Si on envoie un message comme « On se voit demain à 10 h pour prendre un café » et une commande comme « sauvegarde ça », je me demande si le modèle peut choisir l’action « ajouter à l’agenda » parmi des dizaines d’outils possibles, sinon des centaines
    [1] https://github.com/nlothian/Acuitra/wiki/About

    • J’ai essayé avec le modèle lié plus bas sur Hugging Face, et ce n’était pas impressionnant
      Le prompt était « Je dois prévenir mon patron que je vais être en retard », et le résultat a été 20mins [{"name":"set_timer","arguments":{"time_human":"20 minutes"}}]
      Il n’a pas utilisé l’outil e-mail, et c’était similaire même en le formulant de 2 ou 3 autres façons
  • Je me demande s’il n’y a pas lieu de s’inquiéter de la réaction de Google
    Google indique répondre aux tentatives de distillation par des « défenses proactives en temps réel pouvant dégrader les performances du modèle étudiant »
    S’ils l’ont détecté, ils ont peut-être délibérément servi une variante de Gemini plus stupide mais plausible : https://cloud.google.com/blog/topics/threat-intelligence/dis...
    Cela dit, comme ce modèle est petit et uniquement axé sur l’usage d’outils, il est probablement loin des volumes de tokens consommés par ceux qui essaient de distiller un modèle complet

    • On pourrait aussi distiller à partir d’un modèle Gemma exécuté en local, ou d’autres modèles capables d’utiliser des outils
    • Du point de vue des données d’entraînement, ça ressemble un peu à voler un voleur
  • On pourrait peut-être désormais créer une sorte de programme en ligne de commande capable de sélectionner des arguments de manière optionnelle à partir du langage naturel
    Bien sûr, beaucoup s’opposeront à l’idée d’ajouter 14 Mo et du calcul juste pour faire du « parsing », et si tout le monde se met à faire ça, ce pourrait être assez mauvais
    Mais le simple fait que ce soit désormais possible est vraiment intéressant
    On pourrait embarquer avec le programme un modèle finement ajusté pour comprendre son mode d’emploi
    Par exemple, > toolcli what can you do exécuterait toolcli --help summary, et toolcli add tom to teamfutz group deviendrait toolcli --gadd teamfutz tom

    • Needle a été entraîné pour INT4, et ce qu’on voit dans le playground est aussi en INT4, donc ça ne fait que 14 Mo
      Cela dit, la même difficulté de fond reste entière
  • Ce serait bien de publier une démo live du « needle playground »
    Vu sa petite taille, le coût pour le faire tourner quelque part sur un petit VPS devrait être assez faible

    • Ça devrait aussi être rapide et facile via WebGPU
    • Le problème, c’est seulement la montée en charge, et l’infrastructure prête à l’emploi n’est pas encore en place
      Cela dit, n’importe qui peut le faire, et c’est aussi facile à exécuter directement sur un laptop
      Je vais aussi essayer la piste VPS
    • Je vais essayer de le mettre sur chonklm.com
  • L’observation selon laquelle les tâches de recherche n’ont pas besoin de FFN est intéressante
    Si la connaissance se trouve dans le contexte, cela revient presque à dire que les poids FFN sont redondants pour cette tâche
    Je me demande si cela se généralise aussi aux appels d’outils multi-tours où il faut suivre l’état sur plusieurs appels, ou si ça casse à ce niveau-là
    Un appel unique, c’est le cas facile

  • C’est intéressant, et cela correspond aussi à ce que j’avais observé au début de Claude Code
    Sonnet appelait souvent rapidement des outils pour rassembler davantage de contexte, alors qu’Opus avait tendance à raisonner plus longtemps avec le contexte déjà disponible pour résoudre le problème
    Cela a créé beaucoup de fonctions redondantes et ralenti le développement, mais avec les nouveaux modèles, GPT-5.5 et Opus 4.6, ce problème semble s’être atténué
    Ma conclusion est qu’un modèle « plus bête », donc plus petit, pourrait être meilleur comme coquille d’exécution d’agent, ou au moins plus réaliste à faire tourner, moins cher et plus vite, pour beaucoup de problèmes
    Je n’ai pas eu l’impression que Gemini était particulièrement bon pour de longues séquences d’appels d’outils
    Ce serait intéressant de distiller des traces de longues chaînes d’appels d’outils entre des requêtes utilisateur, comme dans de vraies sessions Codex ou Claude Code
    Personnellement, j’aimerais un modèle un peu plus grand, facile à faire tourner sur une machine du type MacBook Pro M2 32 Go, et visant principalement le renforcement par apprentissage pour l’appel d’outils
    Les modèles à poids ouverts comme Kimi ou Qwen s’en rapprochent, mais la quantification nécessaire pour les faire tenir sur de petites machines semble faire assez mal aux performances

    • Le point clé, c’est de ne pas faire tourner le LLM dans une boucle itérative
      La mode actuelle des frameworks d’agents est stupide, et j’ai l’impression qu’elle existe surtout pour augmenter le chiffre d’affaires des entreprises de LLM
      Les LLM ont en général une utilité limitée, mais combinés à un seul usage d’outil, ils deviennent bien plus utiles et fiables
      J’utilise moi-même, au-dessus de l’API openrouter, un ensemble d’outils très ciblé pour des tâches précises
      On appuie sur un bouton, et le LLM fait une chose utile, pas on appuie sur un bouton puis on espère que le LLM boucle sur des appels d’outils pendant 5 minutes en les enchaînant dans le bon ordre
      Si plusieurs appels d’outils sont nécessaires, je les relie de manière déterministe dans le code
      On peut vérifier la sortie de A avant de passer à B ou C, c’est donc bien plus fiable, et aussi plus efficace en temps et en tokens
      Les boucles d’agents ressemblent à une énorme arnaque
    • J’aimerais que les grandes entreprises de l’IA arrêtent de passer leur temps à combler les lacunes de leurs propres « outils » qu’elles ont laissées telles quelles
      Je ne vois pas pourquoi ce serait à nous de faire tous ces efforts pour que « ça marche » tant bien que mal
      Google, MS, Meta, OpenAI, etc. essaient maintenant d’appeler discrètement leurs outils « Intelligence », alors que ce n’est même pas de « l’Artificial Intelligence » ; dans ce cas, pourquoi ce n’est ni intelligent ni fonctionnel ?
      Plus de mille milliards de dollars ont été investis, et pourtant nous devons encore réfléchir aux meilleurs sorts et réglages pour qu’un générateur de bouillie produise des sorties à moitié valables
      Et cela alors même que certains leaders technologiques nous menacent ouvertement de nous soumettre à leur étrange vision de la « civilisation »
      J’ai l’impression que nous avons de meilleures façons d’utiliser notre cerveau que de nous rabaisser au rôle d’assistants impuissants d’oracles magiques
  • Le résultat de l’expérience Cactus selon lequel « tant que le modèle dépend de sources de connaissances externes, on peut supprimer complètement les MLP d’un réseau de transformers » est amusant
    Justement, l’un de mes étudiants a présenté aujourd’hui un résultat de recherche confirmant cela
    En supprimant les MLP dans Qwen, le modèle pouvait encore effectuer des opérations de transformation sur l’entrée, mais il perdait ses connaissances

  • La différence entre M et B est beaucoup trop subtile
    Je suggère d’écrire 0,026B à la place

    • La notation en « M » existe au moins depuis l’époque de BERT et de T5/FLAN
      Même si les développeurs LLM d’aujourd’hui sont plus habitués aux modèles comptés en milliards, cette notation reste valable
    • Beaucoup de commentaires sous ce billet m’avaient trop embrouillé, mais grâce à ça j’ai compris que certains l’avaient lu comme 26B, ce qui expliquait pourquoi les commentaires n’avaient aucun sens
  • Prometteur, excellent travail
    Les modèles edge de Gemma4 étaient censés être bons pour l’usage agentique, mais dans tous les tests que j’ai faits, ils ont été vraiment décevants
    Ils échouent même dans les scénarios d’usage d’outils les plus basiques
    Je me demande si vous avez exécuté, ou si vous prévoyez d’exécuter, des benchmarks d’usage d’outils pour Needle
    Si oui, ce serait bien d’ajouter les résultats au dépôt

  • Je viens d’essayer la configuration d’une alarme et l’ajout à une liste de courses, et il a fait mieux que Siri