Big Language Models (LLMs) dia any amin'ny toerana rehetra, avy amin'ny fampiharana isan'andro ho an'ny fitaovana avo lenta. Ny fampiasana azy ireo dia mora. Fa ahoana raha mila mihazakazaka ny modely manokana ianao? Na manana modely tsara ianao na mifandray amin'ny angon-drakitra miavaka amin'ny fiainana manokana, dia mitombo ny fahasamihafana. Ao amin'ity lahatsoratra ity dia hizara izay nianarantsika nandritra ny famoronana ny rafitra LLM. Hahitana ny fitehirizana sy ny fametrahana modely, ny famolavolana ny serivisy, ary ny fanatanterahana olana amin'ny tontolo tena izy ireo toy ny fandefasana, fandefasana sy ny fitantanana ny microservices. Ny dingana dia ahitana fanamby, fa Ny fampidirana Ny LLM dia mampiasa fampiharana maro samihafa - avy amin'ny chatbots sy ny solosaina amin'ny asa amin'ny asa amin'ny alàlan'ny fitaovana fikarohana malaza. Na dia ny famokarana fanamafisana, ny fitaovana antso, ary ny protocols multi-agent dia zava-dehibe, dia miasa amin'ny ambaratonga mihoatra noho ny motera fototra: ny LLM fototra. Maro ny tetikasa miankina amin'ny mpanome tolotra ivelany, toy ny Ny Na ny , izay ampy ho an'ny ankamaroan'ny fampiasana. Fa ho an'ny fampiharana sasany, dia lasa olana haingana izany. Ary raha mivoaka ny mpamatsy? Ary raha mila ny fanaraha-maso tanteraka momba ny fahatarana, ny vidin'ny vidiny, na ny vanim-potoana misy anao ianao? Ny fanokafana Gemini Anthropic Ny fanokafana Ny Gemini Ny Antropiana Izany no mahatonga ny fampiantranoana tena ilaina. Ny fandefasana modely voafaritra na tsara dia manome fanaraha-maso, fiarovana, ary ny fahafahana mampifanaraka ny modely amin'ny zavatra ilain'ny raharaham-barotra manokana. Ny famoronana rafitra toy izany dia tsy mitaky ekipa lehibe na loharano be dia be. Namorona izany izahay amin'ny teti-bola madinika, ekipa kely ary vitsivitsy vitsivitsy fotsiny. Ity fepetra ity dia nanjary fiantraikany tamin'ny fanapahan-kevitra momba ny fanorenana, izay nangatahana antsika mba hifantoka amin'ny fahaiza-manao sy ny fahombiazan'ny. Ao amin'ny fizarana manaraka, dia hanadihady ny fanamby, ny vahaolana napetraka, ary ny Ny fijerena ankapobeny Ireo no singa fototra izay mamorona ny fototry ny rafitra. Formats sy Encoding. Ny fiteny mizara an-tserasera amin'ny serivisy dia zava-dehibe. Izany dia midika hoe endrika fangatahana / valiny, fandaharam-potoana famokarana, rafitra tantara fifanakalozan-kevitra, ary serialization izay miasa any amin'ny toerana rehetra - avy amin'ny frontend amin'ny backend ho an'ny modely mpandeha. Streaming sy Routing. Ny fandefasana modely maromaro, karazana fangatahana, ary fanapahan-kevitry ny mpampiasa dia mitaky fanapahan-kevitra amin'ny alalan'ny routing. Hisafidy ny fomba fandefasana ny fangatahan'ny mpampiasa amin'ny alàlan'ny rafitra - avy amin'ny toerana fidirana voalohany mankany amin'ny mpandray anjara mety - ary ny fomba fandefasana ny valiny. Modely fitehirizana sy fandefasana. Aiza ny modely miaina, ary ahoana no vonona ho an'ny fampiasana famokarana? Hiresaka momba ny fanadihadiana fototra tokony hatao, anisan'izany ny fanomezana antoka ny azo antoka ny modely. Ahoana no ahafantaranao fa miasa ny zavatra? dia hanehoana izay metrik'izany isika, ny fomba fanaraha-maso ny tsy fahombiazana, ary ny sondy ampiasaintsika mba hahazoana antoka ny fahasalamana sy ny azo antoka ny rafitra. Ny fandaharana sy ny data encoding Ny fisafidianana ny fandaharam-potoana tsara ho an'ny famindrana angon-drakitra dia manan-danja. Ny endriky ny fandefasana amin'ny serivisy dia manatsara ny fampidirana, mampihena ny fahadisoana ary manatsara ny fahafahana hifanaraka. Ny tanjona dia ny mamolavola ny rafitra mba miasa tsy tapaka amin'ny modely samihafa sy ny mpamatsy ivelany - tsy hampiseho ny fahasamihafana amin'ny mpampiasa. Nahoana ny famolavolana dia zava-dehibe Tsy misy fitsipika ankapobeny ho an'ny fifanakalozan-kevitra LLM. Ny mpamatsy maro dia manaraka rafitra mitovy amin'ny Na dia ny hafa aza - toy ny Ary Maro amin'ireo mpamatsy ireo dia manolotra SDK mifanaraka amin'ny OpenAI izay mitazona ny rafitra mitovy, na dia matetika miaraka amin'ny fepetra voafetra na fitaovana voafetra (ohatra, Ny Ny tetikasa hafa toy ny Ny tanjona dia ny hampifandray ireo endrika ireo amin'ny alàlan'ny fametrahana azy ireo amin'ny interface mifanaraka amin'ny OpenAI. Ny fanokafana Ny renivohiny Ny Gemini Ny SDK mifanaraka amin'ny OpenAI an'ny Anthropic Ny sehatra mifanaraka amin'ny OpenAI amin'ny Gemini Ny OpenRouter Ny fanokafana Ny renivohiny Ny Gemini Ny SDK mifanaraka amin'ny OpenAI an'ny Anthropic Ny sehatra mifanaraka amin'ny OpenAI amin'ny Gemini Ny OpenRouter Sticking to a single predefined provider’s schema has its benefits: Azonao atao ny mahazo API mahomby sy mahomby. Afaka miankina amin'ny SDK sy ny fitaovana misy anao ianao. Na izany aza, misy ihany koa ny tsy fahampian'ny tena: Izany dia mamorona mpamatsy lock-in, mahatonga izany ho sarotra kokoa ny manohana mpamatsy maromaro. Mampihena ny fahafahana hampitombo ny fandaharam-potoana amin'ny endri-javatra takiana amin'ny zavatra ilaina amin'ny fangatahana ara-barotra na ny fepetra takiana amin'ny ekipa data science. Ianao dia voahelingelina amin'ny fiovana na ny fanimbana ivelan'ny fanaraha-maso anao. Ireo fandaharam-potoana matetika dia mitondra fepetra ara-pananahana izay mametra ny fanaraha-maso tsara. Mba hanatanterahana izany, dia nifidy ny mamaritra ny - fandaharam-potoana natao manodidina ny zavatra ilaintsika, izay azontsika atao amin'ny endrika ivelany samihafa raha ilaina. own internal data model Ny famolavolana anatiny Alohan'ny hanatanterahana ny fanamby, aoka isika hanamarina ny olana ary hampifanaraka ny fanantenantsika amin'ny vahaolana: Easy conversion to formats required by external providers and in reverse. Fanohanana feno ho an'ny endri-javatra manokana ho an'ny orinasa sy ny data science ekipa. Ataovy azo antoka fa mora ny manatsara ny fandaharam-potoana mba hanatanterahana ny fepetra ho avy. We began by reviewing major LLM schemas to understand how providers structure messages, parameters, and outputs. This allowed us to extract mahazatra amin'ny ankamaroan'ny rafitra, anisan'izany ny: core domain entities Ny hafatra (ohatra avy hatrany, tantara) Parameters Generation (ohatra, hafanana, top_p, beam_search) Nandray anjara tamin'ny fitsipika sasany izahay, toy ny Ny Na ny , toy ny manokana amin'ny fametrahana anatiny sy ny raharaham-barotra ny mpamatsy. Ireo singa ireo dia miala amin'ny sehatry ny LLM fototra ary tsy ampahany amin'ny fandaharam-potoana samihafa. Ankoatra izany, izy ireo dia heverina ho fanitarana tsy misy safidy. Rehefa misy endri-javatra dia lasa nampiasaina be na ilaina ho an'ny fiaraha-miasa bebe kokoa, dia mandinika ny fampidirana azy amin'ny fandaharam-potoana fototra. service_tier usage_metadata reasoning_mode Amin'ny ambaratonga avo, ny fandaharam-potoana fidiram-bola dia mifototra amin'ireto singa fototra ireto: Modely - Amin'ny fampiasana ho toy ny routing key, miasa ho toy ny routing identifier, mamela ny rafitra hitarika ny fangatahana amin'ny mpiara-miasa ny node mety. Generation Parameters - ny fametrahana ny modely fototra (ohatra, hafanana, top_p, max_tokens). Messages - tantara amin'ny fifanakalozan-kevitra sy payloads haingana. Tools - Ny famaritana ny fitaovana izay mety ampiasaina amin'ny modely. Izany dia mitarika antsika amin'ny sehatra manaraka, izay hita ao amin'ny Izany dia mampiseho ny rafitra sy ny tanjon'ny famolavolana, na dia tsy misy antsipirihany sasany amin'ny fampiharana aza noho ny tsotra. Tahaka ny Tahaka ny class ChatCompletionRequest(BaseModel): model: str # Routing key to select the appropriate model or service messages: list[Message] # Prompt and dialogue history generation_parameters: GenerationParameters # Core generation settings tools: list[Tool] # Optional tool defenitions class GenerationParameters(BaseModel): temperature: float top_p: float max_tokens: int beam_search: BeamSearchParams # Optional, non-core fields specific to certain providers provider_extensions: dict[str, Any] = {} ... # Other parameters We deliberately moved generation parameters into a separate nested field instead of placing them at the root level. This design choice makes a distinction between parameters (ohatra, ny hafanana, ny top-p, ny modely fametrahana) ary Maro amin'ireo ekipa ao amin'ny tontolo iainana no mitahiry ireo parameters ireo ao amin'ny rafitra fametrahana ivelany, izay mahatonga io fizarana io ho mahomby sy ilaina. Ny tsy tapaka Ny fiovana We include an additional field called Ao anatin'ny Ireo parametra ireo dia miova be eo amin'ny mpamatsy LLM samihafa, ny fanamarinana sy ny fanazavana ireo sehatra ireo dia - ny singa izay mahafantatra ny fomba hifandray amin'ny mpamatsy modely iray manokana. Noho izany dia manakana ny fifandraisana tsy ilaina amin'ny alalan'ny fifandraisana izay vokatry ny fanamarinana angon-drakitra amin'ny serivisy maromaro. provider_extensions GenerationParameters delegated to the final module that handles model inference Mba hahazoana antoka ny fifanarahana mivantana, ny endri-javatra vaovao amin'ny fandaharam-potoana dia ao amin'ny endriky ny fangatahana. Ireo sehatra ireo dia miasa toy ny famantarana - ny mpampiasa dia tsy maintsy mametraka azy ireo mba hifidy amin'ny fitondran-teny manokana. Ity fomba ity dia mitazona ny endriky ny fototry ny fototry ny fangatahana ary mamela ny fampandrosoana. Ohatra, ny famantarana famantarana dia ho tafiditra ao amin'ny vokatra raha voatendry ny sehatra mifanaraka amin'ny fangatahana. explicit, optional fields Ireo fandaharam-potoana ireo dia voatahiry ao amin'ny lisitry ny Python ankapobeny ary ampiasaina amin'ny serivisy mba hahazoana antoka ny fandefasana fangatahana sy valiny. Miara-miasa amin'ny antoko fahatelo mpamatsy Nanomboka tamin'ny fametrahana ny fomba nanorina ny sehatra manokana isika - nahoana no manahirana ny fifandraisana amin'ny mpamatsy ivelany? Na dia miankina amin'ny sehatra anatiny aza, mbola misy toe-javatra maromaro izay mitana anjara amin'ny modely ivelany: Synthetic data generation ho an'ny prototyping sy ny fanandramana amin'ny data science ekipa. Ny asa amin'ny tanjona ankapobeny izay misy modely ankapobeny dia miasa tsara kokoa ivelan'ny boaty. Tsy misy fiantraikany amin'ny fampiasana izay tsy manan-danja kokoa ny fiarovana ny fiainana manokana, ny fahatarana na ny fanaraha-maso ny sehatra. Ny fifandraisana amin'ny mpamatsy an-tserasera amin'ny ankapobeny dia azo aseho toy izao manaraka izao: Ity dingana ity dia ahitana ny dingana manaraka: Special LLM-Gateway Service tompon'andraikitra amin'ny fifandraisana amin'ny mpamatsy dia mahazo ny fangatahan'ny mpampiasa amin'ny endriky ny fandaharam-potoana. Ny fangatahana dia hiverina amin'ny format manokana amin'ny mpamatsy, anisan'izany ny endri-javatra azo antoka. Ny mpamatsy an-tserasera dia mandrindra ny fangatahana ary miverina valiny. The receives the response and maps it back into our standardized response schema. LLM-Gateway Service Ity dia endrika avo lenta izay manala ny sasany amin'ireo microservices tsirairay. Ny antsipiriany momba ny singa manokana sy ny endriky ny valin'ny valin'ny fandefasana dia ho voatahiry ao amin'ny fizarana manaraka. Ny format amin'ny streaming Ny valin'ny LLM dia niteraka tsikelikely - token amin'ny token - ary avy eo dia ampidirina amin'ny Amin'ny fomba fijerin'ny mpampiasa, na amin'ny alalan'ny navigateur, fampiharana finday, na terminal, ny traikefa dia tsy maintsy mitoetra Izany dia mitaky rafitra fitaterana izay manohana ny . chunks fluid and responsive low-latency, real-time streaming Misy safidy roa fototra hanatanterahana izany: WebSockets: Ny fantsona fifandraisana feno duplex izay mamela fiaraha-miasa tsy tapaka eo amin'ny client sy server. Server-Sent Events (SSE): Fifanarahana fandefasana amin'ny alalan'ny HTTP izay ampiasaina be dia be ho an'ny fanavaozana amin'ny fotoana tena izy. Ny tranonkala Ny tranonkala Ny fandaharana amin'ny serivisy (SSE) Ny fandaharana amin'ny serivisy (SSE) Why SSE over WebSockets? While both options are viable, — indrindra fa ho an'ny API mifanaraka amin'ny OpenAI sy ny rafitra mitovy. Izany dia noho ny tombontsoa maro amin'ny fomba fanao: SSE is the more commonly used solution for standard LLM inference Tsotra: Ny SSE dia mihazakazaka amin'ny HTTP matetika, tsy mitaky fanavaozana manokana na fifampiraharahana. Fifanarahana: Miasa amin'ny navigateur rehetra tsy misy lisitry ny lisitry ny lisitry ny lisitra. Unidirectional Flow: Ny ankamaroan'ny valin'ny LLM dia mivezivezy avy amin'ny mpizara mankany amin'ny mpanjifa, izay mifanaraka amin'ny famolavolana ny SSE. Proxy-Friendliness: Ny SSE dia mifanaraka tsara amin'ny sehatra HTTP matetika, anisan'izany ny reverse proxies. Upgrades na ny fifanarahana Because of these benefits, . SSE is typically chosen for text-only, prompt-response streaming use cases Na izany aza, ny sasany amin'ireo tranga fampiasàna vaovao dia mitaky fifandraisana manan-karena kokoa, ambany faharetan'ny fifandraisana - toy ny transkription amin'ny fotoana tena izy na ny fifandraisana amin'ny feo. Ny fampiasana ireo fepetra ireo dia Ireo protocols ireo dia mifanaraka tsara kokoa amin'ny fidirana sy fidirana multimodal tsy tapaka. Ny API amin'ny fotoana tena izy WebSockets Ny API amin'ny fotoana tena izy Satria ny rafitra dia mifantoka amin'ny Miaraka amin'ny for its simplicity, compatibility, and alignment with our streaming model. text-based interactions SSE Response Stream ny votoatiny Ny voafidy ho toy ny karazana fifamoivoizana, ny dingana manaraka dia ny fametrahana data to include in the stream. Effective streaming requires more than just raw text — it needs to provide sufficient mba hanampiana ny mpanjifa any aoriana, toy ny interface mpampiasa sy ny fitaovana automation. Ny fifamoivoizana dia tsy maintsy ahitana ny fampahalalana manaraka: SSE what structure, metadata, and context Header-Level Metadata. fampahalalana fototra momba ny famantarana toy ny fangatahana ID. Real Content Chunks. Ny fototry ny vokatra - ny tokens na strings nateraky ny modely - dia omena amin'ny ampahany amin'ny alalan'ny famerenana indray ny andian-dahatsoratra (n). Ny taranaka tsirairay dia mety ahitana andian-dahatsoratra maro (ohatra, n = 2, n = 4) .Ireo andian-dahatsoratra ireo dia niteraka tsy miankina ary omena amin'ny ampahany amin'ny alalan'ny famerenana, tsirairay tafiditra ao amin'ny fametrahana andian-dahatsoratra manokana. Ny fampiasana sy ny token-level metadata. Ity dia ahitana ny isan'ny token nateraky, ny daty fotoana, ary ny diagnostika tsy misy safidy toy ny logprobs na ny famaritana famantarana. Ireo dia azo ampiasaina amin'ny fandoavam-bola, debugging, na modely fanombanana. Taorian'ny famaritana ny rafitra ny valin'ny fandefasana, dia nihevitra ihany koa izahay fa misy fepetra maro tsy ara-pahasalamana ilaina amin'ny fiarovana sy ny fampandrosoana amin'ny hoavy. Ny famolavolana ny rivotra dia natao ho: Structured - manavaka mazava eo amin'ny karazana votoaty sy ny fetran'ny hetsika. — capable of carrying optional metadata without breaking existing clients. Extensible Mifanohitra amin'ny angon-drakitra malformed, ny fahatarana, na ny ampahany. Ao amin'ny fampiharana maro - toy ny Ary - ny andian-dahatsoratra maromaro (fanatanterahana) dia niteraka parallel amin'ny ampahany amin'ny fangatahan'ny taranaka tokana. side-by-side comparison diverse sampling Ny endrika feno indrindra ho an'ny valin'ny streaming dia voafaritra ao amin'ny Araka ny famaritana, ny singa iray amin'ny taranaka dia mety ahitana andian-dahatsoratra maromaro ao amin'ny Ary ny OpenAI API reference choices Ny fametrahana ny API Ny safidy Ary ny A list of chat completion choices. Can contain more than one element if n is greater than 1. Can also be empty for the last chunk. choices Ary ny A list of chat completion choices. Can contain more than one element if n is greater than 1. Can also be empty for the last chunk. Na dia ao amin'ny fomba fanao aza, ny ampahany tsirairay dia matetika ahitana delta iray ihany, ny endrika dia mamela fanavaozana isan-karazany maromaro isaky ny ampahany. zava-dehibe ny mandinika izany, satria ny fanavaozana ho avy dia mety mampiasa bebe kokoa ity fahaiza-manao ity. Izany dia natao mba hanampiana ity rafitra ity. Sary avy amin'ny Python SDK Sary avy amin'ny Python SDK We chose to follow the same structure to ensure compatibility with a wide range of potential features. The diagram below illustrates an example from our implementation, where a single generation consists of three sequences, streamed in six chunks over time: This chunk marks the beginning of the entire generation. It doesn’t contain any actual content but includes shared metadata, such as the generation ID, timestamp, and role (e.g., assistant, etc.). Chunk 1 — Generation Start. Chunk 2 - Sequence Start (Green & Purple). Ny andian-dahatsoratra roa dia manomboka amin'ny fifamoivoizana parallel. Ny tsirairay dia voasoratra amin'ny marika manokana mba hanambara azy amin'ny hafa. The third sequence starts (blue), while the first two sequences (green and purple) stream incremental content via delta events. Chunk 3 — Sequence Start (Blue) & Sequence Delta. The green and blue sequences continue streaming deltas. The purple sequence finishes — this includes a structured finish_reason (like stop, length, etc.). Chunk 4 — Midstream Updates & Finish (Purple). Both the green and blue sequences complete. Each sequence’s lifecycle is now fully enclosed between its respective start and finish markers. Chunk 5 — Remaining Sequence Finishes. Chunk 6 — Generation Finish. Ity fanapahan-kevitra ity dia manakatona ny famokarana ary mety ahitana antontan-taratasy momba ny fampiasana eran-tany, ny isan'ny token farany, ny fampahalalana momba ny latency, na diagnostika hafa. As you see, to make the stream robust and easier to parse, we opted to , rather than relying on implicit mechanisms such as null checks, EOFs, or magic tokens. This structured approach simplifies downstream parsing, especially in environments where multiple completions are streamed in parallel, and also improves debuggability and fault isolation during development and runtime inspection. explicitly signal Start and Finish events for both the overall generation and each individual sequence Ankoatra izany, dia manolotra fanampiny chunk that carries structured information about failures. Some errors — such as malformed requests or authorization issues — can be surfaced directly via standard HTTP response codes. However, if an error occurs , manana safidy roa izahay: na manakana haingana ny HTTP stream na hamoaka fahadisoana SSE tsara. dia nifidy ny farany. Ny fanakanana haingana ny fifandraisana dia mahatonga ny mpanjifa ho sarotra ny manavaka eo amin'ny tambajotra olana sy ny tena modely / serivisy tsy fahombiazan'ny. Amin'ny fampiasana ny fe-potoana manokana, dia manome fahafahana ho azo antoka kokoa ny famantarana sy ny fampitomboana ny olana amin'ny streaming. Error during the generation process Ny Backend Services sy ny Request Flow Ao afovoan'ny rafitra dia misy dingana fidirana tokana: Manatanteraka olana fototra toy ny fanamarinana, ny fanaraha-maso ny fampiasana sy ny fanararaotana, ny fametrahana fangatahana, ary ny fametrahana mifototra amin'ny modely voafaritra izy io. Na dia toa toa ny Gateway dia mitondra andraikitra be dia be, ny asa tsirairay dia tsotra sy modular. Ho an'ny mpamatsy ivelany, dia mampifanaraka ny fangatahana amin'ny API ary mametraka valiny indray amin'ny format iray. Ho an'ny modely voafantina, ny fangatahana dia alefa mivantana mivantana amin'ny rafitra anatiny amin'ny fampiasana ny rafitra samihafa. Ity famolavolana ity dia mamela ny fanohanana tsy tapaka ho an'ny modely ivelany sy anatiny amin' LLM-Gateway Ny modely tsy miankina As mentioned earlier, tsara ho an'ny fandefasana valiny amin'ny mpampiasa farany, fa tsy safidy mahomby ho an'ny Rehefa tonga ny fangatahana, dia tsy maintsy alefa any amin'ny node mpiara-miasa mety ho an'ny modelin'ny fanapahan-kevitra, ary ny vokatra dia nandeha indray. Na dia ny rafitra sasany dia manatanteraka izany amin'ny fampiasana proxy HTTP an-tserasera sy ny routing mifototra amin'ny lohateny, araka ny traikefantsika, dia sarotra ny fitantanana sy ny fampandrosoana ity fomba ity raha mitombo ny fahasamihafana. Server-Sent Events (SSE) internal backend communication Our internal infrastructure needs to support: Priority-fahatsiarovana fandaharam-potoana - Ny fangatahana dia mety manana ambaratonga samihafa (ohatra, interactive vs. batch), ary ny asa manan-danja dia tsy maintsy hiatrehana voalohany. — Certain nodes run on higher-performance GPUs and should be preferred; others serve as overflow capacity. Hardware-aware routing — Each worker is configured to support only a subset of models, based on hardware compatibility and resource constraints. Model-specific dispatching Mba hanatanterahana ireo fepetra ireo, dia mampiasa ny to decouple task routing from result delivery. This design provides better flexibility and resilience under varying load and routing conditions. We use for this purpose, though other brokers could also be viable depending on your latency, throughput, and operational preferences. RabbitMQ was a natural fit given its maturity and alignment with our existing tooling. message broker RabbitMQ RabbitMQ Ny mpanjaka Ankehitriny, aoka isika hijery akaiky kokoa ny fomba fampiharana ity rafitra ity amin'ny fomba fanao: Mampiasa ny , allowing us to route requests based on model compatibility and node capabilities. The process is as follows: dedicated queues per model The LLM-Gateway service (represented as the user) initiates an HTTP request to trigger a text generation task. starts a new to manage this request. Client Sends Request. Scheduler service Request Handler Task Routing amin'ny alàlan'ny Service Scheduler. Ny fangatahana dia ataon'ny Scheduler, izay misafidy ny filaharana mety (marika amin'ny mainty eo amin'ny sary) mifototra amin'ny modely nangatahana ary manampy ny hafatra amin'izany. Worker Pick Up Task. Ny tsara Inference Worker (ny iray ihany no hita noho ny tsotra, fa misy maro) voasoratra ao amin'ny fiara dia mandray ny asa ary manomboka ny fanodinana. Ny mpiasa dia mamoaka ny valin'ny valiny tsirairay amin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valiny. The Scheduler listens to the reply queue and receives the response chunks as they arrive. Receiving Response Chunks. The chunks are converted to SSE format and streamed to the client. SSE Streaming. Ny fandefasana , dia manakana ny fampitomboana ny hafatra broker: large payloads Instead of embedding large input or output data directly in the task, we upload it to an . external S3-compatible store Reference (ohatra URL na resource ID) dia tafiditra ao amin'ny asa metadata, ary ny mpiara-miasa dia mahita ny tena votoaty rehefa ilaina. Ny fampiharana ny Design amin'ny RabbitMQ When it comes to Ny tsirairay is a regular RabbitMQ , dedicated to handling a single model type. We require , which can be achieved using . In this setup, messages with higher priority values are delivered and processed before lower priority ones. For , where messages should be directed to the most performant available nodes first, Ny mpanjifa amin'ny laharam-pahamehana ambony dia mahazo hafatra mandra-potoana izy ireo; ny mpanjifa amin'ny laharam-pahamehana ambany dia mahazo hafatra fotsiny rehefa voarara na tsy misy ny laharam-pahamehana ambony. routing and publishing messages Request Queue queue priority-aware scheduling message priorities hardware-aware routing consumer priorities Ny vavany Priority ny hafatra consumer priorities Raha tsy azo ekena ny fahaverezan'ny hafatra, dia tsy maintsy misy ny manaraka ireto: Ny mpamoaka dia manamafy mba hahazoana antoka fa efa nahazo sy voatahiry ny hafatra ny broker. and so data survives restarts. Durable queues persistent messages Quorum dia miara-miasa amin'ny fiarovana mahery vaika amin'ny alalan'ny famerenana. Ireo ihany koa dia manohana ny hafatra tsotra sy ny toro-hevitra momba ny mpanjifa avy amin'ny RabbitMQ 4.0. Publisher confirms Ny mpanoratra dia manamafy Ny Quorum dia Quorum queues simplified message and consumer priorities as of RabbitMQ 4.0 Hatramin'izao, efa voasoratra momba ny fomba fampahafantarana ny asa - fa ahoana ny fomba handled? The first step is to understand how miasa ao amin'ny RabbitMQ. Ny broker dia manohana hevitra antsoina hoe , izay mifandray amin'ny fifandraisana tokana ary manafoana avy hatrany rehefa mifarana izany fifandraisana izany. streamed response temporary queues Mifototra amin'ny Mifototra amin'ny Mifototra amin'ny We create Na izany aza, mampiseho ny fanamby izany: na dia manana fiara RabbitMQ tsirairay aza, dia tsy maintsy manatanteraka izany. . one exclusive queue per Scheduler service replica many requests in parallel To address this, we treat the RabbitMQ queue as a , ny valin'ny valiny amin'ny valin'ny Scheduler. Ny fangatahan'ny mpampiasa tsirairay dia omena , izay ahitana ao amin'ny valin'ny valiny tsirairay. Ao anatin'ny , we maintain an additional miaraka amin'ny famandrihana ao amin'ny fahatsiarovana mandritra ny fotoana fohy - iray isaky ny fangatahana mavitrika. Ny famandrihana avy amin'ny fangatahana dia mifanaraka amin'ireo famandrihana ireo mifototra amin'ny fampahalalana ary alefa araka izany. Ireo famandrihana ao amin'ny fahatsiarovana ireo dia alefa rehefa tapitra ny fangatahana, raha mbola mitoetra ny famandrihana RabbitMQ mandritra ny fiainan'ny asa fanompoana. transport layer unique identifier Scheduler in-memory routing layer Amin'ny endriky ny fandaharam-potoana dia toy izao manaraka izao: Ny dispatcher foibe ao amin'ny Scheduler dia mandefa ny ampahany amin'ny andian-tsarimihetsika mifanaraka amin'ny in-memory, tsirairay mitantana amin'ny mpandraharaha manokana. Inference Misy rafitra maromaro mahomby azo jerena ho an'ny fanombohan'ny LLM mahomby, toy ny Ary Ireo rafitra ireo dia natao mba and generate response tokens in real time, often with features like continuous batching and GPU memory optimization. In our setup, we use ho toy ny fototry ny fanadihadiana, miaraka amin'ny fanitsiana vitsivitsy: Ny SGLANG process multiple sequences in parallel vLLM Ny Ny SGLANG SGLANG Ny fametrahana fikarohana amin'ny feo manokana - mba hifanaraka tsara kokoa amin'ny logic famokarana sy ny fanohanana ny fepetra voajanahary. Support for structured output schemes - mamela ny modely hiverina outputs mifanaraka amin'ny sehatra manokana amin'ny orinasa. Through experience, we’ve learned that even minor library updates can — whether in output quality, determinism, or concurrency behavior. Because of this, we’ve established a robust testing pipeline: significantly alter model behavior Ny fitsapana amin'ny fihenam-bidy dia ahafahana mamantatra olana amin'ny fifanarahana, fidirana amin'ny fahatsiarovana, na fialan-tsasatra. to ensure consistent outputs for fixed seeds and parameter sets. Determinism testing Parameter grid fitsapana mba hanararaotra isan-karazany amin'ny fametrahana fametrahana, tsy handeha overboard. Ny fitehirizana sy ny fandefasana Ny ankamaroan'ny rafitra maoderina dia mihazakazaka — either in the cloud or within Kubernetes (K8s). While this setup works well for typical backend services, it introduces challenges around Ny modely LLM dia mety ho , and baking model weights directly into Docker images — quickly becomes problematic: containerized environments model weight storage tens or even hundreds of gigabytes in size Slow builds - Na dia amin'ny multi-stage builds sy ny caching, ny famindrana rakitra modely lehibe nandritra ny fananganana dingana dia afaka mampitombo be ny fotoana CI. — Each rollout requires pulling massive images, which can take several minutes and cause downtime or delays. Slow deployments Resource inefficiency - Tsy ny Docker registries na ny Kubernetes nodes dia tsy voafehy ho an'ny fandefasana sary be dia be, izay miteraka fampiasana storage sy ny bandwidth fihenjanana. Mba hamaha izany, dia mizara from the Docker image lifecycle. Our models are stored in an , ary nalaina alohan'ny fanombohan'ny serivisy fanombohana. Mba hanatsarana ny vanim-potoana fanombohana ary hisorohana ny downloads ampy, dia mampiasa to cache model weights on each node. model storage external S3-compatible object storage local persistent volumes (PVCs) local persistent volumes (PVCs) local persistent volumes (PVCs) Ny fitsapana Ny rafitra toy izany - miorina amin'ny Mila ny mba hahazoana antoka ny azo antoka sy ny vokatra amin'ny habeny. streaming, message queues, and real-time token generation robust observability Ankoatra ny metrik'ny serivisy (CPU, fahatsiarovana, fahadisoana, sns.), dia tena ilaintsika ny manara-maso ny manaraka ireto: Ny habetsahan'ny fifanarahana, ny backlog hafatra, ary ny isan'ny mpanjifa - ny fanaraha-maso ny isan'ny hafatra miandry, ny habetsahan'ny fifanarahana amin'izao fotoana izao, ary ny isan'ny mpanjifa mavitrika dia manampy amin'ny famantarana ny fihenan'ny asa sy ny tsy fitoviana amin'ny fampiasana ny mpiasa. Token / Chunk throughput - ny fanaraha-maso ny isan'ny tokens na ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin'ny valin. — to pinpoint where requests fail or stall across components (gateway, broker, workers, etc.). Ny tracking dia Ny fanaraha-maso ny fahasalamana amin'ny motera - satria ny dingana fanadihadiana dia mety ho diso amin'ny toe-javatra mahazatra (ohatra, ny fidirana ratsy na ny lanjan'ny parameter), dia zava-dehibe ny fanaraha-maso ara-pahasalamana sy ny fahaiza-manao. Distributed tracing Ny tracking dia Further Improvements Na dia efa vonona ny famokarana aza ny rafitra, mbola misy fanamby sy fahafahana lehibe ho an'ny optimization: Mampiasa ny KV-cache nomerika mba hanatsarana ny fahombiazan'ny fikarohana. Manampy amin'ny fanesorana ny fangatahana mba hamonjy ny solosaina rehefa tsy ilaina intsony ny outputs. Ny famoronana modely tsotra modely fandefasana pipeline ho an'ny data science ekipa. Conclusion Na dia mamorona rafitra LLM azo itokisana sy tsy miankina amin'ny mpamatsy aza dia mety ho sarotra amin'ny voalohany, dia tsy ilaina ny mamorona indray ny kodiarana. Ny singa tsirairay - fandefasana amin'ny alalan'ny SSE, fandefasana asa amin'ny alalan'ny mpizara hafatra, ary ny fanapahan-kevitra ampiasaina amin'ny fotoana fandefasana toy ny vLLM - dia manomana tanjona mazava ary miorina amin'ny fitaovana efa misy, manohana tsara. Ao amin'ny lahatsoratra manaraka dia handinihana lohahevitra avo lenta kokoa isika toy ny KV-caching, ny fandefasana modely maromaro amin'ny replika, ary ny workflows fampiroboroboana mifanaraka amin'ny ekipa mifandraika amin'ny ML. Ny mpanoratra Tohizo , Mifanohitra amin'i Stanislav Shimovolos Mifanohitra amin'i Stanislav Shimovolos Mifanohitra amin'i Stanislav Shimovolos Tochka , Maxim Afanasyev Maxim Afanasyev Mahatalanjona ny Afanasyyev Acknowledgments Ny asa nataony tao Tochka Dmitry Kryukov Dmitry Kryukov amin'izao fotoana izao Dmitry Kryukov amin'izao fotoana izao