{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial: Uso de Modelos LLM con vLLM\n", "En este tutorial aprenderás:\n", "- Qué es vLLM y sus ventajas.\n", "- Los tipos de modelos compatibles con vLLM.\n", "- Cómo descargar y usar modelos con vLLM para tareas como chat." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ¿Qué es vLLM?\n", "**vLLM** es una biblioteca optimizada para ejecutar modelos LLM de manera eficiente, aprovechando técnicas avanzadas de gestión de memoria y paralelización. Está diseñada para manejar tareas como generación de texto en grandes modelos con un rendimiento mejorado.\n", "\n", "**Ventajas de vLLM:**\n", "- Mayor eficiencia en el uso de GPU y memoria.\n", "- Reducción en los tiempos de inferencia.\n", "- Compatibilidad con modelos de Hugging Face y otras plataformas populares." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tipos de Modelos Compatibles con vLLM\n", "Los modelos más comunes que se pueden usar con vLLM incluyen:\n", "- **Modelos abiertos:** Por ejemplo, GPT-NeoX, OPT, LLaMA, y Falcon.\n", "- **Modelos comerciales:** Modelos compatibles disponibles en Hugging Face o APIs comerciales como GPT-3 o GPT-4.\n", "- **Modelos específicos:** Diseñados para tareas específicas como chat o generación de código (por ejemplo, CodeT5, StarCoder)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Instalación de vLLM\n", "Primero, necesitamos instalar la biblioteca vLLM. Esto se puede hacer con `pip`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "!pip install vllm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Descargar Modelos para vLLM\n", "Usaremos un modelo abierto como LLaMA 2 o GPT-NeoX desde el hub de Hugging Face. La biblioteca vLLM puede cargar modelos directamente desde Hugging Face." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Importar las bibliotecas necesarias\n", "from vllm import LLM, SamplingParams\n", "\n", "# Nombre del modelo (puedes cambiarlo según tu preferencia)\n", "model_name = 'meta-llama/Llama-2-7b-chat-hf'\n", "\n", "# Inicializar el modelo\n", "llm = LLM(model=model_name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Uso de vLLM para Chat\n", "Podemos usar vLLM para interactuar con el modelo en aplicaciones de chat. Esto implica enviar un prompt y recibir una respuesta generada por el modelo." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Parámetros de entrada para la generación\n", "prompt = \"Hola, ¿cómo puedo ayudarte hoy?\"\n", "\n", "# Parámetros de muestreo\n", "sampling_params = SamplingParams(\n", " temperature=0.7, # Controla la creatividad\n", " max_tokens=100 # Número máximo de tokens generados\n", ")\n", "\n", "# Generar texto\n", "outputs = llm.generate(prompt, sampling_params)\n", "\n", "# Mostrar la respuesta\n", "print(outputs[0].text)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Otros Modelos Compatibles\n", "Además de LLaMA 2, puedes usar otros modelos como:\n", "- **Falcon:** Un modelo optimizado para tareas de NLP, disponible en tamaños como 7B y 40B.\n", "- **OPT (Meta):** Diseñado para tareas de lenguaje natural.\n", "- **GPT-NeoX:** Modelo de EleutherAI diseñado como una alternativa a GPT-3.\n", "\n", "Estos modelos se pueden cargar de manera similar cambiando el nombre del modelo en el código." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusión\n", "Este tutorial mostró cómo instalar y usar vLLM para ejecutar modelos LLM de manera eficiente. Los modelos como LLaMA, Falcon, y GPT-NeoX son compatibles y pueden ser utilizados para tareas como chat y generación de texto.\n", "\n", "Con vLLM, puedes aprovechar grandes modelos con un rendimiento optimizado, ideal para aplicaciones de inteligencia artificial." ] } ], "metadata": { "kernelspec": { "display_name": "venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" } }, "nbformat": 4, "nbformat_minor": 4 }