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.

UNA PAUSA?

Juga una estona abans de marxar

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.