NVIDIA Blackwell Establece Récord STAC-AI para Inferencia de LLM en Finanzas

por y



NVIDIA Blackwell Establece Récord STAC-AI para Inferencia de LLM en Finanzas | Blog de NVIDIA

NVIDIA Blackwell Establece Récord STAC-AI para Inferencia de LLM en Finanzas

Los modelos de lenguaje de gran escala (LLM) están revolucionando el panorama del trading financiero al permitir un análisis sofisticado de grandes volúmenes de datos no estructurados para generar insights de trading accionables. Estos avanzados sistemas de AI pueden procesar noticias financieras, sentimiento en redes sociales, informes de ganancias y datos de mercado para predecir movimientos de precios de acciones y automatizar estrategias de inversión con una precisión sin precedentes.

El Strategic Technology Analysis Center (STAC) lleva más de 15 años desarrollando benchmarks para las cargas de trabajo clave de la industria financiera. Ahora han desarrollado el benchmark STAC-AI para ayudar a las empresas a evaluar el pipeline de generación aumentada por recuperación (RAG) e inferencia de LLM de extremo a extremo.

Esta publicación presenta los resultados obtenidos en el benchmark STAC-AI LANG6 en múltiples plataformas NVIDIA. También compartiremos algunas recomendaciones sobre cómo cualquier usuario puede realizar benchmarks de NVIDIA TensorRT LLM de acuerdo con las especificaciones de su dataset.

Benchmark STAC-AI LANG6 (solo inferencia)

En el contexto más amplio de un pipeline RAG, STAC-AI LANG6 es la parte del benchmark que se enfoca en el rendimiento de inferencia de LLM. El benchmark evalúa el stack de hardware y software con los modelos Llama 3.1 8B Instruct y Llama 3.1 70B Instruct en combinación con los siguientes datasets personalizados:

  • EDGAR4: Los prompts son resúmenes de la relación de una empresa con uno de varios conceptos físicos y financieros (como materias primas, divisas, tasas de interés y sectores inmobiliarios). Utiliza párrafos de formularios 10‑K de EDGAR de un único expediente de un valor para un único año. La longitud de las secuencias de entrada/salida busca modelar solicitudes de longitud media.
  • EDGAR5: Preguntas que cubren varios aspectos distintos de un formulario 10‑K completo. El tipo de documento es el texto completo de un único formulario 10‑K de EDGAR. La longitud de las secuencias de entrada/salida busca modelar solicitudes de contexto largo.

Estos datasets, basados en registros de EDGAR, modelan la resumización de contexto medio y largo para casos de uso de trading financiero y asesoría de inversión. Los prompts solicitan al modelo que realice análisis y resumización de informes anuales (formularios 10-K) de miles de empresas públicas durante los últimos cinco años.

El benchmark también evalúa dos escenarios de inferencia diferentes: modo batch e interactivo:

  • Modo batch (offline): Todas las solicitudes se envían a la vez y todas las respuestas se recopilan a la vez. Solo se mide el throughput.
  • Modo interactivo (online): Las solicitudes llegan en tiempos pseudoaleatorios. La tasa media de llegada λ (el número promedio de solicitudes que el sistema recibe por segundo) puede configurarse para modelar diferentes escenarios de uso. El benchmark recopila métricas como el tiempo de reacción (RT), palabras por segundo por usuario (WPS/usuario) y total de palabras por segundo (WPS), pero no establece restricciones sobre ellas. RT es análogo al tiempo hasta el primer token (TTFT) en otros benchmarks, y WPS a tokens/segundo/usuario.

Cabe destacar que el modo interactivo no cubre la combinación de Llama 3.1 70B Instruct con EDGAR5.

El benchmark verifica la calidad del output y el conteo de palabras con respecto a un conjunto de control de respuestas generadas por LLM.

Si bien otros benchmarks permiten todo el preprocesamiento, un diferenciador importante de STAC-AI es la necesidad de aplicar plantillas de chat y tokenizar solicitudes durante la inferencia. Los despliegues reales pueden preferir que este trabajo se realice del lado del servidor para proteger sus prompts del sistema, imponiendo así mayor carga en la CPU.

Stack de hardware y software

Esta publicación compara dos servidores on-premises basados en NVIDIA Hopper presentados por HPE con un nodo en la nube basado en NVIDIA Blackwell.

Dado que el benchmark requiere cuantización post-entrenamiento como parte del proceso de evaluación, los modelos fueron cuantizados con el NVIDIA TensorRT Model Optimizer. Para aprovechar los kernels de mayor rendimiento disponibles para cada despliegue, la cuantización se realizó a FP8 en NVIDIA Hopper y a NVFP4 en NVIDIA Blackwell.

