𝗥𝗔𝗚 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗳𝗼𝗿 𝗦𝗮𝗮𝗦 𝗔𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻𝘀 𝗨𝘀𝗶𝗻𝗴 𝗔𝗺𝗮𝘇𝗼𝗻 𝗕𝗲𝗱𝗿𝗼𝗰𝗸
Autowired.ai లో నా మొదటి ప్రొడక్షన్ బ్యాచ్ నా బడ్జెట్ కంటే 3 రెట్లు ఎక్కువ ఖర్చయింది.
ప్రతి ఫీల్డ్ కోసం నేను 200 డాక్యుమెంట్ల నుండి పూర్తి OCR టెక్స్ట్ను ఒక ఫ్రంటియర్ మోడల్కు పంపించాను. ఇది ఒక పొరపాటు. మోడల్కు అవసరం లేని డేటా కోసం నేను డబ్బులు చెల్లిస్తున్నాను.
నేను ఆర్కిటెక్చర్ను రీడిజైన్ చేసి ఖర్చులను 40% తగ్గించాను. మీరు కూడా అదే విధంగా ఎలా చేయవచ్చో ఇక్కడ ఉంది.
- ప్రతిదానికీ LLMలను ఉపయోగించడం ఆపండి
తేదీలు మరియు టోటల్స్ వంటి స్ట్రక్చర్డ్ ఫీల్డ్లను ఎక్స్ట్రాక్ట్ చేయడంలో Textract అద్భుతంగా పనిచేస్తుంది. Textract ఇప్పటికే పూర్తి చేసిన పనిని మళ్ళీ చేయడానికి నేను Bedrockను ఉపయోగిస్తున్నాను.
కొత్త ఫ్లో మూడు దశలను ఉపయోగిస్తుంది: • ఎక్కువ పని కోసం Textractను ఉపయోగించండి. • మిస్ అయిన ఫీల్డ్ల కోసం మాత్రమే Bedrockకు 'gap-fill' కాల్ పంపండి. • చివరి వెరిఫికేషన్ కాల్ కోసం Bedrockను ఉపయోగించండి.
Textract నమ్మకంగా ఉంటే, Bedrock తక్కువ పని చేస్తుంది. దీనివల్ల మీ టోకెన్ కౌంట్ వెంటనే తగ్గుతుంది.
- Prompt Caching ఉపయోగించండి
ఫీల్డ్ డెఫినిషన్లు మరియు స్కీమల కోసం సిస్టమ్ ప్రాంప్ట్లు స్టాటిక్ (static) గా ఉంటాయి. అవి డాక్యుమెంట్ల మధ్య మారవు.
Amazon Bedrock ఈ ప్రాంప్ట్లను క్యాష్ (cache) చేయడానికి అనుమతిస్తుంది. ఒక బ్యాచ్లో మొదటి కాల్కు స్వల్ప అదనపు రుసుము చెల్లించాల్సి ఉంటుంది. ఆ విండోలో తదుపరి ప్రతి కాల్ సాధారణ ధరలో 10% వద్ద క్యాష్ నుండి జరుగుతుంది. ఇది నా ఇన్పుట్ ఖర్చులను 20% తగ్గించింది.
- మీ కాంటెక్స్ట్ను ఫిల్టర్ చేయండి
పూర్తి OCR రెస్పాన్స్ను Bedrockకు పంపకండి.
• Gap-fill కోసం: మిస్ అయిన ఫీల్డ్లకు సంబంధించిన నిర్దిష్ట OCR బ్లాక్లను మాత్రమే పంపండి. • వెరిఫికేషన్ కోసం: ఎక్స్ట్రాక్ట్ చేసిన విలువలను పంపండి, రా (raw) OCRని కాదు.
నేను నా ప్రాంప్ట్లను కూడా క్లీన్ చేశాను. అనవసరమైన సూచనలను తొలగించడం వల్ల ఖచ్చితత్వంలో ఎటువంటి నష్టం లేకుండా నా ప్రాంప్ట్ పరిమాణం 2,400 టోకెన్ల నుండి 1,100 టోకెన్లకు తగ్గింది.
- టాస్క్కు తగిన మోడల్ను ఎంచుకోండి
ప్రతి టాస్క్కు Claude Sonnetను ఉపయోగించకండి. Sonnet, Haiku కంటే 5 రెట్లు ఖరీదైనది.
నేను వాటిని నిర్దిష్ట టాస్క్లపై పరీక్షించాను: • స్ట్రక్చర్డ్ ఫారమ్ gap-fill: Haiku, Sonnet అంత ఖచ్చితత్వాన్ని (కేవలం 2%) మాత్రమే చూపింది. నేను Haikuకి మారాను. • అన్స్ట్రక్చర్డ్ కాంట్రాక్టులు: Haiku తక్కువ ఖచ్చితత్వాన్ని చూపింది. నేను Sonnetనే ఉంచాను. • వెరిఫికేషన్: Haiku బాగా పనిచేసింది. నేను Haikuకి మారాను.
మొత్తం సిస్టమ్ ఆధారంగా కాకుండా, టాస్క్ యొక్క సంక్లిష్టత ఆధారంగా మీ మోడల్ను ఎంచుకోండి.
- అప్లికేషన్-లేయర్ క్యాషింగ్ను అమలు చేయండి
నేను స్కీమా మరియు Textract అవుట్పుట్ యొక్క హాష్ (hash) ఉపయోగించి DynamoDBలో ఒక క్యాష్ను జోడించాను. మీరు మీ కోడ్ను ట్యూన్ చేసేటప్పుడు ఒకే టెస్ట్ సెట్ను మళ్లీ మళ్లీ రన్ చేస్తే, ఇది మీ Bedrock కాల్స్లో 80% నుండి 90% వరకు తగ్గిస్తుంది.
విజేత ఆర్కిటెక్చర్ యొక్క సారాంశం: • పునరావృతమయ్యే సందర్భాల్లో Bedrock ని దాటవేయడానికి అప్లికేషన్ క్యాష్ (Application cache). • స్థిరమైన సిస్టమ్ సూచనల కోసం Bedrock ప్రాంప్ట్ క్యాష్ (prompt cache). • సాధ్యమైన చోట Haiku ని ఉపయోగించడానికి మోడల్ టియరింగ్ (Model tiering). • అవసరమైన డేటాను మాత్రమే పంపడానికి కాంటెక్స్ట్ ఫిల్టరింగ్ (Context filtering).
ఆప్టిమైజ్ చేసే ముందు మీ టోకెన్లను కొలవండి. మీరు ఎక్కడ డబ్బు వృథా చేస్తున్నారో డేటా మీకు చూపిస్తుంది.
మూలం: https://dev.to/yogieee/rag-architecture-for-saas-applications-using-amazon-bedrock-10df
ఐచ్ఛిక అభ్యాస సమూహం: https://t.me/GyaanSetuAi