Running Llama 2 et d'autres LLM open source sur l'inférence CPU localement pour le document Q&R
Clairement expliqué Guide pour exécuter des applications LLM open-source quantifiées sur les CPU à l'aide de LLAMA 2, C Transformers, GGML et Langchain
Guide étape par étape sur la datascience : https://towarddatascience.com/running-llama-2-on--cpu-inference-for-document-qa-3d636037a3d8
Contexte
- Les fournisseurs de modèles de grande langue (LLM) commerciaux tiers comme GPT4 d'Openai ont une utilisation de LLM démocratise via des appels d'API simples.
- Cependant, il existe des cas où les équipes nécessiteraient un déploiement de modèle autogéré ou privé pour des raisons telles que les règles de confidentialité des données et de résidence.
- La prolifération des LLMS open source a ouvert une vaste gamme d'options pour nous, réduisant ainsi notre dépendance à l'égard de ces fournisseurs tiers.
- Lorsque nous hébergeons les LLMs Open-Source localement sur site ou dans le cloud, la capacité de calcul dédiée devient un problème clé. Bien que les instances de GPU puissent sembler le choix évident, les coûts peuvent facilement monter en flèche au-delà du budget.
- Dans ce projet, nous découvrirons comment exécuter des versions quantifiées de LLMS open-source sur l'inférence du processeur local pour les questions et réponses de documents (Q&A).

Start
- Assurez-vous d'avoir téléchargé le fichier binaire GGML à partir de https://huggingface.co/thebloke/llama-2-7b-chat-ggml et de le placer dans les
models/ dossier - Pour commencer à analyser les requêtes utilisateur dans l'application, lancez le terminal à partir du répertoire du projet et exécutez la commande suivante:
poetry run python main.py "<user query>" - Par exemple,
poetry run python main.py "What is the minimum guarantee payable by Adidas?" - Remarque: omettez la
poetry run adjointe si vous n'utilisez pas de poésie

Outils
- Langchain : Framework pour le développement d'applications alimentées par des modèles de langue
- C transformateurs : liaisons Python pour les modèles de transformateurs implémentés en C / C ++ à l'aide de la bibliothèque GGML
- FAISS : bibliothèque open source pour une recherche et un regroupement de similitudes efficaces de vecteurs denses.
- Transformateurs de phrases (All-Minilm-L6-V2) : modèle de transformateur pré-entraîné open source pour intégrer du texte à un espace vectoriel dense 384 dimensionnel pour des tâches telles que le clustering ou la recherche sémantique.
- LLAMA-2-7B-CHAT : Modèle LLAMA 2 à réglage fin de l'Open-source conçu pour le dialogue de chat. Tire parti des ensembles de données d'instructions accessibles au public et plus d'un million d'annotations humaines.
- Poésie : outil pour la gestion des dépendances et l'emballage Python
Fichiers et contenu
-
/assets : images pertinentes pour le projet -
/config : fichiers de configuration pour l'application LLM -
/data : Ensemble de données utilisé pour ce projet (c.-à-d. Le rapport annuel de Manchester United FC 2022 - document PDF de 177 pages) -
/models : Fichier binaire du modèle LLM quantifié GGML (c'est-à-dire, LLAMA-2-7B-CHAT) -
/src : codes python des composants clés de l'application LLM, à savoir llm.py , utils.py et prompts.py -
/vectorstore : FAISS Vector Store pour les documents -
db_build.py : script python pour ingérer un ensemble de données et générer un magasin vectoriel Faish -
main.py : Script Main Python pour lancer l'application et passer la requête utilisateur via la ligne de commande -
pyproject.toml : fichier toml pour spécifier quelles versions des dépendances utilisées (poésie) -
requirements.txt : liste des dépendances (et version) python
Références
- https://github.com/marella/ctransformateurs
- https://huggingface.co/thebloke
- https://huggingface.co/theblok/llama-2-7b-chat-ggml
- https://python.langchain.com/en/latest/integrations/ctransformers.html
- https://python.langchain.com/en/latest/modules/models/llms/integrations/ctransformers.html
- https://python.langchain.com/docs/ecosystem/integrations/ctransformers
- https://ggml.ai
- https://github.com/rustformers/llm/blob/main/crates/ggml/readme.md
- https://www.mdpi.com/2189676