paint-brush
Comment gérer votre propre LLM local (mis à jour pour 2024)par@thomascherickal
17,060 lectures
17,060 lectures

Comment gérer votre propre LLM local (mis à jour pour 2024)

par Thomas Cherickal8m2024/03/21
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

L'article fournit des guides détaillés sur l'utilisation locale de modèles d'IA générative tels que Hugging Face Transformers, gpt4all, Ollama et localllm. Apprenez à exploiter la puissance de l'IA pour des applications créatives et des solutions innovantes.

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Comment gérer votre propre LLM local (mis à jour pour 2024)
Thomas Cherickal HackerNoon profile picture
0-item

Depuis https://wallpapers.com/wallpapers/theoretical-physics-green-particles-ht1c16rgtu5ilkhc.html


C'est l'année charnière pour l'IA générative


Bien; pour le moins, cette année, j'ai eu l'embarras du choix quant à la manière de gérer un modèle LLM localement.


Commençons:


1) Transformateurs HuggingFace :

Toutes les images créées par Bing Image Creator

Pour exécuter Hugging Face Transformers hors ligne sans accès à Internet, suivez ces étapes : Installez Transformers avec les dépendances nécessaires tout en vous assurant de ne pas compter sur les mises à jour automatiques lors de l'installation. Vous pouvez installer via pip ou conda comme décrit dans la documentation Hugging Face


 pip install transformers==4.xy

Chargez des modèles pré-entraînés à partir de votre ordinateur local après les avoir téléchargés depuis Hugging Face Hub avec accès à Internet. Enregistrez le modèle à l'aide de save_pretrained(), puis chargez-le ultérieurement en mode hors ligne.

 from transformers import AutoModelForSequenceClassification, BertTokenizerFast

Pour la première fois, téléchargez et enregistrez le modèle

 model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") model.save_pretrained("/my/local/directory/bert-base-uncased")

Plus tard, chargez le modèle enregistré hors ligne

 model = AutoModelForSequenceClassification.from_pretrained("/my/local/directory/bert-base-uncased") tokenizer = BertTokenizerFast.from_pretrained("/my/local/directory/bert-base-uncased")


Définissez les variables d'environnement TRANSFORMERS_OFFLINE et HF_DATASETS_OFFLINE pour activer l'utilisation hors ligne.

 export TRANSFORMERS_OFFLINE=1 export HF_DATASETS_OFFLINE=1

Clonez directement le référentiel de modèles si vous préférez ne pas télécharger de fichiers individuels.


 git clone https://huggingface.co/<username>/<repository> /my/local/directory


Assurez-vous que tous les fichiers nécessaires sont présents dans le répertoire dans lequel vous prévoyez d'exécuter vos scripts. N'oubliez pas que définir TRANSFORMERS_OFFLINE sur 1 seul ne fonctionnera pas si le modèle n'est pas déjà disponible localement. Vous devez soit télécharger le modèle avec un accès Internet et l'enregistrer localement, soit cloner le référentiel de modèles.




2) gpt4all


gpt4all est un projet open source qui permet à quiconque d'accéder et d'utiliser de puissants modèles d'IA comme GPT-3. Voici les instructions étape par étape pour installer et utiliser gpt4all :

  1. Installation:
  • gpt4all nécessite Python 3.7 ou supérieur et quelques dépendances de packages Python. Le moyen le plus simple d'installer gpt4all est via pip :
 pip install gpt4all
  1. Obtenez une clé API :
  • Vous avez besoin d'une clé API pour accéder aux modèles via gpt4all. Vous pouvez obtenir une clé API gratuite en vous inscrivant sur https://platform.openai.com .
  1. Configurer l'authentification :
  • Une fois que vous avez votre clé API, définissez une variable d'environnement nommée OPENAI_API_KEY avec votre clé API comme valeur.
 export OPENAI_API_KEY="YOUR_API_KEY_HERE"
  1. Utilisez gpt4all :
  • Vous êtes maintenant prêt à utiliser gpt4all en Python pour accéder à GPT-3 et à d'autres modèles. Voici un exemple invitant Davinci (une version de GPT-3) à résumer un passage de texte :
 from gpt4all import completions summary = completions.generate(engine="text-davinci-003", prompt="Summarize this text: [insert long text here]", max_tokens=50) print(summary.text)
  • Reportez-vous à la documentation de gpt4all pour plus d'exemples sur la façon d'utiliser différents modèles


