llm.pdf : projet expérimental visant à exécuter un modèle de langue à grande échelle dans un fichier PDF

Introduction générale

llm.pdf est un projet open source qui permet aux utilisateurs d'exécuter de grands modèles de langage (LLM) directement dans des fichiers PDF. Développé par EvanZhouDev et hébergé sur GitHub, ce projet fait preuve d'une approche innovante : par le biais d'Emscripten, l'utilisateur peut utiliser des modèles de langage de grande taille (LLM) directement dans des fichiers PDF. llama.cpp Compilez-le en asm.js et combinez-le avec la fonction d'injection JavaScript de PDF, de sorte que le processus d'inférence de LLM puisse être réalisé entièrement dans des fichiers PDF. Le projet prend en charge les modèles quantitatifs au format GGUF et recommande l'utilisation de modèles quantitatifs Q8 pour de meilleures performances. Les utilisateurs peuvent générer un fichier PDF contenant le LLM via le script Python fourni, qui est simple et efficace. Ce projet est une preuve de concept démontrant la faisabilité de l'exécution de modèles d'IA complexes dans un environnement non traditionnel pour les développeurs et les chercheurs intéressés par les technologies d'IA et de PDF.

llm.pdf:在PDF文件中运行大型语言模型的实验项目

Expérience : https://evanzhoudev.github.io/llm.pdf/

 

Liste des fonctions

  • Exécutez de grands modèles linguistiques dans les fichiers PDF pour faciliter la génération de texte et l'interaction.
  • Compiler llama.cpp en asm.js à l'aide d'Emscripten pour mettre en œuvre l'inférence de modèle dans un environnement de navigateur.
  • Les modèles quantitatifs au format GGUF sont pris en charge, et la quantification Q8 est recommandée pour augmenter la vitesse d'exécution.
  • Fournir des scripts Python generatePDF.pyIl est utilisé pour générer des fichiers PDF contenant des LLM.
  • Prise en charge de l'intégration des fichiers de modèles dans les PDF via l'encodage base64, ce qui simplifie la distribution et l'utilisation.
  • Des tutoriels vidéo sur YouTube sont fournis pour montrer en détail comment le projet est construit et comment l'utiliser.
  • Code source ouvert, permettant à l'utilisateur de personnaliser et d'étendre les fonctionnalités.

 

Utiliser l'aide

Installation et préparation de l'environnement

Pour utiliser le projet llm.pdf, les utilisateurs doivent préparer un environnement qui supporte Python 3 et installer les dépendances nécessaires. Voici les étapes détaillées de l'installation :

  1. Clonage de l'entrepôt de projets
    Ouvrez un terminal et exécutez la commande suivante pour cloner le dépôt llm.pdf :

    git clone https://github.com/EvanZhouDev/llm.pdf.git
    cd llm.pdf
  1. Installation des dépendances de Python
    Le projet s'appuie sur un environnement Python, Python 3.8 ou supérieur est recommandé. Aller à scripts installez les bibliothèques nécessaires :

    cd scripts
    pip install -r requirements.txt
    

    Assurez-vous que Emscripten et les autres outils de compilation nécessaires sont installés. Si Emscripten n'est pas installé, reportez-vous à sa documentation officielle pour le configurer.

  2. Préparation du modèle GGUF
    llm.pdf ne prend en charge que les modèles quantitatifs au format GGUF. Les modèles quantitatifs Q8 sont recommandés pour de meilleures performances. Les utilisateurs peuvent télécharger des modèles GGUF à partir de Hugging Face ou d'autres référentiels de modèles tels que TinyLLaMA ou d'autres petits LLM. Les fichiers de modèles doivent être sauvegardés localement, par ex. /path/to/model.gguf.
  3. Générer des fichiers PDF
    Le projet fournit un script Python generatePDF.py Permet de générer un fichier PDF contenant le LLM. Exécutez la commande suivante :

    python3 generatePDF.py --model "/path/to/model.gguf" --output "/path/to/output.pdf"
    
    • --model: Spécifie le chemin d'accès au modèle GGUF.
    • --outputSpécifiez le chemin d'accès pour l'enregistrement du fichier PDF généré.
      Le script intègre le fichier de modèle au format PDF via l'encodage base64 et injecte le code JavaScript nécessaire à l'exécution de l'inférence. Le processus de génération peut prendre quelques minutes, en fonction de la taille du modèle et des performances de l'appareil.
  4. Exécution de fichiers PDF
    Le fichier PDF généré peut être ouvert dans un lecteur de PDF compatible avec JavaScript, tel qu'Adobe Acrobat ou le visionneur de PDF d'un navigateur moderne. Une fois le PDF ouvert, le modèle se charge automatiquement et exécute le raisonnement. L'utilisateur peut saisir du texte via l'interface PDF et le modèle génère la réponse appropriée. Note : En raison des limitations de performance, le modèle paramétrique 135M génère une réponse pour chaque jeton Cela prend environ 5 secondes.

