Docs Menu
Docs Home
/

Optimice el rendimiento de la IA con MongoDB Atlas y Fireworks AI

MongoDB Atlas y Fireworks AI ofrecen una inferencia de IA más rápida, costos reducidos y aplicaciones RAG eficientes.

Casos de uso: Gen AI,ajustedel rendimiento del modelo

Industrias: Servicios financieros

Productos: MongoDB Atlas

Asociados: Inteligencia artificial de fuegosartificiales, LangChain

Las aplicaciones de IA requieren alto rendimiento y rentabilidad. Las empresas deben optimizar la relación precio/rendimiento para garantizar que las mejoras en velocidad y eficiencia se traduzcan en beneficios en términos de costos. MongoDB y Fireworks AI ofrecen una solución que mejora el rendimiento y reduce los costos. MongoDB gestiona los datos, mientras que Fireworks AI optimiza los modelos. Juntos, mejoran la latencia y el rendimiento, a la vez que minimizan los costos operativos.

Esta solución aborda los siguientes temas:

  • Métodos para mejorar el rendimiento y reducir Coste total de propiedad (TCO) con MongoDB y Fireworks AI

  • Estrategias de almacenamiento en caché para optimizar RAG con MongoDB Atlas y modelos de IA generativos

  • Ajuste de los SLM a partir de los LLM para un rendimiento más rápido con una calidad de respuesta comparable

  • Técnicas de la plataforma de inteligencia artificial Fireworks para ajustar modelos, acelerar la inferencia y reducir los requisitos de hardware

  • Un estudio de caso de recomendación de tarjetas de crédito con mejoras cuantificadas en latencia, uso de memoria y rentabilidad

  • Mejores prácticas para la implementación y el escalamiento de la producción

Esta solución proporciona estrategias prácticas para mejorar el rendimiento de la IA con costos reducidos, respaldadas por ejemplos prácticos y métricas de rendimiento.

El esquema flexible, la indexación eficiente y la arquitectura distribuida de MongoDB permiten a las organizaciones escalar su infraestructura de datos según demanda. Combinada con las capacidades de optimización de modelos de Fireworks AI, esta solución mejora el rendimiento de la IA y reduce los costos.

El marco FireOptimizer integra MongoDB con el proceso de ajuste de modelos de Fireworks AI para acelerar la inferencia por lotes a través de los siguientes componentes:

  • FireAttention: mejora el procesamiento de solicitudes y optimiza la utilización de recursos

  • Ajuste fino de parámetros eficiente: utiliza métodos LoRA y QLoRA para ajustar los modelos de manera eficiente con datos de seguimiento o etiquetas, lo que reduce los requisitos computacionales.

Optimizador de incendios

Figura 1. Arquitectura de FireOptimizer para optimización adaptativa e inferencia de alta calidad.

Esta solución ofrece los siguientes beneficios:

  • Velocidad de inferencia mejorada: la ejecución especulativa adaptativa de FireOptimizer proporciona 3mejoras de latencia de hasta x para cargas de trabajo de producción.

  • Optimización automatizada: FireOptimizer gestiona automáticamente procesos de optimización complejos.

Los LLM generan salidas de un token a la vez, lo que ralentiza las respuestas para salidas largas. La decodificación especulativa acelera este proceso mediante el uso de un modelo de borrador más pequeño para generar múltiples candidatos de token mientras el LLM principal procesa. El LLM evalúa y retiene únicamente predicciones precisas.

Los modelos tradicionales de borradores entrenados con datos genéricos funcionan bien para tareas generales, pero tienen una precisión menor en dominios especializados como codificación o análisis financiero.

Con Fireworks AI, la ejecución especulativa adaptativa mejora este enfoque al usar modelos específicos del dominio o personalizados según el perfil del usuario en lugar de modelos genéricos. Esta optimización aumenta la precisión y las tasas de acierto, por ejemplo, del 29% al 76% en la generación de código, reduce los costos de inferencia y proporciona mejoras de latencia de hasta 3x.

Las instrucciones largas que utilizan entre 8k y32k de tokens generan cuellos de botella de rendimiento en aplicaciones como el análisis de documentos o la autocompletación de código. FireAttention V2 de Firework IA aborda este desafío proporcionando un procesamiento 12veces más rápido para tareas de contextos largos mediante las siguientes funcionalidades:

  • Escala de atención optimizada: reduce la sobrecarga computacional para entradas largas

  • Implementación de múltiples hosts: distribuye las cargas de trabajo de manera eficiente entre las GPU

  • Núcleos avanzados: agilizan las operaciones para una ejecución más rápida

