ఒక ప్రొడక్షన్-గ్రేడ్ ఇన్ఫరెన్స్ సర్వీస్ను నిర్మించిన బృందం, DigitalOcean Inferenceలో ఆరు లాంగ్వేజ్ మోడల్స్ను 48 గంటల పాటు పరీక్షించింది. నెలకు $0.20 ఖర్చు అయ్యే "tiny" మోడల్, ఖరీదైన ఇతర మోడల్స్ కంటే మెరుగ్గా పనిచేసింది. ఇది వారి డ్రాప్లెట్స్ (droplets) యొక్క 8 GB మెమరీ పరిమితిలోనే ఉంటూ, 70 B వేరియంట్ వల్ల కలిగిన క్రాష్లను నివారించింది, తక్కువ ఖర్చుతో ఉపయోగపడే లాటెన్సీ మరియు ఖచ్చితత్వాన్ని అందించింది.
ఈ పరీక్ష ఎందుకు ముఖ్యమైనది
ఎంటర్ప్రైజెస్ పెద్ద లాంగ్వేజ్ మోడల్స్ (LLMs)ను APIలుగా అందించేటప్పుడు, పెద్ద మరియు ఖరీదైన మోడల్లే ఉత్తమ అనుభవాన్ని ఇస్తాయని తరచుగా భావిస్తుంటాయి. కానీ వాస్తవానికి, ప్రొడక్షన్ ఎన్విరాన్మెంట్లలో మెమరీ, కన్కరెన్సీ మరియు అప్టైమ్ గ్యారెంటీలను సమతుల్యం చేయాల్సి ఉంటుంది. పేపర్ మీద బాగున్న మోడల్, అవుట్-ఆఫ్-మెమరీ (OOM) కిల్స్కు కారణమైనా లేదా కోల్డ్ స్టార్ట్స్ సమయంలో సర్వీస్ను నిలిపివేసినా అది ఒక సమస్యగా మారుతుంది. తక్కువ సామర్థ్యం ఉన్న హార్డ్వేర్పై చౌకైన మోడల్ మాత్రమే సరైన ఎంపిక కాగలదని ఈ ప్రయోగాత్మక పరిశోధన చూపుతోంది.
ఆరుగురు పోటీదారులు
| మోడల్ | నెలవారీ ఖర్చు | సగటు లాటెన్సీ | ఖచ్చితత్వం* | RAM వినియోగం / క్రాష్ |
|---|---|---|---|---|
| mistral-tiny | $0.20 | 120 ms | 88 % | 1.2 GB |
| mistral-small | $0.80 | 180 ms | 91 % | 2.4 GB |
| mistral-medium | $2.50 | 250 ms | 93 % | 4.1 GB |
| mistral-large | $5.00 | 300 ms | 94 % | 6.8 GB |
| llama-70b | $8.00 | 450 ms | 95 % | CRASH |
| mixtral-8x7b | $10.00 | 500 ms | 96 % | CRASH |
*ఖచ్చితత్వం అనేది బృందం యొక్క అంతర్గత బెంచ్మార్క్ సూట్లో మోడల్స్ యొక్క పనితీరును ప్రతిబింబిస్తుంది.
"tiny" మోడల్ నెలకు ఒక క్వార్టర్ డాలర్ కంటే తక్కువ ఖర్చుతో పనిచేసింది మరియు 8 GB మెమరీ పరిమితిలోనే సురక్షితంగా ఉంది. రెండు అతిపెద్ద మోడల్స్—llama-70b మరియు mixtral-8x7b—ఆ పరిమితిని మించిపోయి హోస్ట్ను పదేపదే క్రాష్ చేశాయి, దీనివల్ల అధిక ఖచ్చితత్వ స్కోర్లు ఉన్నప్పటికీ అవి ఉపయోగపడలేదు.
పెద్ద మోడల్స్ను విఫలం చేసిన ఇబ్బందులు
- Hard-coded endpoints – అసలు ఆర్కిటెక్చర్ ప్రతి రిక్వెస్ట్ను ఒకే మోడల్కు పంపేది. ఆ మోడల్ విఫలమైనప్పుడు, మొత్తం API నిలిచిపోయేది.
- No memory caps – పెద్ద మోడల్స్ అందుబాటులో ఉన్న మొత్తం RAMని వినియోగించుకుని, హెచ్చరిక లేకుండానే OOM కిల్స్కు దారితీసేవి.
- Cold-start latency – కొత్త మోడల్కు చేసే మొదటి రిక్వెస్ట్లు కొన్ని సెకన్ల సమయం తీసుకునేవి, దీనివల్ల స్పందన వేగం తగ్గేది.
- Unbounded concurrency – ఒకేసారి వచ్చే రిక్వెస్ట్ల సంఖ్య పెరిగినప్పుడు మెమరీ మరియు CPUపై ఒత్తిడి పెరిగి, వ్యవస్థ మొత్తం విఫలమయ్యేది.
వాస్తవ లోడ్లో సర్వీస్ ఆన్లైన్లో ఉండలేకపోతే, ముడి పనితీరు సంఖ్యలకు (raw performance numbers) అర్థం ఉండదు.
డైనమిక్ రూటింగ్ పరిష్కారం
ఇంజనీర్లు మూడు సూత్రాల ఆధారంగా రిక్వెస్ట్ పాత్ను తిరిగి రాశారు:
- Runtime model selection – రూటర్ ఒక స్టాటిక్ ఎండ్పాయింట్ను ఉపయోగించకుండా, ప్రతి రిక్వెస్ట్కు ఒక మోడల్ను ఎంచుకుంటుంది.
- Hardware awareness – ప్రతి రిక్వెస్ట్కు ఒక మెమరీ బడ్జెట్ కేటాయించబడుతుంది; మిగిలిన RAM పరిమితిలో సరిపోయే మోడల్స్కు మాత్రమే రూటర్ రిక్వెస్ట్లను పంపిస్తుంది.
- Fallback chains – ఎంచుకున్న మోడల్ విఫలమైనా లేదా టైమ్ అవుట్ అయినా, రూటర్ ఆటోమేటిక్గా తదుపరి ఉత్తమ మోడల్తో మళ్ళీ ప్రయత్నిస్తుంది.
సవరించిన ఆర్కిటెక్చర్ నాలుగు నిర్దిష్ట రక్షణ చర్యలను జోడించింది:
- Bounded concurrency – ఒక సెమాఫోర్ (semaphore) సమాంతర ఇన్ఫరెన్స్లను పరిమితం చేస్తుంది, తద్వారా మెమరీ అయిపోకుండా నిరోధిస్తుంది.
- Fail-fast timeouts – ప్రతి రిక్వెస్ట్కు కఠినమైన టైమర్లను సెట్ చేయడం ద్వారా, నెమ్మదిగా పనిచేసే మోడల్స్ మొత్తం ప్రాసెస్ను ఆపకముందే వాటిని నిలిపివేస్తుంది.
- Memory buffers – సిస్టమ్ డ్రాప్లెట్ యొక్క RAMలో 20% ఖాళీని రిజర్వ్ చేసుకుంటుంది, తద్వారా OS ఓవర్హెడ్ మరియు అకస్మాత్తుగా పెరిగే లోడ్కు తగినంత స్థలం ఉంటుంది.
- Pre-warming – స్టార్టప్లో ప్రతి మోడల్కు డమ్మీ రిక్వెస్ట్లను పంపడం ద్వారా, ప్రారంభ కోల్డ్-స్టార్ట్ సమస్యను తొలగిస్తుంది.
ఈ చర్యలు ఒక బలహీనమైన పైప్లైన్ను, తక్కువ ఖచ్చితత్వాన్ని వదులుకోకుండానే 8 GB డ్రాప్లెట్స్పై ట్రాఫిక్ను తట్టుకోగల శక్తివంతమైన సర్వీస్గా మార్చాయి.
తదుపరి గమనించాల్సిన అంశాలు
- Hardware scaling – క్లౌడ్ ప్రొవైడర్లు తక్కువ ధరకే ఎక్కువ మెమరీ డ్రాప్లెట్స్ను అందించడం వల్ల, పెద్ద మోడల్స్ వాడకం యొక్క లాభనష్టాల సమతుల్యత మారవచ్చు.
- Model compression – క్వాంటైజేషన్ (Quantization) లేదా నాలెడ్జ్ డిస్టిలేషన్ (knowledge distillation) ద్వారా అధిక ఖచ్చితత్వం ఉన్న మోడల్స్ యొక్క RAM వినియోగాన్ని తగ్గించవచ్చు, తద్వారా వాటిని చిన్న మెషీన్లపై కూడా నడపవచ్చు.
- Adaptive routing – భవిష్యత్తులో రూటర్లు ఏ రిక్వెస్ట్కు ఏ మోడల్ ఉత్తమమైనదో రియల్ టైమ్లో నేర్చుకోగలవు, తద్వారా ఖర్చు మరియు ఖచ్చితత్వం మధ్య సమతుల్యతను మరింత ఆటోమేట్ చేయవచ్చు.
ముగింపు ఏమిటంటే: ప్రొడక్షన్లో, ఒత్తిడిలో కూడా నిలకడగా పనిచేసే మోడలే, పేపర్ మీద బాగున్న మోడల్ కంటే ఎక్కువ విలువను అందిస్తుంది. కేవలం ఖచ్చితత్వాన్ని మాత్రమే కాకుండా, మీ డిప్లాయ్మెంట్ పరిమితులను (deployment constraints) బట్టి మోడల్ను ఎంచుకోండి.