Fonction en vedette Fonctionnement

  • Génération de texte
    Dans le fichier PDF, l'utilisateur peut interagir avec le LLM par le biais d'une zone de saisie de texte. Après avoir saisi une invite, le modèle génère une réponse jeton par jeton. Il est recommandé d'utiliser des invites courtes pour réduire le temps d'inférence. Par exemple, si vous entrez "Écrire une courte phrase sur les chats", le modèle peut répondre "Les chats aiment chasser les boules de poils". Le texte généré s'affiche dans la zone de sortie du PDF.
  • Sélection et optimisation des modèles
    Le projet prend en charge une variété de modèles GGUF, et les utilisateurs peuvent choisir différentes tailles en fonction de leurs besoins. Le modèle quantitatif Q8 est le choix recommandé car il établit un équilibre entre la performance et la vitesse. Si les utilisateurs ont besoin d'une réponse plus rapide, ils peuvent essayer des modèles plus petits (par exemple, les paramètres 135M), mais la qualité de la génération peut être légèrement inférieure.
  • Extensions personnalisées
    llm.pdf est un projet open source, les utilisateurs peuvent modifier le fichier scripts/generatePDF.py ou du code JavaScript injecté pour mettre en œuvre des fonctionnalités personnalisées. Par exemple, pour ajouter de nouvelles interfaces interactives ou pour prendre en charge d'autres formats de modèles. Les utilisateurs doivent être familiarisés avec l'API JavaScript pour Emscripten et PDF.

mise en garde

  • Exigences de performanceLes ressources informatiques nécessaires pour exécuter l'inférence LLM en PDF sont plus importantes. Il est recommandé d'utiliser un appareil doté d'au moins 8 Go de RAM.
  • Compatibilité des modèlesModèles quantitatifs : Seuls les modèles quantitatifs au format GGUF sont pris en charge. Les modèles non quantitatifs ou les formats non GGUF entraîneront un échec de la génération.
  • Compatibilité avec les navigateursCertains navigateurs plus anciens peuvent ne pas prendre en charge asm.js. Nous vous recommandons donc d'utiliser la dernière version de Chrome ou de Firefox.
  • ajuster les composants pendant les essaisSi le fichier PDF ne fonctionne pas, vérifiez le journal du terminal ou les outils de développement de votre navigateur (F12) pour voir s'il y a des erreurs JavaScript.

Ressources pédagogiques

Le projet fournit un tutoriel vidéo YouTube qui explique en détail le processus de construction de llm.pdf. Les utilisateurs peuvent consulter le README dans le dépôt GitHub ou le fichier docs pour plus de documentation. Les discussions de la communauté peuvent être trouvées sur la page GitHub Issues, où les développeurs peuvent poser des questions ou contribuer au code.

 

scénario d'application

  1. Vitrine technologique de l'IA
    llm.pdf peut être utilisé pour démontrer aux clients ou aux étudiants la capacité des modèles d'IA à fonctionner dans des environnements non traditionnels. Par exemple, lors d'une conférence technique, les développeurs peuvent ouvrir le PDF et démontrer les capacités de génération de texte de LLM en temps réel, soulignant ainsi la portabilité et l'innovation de l'IA.
  2. Éducation et recherche
    Les étudiants et les chercheurs peuvent utiliser llm.pdf pour apprendre le processus d'inférence de LLM avec la fonctionnalité JavaScript du PDF. Le projet fournit une plateforme pratique pour aider les utilisateurs à comprendre le rôle de la quantification du modèle et la façon dont Emscripten est compilé.
  3. Déploiement de l'IA hors ligne
    Dans les environnements où le réseau est limité, llm.pdf permet de déployer l'IA sans serveur. Les utilisateurs peuvent intégrer des modèles dans des PDF et les distribuer à d'autres personnes pour la génération de texte et l'interaction hors ligne.

 

QA

  1. Quels sont les modèles pris en charge par llm.pdf ?
    llm.pdf ne prend en charge que les modèles quantifiés au format GGUF. Les modèles quantifiés Q8 sont recommandés pour une meilleure performance. Les utilisateurs peuvent télécharger des modèles compatibles à partir de Hugging Face.
  2. Pourquoi les fichiers PDF générés sont-ils lents ?
    L'inférence LLM peep en PDF est limitée par la performance du navigateur et la taille du modèle. Les modèles à 135M paramètres prennent environ 5 secondes par jeton. Il est recommandé d'utiliser le modèle quantitatif Q8 et de l'exécuter sur un appareil très performant.
  3. Ai-je besoin d'une connexion Internet pour utiliser llm.pdf ?
    Pas nécessaire. Après avoir généré le PDF, le modèle et le code d'inférence sont intégrés dans le fichier et peuvent être exécutés hors ligne. Cependant, le processus de génération du PDF nécessite une connexion internet pour télécharger les dépendances.
  4. Comment déboguer les erreurs dans les fichiers PDF ?
    Utilisez les outils de développement de votre navigateur (F12) pour vérifier les erreurs JavaScript lors de l'ouverture des fichiers PDF. Voir aussi generatePDF.py du journal du terminal.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...