pratical llms
1.0.0
Bienvenue dans le référentiel pour les ingénieurs LLM (Large Language Model) ! Cette collection de notebooks Jupyter est conçue pour collecter les aspects pratiques de notre travail. Je collecterai et ajouterai jupyter et/ou script à des fins d'apprentissage et d'expérimentation.
Carnet de notes | Description | URL |
---|---|---|
1_understanding_llms_benchmarks.ipynb | Ce cahier fournit une explication des principaux benchmarks utilisés dans le classement openLLM. Il vise à vous aider à comprendre les indicateurs et méthodologies clés utilisés dans l'analyse comparative des LLM. | Lien |
2_quantization_base.ipynb | Dans ce cahier, vous apprendrez à ouvrir un modèle Hugging Face en 8 bits et 4 bits à l'aide de la bibliothèque BitandBytes. La quantification est une technique cruciale pour optimiser les performances du modèle et l'utilisation des ressources, et ce carnet vous guide tout au long du processus. | Lien |
3_quantisation_gptq.ipynb | Explorez la quantification au format GPTQ à l'aide de la bibliothèque auto-gptq avec ce carnet. Le format GPTQ gagne en popularité pour son efficacité dans la compression et la quantification de grands modèles comme GPT. Découvrez comment exploiter ce format pour vos modèles. | Lien |
4_quantization_exllamav2.ipynb | Comment quantifier un modèle de HF à exllamav2 | Lien |
5_sharding_and_offloading.ipynb | Comment fragmenter un modèle en plusieurs morceaux. Cela permet de le charger sur différents appareils ou d'en charger un à la fois en gérant la mémoire. Apprenez à décharger une couche sur le processeur ou même sur le disque | Lien |
6_gguf_quantization_and_inference.ipynb | Quantifiez un modèle dans GGUF à l'aide de la bibliothèque llama.cpp. Inférence sur un serveur compatible OpenAI. | Lien |
7_gguf_split_and_load.ipynb | Divisez un modèle quantifié GGUF en plusieurs parties, ce qui le rend facilement partageable | Lien |
8_hqq_quantization.ipynb | Explorez la quantification à l'aide de la quantification semi-quadratique (HQQ) | Lien |
9_inference_big_model_cpu_plus_gpu.ipynb | Ce cahier montre comment calculer la RAM requise par un modèle GGUF quantifié et comment la charger en mémoire en utilisant à la fois la RAM et la VRAM, optimisant ainsi le nombre de couches pouvant être déchargées sur le GPU. L'ordinateur portable montre le chargement de Qwen/Qwen1.5-32B-Chat-GGUF à titre d'exemple sur un système doté d'une VRAM T4 de 15 Go et d'environ 32 Go de RAM. | Lien |
a10_inference_llama3.ipynb | LLama3 est sorti. Ce cahier montre comment exécuter LLama3-8B-Instruct en demi-précision si vous avez accès à un GPU avec 24 Go de VRAM, quantifié en 8 bits si vous disposez de 10 Go de VRAM, et montre comment exécuter la version Q8 GGUF pour obtenir des performances maximales si vous ne disposez que de 10 Go de VRAM. | Lien |
a11_llm_guardrails_using_llama3_guard.ipynb | Protégez votre backend et vos applications d'IA générative à l'aide de LLama3-guard-2. Dans ce cahier, je vous montre comment configurer un serveur utilisant 10 Go de VRAM et comment effectuer une inférence via des requêtes HTTP POST. | Lien |
a12_speculative_decoding.ipynb | Le cahier décrit et démontre de manière pratique la technique de « décodage spéculatif » pour augmenter les jetons/seconde générés par un modèle cible grâce à l'utilisation d'un modèle de brouillon plus petit et plus léger. Exemple réalisé sur LLama-3-70B-Instruct (Target) et LLama-3-8B-Instruct (Draft). | Lien |
a13_inference_vision_llm.ipynb | Le cahier montre comment effectuer une inférence simple à l'aide d'un LLM de vision. Pour l'exemple, j'ai choisi le nouveau Phi-3-vision-128k-instruct de Microsoft. Le modèle est sous licence MIT, il peut donc être utilisé dans vos propres applications sans aucune restriction. Le modèle peut fonctionner sur un Nvidia L4. | Lien |
a14_llm_as_evaluator.ipynb | Le cahier montre comment utiliser un LLM en tant que juge à l'aide de Prometheus 2. Dans le cahier, il est montré comment évaluer une réponse renvoyée par l'un de nos LLM ou pipeline d'application. | Lien |
a15_llm_evaluation.ipynb | Le cahier montre comment utiliser EleutherAI/lm-evaluation-harness pour évaluer les LLM sur des critères communs utilisés également dans les classements officiels. Le processus est le même que celui utilisé automatiquement lorsque vous soumettez un modèle au classement. | Lien |
a16_synthetic_data_generation.ipynb | Dans ce cahier, j'ai créé une classe personnalisée pour générer un ensemble de données synthétiques d'assurance qualité à partir d'un fichier d'entrée en utilisant Llama-3-8B comme LLM. Le script montre également comment créer et exécuter la nouvelle version de llama-server sur lama-3-8b-Q_8 GGUF. | Lien |
a17_sglan_serving_llm_multiusers.ipynb | Dans ce cahier, je montre toutes les étapes pour déployer efficacement LLama3.1-8B-FP8 sur un serveur personnalisé à l'aide de SGLang et servir 64 utilisateurs potentiellement parallèles tout en conservant de bonnes performances. | Lien |
a18_jailbreak_control_using_promptguard.ipynb | Essayer le nouveau PromptGuard-86M pour le jailbreak. Spoiler : le modèle semble cassé ou vraiment mauvais en ce moment | Lien |
a19_document_information_and_table_extraction.ipynb | Ce bloc-notes montre comment utiliser un modèle alphabétisé multimodal (Kosmos 2.5) pour extraire avec précision et efficacité du texte et des tableaux sans utiliser de services cloud payants. Le modèle fonctionne sur votre GPU personnel, gardant vos données privées et sécurisées. | Lien |
a20_finetuning_llm_unsloth.ipynb | Ce cahier montre comment affiner la mini-instruction Phi-3.5 en utilisant Unsloth sur un ensemble de données HF de structure de chaîne de « pensée » | Lien |
Pour obtenir des ressources et un soutien supplémentaires, n'hésitez pas à contacter la communauté ou à vous référer aux éléments suivants :
Bon apprentissage et expérimentation avec les LLM !