ஒரே ஒரு கோப்பை மாற்றுவதன் மூலம் 31.8x வேக அதிகரிப்பு
நான் ஒரு RAG ingestion pipeline-ஐச் சோதித்தபோது ஒரு தடையை (bottleneck) சந்தித்தேன்: ஒரு ஆவணத்தைச் செயலாக்க 50 வினாடிகள் ஆனது.
எனது CPU சும்மா இருந்தது. அந்தச் செயலி (app) கணிதத்தையோ அல்லது தர்க்கத்தையோ (logic) செய்யவில்லை; அடுத்த கோரிக்கையைத் தொடங்குவதற்கு முன், ஒரு HTTP request முடிவடைவதற்காக மட்டுமே காத்திருந்தது.
நான் embedding module-ஐ asynchronous முறையில் இயங்குமாறு மாற்றியமைத்தேன். உள்கட்டமைப்பு (infrastructure) மாற்றங்கள் ஏதுமின்றி, செயலாக்க நேரம் 49.61 வினாடிகளிலிருந்து 1.56 வினாடிகளாகக் குறைந்தது.
சோதனை விவரங்கள்
- Model: Amazon Titan Text Embeddings V2 (AWS Bedrock)
- Dataset: 33 text chunks
- Region: us-east-1
முடிவுகள்
- Sequential: 49.61 s
- Concurrent: 1.56 s
- Speedup: 31.8×
இது ஏன் வேலை செய்கிறது Sequential code ஒரு கோரிக்கையை அனுப்பிவிட்டு, அது திரும்பப் பெறும் வரை காத்திருக்கும் (block), இதை ஒவ்வொரு chunk-க்கும் மீண்டும் மீண்டும் செய்யும். தலா 1.5 வினாடி வீதம் 33 chunks இருந்தால், நீங்கள் சுமார் 50 வினாடிகளை வீணடிக்கிறீர்கள்.
Async code அனைத்து கோரிக்கைகளையும் ஒரே நேரத்தில் அனுப்பும்; மொத்த நேரம் என்பது மிக மெதுவாகச் செயல்படும் ஒரு கோரிக்கையின் நேரத்திற்குச் சமமாக இருக்கும்.
அளவிடுதலின் தாக்கம் (Scaling impact)
- 31 chunks: 49.61 s → 1.56 s
- 100 chunks: ~160 s → ~3 s
- 500 chunks: ~800 s → ~5 s
- 1,000 chunks: ~1,600 s → ~10 s
உங்கள் pipeline-க்கான குறிப்புகள்
- தேவையற்ற காத்திருப்பு நேரத்தைக் (idle time) கவனியுங்கள். உங்கள் code நெட்வொர்க்கிற்காக மட்டுமே காத்திருந்தால், கூடுதல் hardware-ஐச் சேர்க்க வேண்டாம்.
- AWS Bedrock rate limits-ஐக் கடைபிடியுங்கள். ஒரே நேரத்தில் செல்லும் கோரிக்கைகளைக் கட்டுப்படுத்த
asyncio.Semaphore-ஐப் பயன்படுத்தவும். - Non-blocking libraries-களைத் தேர்ந்தெடுக்கவும்.
boto3-லிருந்துaioboto3-க்கு மாறவும் அல்லது அழைப்புகளை (calls)asyncio.to_thread()மூலம் சுற்றவும் (wrap).
ஒரே ஒரு கோப்பை மாற்றியதன் மூலம் அந்தத் தடை நீக்கப்பட்டது. குறைந்த முயற்சி. அதிகத் தாக்கம்.
Source: https://dev.to/edwardyun/318x-speedup-by-changing-one-file-async-embedding-calls-on-aws-bedrock-4l61
Optional learning community: https://t.me/GyaanSetuAi
