Files
LLM_tests_and_code_execution/descargar_modelos.ipynb
T

155 lines
4.7 KiB
Plaintext

{
"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
}