>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

Hoe kom je van de containerchaos af bij het bouwen van AI-agents met SIE

Superlinked logo

Het bouwen van autonome agents op lokale of open-source neurale netwerken wordt snel een infrastructuurhoofdpijn. Als je een RAG-systeem in elkaar zet met meerdere besluitvormingsstappen, moet je verschillende smalpraktische systemen tegelijk draaiende houden. Je hebt een vectormodel nodig voor zoeken, een aparte reranker, een tool voor het parseren van complexe graphics in PDF's, een security classifier en een generatief LLM.

Als gevolg daarvan verandert de dev-omgeving snel in een verzameling docker-compose-bestanden. Eén container neemt geheugen in beslag voor vLLM, een andere draait Text Embeddings Inference, een derde lanceert PyTorch alleen maar voor paranoïde entiteitsextractie via GLiNER. Al deze instanties constant draaiende houden is een gegarandeerde manier om enorme GPU-kosten op te bouwen.

Ingenieurs bij Superlinked liepen tegen hetzelfde probleem aan en brachten SIE (Superlinked Inference Engine) uit. Dit is een inference-server die alle agent-taakverwerking consolideert onder één dak.

Hoe het onder de motorkap werkt

SIE neemt een andere aanpak. In plaats van vijf onafhankelijke inference-servers draaiende te houden, deploy je één cluster die reageert op standaard OpenAI-eindpunten zoals /v1/embeddings of /v1/chat/completions.

Het belangrijkste kenmerk is dynamisch model laden op aanvraag met een LRU (Least Recently Used) evictie-algoritme. Wanneer een agent OCR nodig heeft om een door de gebruiker geüploade scan te parseren, laadt SIE het documentherkenningsmodel in het GPU-geheugen. Zodra de parsing-fase is voltooid en het systeem overgaat naar dialoog, ruimt het zelden gebruikte model geheugen op voor het generatieve netwerk.

De catalogus wordt geleverd met meer dan honderd vooraf geconfigureerde setups out of the box. Populaire opties zijn BGE-M3, ColBERTv2, SPLADE-v3, GLiNER, Docling, Qwen3, en prompt injection-beschermingsmodellen zoals Granite Guardian.

Snel aan de slag op je lokale machine

Voor een eerste blik is een standaard Python-pakket voldoende. Je kunt een test-instantie op CPU of Apple Silicon draaien in twee commando's:

pip install "sie-server[local]"
sie-server serve

Als je van plan bent zware workloads op NVIDIA GPU's te draaien, kies dan vanaf het begin voor Docker. De ontwikkelaars hebben de services expres opgesplitst in geïsoleerde containers vanwege conflicting system dependencies. OCR-modellen vereisen de nieuwste transformers-bibliotheek, dus worden ze verzonden als een aparte tag.

Voor vector search ziet het starten van de basiscontainer er zo uit:

docker run --gpus all -p 8080:8080 \
  -v sie-hf-cache:/app/.cache/huggingface \
  ghcr.io/superlinked/sie-server:latest-cuda12-default

Je kunt verifiëren dat het werkt met een standaard curl-oproep:

curl http://localhost:8080/v1/embeddings \
  -H 'Content-Type: application/json' \
  -d '{"model": "sentence-transformers/all-MiniLM-L6-v2", "input": "Привет, мир"}'

Bij de eerste aanvraag downloadt de server automatisch gewichten van Hugging Face en slaat ze op in de lokale cache, dus volgende queries draaien zonder downloadvertragingen.

Programmeren met de Python SDK

Voor het werken met de server schreven de auteurs bibliotheken voor Python en TypeScript. De SDK regelt het aanroepen van specifieke taken zoals classificatie of named entity extraction.

Hier is een voorbeeld van hoe je tekst vectoriseert, resultaten herrankt en entiteiten extraheert binnen één client:

from sie_sdk import SIEClient
from sie_sdk.types import Item

client = SIEClient("http://localhost:8080")

# Получаем эмбеддинг
embedding = client.encode("sentence-transformers/all-MiniLM-L6-v2", Item(text="Привет мир"))

# Считаем релевантность документов
scores = client.score(
    "cross-encoder/ms-marco-MiniLM-L-6-v2",
    Item(text="Что такое машинное обучение?"),
    [Item(text="ML обучается на данных."), Item(text="Сегодня солнечная погода.")],
)

# Извлекаем сущности через GLiNER
entities = client.extract(
    "urchade/gliner_multi-v2.1",
    Item(text="Тим Кук руководит компанией Apple в Купертино."),
    labels=["person", "organization", "location"],
)

De syntax is eenvoudig. Je hoeft geen eigen wrappers te schrijven voor HTTP-eindpunten of third-party bibliotheken aan te trekken voor elk klein model.

Productierijp

Veel vergelijkbare open-source projecten blijven steken in de fase van een gepolijste README voor lokaal gebruik. In het geval van SIE hebben de auteurs meteen de infrastructuurtools vrijgegeven voor deployen naar Kubernetes.

De repository en gerelateerde projecten in de organisatie omvatten:

  • Helm chart sie-cluster voor snelle installatie.
  • Kant-en-klare Terraform-modules voor AWS (EKS), Google Cloud (GKE) en Azure (AKS).
  • KEDA-configuraties voor het automatisch schalen van pods tot nul.
  • Load balancer en Grafana-dashboards voor metriekverzameling.

De mogelijkheid om pods tot nul te schalen is handig voor interne bedrijfsservices. Als werknemers de agent 's nachts niet gebruiken, zullen cloud GPU's gewoon niet idle blijven.

De valkuil

Het concept van één inference-server voor alle taken klinkt geweldig, maar er zijn geen perfecte oplossingen.

De belangrijkste valkuil is cold start latency. Wanneer een model wordt verdreven uit GPU-geheugen door LRU-evictie, moet de volgende aanvraag wachten tot de gewichten opnieuw van schijf worden geladen. Op relatief trage opslag voegt dit een paar seconden vertraging toe aan de reactie van de agent.

Het tweede detail heeft betrekking op Docker-image-scheiding. Als je pipeline tegelijkertijd OCR nodig heeft op basis van LightOnOCR en snelle LLM-inferentie op SGLang, moet je nog steeds twee verschillende SIE-containers draaiende houden omdat hun omgevingen verschillen.

Is het de moeite waard om te proberen?

SIE is een goede kandidaat voor teams die pipelines bouwen op hun eigen hardware of in een private cloud. Als je het beu bent om infrastructuur overeind te houden met vijf verschillende containers voor slechts één RAG-systeem, zal dit project een hoop tijd besparen.

Als je architectuur eenvoudig is en alleen uit één conversationeel model bestaat zonder complexe documentverwerking en herranking-stappen, is er geen punt om over te schakelen naar SIE. Reguliere vLLM of Ollama zal in dat scenario perfect voldoende zijn.

Gerelateerde projecten