Para lograr el mejor rendimiento tanto en Hopper como en Blackwell, se utilizó el framework de inferencia NVIDIA TensorRT LLM para una ejecución eficiente del modelo. Estos modelos cuantizados se ejecutaron utilizando el runtime PyTorch de TensorRT LLM para una experiencia de desarrollo nativa y familiar con PyTorch, manteniendo el máximo rendimiento.

Resultados del benchmark STAC-AI LANG6

En esta sección se detallan los resultados del benchmark para el modo batch y el modo interactivo.

Modo batch

En el modo batch, NVIDIA Blackwell ofrece aceleraciones significativas en todos los escenarios. La Tabla 1 muestra los WPS y las solicitudes por segundo (RPS) alcanzados.

Cabe señalar que los resultados de NVIDIA GB200 NVL72 no fueron auditados por STAC.

Modelo Dataset 2x GH200 144 GB TensorRT LLM FP8 4x GB200 NVL72 TensorRT LLM NVFP4 2x RTX PRO 6000 NVFP4
WPS RPS WPS RPS WPS RPS
Llama 3.1 8B EDGAR4 8,237 51.5 37,480 224 5,500 32.9
EDGAR5 304 0.784 1,112 2.85 138 0.345
Llama 3.1 70B EDGAR4 1,071 6.77 5,618 35.9 831 5.26
EDGAR5 41.4 0.119 150 0.477 13 0.04

Tabla 1. Resultados del modo batch de STAC-AI en todas las combinaciones de modelo y dataset

Los informes completos con más detalles sobre los modos interactivo y batch se encuentran en los informes publicados por STAC.

También se evaluó el rendimiento por GPU individual para tener en cuenta el diferente número de GPU en cada sistema. Aunque STAC-AI no mide el rendimiento por GPU, los resultados mostrados en la Figura 1 ilustran la diferencia de throughput entre GPU individuales de cada uno de los sistemas.

Figura 1. La mejora de rendimiento de una sola GPU NVIDIA GH200 a una sola GPU NVIDIA GB200 NVL72 puede alcanzar hasta 3.2x

Modo interactivo

El equilibrio entre la economía de tokens (dependiente del throughput) y la experiencia del usuario (dependiente de métricas de interactividad como RT y WPS/usuario) es un factor crucial en la inferencia moderna de LLM.

El modo interactivo muestra el compromiso a lo largo del frente de Pareto de interactividad-throughput mediante la selección de un rango de tasas de llegada. La interactividad se mide tanto por RT como por WPS/usuario. Para facilitar la visualización, se utiliza el inverso de WPS/usuario, definido como latencia entre palabras (IWL), o 1/(WPS/usuario). En los gráficos se utiliza el percentil 95 de ambas métricas.

Como se muestra en la Figura 2, GB200 NVL72 logra un mejor equilibrio entre throughput y tanto RT como IWL en todos los escenarios. El IWL (línea sólida, menor es mejor) y el RT (línea punteada, menor es mejor) se grafican frente al throughput en modo interactivo en todos los escenarios de modelo/dataset.

Figura 2. NVIDIA GB200 NVL72 mantiene una mejor interactividad a mayor throughput interactivo en comparación con NVIDIA GH200

La Figura 3 muestra que, incluso cuando opera a un porcentaje similar del throughput máximo, NVIDIA GB200 NVL72 logra un mejor RT e IWL en la mayoría de los escenarios. Normalizar el eje X elimina las ventajas de throughput bruto y destaca la interactividad a igual carga.

Figura 3. Con la misma utilización (normalizada al throughput de solicitudes en modo batch de cada sistema), NVIDIA GB200 NVL72 ofrece menor IWL y RT en comparación con NVIDIA GH200 en la mayoría de los escenarios

Cómo realizar benchmarks de TensorRT LLM con datos personalizados

Si bien el benchmark STAC utiliza datos y métricas propietarios, es posible realizar benchmarks de TensorRT LLM con modelos adaptados a las características específicas de su dataset. Este tutorial le guía a través de la cuantización de un modelo, la preparación de su dataset y la ejecución de benchmarks de rendimiento, todo ello personalizado para su caso de uso.

Requisitos previos:

  • Una imagen Docker que incluya TensorRT LLM (TensorRT LLM Release, por ejemplo).
  • Una GPU NVIDIA con capacidad suficiente para servir su modelo al nivel de cuantización deseado. Puede encontrar una matriz de soporte para la cuantización en la documentación de TensorRT LLM.
  • Una cuenta y token de Hugging Face, junto con acceso a los modelos restringidos de Llama 3.1 8B Instruct o Llama 3.1 70B Instruct. Puede configurar la variable de entorno HF_TOKEN con su token, y todos los comandos subsiguientes utilizarán este token.

Paso 1: Iniciar el contenedor

