pratical llms
1.0.0
Bem-vindo ao repositório para engenheiros LLM (Large Language Model)! Esta coleção de Jupyter Notebooks foi projetada para coletar aspectos práticos do nosso trabalho. Coletarei e adicionarei jupyter e/ou script para fins de aprendizagem e experimentação.
Caderno | Descrição | URL |
---|---|---|
1_understanding_llms_benchmarks.ipynb | Este notebook fornece uma explicação dos principais benchmarks usados na tabela de classificação do openLLM. O objetivo é ajudá-lo a compreender as principais métricas e metodologias usadas no benchmarking de LLMs. | Link |
2_quantização_base.ipynb | Neste notebook, você aprenderá como abrir um modelo Hugging Face em 8 e 4 bits usando a biblioteca BitandBytes. A quantização é uma técnica crucial para otimizar o desempenho do modelo e o uso de recursos, e este caderno orienta você durante o processo. | Link |
3_quantização_gptq.ipynb | Explore a quantização no formato GPTQ usando a biblioteca auto-gptq com este notebook. O formato GPTQ está ganhando popularidade por sua eficácia na compactação e quantização de modelos grandes como o GPT. Aprenda como aproveitar esse formato para seus modelos. | Link |
4_quantização_exllamav2.ipynb | Como quantizar um modelo de HF para exllamav2 | Link |
5_sharding_and_offloading.ipynb | Como fragmentar um modelo em vários blocos. Isso permite carregá-lo em diferentes dispositivos ou carregar um de cada vez, gerenciando a memória. Aprenda como descarregar alguma camada para CPU ou até mesmo disco | Link |
6_gguf_quantization_and_inference.ipynb | Quantize um modelo em GGUF usando a biblioteca llama.cpp. Inferência em servidor compatível com OpenAI. | Link |
7_gguf_split_and_load.ipynb | Divida um modelo GGUF Quantizado em múltiplas partes, tornando-o facilmente compartilhável | Link |
8_hqq_quantização.ipynb | Explore a quantização usando quantização semiquadrática (HQQ) | Link |
9_inference_big_model_cpu_plus_gpu.ipynb | Este notebook mostra como calcular a RAM necessária para um modelo GGUF quantizado e como carregá-la na memória usando RAM e VRAM, otimizando o número de camadas que podem ser descarregadas para a GPU. O notebook demonstra o carregamento de Qwen/Qwen1.5-32B-Chat-GGUF como exemplo em um sistema com VRAM T4 de 15 GB e aproximadamente 32 GB de RAM | Link |
a10_inference_llama3.ipynb | LLama3 foi lançado. Este notebook demonstra como executar o LLama3-8B-Instruct com meia precisão se você tiver acesso a uma GPU com 24 GB de VRAM, quantizado em 8 bits se você tiver 10 GB de VRAM, e mostra como executar a versão Q8 GGUF para obter desempenho máximo se você só tem 10 GB de VRAM. | Link |
a11_llm_guardrails_using_llama3_guard.ipynb | Proteja seu back-end e seus aplicativos generativos de IA usando LLama3-guard-2. Neste notebook, mostro como configurar um servidor usando 10 GB de VRAM e como realizar inferência através de solicitações HTTP POST. | Link |
a12_speculative_decoding.ipynb | O caderno descreve e demonstra de forma prática a técnica de 'decodificação especulativa' para aumentar os tokens/segundo gerados por um Modelo Alvo através do uso de um Modelo Rascunho menor e mais leve. Exemplo realizado em LLama-3-70B-Instruct (Target) e LLama-3-8B-Instruct (Draft). | Link |
a13_inference_vision_llm.ipynb | O caderno demonstra como realizar uma inferência simples usando um LLM de visão. Por exemplo, escolhi o recém-lançado Phi-3-vision-128k-instruct da Microsoft. O modelo é licenciado pelo MIT, portanto pode ser usado em suas próprias aplicações sem quaisquer restrições. O modelo pode rodar em uma Nvidia L4. | Link |
a14_llm_as_evaluator.ipynb | O notebook demonstra como usar um LLM como juiz usando Prometheus 2. No notebook é mostrado como avaliar uma resposta retornada de qualquer um de nosso LLM ou pipeline de aplicativo. | Link |
a15_llm_evaluation.ipynb | O notebook demonstra como usar EleutherAI/lm-evaluation-harness para avaliar LLMs em benchmarks comuns usados também nas tabelas de classificação oficiais. O processo é o mesmo usado automaticamente quando você envia um modelo para o placar | Link |
a16_synthetic_data_generation.ipynb | Neste notebook, criei uma classe personalizada para gerar um conjunto de dados sintético de controle de qualidade a partir de um arquivo de entrada usando Llama-3-8B como LLM. O script também demonstra como construir e executar a nova versão do llama-server em llama-3-8b-Q_8 GGUF | Link |
a17_sglan_serving_llm_multiusers.ipynb | Neste notebook, mostro todas as etapas sobre como implantar com eficiência o LLama3.1-8B-FP8 em um servidor personalizado usando SGLang e atender 64 usuários potencialmente paralelos, mantendo um bom desempenho. | Link |
a18_jailbreak_control_using_promptguard.ipynb | Experimentando o novo PromptGuard-86M para jailbreak. Spoiler: o modelo parece quebrado ou muito ruim neste momento | Link |
a19_document_information_and_table_extraction.ipynb | Este notebook demonstra como usar um modelo alfabetizado multimodal (Kosmos 2.5) para extrair textos e tabelas com precisão e eficiência sem usar serviços de nuvem pagos. O modelo é executado em sua GPU pessoal, mantendo seus dados privados e seguros. | Link |
a20_finetuning_llm_unsloth.ipynb | Este notebook mostra como ajustar o Phi-3.5-mini-instruct usando unloth em um conjunto de dados HF de cadeia de estrutura de 'pensamento' | Link |
Para obter mais recursos e suporte, sinta-se à vontade para entrar em contato com a comunidade ou consulte o seguinte:
Feliz aprendizado e experimentação com LLMs!