Accelerant l'Anàlisi de Sentiments amb GPU Micro-serveis

Optimitza l'anàlisi de sentiments amb microserveis, Kubernetes i GPU. Descobreix com escalar a 50K RPS amb inferència per lots, Kafka i Spark en temps real.

viernes, 7 de marzo de 2025 • 3 min de lectura • Equip Q2BSTUDIO

Empresa-Software-Apps

Recordo el dia en què el nostre pipeline d'anàlisi de sentiments basat en un sol procés va col·lapsar a causa d'una onada de sol·licituds. Els registres eren preocupants: els grups de fils es van saturar, els treballs per lots es van aturar i la memòria es va disparar. Va ser llavors quan vam decidir deixar enrere el nostre disseny monolític i reconstruir-ho tot des de zero. En aquesta publicació et mostrarem com a Q2BSTUDIO vam transformar la nostra arquitectura utilitzant microserveis, Kubernetes, escalat automàtic amb GPU i un pipeline ETL en streaming per processar grans volums de dades socials en temps gairebé real.

Els monòlits funcionen bé, fins que deixen de fer-ho

Inicialment, el nostre sistema d'anàlisi de sentiments era un únic codi que gestionava la ingesta de dades, la tokenització, la inferència del model, el registre de dades i l'emmagatzematge. Va funcionar bé fins que el trànsit va créixer i ens va obligar a sobredimensionar cada component. Les actualitzacions eren encara més problemàtiques, ja que havíem de desplegar tota l'aplicació només per fer ajustos al model d'inferència.

Amb la migració a microserveis a Q2BSTUDIO, vam desacoblar cada funció en serveis independents:

- API Gateway: Gestiona autenticació i encaminament de sol·licituds.

- Processament de text: Optimització de neteja de text i tokenització.

- Servei d'inferència amb GPU: On ocorre l'anàlisi de sentiments.

- Emmagatzematge de dades: Registre de resultats i logs.

- Monitoratge: Supervisió amb el menor impacte possible.

Amb aquesta estructura, ara podem escalar cada component de manera independent, augmentant el rendiment just on és necessari.

Contenidorització per a inferència amb GPU

Un dels primers passos va ser la contenidorització del nostre servei d'inferència amb GPUs. Utilitzem una imatge base amb controladors CUDA i biblioteques necessàries per a l'acceleració, cosa que ens permet desplegar la nostra solució en entorns d'orquestració sense friccions.

Kubernetes: Escalat automàtic amb GPU

Gràcies a Kubernetes, despleguem i escalem cada microservei de forma eficient. Els nostres pods d'inferència estan vinculats a nodes amb GPU i poden augmentar automàticament en funció de la utilització de la targeta gràfica. Quan l'ús de la GPU arriba a un llindar del 70%, Kubernetes genera nous pods, assegurant un rendiment òptim sense costos innecessaris en períodes de baixa demanda.

Aconseguint 50K RPS amb inferència per lots i E/S asíncrona

Per maximitzar l'aprofitament dels recursos, agrupem múltiples sol·licituds en lots abans d'enviar-les per a inferència a la GPU. Això redueix els temps d'espera i millora l'eficiència del sistema.

El nostre servidor d'inferència basat en FastAPI i TensorRT realitza processament en paral·lel, gestionant milers de sol·licituds per segon de manera fluida.

ETL en temps real amb Kafka, Spark i emmagatzematge al núvol

A Q2BSTUDIO també vam implementar un pipeline d'ingesta de dades basat en Kafka i Spark per gestionar alts volums de dades en temps real. Kafka actua com el nostre broker de missatges, Spark realitza transformacions en el flux de dades i emmagatzemem els resultats en sistemes escalables al núvol.

Amb aquest enfocament, processem grans volums d'informació en qüestió de segons, extraient valor de les dades en temps real.

Lliçons apreses i optimitzacions

Durant la implementació vam trobar desafiaments com la gestió de memòria a la GPU i la configuració òptima de les mides dels lots d'inferència. Ajustar aquests paràmetres va ser clau per aconseguir un equilibri entre rendiment i latència en diferents escenaris d'ús.

Conclusió

A Q2BSTUDIO vam aconseguir transformar una arquitectura monolítica en un sistema altament eficient basat en microserveis i processament en temps real. Gràcies a l'escalabilitat amb Kubernetes, el processament optimitzat amb GPUs i l'arquitectura de streaming, ara gestionem càrregues extremes amb facilitat.

Si la teva empresa s'enfronta a problemes d'escalabilitat similars, és el moment de considerar una evolució cap a microserveis i flux de dades en temps real. A Q2BSTUDIO oferim solucions avançades de desenvolupament i serveis tecnològics per optimitzar el rendiment de les plataformes digitals més exigents.

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.