స్ట్రీమింగ్ మరియు క్యాషింగ్ ద్వారా నేను AI లేటెన్సీని ఎలా సరిదిద్దాను
నేను ఒక క్లయింట్ కోసం చాట్ అసిస్టెంట్ను రూపొందించాను. అది సరిగ్గా పనిచేయలేదు.
వినియోగదారులు ఒక ప్రశ్న అడిగేవారు. వారు 15 సెకన్ల పాటు వేచి ఉండేవారు. వారికి ఖాళీ స్క్రీన్ కనిపించేది. ఆ తర్వాత వారు వెళ్ళిపోయేవారు. క్లయింట్ అసంతృప్తి చెందారు.
సమస్య AI మోడల్లో లేదు. సమస్య నా కోడ్లో ఉంది. వినియోగదారునికి ఏదైనా చూపించే ముందు నేను పూర్తి సమాధానం కోసం వేచి ఉండేవాడిని.
నేను అనేక పరిష్కారాలను ప్రయత్నించాను. Async సహాయపడలేదు. ఖచ్చితమైన టెక్స్ట్ను క్యాషింగ్ చేయడం కేవలం FAQs కి మాత్రమే పని చేసింది. టోకెన్ కౌంట్లను పరిమితం చేయడం వల్ల సమాధానాలు నిరుపయోగంగా మారాయి.
నేను రెండు పద్ధతుల ద్వారా దీనిని పరిష్కరించాను.
- Streaming
చాలా AI APIs స్ట్రీమింగ్ను సపోర్ట్ చేస్తాయి. మొత్తం టెక్స్ట్ బ్లాక్ కోసం వేచి ఉండటానికి బదులుగా, మీకు చిన్న చిన్న భాగాలు (chunks) లభిస్తాయి. అవి వచ్చిన వెంటనే మీరు వాటిని చూపించవచ్చు.
మొదటి పదం 300ms లోనే కనిపిస్తుంది. పూర్తి సమాధానం రావడానికి ఇంకా సమయం పడుతుంది, కానీ వినియోగదారుడు వెంటనే పురోగతిని చూడగలరు. ఇది వినియోగదారులను నిమగ్నంగా ఉంచుతుంది.
- Semantic Caching
వినియోగదారులు తరచుగా ఒకే రకమైన ప్రశ్నలు అడుగుతుంటారు. అర్థాన్ని అర్థం చేసుకునే ఒక క్యాష్ (cache)ను నేను రూపొందించాను.
నేను sentence embeddings మరియు vector database ఉపయోగిస్తాను. APIని కాల్ చేసే ముందు, నా క్యాష్లో అటువంటి ప్రశ్న ఉందో లేదో నేను తనిఖీ చేస్తాను.
ఒకవేళ సమానమైన ప్రశ్న ఉంటే, నేను 10ms లోనే సమాధానాన్ని అందిస్తాను. దీనివల్ల నా వినియోగదారులలో 30% మందికి API కాల్ చేయాల్సిన అవసరం లేకుండా పోయింది.
ఫలితాలు:
• స్ట్రీమింగ్ రియల్-టైమ్ పురోగతిని చూపించడం ద్వారా వినియోగదారు అనుభవాన్ని మెరుగుపరుస్తుంది. • Semantic caching ఖర్చులను తగ్గిస్తుంది మరియు పునరావృతమయ్యే ప్రశ్నల కోసం లేటెన్సీని తగ్గిస్తుంది.
Trade-offs:
• స్ట్రీమింగ్ మీ బ్యాకెండ్ను మరింత సంక్లిష్టంగా మారుస్తుంది. మీరు ఓపెన్ కనెక్షన్లను నిర్వహించాల్సి ఉంటుంది. • క్యాషింగ్ కోసం vector database వంటి అదనపు హార్డ్వేర్ లేదా సాఫ్ట్వేర్ అవసరం. • క్యాష్ థ్రెషోల్డ్స్ (thresholds) సెట్ చేయడం కష్టం. థ్రెషోల్డ్ చాలా ఎక్కువగా ఉంటే, మీరు సరిపోలే ప్రశ్నలను గుర్తించలేరు. అది చాలా తక్కువగా ఉంటే, తప్పు సమాధానాలు ఇస్తారు.
నెమ్మదిగా ఉన్నందుకు AI మోడల్ను నిందించడం ఆపండి. మీరు డేటాను ఎలా హ్యాండిల్ చేస్తున్నారో చూడండి.
ఐచ్ఛిక అభ్యాస సమూహం: https://t.me/GyaanSetuAi