Add initial tutorials for using vLLM and update .gitignore
This commit is contained in:
@@ -0,0 +1 @@
|
||||
venv
|
||||
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"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": "Python 3",
|
||||
"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.8.5"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Tutorial: Uso de vLLM con un modelo local\n",
|
||||
"En este tutorial aprenderás a utilizar **vLLM** para cargar un modelo descargado localmente y realizar inferencias.\n",
|
||||
"\n",
|
||||
"## ¿Qué es vLLM?\n",
|
||||
"vLLM es un runtime de alto rendimiento para modelos de lenguaje grande (LLMs). Ofrece características avanzadas como el manejo eficiente de memoria y procesamiento paralelo.\n",
|
||||
"\n",
|
||||
"Este tutorial asumirá que ya tienes un modelo descargado localmente, por ejemplo, un modelo de Hugging Face."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Paso 1: Instalación de vLLM\n",
|
||||
"Primero, necesitamos instalar la biblioteca **vLLM**. Puedes hacerlo con el siguiente comando."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"!pip install vllm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Paso 2: Verificación de dependencias\n",
|
||||
"Asegúrate de que las dependencias requeridas, como PyTorch, estén instaladas. Si no tienes PyTorch, instálalo con el comando apropiado para tu entorno."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"!pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Paso 3: Carga del modelo local\n",
|
||||
"Usaremos la clase `LLM` de vLLM para cargar el modelo desde una carpeta local. En este ejemplo, asumimos que el modelo está almacenado en un directorio llamado `./modelo_local`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from vllm import LLM\n",
|
||||
"\n",
|
||||
"# Ruta al modelo local\n",
|
||||
"ruta_modelo = \"./modelo_local\"\n",
|
||||
"\n",
|
||||
"# Inicialización del modelo\n",
|
||||
"llm = LLM(model=ruta_modelo)\n",
|
||||
"print(\"Modelo cargado exitosamente.\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Paso 4: Realización de inferencias\n",
|
||||
"Con el modelo cargado, podemos realizar inferencias utilizando la función `generate`. Proporciona un texto de entrada y el modelo generará una respuesta."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Texto de entrada\n",
|
||||
"texto_entrada = \"¿Cuál es la capital de Francia?\"\n",
|
||||
"\n",
|
||||
"# Generar respuesta\n",
|
||||
"respuesta = llm.generate(texto_entrada)\n",
|
||||
"print(\"Respuesta generada:\", respuesta)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Paso 5: Ajuste de parámetros (opcional)\n",
|
||||
"Puedes ajustar parámetros como la temperatura o el número máximo de tokens generados para personalizar el comportamiento del modelo."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Ajuste de parámetros\n",
|
||||
"respuesta_ajustada = llm.generate(\n",
|
||||
" texto_entrada,\n",
|
||||
" temperature=0.7, # Controla la aleatoriedad\n",
|
||||
" max_tokens=100 # Límite de tokens generados\n",
|
||||
")\n",
|
||||
"print(\"Respuesta ajustada:\", respuesta_ajustada)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Paso 6: Conclusión\n",
|
||||
"Has aprendido a instalar y usar vLLM para cargar un modelo local y realizar inferencias. Puedes explorar más características en la [documentación oficial de vLLM](https://vllm.org).\n",
|
||||
"\n",
|
||||
"¡Ahora estás listo para usar modelos de lenguaje eficientemente con vLLM!"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"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.8.5"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user