Heterojen edge ortamlarında hızlı ve taşınabilir Llama2 çıkarımı
(secondstate.io)Rust+Wasm yığını: Python'a güçlü bir alternatif
- Rust+Wasm uygulamaları, Python'a kıyasla 1/100 boyutta, 100 kat daha hızlıdır ve donanım hızlandırmayı hiç değiştirmeden her yerde güvenle çalışabilir.
- Rust, AGI'nin (yapay genel zeka) dili olarak, llama2 modelinde özgün hızda çıkarım yapan basit bir Rust programı oluşturur.
- Wasm'a derlenmiş ikili uygulama (2MB), çeşitli donanım hızlandırıcılara sahip cihazlarda tamamen taşınabilirdir.
- Wasm çalışma zamanı (WasmEdge), bulut ortamlarında güvenli ve emniyetli bir çalıştırma ortamı sağlar.
Rust programını kurma ve çalıştırma
- Adım 1. WasmEdge ve GGML eklentisini kurma: Linux veya Mac cihazlarda aşağıdaki komutlarla kurulur.
- Adım 2. Önceden derlenmiş Wasm uygulamasını ve modeli indirme: llama2 modelini GGUF biçiminde indirin; örnek olarak, 5 bit ağırlıklarla kuantize edilmiş llama2 7B chat-tuned modeli indirilir.
- Adım 3. Çalıştırma: WasmEdge ile wasm çıkarım uygulamasını başlatın, GGUF modelini verin ve modelle sohbet etmek için bir soru girin.
Model davranışını yapılandırma
- Komut satırı seçenekleri kullanılarak modelle nasıl etkileşim kurulacağı ayarlanabilir.
- Örneğin, belirli bir bağlam uzunluğu belirtilebilir, her yanıtta tahmin edilecek azami token sayısı ayarlanabilir, istatistikler yazdırılabilir ve model yanıtı
stdoutüzerinden akıtılacak şekilde yapılandırılabilir. - Program, düşük maliyetli bir M2 MacBook'ta saniyede yaklaşık 25 token üretir.
LLM ajanları ve uygulamaları
- Rust ve WasmEdge kullanılarak OpenAI uyumlu bir API sunucusu oluşturulur.
- Bu sayede OpenAI uyumlu geliştirme araçlarıyla LLM ajanları ve uygulamaları geliştirilebilir.
Python yerine Rust+Wasm'ın avantajları
- Rust+Wasm yığını, yapay zeka çıkarım uygulamaları için Python yığınına güçlü bir alternatif olup bulut bilişim altyapısı sunar.
- Aşırı hafif: Çıkarım uygulaması, tüm bağımlılıklarıyla birlikte yalnızca 2MB'tır.
- Çok hızlı: Çıkarım uygulamasının her bölümünde yerel C/Rust hızı sağlar.
- Taşınabilirlik: Aynı Wasm bytecode uygulaması, heterojen donanım hızlandırmayı destekleyen tüm büyük bilgi işlem platformlarında çalışabilir.
- Kurulum, geliştirme ve dağıtım kolaylığı: Karmaşık bağımlılıklar yoktur; dizüstü bilgisayarda standart araçlarla tek bir Wasm dosyası derlenip her yere dağıtılabilir.
- Güvenli ve buluta hazır: Wasm çalışma zamanı, güvenilmeyen kullanıcı kodunu izole edecek şekilde tasarlanmıştır; konteyner araçları tarafından yönetilebilir ve cloud-native platformlara kolayca dağıtılabilir.
Rust çıkarım programı
- Demo çıkarım programı Rust ile yazılmış ve Wasm'a derlenmiştir.
- Rust kaynak kodu son derece basittir ve yalnızca 40 satır koddan oluşur.
- Rust programı kullanıcı girdisini yönetir, sohbet geçmişini izler, metni llama2'nin sohbet şablonuna dönüştürür ve WASI NN API'sini kullanarak çıkarım görevini yürütür.
Bulutta veya edge'de çalıştırma
- Wasm bytecode dosyasına sahip olduktan sonra, bunu WasmEdge çalışma zamanını destekleyen herhangi bir cihaza dağıtabilirsiniz.
- WasmEdge, GGML eklentisiyle birlikte kurulur ve çeşitli donanım hızlandırmalardan otomatik olarak yararlanarak llama2 modelini çalıştırır.
Sonraki adımlar
- WasmEdge GGML araçları şu anda kullanılabilir durumda ve cloud-native müşteriler tarafından kullanılıyor, ancak hâlâ erken aşamadadır.
- Açık kaynak projeye katkıda bulunmak ve geleceğin LLM çıkarım altyapısının yönünü şekillendirmekle ilgileniyorsanız, katkı verebileceğiniz bazı düşük seviye işler vardır.
Diğer yapay zeka modelleri
- WasmEdge ve WASI NN, Python'a alternatif olarak hafif, hızlı, taşınabilir ve güvenli çıkarım uygulamaları oluşturmayı mümkün kılar.
- Örneğin, mediapipe-rs projesi, Google'ın mediapipe Tensorflow modeli için Rust+Wasm API'si sunar.
GN⁺ görüşü
Bu yazının en önemli noktası, Rust ve WebAssembly (Wasm) kullanarak yapay zeka çıkarımı için Python'a bir alternatif sunması ve bunun boyut, hız, taşınabilirlik ve güvenlik açısından belirgin avantajlar sağlamasıdır. Bu teknoloji yığını, bulut bilişim altyapısını entegre ederek çeşitli cihazlarda ve bulut ortamlarında performansı artırmanın, karmaşık bağımlılık sorunlarını çözmenin ve geliştirme ile dağıtımı basitleştirmenin bir yolunu sunuyor. Bu yaklaşım özellikle edge bilişim ve yapay zeka çıkarımının geleceği üzerinde önemli etkilere sahip olabilir; bu da teknolojiyle ilgilenenler için oldukça ilgi çekici bir konu haline geliyor.
1 yorum
Hacker News görüşleri