15 points par GN⁺ 2025-02-28 | 1 commentaires | Partager sur WhatsApp
  • Mise en œuvre d’un agent de recherche de type Deep Research à l’aide de modèles et d’outils open source (Milvus, LangChain, etc.)
  • Les exemples de structures d’agents capables d’effectuer automatiquement une recherche approfondie sur un sujet ou une question via la recherche web et documentaire, tout en choisissant des actions à chaque étape intermédiaire (recherche, synthèse, etc.), se sont multipliés
  • L’article présente le projet open source DeepSearcher, qui pousse plus loin cette idée. Il présente notamment le query routing, les flux d’exécution conditionnels et l’utilisation d’outils de web crawling
  • DeepSearcher est proposé sous forme de bibliothèque Python et de CLI, permettant d’ingérer plusieurs documents sources et d’ajuster simplement via des fichiers la configuration du modèle d’embedding et de la base de données vectorielle
  • Bien que simple, il s’agit d’un exemple démontrant un RAG basé sur des agents, qui peut servir de point de départ vers le développement de véritables applications d’IA
  • L’accent est mis en particulier sur les problèmes de vitesse et d’efficacité des modèles de raisonnement : le processus de requête et de recherche nécessite la génération de nombreux tokens, ce qui fait des ressources d’inférence le principal goulet d’étranglement
  • En utilisant le DeepSeek-R1 reasoning model, exécuté sur le matériel sur mesure de SambaNova, la vitesse de génération de tokens par seconde est annoncée comme supérieure à celle des services concurrents
  • Ces services d’inférence cloud permettent également une inférence efficace pour divers modèles comme Llama 3.x, Qwen2.5 et QwQ

Définition et subdivision des questions

  • La requête initiale de l’utilisateur est décomposée en sous-requêtes détaillées
  • Comme dans l’article précédent, une requête telle que "How has The Simpsons changed over time?" est divisée en plusieurs sous-requêtes comme ci-dessous
    • Exemples : impact culturel et sociétal de l’œuvre, évolution des personnages, de l’humour et de la narration selon les saisons, changements dans l’animation et les techniques de production, évolution des réactions du public, etc.
  • Si nécessaire dans les étapes suivantes, les questions peuvent aussi être redéfinies ou étendues

Recherche et analyse

  • À partir des sous-requêtes, le système passe par des étapes de query routing, de recherche vectorielle, de réflexion (reflection) et de boucles conditionnelles
  • Query routing
    • Le prompt est conçu pour permettre au LLM de décider quelle collection utiliser parmi plusieurs collections de bases de données
    • Une réponse au format JSON est reçue, puis des requêtes de recherche sont générées pour chaque collection
  • Recherche vectorielle
    • Une recherche par similarité est exécutée à partir des embeddings stockés dans Milvus
    • Comme dans l’article précédent, les données sources sont préalablement segmentées et vectorisées
  • Réflexion (reflection)
    • Le LLM vérifie, à partir des questions et réponses issues de l’étape précédente, si des informations supplémentaires sont nécessaires
    • S’il manque certains éléments, il génère de nouvelles sous-requêtes et relance la recherche
  • Boucles conditionnelles
    • Si la réflexion conclut qu’une requête supplémentaire est nécessaire, le processus ci-dessus est répété
    • Si le système juge qu’il n’est plus nécessaire de collecter davantage d’informations, il passe à l’étape de génération du rapport final

Génération du rapport final

  • Un rapport est généré à partir de toutes les sous-requêtes et de tous les résultats de recherche, réunis dans un seul prompt
  • Le rapport obtenu présente une cohérence et une unité supérieures à celles de la démonstration précédente
  • Par exemple, le rapport final pour “How has The Simpsons changed over time?” fournit des détails selon une structure comme celle-ci
      1. Influence culturelle et pertinence sociale
      1. Évolution des personnages, de l’humour et de la trame narrative
      1. Évolution de l’animation et des aspects techniques
      1. Évolution du public, des réactions et de l’audience
    • Conclusion : comment l’œuvre est passée d’une satire rebelle à une icône populaire, entre autres
  • Il est possible de comparer la version générée avec le modèle DeepSeek-R1 et celle générée avec le modèle GPT-4o mini

Orientations futures

  • DeepSearcher reste encore simple, mais il peut évoluer davantage grâce à des configurations d’agents supplémentaires, à une structuration plus poussée des rapports et à l’extension des boucles conditionnelles
  • Les grands modèles de raisonnement impliquent des calculs extrêmement lourds, si bien que la vitesse d’inférence et le coût deviennent des enjeux centraux du service
  • Avec le modèle DeepSeek-R1 de SambaNova, 65 appels d’inférence, environ 25k tokens d’entrée et 22k tokens de sortie ont été utilisés, avec un coût d’environ 0,30 dollar pour obtenir une réponse jugée suffisamment rapide
  • Le projet peut être testé directement via le dépôt DeepSearcher, et d’autres fonctionnalités ainsi que de nouveaux cas d’usage devraient continuer à être partagés à l’avenir

1 commentaires

 
GN⁺ 2025-02-28
Avis Hacker News
  • Ce système n’utilise pas de LLM local, donc ce n’est pas un véritable système local

    • Je me demande s’il existe un moteur de recherche approfondie capable d’utiliser des LLM locaux hébergés par Ollama et LM Studio
  • Je serais curieux de voir une comparaison avec la version open source de HuggingFace

    • La version HF utilise un LLM de raisonnement qui explore le web, collecte les résultats, les évalue, puis synthétise le résultat final
    • Cette version semble montrer un magasin de vecteurs des documents générés par le web crawling
  • La magie de l’implémentation de Grok vient en grande partie du fait qu’il met en cache la majorité des sites web, ce qui donne une impression de grande rapidité

    • La recherche Bing/Brave ne semble pas offrir cette fonctionnalité
    • Je me demande si un tel service existe
  • J’aime les différentes approches de Deep Research

    • J’essaie actuellement de nouveaux workflows avec Flow
  • Il y a deux billets de blog liés

    • Ils partagent leur expérience de construction de Deep Research avec de l’open source
  • Puisque les principales entreprises d’IA ont créé le même produit Deep Research, il serait logique de se concentrer sur une plateforme open source partagée

  • Je me demande ce que signifie concrètement l’intégration du web crawling

    • En théorie, je me demande si cela pourrait servir à lire des articles sur Sci-Hub et à produire une recherche valide de niveau master ou doctorat
    • Cela pourrait être utile pour comparer des rapports rédigés avec DeepSeek R1, GPT-4o et d’autres grands modèles
    • Le code open source pourrait révéler plus vite les limites de différents LLM et aider à développer de meilleures boucles de raisonnement adaptées à des besoins spécifiques
  • Je cherchais un outil de Deep Research capable de se connecter à mes notes personnelles (Obsidian) et au web

    • Cet outil semble avoir cette fonctionnalité
    • Il ne reste plus qu’à trouver comment exporter les résultats de Deep Research vers Obsidian
  • Je l’ai effectivement essayé et j’ai rencontré quelques problèmes, ce qui m’a obligé à remplacer les embeddings de texte openAI par MilvusEmbedding

    • La réaction au QuickStart a été bonne
  • La véritable solution miracle, c’est de rechercher dans lib-gen et sci-hub