FireAttention V3 amplía la compatibilidad con las GPU MI300 de AMD como una alternativa rentable a NVIDIA. Las mejoras de rendimiento incluyen:

  • 1.4x–1.8x mayor rendimiento para modelos como LLaMA 8B y 70B

  • Hasta 5.5x de aumento de velocidad en escenarios de baja latencia

  • Rendimiento mejorado mediante núcleos de atención rediseñados y uso optimizado de la memoria

Estas capacidades mejoran el ajuste fino de los SLM al permitir el procesamiento eficiente de entradas de contexto extenso para tareas específicas del dominio. Los mecanismos de atención optimizados reducen la sobrecarga computacional, permiten ciclos de entrenamiento más rápidos y permiten lotes más grandes en implementaciones de GPU multihost.

Las optimizaciones de IA de Fireworks se extienden más allá de la especulación adaptativa a través de tres técnicas que maximizan el rendimiento y la rentabilidad:

  • Almacenamiento en caché adaptativo: reutiliza cálculos frecuentes para omitir trabajo redundante, lo que reduce la latencia entre un y 30un50% para cargas de trabajo de alto tráfico.

  • Cuantización personalizable: 48equilibra la precisión de / bits con la calidad del modelo, duplicando las velocidades y manteniendo una precisión superior al 99% para tareas de procesamiento por lotes

  • Servicio desagregado: adapta la asignación de hardware al tipo de carga de trabajo al alojar múltiples copias de modelos livianos o fragmentar modelos grandes en GPU para tareas complejas.

Los modelos más pequeños y eficientes ofrecen oportunidades de ajuste para una adaptación especializada, manteniendo al mismo tiempo la eficiencia de los recursos. Se continúa investigando la optimización de los SLM para implementaciones en la nube, en dispositivos y en hardware dedicado.

Las técnicas de ajuste fino incluyen:

1

Esta categoría introduce parámetros entrenables adicionales a los modelos pre-entrenados existentes sin modificar los pesos originales.

  • Adaptadores: Insertan pequeñas capas entrenables entre las capas del modelo. Los adaptadores aprenden transformaciones específicas de la tarea sin alterar los parámetros preentrenados.

  • Indicaciones suaves: Incrustaciones vectoriales entrenables anexadas a las secuencias de entrada. Guían el comportamiento del modelo hacia las tareas deseadas.

  • Ajuste de prefijos: Añade prefijos entrenables a las secuencias de entrada. Los prefijos aprenden información específica de la tarea sin modificar el modelo principal.

2

Este enfoque reparametriza los pesos de los modelos existentes utilizando aproximaciones de bajo rango para reducir los parámetros entrenables.

  • Adaptación de bajo rango: aproxima las actualizaciones de pesos en las capas de atención utilizando matrices de bajo rango. Esto disminuye los parámetros entrenables.

  • LoRA cuantificado: mejora LoRA con técnicas de cuantificación, reduciendo el uso de memoria y los costos computacionales.

3

Esta categoría ajusta selectivamente parámetros específicos del modelo previamente entrenado, mejorando la eficiencia computacional.

  • BitFit: ajusta únicamente los términos de sesgo u otros parámetros específicos, mejorando la eficiencia computacional.

  • DiffPruning: identifica y elimina los parámetros que contribuyen mínimamente al rendimiento del modelo, reduciendo los parámetros entrenables.

4

Estas estrategias congelan ciertas capas del modelo previamente entrenado mientras afinan otras, optimizando la adaptación.

  • Congelar y reconfigurar: Congela capas específicas del modelo y ajusta las capas restantes para optimizar la adaptación.

  • FishMask: utiliza máscaras para congelar o ajustar selectivamente capas para tareas específicas.

La técnica más popular es la PEFT. Las técnicas PEFT adaptan grandes modelos preentrenados a nuevas tareas ajustando una pequeña fracción de parámetros. Este enfoque evita el sobreajuste, reduce los requisitos computacionales y de memoria en comparación con el ajuste fino completo y mitiga el olvido catastrófico en los LLM. La PEFT permite una personalización eficiente de los modelos sin necesidad de un reentrenamiento completo, lo que la hace ideal para entornos con recursos limitados.

Puede utilizar técnicas PEFT LoRA con datos de seguimiento generados a partir de interacciones de modelos y datos etiquetados, que están anotados explícitamente para las tareas, para ajustar modelos más pequeños para un alto rendimiento en tareas específicas sin amplios recursos computacionales.