3) ollamma


Ollamma est une bibliothèque open source qui offre un accès facile à de grands modèles de langage comme GPT-3. Voici les détails sur la configuration système requise, l'installation et l'utilisation :

Configuration requise:

  • Python 3.7 ou supérieur
  • Bibliothèque de requêtes
  • Clé API OpenAI valide

Installation:

 pip install ollamma

Usage:

  1. Définir la clé API
 import os os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
  1. Importer et créer le client
 from ollamma import Client client = Client()
  1. Générer du texte
 response = client.generate( engine="text-davinci-003", prompt="Hello world", max_tokens=100 ) print(response.generations[0].text)

La méthode generate vous permet de spécifier le moteur, l'invite et les paramètres tels que le nombre maximum de jetons pour configurer votre demande.

Vous pouvez également affiner les moteurs, modérer le contenu, etc. Reportez-vous à la documentation Ollamma pour plus de détails sur toutes les méthodes disponibles.

Donc, en résumé, Ollamma permet d'exploiter très facilement GPT-3 et d'autres modèles en quelques lignes de code Python une fois installés et configurés !


4)LM Studio


LM Studio est un outil open source qui rationalise le processus de formation, d'évaluation et d'utilisation locale de modèles linguistiques de pointe. Voici les étapes pour faire fonctionner LM Studio localement :


  1. Installation:
    LM Studio nécessite Docker et Docker Compose. À installer:

un. Installez Docker Engine et Docker Compose sur votre machine
b. Clonez le dépôt GitHub de LM Studio :
git clone https://github.com/lm-studio/lm-studio.git


  1. Configuration:
    LM Studio s'appuie sur les fichiers de configuration sous le dossier config/ . Les fichiers courants incluent :

un. model.yaml : spécifier les architectures de modèles
b. training.yaml : définir les paramètres d'entraînement
c. evaluation.yaml : ajuster les paramètres d'évaluation


  1. Exécution de LM Studio :
    L'interface principale se fait via Docker Compose. Quelques commandes courantes :

un. Construire des images : docker-compose build
b. Démarrez tous les services : docker-compose up -d
c. Afficher les journaux : docker-compose logs -f
d. Arrêter les services : docker-compose down


Les services exposent divers ports que vous pouvez utiliser pour interagir avec l'interface utilisateur, les API, les blocs-notes, etc.

En résumé, LM Studio rationalise l'expérimentation de modèles de langage local. Les utilisateurs doivent simplement cloner le dépôt, configurer les fichiers de paramètres et utiliser des commandes Docker simples pour commencer la formation, l'évaluation et l'utilisation des modèles.


5) localllm


Je trouve que c’est le moyen le plus pratique et le plus simple de tous. L’explication complète est donnée sur le lien ci-dessous :

https://cloud.google.com/blog/products/application-development/new-localllm-lets-you-develop-gen-ai-apps-locally-without-gpus

Résumé:

localllm combiné à Cloud Workstations révolutionne le développement d'applications basées sur l'IA en vous permettant d'utiliser les LLM localement sur le processeur et la mémoire au sein de l'environnement Google Cloud. En éliminant le besoin de GPU, vous pouvez surmonter les défis posés par la rareté des GPU et libérer tout le potentiel des LLM. Avec une productivité améliorée, une rentabilité et une sécurité des données améliorées, localllm vous permet de créer facilement des applications innovantes.


6) lamma.cpp

Pour installer et utiliser Llama.cpp pour la formation et l'inférence locales, procédez comme suit :

Installer les dépendances :

 Python 3 CMake Optional (for GPU acceleration) NVIDIA drivers, CUDA, and cuDNN For Windows, use Visual Studio Community with Desktop C++ Environment and Python 3 Clone the repository:

git clone --recursive https://github.com/abetlen/llama-cpp-python.git Si vous souhaitez utiliser l'accélération GPU, définissez la variable d'environnement comme décrit dans le dépôt (par exemple, sous Linux) :

 export CMAKE_ARGS="-DLLAMA_CUBLAS=ON" Install Llamma.cpp:

Pour la compilation locale et la compilation du système :

 cd llama-cpp-python pip install -e . For Windows, or if you want prebuilt binaries, consider the following: No GPU support: pip install llama-cpp-python[server]

En option, pour utiliser une interface de haut niveau, à l'aide de la commande :

 python -m llama_cpp.server --model models/7B/llama-model.gguf With GPU support: set FORCE_CMAKE=1 set CMAKE_ARGS=-DLLAMA_CUBLAS=ON pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

