विविध edge पर तेज़ और पोर्टेबल Llama2 inference
(secondstate.io)Rust+Wasm स्टैक: Python का एक शक्तिशाली विकल्प
- Rust+Wasm applications, Python की तुलना में आकार में 1/100 हैं, 100 गुना तेज़ हैं, और hardware acceleration में कोई बदलाव किए बिना हर जगह सुरक्षित रूप से चल सकती हैं।
- Rust, AGI (Artificial General Intelligence) की भाषा है, और इससे llama2 model पर मूल गति से inference करने वाला एक सरल Rust program बनाया गया है।
- Wasm में compile किया गया binary application (2MB), विभिन्न hardware accelerators वाले devices पर पूरी तरह portable है।
- Wasm runtime (WasmEdge), cloud environment में सुरक्षित और secure execution environment प्रदान करता है।
Rust program install और run करना
- Step 1. WasmEdge और GGML plugin install करें: Linux या Mac device पर नीचे दिए गए commands का उपयोग करके install किया जाता है।
- Step 2. Pre-built Wasm app और model download करें: llama2 model को GGUF format में download करें, और उदाहरण के तौर पर llama2 7B chat-tuned model का 5-bit weight quantized version download किया जाता है।
- Step 3. Run: WasmEdge का उपयोग करके wasm inference application चलाएँ, GGUF model पास करें, और model से बातचीत के लिए प्रश्न input करें।
Model behavior configure करना
- Command-line options का उपयोग करके model के साथ interaction का तरीका configure किया जा सकता है।
- उदाहरण के लिए, specific context length set की जा सकती है, हर response में predict किए जाने वाले maximum tokens तय किए जा सकते हैं, statistics print की जा सकती हैं, और model response को
stdoutपर stream किया जा सकता है। - यह program low-end M2 MacBook पर लगभग 25 tokens प्रति second generate करता है।
LLM agents और apps
- Rust और WasmEdge का उपयोग करके OpenAI-compatible API server बनाया जाता है।
- इसके जरिए OpenAI-compatible development tools का उपयोग कर LLM agents और apps बनाए जा सकते हैं।
Python के बजाय Rust+Wasm के फायदे
- Rust+Wasm stack, AI inference applications के लिए Python stack का एक शक्तिशाली विकल्प है, और cloud computing infrastructure प्रदान करता है।
- अत्यंत हल्का: Inference application, सभी dependencies सहित, केवल 2MB का है।
- बहुत तेज़: Inference application के हर हिस्से में native C/Rust speed प्रदान करता है।
- Portability: वही Wasm bytecode application उन सभी प्रमुख computing platforms पर चल सकती है जो heterogeneous hardware acceleration को support करते हैं।
- Install, development और deployment आसान: कोई complex dependencies नहीं हैं; laptop पर standard tools से एक single Wasm file build की जा सकती है और कहीं भी deploy की जा सकती है।
- सुरक्षित और cloud-ready: Wasm runtime को untrusted user code को isolate करने के लिए design किया गया है, इसे container tools द्वारा manage किया जा सकता है, और cloud-native platform पर आसानी से deploy किया जा सकता है।
Rust inference program
- Demo inference program, Rust में लिखा गया है और Wasm में compile किया गया है।
- Rust source code बहुत सरल है, और केवल 40 lines of code से बना है।
- Rust program user input manage करता है, conversation history track करता है, text को llama2 के chat template में convert करता है, और WASI NN API का उपयोग करके inference task चलाता है।
Cloud या edge पर run करना
- एक बार Wasm bytecode file तैयार हो जाने पर, इसे WasmEdge runtime support करने वाले किसी भी device पर deploy किया जा सकता है।
- WasmEdge, GGML plugin के साथ install होता है, और llama2 model चलाने के लिए विभिन्न hardware accelerations का अपने-आप उपयोग करता है।
अगले कदम
- WasmEdge GGML tools अभी उपलब्ध हैं और cloud-native customers द्वारा उपयोग किए जा रहे हैं, लेकिन यह अभी शुरुआती चरण में हैं।
- यदि आप open source project में योगदान देना और future LLM inference infrastructure की दिशा तय करने में रुचि रखते हैं, तो योगदान के लिए कुछ low-level tasks उपलब्ध हैं।
अन्य AI models
- WasmEdge और WASI NN, Python के विकल्प के रूप में हल्के, तेज़, portable और सुरक्षित inference applications बनाने में सक्षम हैं।
- उदाहरण के लिए, mediapipe-rs project, Google के mediapipe Tensorflow model के लिए Rust+Wasm API प्रदान करता है।
GN⁺ की राय
इस लेख का सबसे महत्वपूर्ण बिंदु यह है कि Rust और WebAssembly (Wasm) का उपयोग करके AI inference के लिए Python का एक विकल्प प्रस्तुत किया गया है, जो आकार, गति, portability और security के मामले में उल्लेखनीय लाभ देता है। यह technology stack, cloud computing infrastructure को integrate करके विभिन्न devices और cloud environments में performance बेहतर करने, complex dependency समस्याओं को हल करने, और development व deployment को सरल बनाने का तरीका देता है। यह approach विशेष रूप से edge computing और AI inference के भविष्य पर महत्वपूर्ण प्रभाव डाल सकती है, इसलिए तकनीक में रुचि रखने वाले लोगों के लिए यह एक बेहद रोचक विषय है।
1 टिप्पणियां
Hacker News राय
wasm-nnपर निर्भर project वास्तव में portable नहीं है, और अगर किसी विशेष hardware का support न हो तो यह चल ही नहीं सकता। यह स्थिति WASI के उद्देश्य से मेल नहीं खाती.