Görsel-dil modelleri (VLM’ler), dil anlayışı güçlü temel LLM’lerin, görsel yetenekleriyle birleşerek metin ve görüntüleri aynı gömme alanına projekte eden bir sistemdir. VLM’ler, yapılandırılmamış çoklu veri kaynaklarını alabilir, bunlar üzerinde düşünme yapabilir ve sonuçları yapılandırılmış bir formatta döndürebilir. Kapsamlı bir ön eğitim sonucunda, yeni uygulamalar için kolayca adapte edilebilirler.
Bu modeller, eğer bir yanıt bilmedikleri takdirde daha fazla bilgi talep edebilmek veya bildikleri zaman harekete geçebilmek amacıyla canlı veri kaynakları ile entegre edilebilir. LLM’ler ve VLM’ler, veriler üzerinde düşünme yaparak robotların anlamlı görevleri yerine getirmelerine yardımcı olan ajanlar olarak işlev görebilirler.
Daha önceki bir yazımızda, NVIDIA Jetson ile generatif yapay zekayı nasıl hayata geçirebileceğimizi göstermiştik. Bu yazıda LLM’lerin ve VLM’lerin NVIDIA Jetson Orin cihazlarında çalıştırılmasını, nesne tespiti, video başlıklandırma ve metin üretimi gibi yeni yetenekler sağladığını gösterdik.
Peki, bu gelişmeleri robotik alanda algılama ve özerklik için nasıl uygulayabiliriz? Bu modelleri alanda kullanmanın karşılaştığı zorluklar nelerdir?
Bu yazıda, robotların gördüğü şeyler üzerinde düşünme ve hareket etme yeteneği kazandıran ReMEmbR projesini ele alıyoruz. ReMEmbR, LLM’ler, VLM’ler ve geri alma destekli üretim (RAG) ile birleşerek, robotların saatler hatta günler süren uzun süreli dağıtımlarda düşünebilmesini sağlıyor.
ReMEmbR’ın hafıza oluşturma aşaması, VLM’leri ve vektör veritabanlarını kullanarak uzun vadeli anlamsal bir hafıza oluşturur. Sonrasında, ReMEmbR’ın sorgulama aşaması, o hafıza üzerinde düşünme gerçekleştiren bir LLM ajanı kullanır. Tamamen açık kaynaktır ve cihazda çalışır.
ReMEmbR ile Zorlukların Aşılması
ReMEmbR, LLM’lerin ve VLM’lerin robotik uygulamalarda karşılaştığı birçok zorluğu ele alır:
- Büyük bağlamların nasıl yönetileceği.
- Bir mekansal hafıza üzerinde nasıl düşünme yapılacağı.
- Kullanıcının sorusu yanıtlanana kadar daha fazla veri sorgulamak üzere prompt tabanlı bir ajan oluşturma.
Gerçek Bir Robot Üzerinde ReMEmbR’yi Kullanma
ReMEmbR’yi gerçek bir robot üzerinde nasıl entegre edebileceğimizi göstermek için, NVIDIA Isaac ROS ve Nova Carter kullanarak bir örnek demo oluşturduk. Isaac ROS, açılmış kaynak ROS 2 yazılım çerçevesi üzerinde geliştirilmiş hızlandırılmış bilgisayar paketleri ve AI modelleri koleksiyonudur; böylece NVIDIA hızlandırmasını ROS geliştiricilerine sunar.
Demo sonunda robot, ofis ortamında insanlara yol göstererek onların sorularına yanıt veriyor. Uygulamayı oluşturma sürecini basit hale getirmek için izlediğimiz adımları paylaşmak istedik:
- Bir işgal haritası oluşturmak
- Hafıza oluşturucusunu çalıştırmak
- ReMEmbR ajanını çalıştırmak
- Ses tanımayı eklemek
Otomatik İşgal Haritası Oluşturma
İlk adım, ortamın bir haritasını oluşturmaktı. ReMEmbR’nin vektör veritabanını oluşturmak için robotun monoküler kamera görüntülerine ve küresel konum bilgisine ihtiyacı vardı.
Kullanım ortamına veya platforma bağlı olarak, küresel poz bilgilerini elde etmek zor olabilir. Neyse ki, bu işlem Nova Carter kullanılırken oldukça basittir. Nova Carter, bir 3D LIDAR ile donatıldığında, doğru ve küresel olarak tutarlı metrik haritalar oluşturabilmektedir.
Hafıza Oluşturucu Çalıştırma
Ortamın haritasını oluşturduktan sonra, ikinci adım ReMEmbR’nin kullandığı vektör veritabanını doldurmaktı. Bu amaçla robotsal kontrol ile robotu yönlendirdik ve AMCL (Adaptive Monte Carlo Localization) ile küresel konumlandırmayı sağladık. Nova Carter ile bunu gerçekleştirmek için daha fazla bilgiye bu bağlantıdan ulaşabilirsiniz.
ReMEmbR Ajanını Çalıştırma
Vektör veritabanını doldurduktan sonra, ReMEmbR ajanı kullanıcı sorgularını yanıtlamak ve anlamlı eylemler gerçekleştirmek için gerekli tüm bilgilere sahipti.
Üçüncü adım ise canlı demomuzu gerçekleştirmekti. Robotun hafızasını statik hale getirmek için görüntü başlıklandırma ve hafıza oluşturma düğümlerini devre dışı bıraktık ve ReMEmbR ajanı düğmesini aktifleştirdik.
Son olarak, sistemi uçtan uca test ettik; örneğin:
“Beni en yakın asansöre götür.”
“Bana bir atıştırmalık alabileceğim bir yer göster.”
ReMEmbR ajanı en iyi hedef pozunu belirleyerek /goal_pose
konusuna gönderdi. Alan planlayıcı daha sonra robotun bu hedefe ulaşması için gerekli yolu oluşturdu.
Ses Tanıma Ekleyerek Kullanıcı Deneyimini İyileştirme
Gerçek bir uygulamada, kullanıcıların sınırlı bir terminale erişimi olmaz; bu nedenle robotla etkileşim için sezgisel bir yol aramak zorundaydık. Bu amaçla, sorguları ajan için oluşturmak üzere ses tanıma entegre ettik.
Jetson Orin platformlarında ses tanımayı entegre etmek oldukça basittir. Bunu gerçekleştirmek için, yeni yayınlanan WhisperTRT projesini kullanan bir ROS düğümü yazdık. WhisperTRT, OpenAI’nin whisper modelini NVIDIA TensorRT ile optimize ederek, NVIDIA Jetson AGX Orin ve NVIDIA Jetson Orin Nano’da düşük gecikmeli çıkarım yapma olanağı sunar.
Tüm Bileşenlerin Bir Araya Gelmesi
Tüm bileşenler bir kumanda hâlinde birleştiğinde, robotun tam demomuzu oluşturduk.
Başlamak için Kaynaklar
Bu yazının, generatif yapay zeka alanında robotları keşfetmeye sizi teşvik edeceğini umuyoruz. Daha fazla bilgi edinmek ve ReMEmbR kodunu deneyimleyip kendi generatif yapay zeka robotik uygulamalarınızı oluşturmak için şu kaynaklardan yararlanabilirsiniz:
- ReMEmbR web sitesi
- /NVIDIA-AI-IOT/remembr GitHub reposu
- ReMEmbR: Robot Navigasyonu için Uzun Dönem Mekansal-Zamansal Hafızanın Oluşturulması ve Akıllı Ele Alınması makalesi
- NVIDIA Isaac ROS dokümantasyonu
- Nova Carter
- NVIDIA Jetson AI Lab
NVIDIA Geliştirici Programı’na kaydolun ve geliştirmenize destek olacak ek kaynaklar ve referans mimarileri hakkında güncel kalın.
Gelişmelerden haberdar olmak için LinkedIn, Instagram, X ve Facebook hesaplarımızı takip edin. Daha fazla bilgi için, dokümanlarımıza göz atın ve robotik topluluğumuza katılıp geliştirici forumlarına katılın. YouTube kanallarımızı takip ederek, kendinize ait eğitimler ve web seminerleriyle sürekli güncel kalabilirsiniz.