- उपयोगकर्ताओं के करीब ऐप चलाने वाले Fly.io में GPU support जुड़ गया है, जिससे AI inference को किसी केंद्रीय region के बजाय edge के करीब रखा जा सकता है
- ऐप में Nvidia A100 जोड़ा जा सकता है, ताकि CUDA और बड़े VRAM का उपयोग हो सके; इसका इस्तेमाल speech recognition, text segmentation, article summarization, image generation और code assistant models चलाने में किया जा सकता है
- Ollama-आधारित GPU app को
fly.toml में vm.size = "a100-40gb" और ollama/ollama image निर्दिष्ट करने के बाद fly apps create और fly deploy से deploy किया जा सकता है
- GPU support वाले regions में वही program उसी public IP और TLS certificate के साथ चलाया जा सकता है, और
fly scale count 2 --region ams की तरह Amsterdam region में scale किया जा सकता है
- A100 40GB की कीमत $2.50 प्रति घंटा, A100 80GB की $3.50, और L40s की $2.50 है; auto start/stop सेट करने पर requests न होने पर GPU time billing से बचा जा सकता है
उपयोगकर्ताओं के करीब GPU execution
- Fly.io एक cloud है जो full-stack apps या Fly Machines API आधारित development platforms को उपयोगकर्ताओं के करीब चला सकता है, और अब इसमें GPU execution जोड़ा गया है
- Fly.io GPU, Nvidia A100 को app से जोड़कर CUDA और local 4090 से ज्यादा VRAM का उपयोग करने देता है
- लागू होने वाले AI/ML workloads इस प्रकार हैं
Ollama GPU app deploy करना
- Fly.io का लक्ष्य यह है कि users अपने पसंदीदा models और खुद लिखे code को Fly.io cloud backbone पर deploy कर सकें
- Ollama आधारित GPU app को सिर्फ
fly.toml configuration और deploy commands से चलाया जा सकता है
app = "sandwich_ai"
primary_region = "ord"
vm.size = "a100-40gb"
- build image
ollama/ollama है
/root/.ollama पर 100gb volume mount किया जाता है
- चलाने की command यह है
fly apps create sandwich_ai && fly deploy
region के करीब inference चलाना
- Fly.io जिस बात पर जोर देता है, वह सिर्फ GPU उपलब्ध कराना नहीं बल्कि edge inference है
- example app की संरचना ऐसी है कि user kitchen में मौजूद ingredients दर्ज करता है और sandwich recipe प्राप्त करता है
primary_region = "ord" के साथ deploy करने पर Chicago के पास के users को sandwich recipe जल्दी मिल सकती है
- Chicago के बाहर के users, उदाहरण के लिए Amsterdam users, के requests को Atlantic पार करना पड़ सकता है, इसलिए ज्यादा समय लग सकता है
- GPU support वाले regions में वही program उसी public IP address और उसी TLS certificate के साथ चलाया जा सकता है
- Amsterdam में विस्तार निम्न command से किया जाता है
fly scale count 2 --region ams
सिर्फ request आने पर GPU इस्तेमाल करना
- GPU शक्तिशाली parallel processing devices हैं, लेकिन सस्ते नहीं होते; इसलिए छोटे apps के लिए ऐसा configuration फायदेमंद है जिसमें users की request आने पर ही लागत लगे
fly.toml के services section में auto start और auto stop configure किए जा सकते हैं
[[services]]
internal_port = 8080
protocol = "tcp"
auto_stop_machines = true
auto_start_machines = true
min_machines_running = 0
auto_stop_machines = true और auto_start_machines = true ऐसी settings हैं जो requests न होने पर machines को रोक देती हैं और जरूरत पड़ने पर फिर शुरू करती हैं
min_machines_running = 0 होने पर, sandwich recipe requests न होने पर GPU time cost नहीं देनी पड़ती
उपलब्ध GPU और default resources
- GPU कई US और EU regions तथा Sydney में उपलब्ध हैं
- deployment targets और pricing इस प्रकार हैं
- GPU पर deploy होने वाले apps default रूप से AMD EPYC CPU के 8 cores का उपयोग करते हैं
- volumes को अधिकतम 500GB तक जोड़ा जा सकता है
- reserved instances और dedicated hosts के लिए discounts भी दिए जा सकते हैं
1 टिप्पणियां
Hacker News की राय
मुझे शक है कि Fly ने अपनी बुनियादी सुविधाएँ भी ठीक से तैयार की हैं या नहीं। असली production में इस्तेमाल करके देखा तो support team अपने internal platform issues तक देख नहीं पा रही थी, और error messages धुंधले थे या बिल्कुल नहीं थे, इसलिए काफी निराशा हुई
Kubernetes से डरने वाले या उसे ठीक से न जानने वाले लोगों को यह आकर्षक लग सकता है, लेकिन Fly इस्तेमाल करते-करते उल्टा Kubernetes की याद आने लगी
watch -n 2 curlचलाकर इसे खुद देख सकते हैं, और documented strategies—blue-green सहित—कोई भी इस्तेमाल करें, यही हुआमेरी उम्मीद थी कि सबसे खराब हालत में भी सिर्फ मौजूदा connections जल्दी खत्म होंगे और नए connections नहीं टूटेंगे; सबसे अच्छी हालत में existing connections खत्म होने तक graceful wait होगा। लेकिन असल में हर बार पूरी तरह downtime वाला switch हुआ। blog में दिखाई गई network topology को देखते हुए लगता है कि शायद इसे शुरू से ही सही ढंग से implement किया ही नहीं जा सकता था
मैं किसी service पर negative comment कम ही करता हूँ, लेकिन video evidence भेजने के बाद भी support team ने ऐसे react किया जैसे अजीब हम ही हों—यह एक infrastructure company के हिसाब से काफी खटका। अब toy apps के अलावा इसे recommend नहीं करता
Kubernetes के लिए मैंने काफी बड़ा deployment system भी बनाया है, इसलिए यह बात Kubernetes न जानने की वजह से नहीं कह रहा। अच्छे Heroku-style deployment के लिए जगह साफ तौर पर है, लेकिन या तो कोई इसे ठीक से नहीं कर रहा, या compute resources बेवजह बहुत पतले या महंगे हैं
Managed जैसा दिखाया गया unmanaged DB, random downtime वगैरह पर और भी कह सकता हूँ, लेकिन यह production-ready service नहीं थी, इसलिए कुछ महीने पहले छोड़ दिया
शुरुआत में Fly को लेकर बहुत उत्साहित था और Fly Machines के ऊपर पूरा orchestrator तक बना लिया था, लेकिन कई दिनों की outage हुई और जवाब मिलने में भी कई दिन लग गए
Kubernetes जटिल हो सकता है, लेकिन वह complexity कम से कम controllable है और पहले से काफी proven path है
मैं इस post का लेखक और Fly.io का developer relations प्रभारी हूँ। सवाल हों तो जवाब दे सकता हूँ। GPU कल officially launch हुए हैं, और अगर anti-fraud algorithm देवता अनुमति दें तो आप जी भरकर experiment कर सकते हैं
बल्कि हैरानी है कि “GPU” असल में क्या है, इस पर लिखा guide यहाँ ज्यादा नहीं चला: https://fly.io/blog/what-are-these-gpus-really/
क्या process node advantage और SoC/HBM की priority access software के catch up करने तक लंबे समय तक बनी रहेगी? high-end Metal machines महंगी लगती हैं, लेकिन 64GB+ class की काफी high memory bandwidth और dedicated FP vector units वाले NVIDIA से तुलना करें तो तस्वीर अलग दिखती है
अगर
fly.ioजैसे platform से inference workloads को device के अंदर-बाहर move किया जा सके, तो edge-heavy applications को काफी freedom मिल सकती हैmedical image segmentation workflow में एक file में करीब 5 मिनट लगते हैं
जहाँ तक मुझे पता है, Fly VMs के लिए Firecracker इस्तेमाल करता है। मैं Firecracker को कुछ समय से follow कर रहा हूँ और project में भी इस्तेमाल किया है, लेकिन यह मूल रूप से GPU support नहीं करता और support की कोई योजना भी नहीं है [1]
उत्सुकता है कि Fly ने Firecracker के साथ अपना GPU support कैसे solve किया। पहले वे किसी specific feature को कैसे implement किया, इस पर बहुत detailed technical posts डालते थे, इसलिए GPU support पर भी बाद में कोई post आए तो अच्छा होगा
[1]: https://github.com/firecracker-microvm/firecracker/issues/11...
0 तक scale down handle कर पाना शानदार है। खासकर उन experimental sites पर काम करते समय उपयोगी है जहाँ users कम हैं और छोटे server का खर्च भी justify करना मुश्किल होता है
अच्छा होगा अगर एक request पर roughly कितने समय की billing होती है, इसका example हो। जाहिर है बदलता रहेगा, लेकिन जानना चाहता हूँ कि यह 2 सेकंड है या “हर spin-up पर minimum 60 seconds” जैसा कुछ है
GPU machine को उपयोगी होने के लिए, GPU memory में जाने वाले data size के आधार पर, करीब 30 seconds runtime चाहिए हो सकता है
Fly.io को शुरुआत में अपनाया था, लेकिन यह प्रोडक्शन के लिए तैयार नहीं है। नई सुविधाएँ जोड़ने से पहले बुनियादी चीज़ें ठीक करनी चाहिए
सेटअप थोड़ा ज़्यादा चाहिए और कीमत भी काफ़ी ज़्यादा है, लेकिन प्रोडक्शन में स्थिरता चाहिए। सर्विस डाउन होने की वजह से ग्राहकों को फोन करने की नौबत नहीं आनी चाहिए
सॉफ़्टवेयर टूट सकता है, लेकिन Fly का incident response रवैया गैर-पेशेवर और अपरिपक्व है। असल में आप केवल देखने में “अच्छी” अस्थिर सेवा के लिए 10 गुना ज़्यादा दे रहे होते हैं
अब मैं Hetzner + Kamal पर कहीं बेहतर हार्डवेयर एक-चौथाई लागत में इस्तेमाल कर रहा हूँ, यह स्थिरता से चलता है, कीमत अनुमानित रहती है, और अगले महीने उसी usage पर 25% ज़्यादा देने की नौबत नहीं आती
https://news.ycombinator.com/item?id=36808296
GPU घोषणा से अलग, काश Fly के पास S3 का विकल्प होता। अभी वे GNU Affero प्रोजेक्ट सुझाते हैं, जो कंपनियों के लिए अड़चन है
अगर user assets स्टोर करने के लिए Fly से बाहर जाना पड़े, तो अगले प्रोजेक्ट में Fly इस्तेमाल करना मुश्किल है। इसकी simplicity, value for money और built-in VPN अच्छे लगते हैं, इसलिए अफ़सोस है
https://benhoyt.com/writings/flyio-and-tigris/ यहाँ भी चर्चा है: https://news.ycombinator.com/item?id=39360870
https://fly.io/docs/reference/tigris/
अगर आप S3 जैसी सेवा को केवल HTTPS API से access करते हैं, तो उसकी वजह से आपका code AGPL के दायरे में नहीं आ जाता
मैं जानना चाहता हूँ कि इस सेवा का target market कौन है। क्या यह उन छोटे और अभी validated नहीं हुए apps के लिए है जिन्हें कोई AI model चलाना है, लेकिन जो open-source model hosting देने वाले ढेरों price-competitive startups का इस्तेमाल नहीं करते या नहीं कर सकते?
खुद काफी model और hardware operate करके देखा है, इसलिए metal तक control करने की इच्छा समझता हूँ। बस यह जानना चाहता हूँ कि इसे किसके लिए बनाया जा रहा है
व्यवहार में inference खुद ही लंबा समय लेता है, इसलिए यह फर्क शायद बहुत मायने न रखे
GPU compute अगर उसी datacenter में या कम से कम उसी cloud provider के भीतर हो, तो बड़ा फायदा हो सकता है। कई providers पर A100 stock खत्म होना भी दुर्लभ नहीं था, और बड़े providers में भी कई बार ऐसा हुआ। अगर आप किसी खास region से बंधे नहीं हैं तो यह समस्या कम है
सभी providers उपयोगी on-demand 0 scale-down model नहीं देते। Fly पर long term में यह कितना अच्छा चलेगा पता नहीं, लेकिन यह एक और फायदा हो सकता है
price-competitive startups लंबे समय तक टिक नहीं पाते, और यह लगभग ऐसा ढांचा है जिसमें 100 में से बहुत ही कम बचते हैं
अगर आप पहले से Fly इस्तेमाल कर रहे हैं और कुछ private tech demos का evaluation करवाना है, तो Fly GPU ज्यादा सोचे बिना default option बन सकता है। बेशक Hugging Face services इस्तेमाल करना शायद ज्यादा आम हो
कई कंपनियाँ अलग-अलग कारणों से अपना hardware operate नहीं कर सकतीं, और ज्यादा से ज्यादा किसी और datacenter में rack किराए पर लेती हैं, लेकिन छोटे use cases में यह हमेशा worthwhile नहीं होता। कुछ मामलों में A100 चाहिए होता है लेकिन केवल साप्ताहिक analytics जैसी दुर्लभ runs के लिए, और अगर प्रति सप्ताह 1 घंटे से कम usage है तो price-competitive service बहुत आकर्षक नहीं रह सकती
recipe example या कोई भी LLM use case, edge inference को highlight करने के लिए बहुत खराब उदाहरण लगता है। round-trip latency कुछ सौ ms और बढ़ भी जाए तो ज्यादा फर्क नहीं पड़ता
लेकिन यह क्षेत्र abuse की संभावना वाला है, इसलिए लगता है अभी कोई भी इसमें उलझना नहीं चाहता। शायद अगले लेख में इसे cover करेंगे, और अगर ऐसा है तो उन्हें अपना Perplexity-style online GPT बनाना होगा। अभी शायद जानबूझकर साधारण परिचय दिया गया है ताकि देखा जा सके कि और ideas आते हैं या नहीं
जानना चाहूंगा कि क्या किसी ने इसकी performance इस्तेमाल करके देखी है। पहली नजर में यह काफी महंगा लगता है। उदाहरण के लिए, Hetzner CPU machines की तुलना में
यहां तक कि H100 भी 2.24 डॉलर प्रति घंटे में मिल सकता है, जो इस कीमत से सस्ता है
इसलिए यह थोड़ा महंगा लगता है, लेकिन शायद customer demand ज्यादा और supply कम होने की वजह से ऐसा हो
Fly.io के free tier पर Uptime Kuma चलाकर uptime monitoring कर रहा हूं। यह बेहद अच्छी तरह काम करता है, इसलिए बहुत संतुष्ट हूं