Facultatif, pour Windows, pour utiliser une interface de haut niveau :

 python -m llama_cpp.server --model "path/to/your/model" Download and place Llama models in the models/ subdirectory within the Llama.cpp repository if they are not included (models like llama-model.gguf or ggml-* files are available on Hugging Face or GGML).


Testez l'installation :


 The llama_cpp/llama_cpp.py script provides a simple high-level interface in Python. Replace llama-model.gguf with your downloaded Llama model to test inference. If you want to train your own Llama model, you'll need to train it according to the official documentation and manually convert the GGML files into GGUF files (for GPU deployment).



7) Oobagooba

Il s'agit d'une implémentation open source gradio d'un webui pour générer du texte à l'aide de langchain.


Quelques extraits du fichier README.md :

génération de texte-webui-extensions

Ceci est un répertoire d'extensions pour https://github.com/oobabooga/text-generation-webui

Si vous créez votre propre extension, vous êtes invités à la soumettre à cette liste dans un PR.

memoire à long terme

Une extension sophistiquée qui crée une mémoire à long terme pour les robots en mode chat.

https://github.com/wawawario2/long_term_memory

AllTalk TTS

AllTalk est basé sur le moteur Coqui TTS, similaire à l'extension Coqui_tts pour l'interface Web de génération de texte, mais prend cependant en charge une variété de fonctionnalités avancées.

  • Paramètres de démarrage personnalisés : ajustez vos paramètres de démarrage par défaut. Capture d'écran
  • Narrarateur : utilisez des voix différentes pour le personnage principal et la narration. Exemple de narration
  • Mode VRAM faible : idéal pour les personnes disposant d'une petite mémoire GPU ou si votre VRAM est remplie par votre LLM. Capture d'écran
  • DeepSpeed : une amélioration des performances 3 à 4x générant du TTS. Instructions DeepSpeed pour Windows/Linux Capture d'écran
  • Modèles locaux/personnalisés : utilisez l'un des modèles XTTSv2 (API Local et XTTSv2 Local).
  • Maintenance facultative des fichiers wav : suppression configurable des anciens fichiers wav de sortie. Capture d'écran
  • Réglage fin Entraînez le modèle spécifiquement sur une voix de votre choix pour une meilleure reproduction.
  • Documentation : Entièrement documenté avec une page Web intégrée. Capture d'écran
  • Sortie de la console Effacer la sortie de la ligne de commande pour tout avertissement ou problème.
  • Suite API et prise en charge de tiers via des appels JSON. Peut être utilisé avec des applications tierces via des appels JSON.
  • Peut être exécuté en tant qu'application autonome, pas seulement à l'intérieur de Text-Generation-Webui.

https://github.com/erew123/alltalk_tts

BordGPT

Extension pour Webui de génération de texte basée sur EdgeGPT par acheong08, pour un accès Internet rapide pour votre bot.

https://github.com/GiusTex/EdgeGPT

XTTSv2

Une variante de l'extension coqui_tts dans le référentiel principal. Les deux utilisent le modèle XTTSv2, mais celui-ci dispose d'une fonctionnalité « narrateur » pour le texte écrit *entre astérisques*.

https://github.com/kanttouchthis/text_generation_webui_xtts

Terrain de jeu pour les écrivains

Cette extension fournit un bloc-notes avancé indépendant qui sera toujours présent depuis l'onglet supérieur. Il possède de nombreuses fonctionnalités introuvables dans le notebook :

  • Deux Notebooks A et B indépendants et toujours présents, quel que soit le mode
  • Instruire en ligne (possibilité de poser des questions ou de confier une tâche à partir du texte lui-même)
  • Sélectionner et insérer - générer du texte au milieu de votre texte
  • Mémoire permanente, résumé, paraphrase
  • LoRA-Rama - affiche les points de contrôle LoRA et la possibilité de basculer entre eux
  • Mise à l'échelle LoRA (expérimentale) - ajustez l'impact LoRA à l'aide d'un curseur

https://github.com/FartyPants/Playground

Et il y a encore bien d’autres choses à explorer : Découvrez :

https://github.com/oobabooga/text-generation-webui-extensions



Conclusion?


Et il y a plus ! Tellement plus! LangChain, llm, ollamma, la liste ne cesse de s'allonger !

En route pour une glorieuse année de belle créativité. Acclamations!