Para aplicaciones prácticas, este ejemplo utiliza una demo de una aplicación de tarjetas de crédito MongoDB. La demo ilustra MongoDB para la calificación crediticia con análisis predictivo, explica los resultados de la calificación crediticia mediante IA generativa y realiza recomendaciones de tarjetas de crédito mediante RAG con LLM. Este ejemplo de ajuste se centra en simplificar las explicaciones de la calificación crediticia mediante LLM. La aplicación incluye la generación de perfiles de usuario, recomendaciones de productos y reclasificación con resumen. Encuentre detalles sobre el diseño y el código fuente de la aplicación en la página de la biblioteca de soluciones de la aplicación de tarjetas de crédito MongoDB.

Los LLM provocan tiempos de respuesta más lentos debido a cálculos complejos sobre miles de millones de parámetros. Las recomendaciones de tarjetas de crédito requieren múltiples consultas LLM, lo que resulta en un tiempo de respuesta total de entre 10 y 20 segundos, y cada consulta tarda 5 segundos o más. Los LLM son difíciles y costosos de implementar y escalar para millones de usuarios.

  • Modelos de Lenguaje Pequeños (SLM): Los SLM ofrecen mayor velocidad de procesamiento y rentabilidad. Requieren menos potencia computacional, lo que los hace ideales para dispositivos con recursos limitados. Ofrecen respuestas más rápidas y menores costos operativos.

  • PEFT y LoRA: PEFT y LoRA mejoran la eficiencia al optimizar los subconjuntos de parámetros. Este enfoque reduce los requisitos de memoria y los costos operativos. La integración con MongoDB optimiza el manejo de datos y permite un ajuste eficiente de los modelos.

  • MongoDB: MongoDB proporciona gestión de datos e integración en tiempo real que mejora la eficiencia operativa. MongoDB almacena los datos de seguimiento en formato JSON y permite una recuperación y un almacenamiento eficientes, lo que aporta valor al ajuste fino del modelo. MongoDB actúa como capa de caché para evitar la repetición de invocaciones de LLM para solicitudes idénticas.

La demo de la aplicación de tarjeta de crédito explica las puntuaciones crediticias a los clientes con un lenguaje claro. Los LLM como LLaMA 3.1-405B de Meta generan estas explicaciones utilizando parámetros del perfil del usuario, características de entrada del modelo e importancia de las características del modelo que predice la puntuación o calificación crediticia del cliente. Los SLM no pueden realizar estas tareas de forma consistente debido a la limitación de parámetros para un razonamiento y una explicación eficaces. Utilice el proceso de ajuste con la plataforma de ajuste de inteligencia artificial Fireworks para lograr el resultado deseado.

El proceso para ajustar un SLM utiliza el siguiente flujo de trabajo:

Proceso de perfeccionamiento del LLM

Figura 2. Proceso de ajuste fino de LLM/SLM

El proceso de ajuste comienza con la recopilación de datos relevantes específicos de cada tarea. La Figura 2 muestra cómo MongoDB Atlas almacena en caché las respuestas LLM/SLM de usuarios específicos según sus datos ingresados ​​en la aplicación de tarjeta de crédito. Los usuarios pueden simular perfiles de crédito en la interfaz web. El siguiente fragmento de código de Python muestra cómo configurar un decorador para almacenar en caché las respuestas LLM/SLM en MongoDB Atlas:

class mdbcache:
def __init__(self, function):
self.function = function
def __call__(self, *args, **kwargs):
key = str(args) + str(kwargs)
ele = ccol.find_one({"key": key})
if ele:
return ele["response"]
value = self.function(*args, **kwargs)
ccol.insert_one({"key":key, "response": value})
return value
@mdbcache
def invoke_llm(prompt):
"""
Invoke the language model with the given prompt with cache. The llm.invoke method can invoke either a LLM or SLM based on the Fireworks Model ID provided at the start of application.
Args:
prompt (str): The prompt to pass to the LLM.
"""
response = llm.invoke(prompt)
return response

Como se muestra en el diagrama, puede generar el conjunto de datos de entrenamiento mediante un simulador. Este ejemplo simula perfiles de usuario con muestreo estratificado para seleccionar muestras iguales para las tres calificaciones crediticias: Buena, Normal y Mala. Esta demostración genera aproximadamente 1,300 respuestas de muestra.

Transforme las respuestas generadas al formato compatible con la plataforma Fireworks AI para su ajuste. Genere cc_cache.jsonl archivo utilizado en el proceso de ajuste fino ejecutando el siguiente código:

from pymongo import MongoClient
import pandas as pd
import json
client = MongoClient("mongodb+srv://<uid>:<pwd>@bfsi-demo.2wqno.mongodb.net/?retryWrites=true&w=majority")
df = pd.DataFrame.from_records(client["bfsi-genai"]["cc_cache"].find({},{"_id": 0}))
df["prompt"] = df["key"].apply(lambda x: x.strip('(').strip('"').strip(")").strip("\\"))
del df["key"]
df["response"] = df["response"].apply(lambda x: x.strip())
df.to_json("cc_cache.jsonl", orient="records", lines=True)
# transform cache to messages
messages = []
for item in df.iterrows():
messages += [{"messages": [{"role": "user", "content": item["prompt"].strip(" \\")}, {"role": "assistant", "content": item["response"]}]}]
with open("cc_cache.jsonl", "w") as f:
for item in messages:
f.write(json.dumps(item) + "\n")

Después de preparar el conjunto de datos y generar el archivo cc_cache.jsonl, ajuste el modelo llama-v3p1-8b-instruct previamente entrenado con los siguientes pasos:

1
pip install firectl
2
firectl login
3
firectl create dataset <dataset_name> cc_cache.jsonl
4
firectl create sftj --base-model accounts/fireworks/models/llama-v3p1-8b-instruct --dataset <dataset_name> --output-model ccmodel --lora-rank 8 --epochs 1
5
Monitoreo del proceso de ajuste fino

Figura 3. Monitoreo del proceso de ajuste fino

6
firectl deploy ccmodel

Este procedimiento demuestra cómo la integración de MongoDB y Fireworks AI mejora el rendimiento del modelo de IA de manera rentable.

Después de implementar el modelo en la plataforma Fireworks como una API sin servidor, use el ID del modelo, models/ft-m88hxaga-pi11m, que se muestra en la Figura 2 para invocar el modelo SLM ajustado utilizando su marco de modelo de lenguaje preferido.

El ajuste fino del SLM para recomendaciones de tarjetas de crédito produce los siguientes resultados:

  1. Mejora del tiempo de respuesta: El tiempo de respuesta de LLM es,5 en promedio, de segundos. Los SLM lo reducen a aproximadamente 0.15 segundos, lo que proporciona una 19reducción de latencia de veces.

    import time
    class tiktok:
    """
    Decorator to time the execution of a function and log the time taken.
    """
    def __init__(self, function):
    self.function = function
    def __call__(self, *args, **kwargs):
    import time
    start = time.time()
    value = self.function(*args, **kwargs)
    end = time.time()
    print(f"Time taken for {self.function.__name__}: {end - start} seconds")
    return value
    @tiktok
    @mdbcache
    def invoke_llm(prompt):
    """
    Invoke the language model with the given prompt with cache. The
    invoke LLM method can invoke either a LLM or SLM based on the
    Fireworks Model ID initialized.
    Args:
    prompt (str): The prompt to pass to the LLM.
    """
    ...
    Modelo
    Tiempo de inferencia 1 (s)
    Tiempo de inferencia 2 (s)
    Tiempo de inferencia 3 (s)
    Tiempo promedio (s)

    llama-v3p1-405b-instruct

    5.5954

    7.5936

    4.9121

    6.0337

    SLM - llama-v3p1-8b afinado

    0.3554

    0.0480

    0.0473

    0.1502

  2. Reducción de memoria: Los LLM suelen requerir 8x80GB de VRAM. Los SLM funcionan con 16 GB de VRAM, lo que reduce el uso de memoria en 97.5un %.

  3. Reducción de hardware: Los modelos de lenguaje grandes requieren GPUs de alta gama o múltiples servidores. Los modelos de lenguaje pequeños pueden implementarse en CPUs estándar o servidores individuales, reduciendo los costos de hardware.

  • Menor costo total de propiedad: Las técnicas LoRA y QLoRA reducen los requisitos computacionales para el ajuste fino de SLM. La arquitectura distribuida y la indexación eficiente de MongoDB escalan la infraestructura de datos bajo demanda, minimizando los costos de almacenamiento y reduciendo los gastos operativos.

  • Optimice los flujos de trabajo de datos e IA: MongoDB permite la integración de datos en tiempo real para modelos de IA. La integración con las herramientas de ajuste de Fireworks AI crea flujos de trabajo que mantienen los modelos actualizados y mejoran la precisión en la toma de decisiones.

  • Mejore las soluciones RAG: MongoDB Atlas y Fireworks AI se combinan para crear marcos RAG con almacenamiento y recuperación de datos mejorados. MongoDB Atlas proporciona almacenamiento de incrustación escalable, mientras que Fireworks AI ofrece alojamiento LLM/SLM administrado.

  • Wei You Pan, MongoDB

  • Ashwin Gangadhar, MongoDB

  • Peyman Parsi, MongoDB

  • Benny Chen, IA de fuegos artificiales

  • Ayaan Momin, IA de fuegos artificiales

Volver

Inteligencia de documentos con Agentic IA

En esta página