Los contenedores mantenidos por NVIDIA incluyen todas las dependencias necesarias preinstaladas. Cambie a un directorio vacío con espacio suficiente para los modelos y sus cuantizaciones. Puede iniciar el contenedor en una máquina con GPU NVIDIA con el siguiente comando. Asegúrese de especificar su token de Hugging Face.

docker run --rm -it --ipc=host --ulimit memlock=-1 --ulimit stack=67108864             --gpus=all             -u $(id -u):$(id -g)             -e USER=$(id -un)             -e HOME=/tmp             -e TRITON_CACHE_DIR=/tmp/.triton             -e TORCHINDUCTOR_CACHE_DIR=/tmp/.inductor_cache             -e HF_HOME=/workspace/model_cache             -e HF_TOKEN=<su_token_de_huggingface>             --volume "$(pwd)":/workspace             --workdir /workspace             nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc2

Paso 2: Clonar los repositorios

La cuantización de modelos reduce el tamaño del modelo y mejora la velocidad de inferencia. Use NVIDIA Model Optimizer para cuantizar Llama 3.1 8B Instruct al formato NVFP4. Primero, clone el repositorio de Model Optimizer para el ejemplo de cuantización:

git clone https://github.com/NVIDIA/TensorRT-Model-Optimizer.git -b 0.37.0

Paso 3: Cuantizar el modelo

A continuación, ejecute el script de ejemplo de Hugging Face con el modelo elegido y el formato de cuantización; en este caso, Llama 3.1 8B Instruct usando cuantización NVFP4.

bash TensorRT-Model-Optimizer/examples/llm_ptq/scripts/huggingface_example.sh   --model meta-llama/Llama-3.1-8B-Instruct   --quant nvfp4

Paso 4: Generar datos sintéticos

Utilice la utilidad de benchmark para generar un dataset sintético con la distribución de tokens necesaria para una tarea. Este ejemplo crea 30,000 solicitudes con una longitud de secuencia de entrada fija de 2,048 y una longitud de secuencia de salida de 128. Las desviaciones estándar distintas de cero aproximan mejor el tráfico real, si tiene acceso a esa información.

python /app/tensorrt_llm/benchmarks/cpp/prepare_dataset.py   --stdout   --tokenizer meta-llama/Llama-3.1-8B-Instruct   token-norm-dist   --input-mean 2048   --output-mean 128   --input-stdev 0    --output-stdev 0   --num-requests 30000   > dataset_2048_128.json

Paso 5: Ejecutar el benchmark

El comando trt-llm bench puede ejecutar las solicitudes generadas de forma offline, enviando todas las solicitudes a la vez al runtime de TensorRT LLM (aproximando estrechamente el modo batch de STAC-AI).

Si bien algunas opciones están disponibles en la API de CLI, la API LLM completa puede accederse a través de un archivo YAML pasado con el parámetro extra_llm_api_options. Para los fines de este ejemplo, habilite el padding de CUDA Graphs. Para conocer más opciones, consulte la Referencia de la API de TensorRT LLM.

cat > llm_options.yml << 'EOF'
cuda_graph_config:
  enable_padding: True
EOF

Finalmente, ejecute el benchmark especificando el modelo, el dataset y las opciones:

trtllm-bench   --model meta-llama/Llama-3.1-8B-Instruct   --model_path /workspace/TensorRT-Model-Optimizer/examples/llm_ptq/saved_models_Llama-3_1-8B-Instruct_nvfp4   throughput   --dataset dataset_2048_128.json   --backend pytorch   --extra_llm_api_options llm_options.yml

Esto generará diversas métricas como el throughput de solicitudes, los tokens/segundo/GPU y más.

Comience con los benchmarks de TensorRT LLM

NVIDIA GB200 NVL72 avanzó significativamente en el rendimiento del benchmark STAC-AI LANG6, estableciendo un nuevo récord para la inferencia de LLM en el sector financiero. NVIDIA Blackwell entregó hasta 3.2x el rendimiento de arquitecturas anteriores, logrando un mayor throughput y manteniendo consistentemente una interactividad superior.

Junto con el nuevo récord, NVIDIA Hopper continúa ofreciendo resultados sólidos y valiosos para cargas de trabajo de inferencia de LLM. Incluso más de tres años después de su lanzamiento inicial, Hopper demuestra ser altamente efectivo tanto en escenarios de inferencia batch como interactiva, manteniendo buenas métricas de rendimiento incluso a alto throughput, y confirmando su relevancia continua para las instituciones financieras.

Para profundizar en la configuración y ejecución de sus propias evaluaciones de rendimiento, explore la Guía de Benchmarking de TensorRT LLM.

Autores: Dan Blanaru, Martin Marciniszyn Mehringer

Fuente original: https://developer.nvidia.com/blog/nvidia-blackwell-sets-stac-ai-record-for-llm-inference-in-finance/