Çoğu insan hâlâ yerel yapay zekâyı bir lüks olarak görüyor.
3.000 dolarlık bir NVIDIA DGX Spark satın alıyor ya da 800 dolarlık Mac Mini'leri üst üste koyuyorlar; otonom zekânın devasa, merkezi donanım gerektirdiğini varsayıyorlar.

Ancak fiziksel yapay zekâyı ölçekli olarak gerçekten dağıtan mühendisler çok daha ucuz bir şey inşa ediyor: dağıtık bir sürü.
- 8 dolarlık bir çip odayı dinliyor.
- Başka bir 8 dolarlık çip, niyeti yerel olarak işliyor.
- Belirleyici bir komut dosyası arka plan gürültüsünü temizliyor.
- Üçüncü bir çip Bluetooth komutunu yürütüyor.
- Tüm ağ, tek bir LED'in gücüyle çalışıyor.
İşte bu fiziksel Sürü Mimarisi'dir.
Okumaya devam etmeden önce:
Parçalarınız geldiğinde sonundaki yapım talimatlarına geri dönebilmeniz için bu kılavuzu yer imlerine ekleyin. Ve takip edin
@ardchain — Otonom ajanları, yerel yapay zeka hatlarını ve hem kodu hem de ucuz donanımı ölçeklenebilir otomatik işlere dönüştüren sistemleri ayrıntılarıyla anlatıyorum.
(Not: Bu yazının en sonuna eksiksiz, adım adım donanım ve flaşlama kılavuzu ekledim. Ancak parça sipariş etmeye başlamadan önce mimarinin nasıl çalıştığını anlamalısınız).
Haftalarımı slvDev/esp32-ai GitHub deposunu ve üretim IoT modellerini inceleyerek, yerel zekâyı tek bir pratik çalışma kılavuzunda yeniden yapılandırmak için harcadım.
Devasa, merkezi bir beyin satın almak yerine, zekâyı ortama dağıtıyorsunuz:
Dinle → Ayrıştır → Yönlendir → Yürüt

Her mikrodenetleyici, sınırlı bir işe sahip bir düğüm haline gelir. Her çip belirli bir model taşır. Çevrimdışı çıkarım, hangi eylemin çalıştırılacağına karar verir. Önemli değişim, akıllı evinizin artık her sesli komutu pahalı bir API'ye veya gürültülü bir iş istasyonuna yönlendirmek zorunda olmamasıdır.
28,9 milyon parametreli bir LLM'yi tamamen çevrimdışı, 8 dolarlık bir ESP32-S3 çipinde, sıfır bulut bant genişliği kullanarak çalıştırabilir.
Temel desenler yeni değil. Donanım mühendisleri onlarca yıldır mikrodenetleyiciler, I2S veri yolları ve BLE ağları kullanıyor. Değişen şey, artık her düğümün içinde ne olduğu. Bir düğüm, doğal dili işleyebilir, karmaşık bir sesli komutu ayrıştırabilir, onu katı bir API'ye eşleyebilir veya sensör verilerini bir karara sentezleyebilir.
Bu kılavuz, tüm sistemi donanım darboğazından bellek eşlemesine, I2S ses yakalamaya, BLE yürütmeye ve doğrudan silikon üzerinde oluşturulan dinamik sürülere kadar ayrıştırıyor.
Sonunda, fiziksel bir göreve bakıp şunu sormayı bırakabileceksiniz:
"Hangi API'yi çağırmalıyım?"
1. FİZİKSEL YZ, BELLEK DARBOĞAZIYLA BAŞLAR
Donanım pazarlaması genellikle daha fazla VRAM satın almak için bir neden olarak sunulur. Bu çerçeveleme, gerçek mühendislik atılımını gözden kaçırır.
Sırf ışıklarınızı açmak için bir RTX 5090 satın alıp 70B modelini çalıştırabilirsiniz ve bunun bedelini ısı, elektrik ve büyük bir donanım faturasıyla ödersiniz. Kullanışlı bir düğüm, belleğin nerede depolandığını, hangi bileşenin hangi kararı işlediğini ve verilerin silikon üzerinde nasıl hareket ettiğini kontrol eder.
8 dolarlık bir ESP32-S3 mikrodenetleyicisinden bir dil modeli çalıştırmasını istediğinizi hayal edin. Geleneksel bilgelik, bunun başarısız olacağını söyler. Çipte yalnızca 512KB hızlı SRAM ve 16MB Flash bulunur. Model sığmayacaktır. Standart bir çerçeve içinde bu, imkansız bir görev haline gelir. Gömme tablosu bile çalışma belleğini ezer.
Sürü mühendisliği bu darboğazı açar ve her parametreye görünür bir yer verir.
Atılım mimaridir. Gömme tablosunun büyük kısmı (yaklaşık 25 milyon parametre) doğrudan Flash belleğe eşlenir. Aktif çalışma belleği hızlı SRAM içinde kalır.

Sonuç, çipin belirteç başına yalnızca yaklaşık 450 bayt çekmesi gereken bir iş akışıdır.
Bir düğüm tek bir karar vermelidir
Kullanışlı bir fiziksel düğümün sınırlı bir sorumluluğu vardır:
- Uyandırma kelimesini bulun.
- Niyeti düşük, orta veya yüksek güven olarak sınıflandırın.
- Bluetooth makrosunu yürütün.
Her düğümün net bir girdiye, tanımlanmış bir çıktıya ve sınırlı bir donanım ayak izine ihtiyacı vardır. Sesi yakalayan, niyeti tahmin eden, yanıtı tasarlayan ve sinyali gönderen merkezi bir Mac Mini, birden çok hata noktası içerir. Hata ayıklama, tüm evin tek bir makineye dayanması nedeniyle zor olmaya devam eder.
Daha küçük fiziksel sınırlar, hangi sensörün arızalandığını tam olarak ortaya çıkarır.
Bir uç düğüm niyet taşımalıdır
Bir uç düğüm, bir sonraki fiziksel eylem için gereken verileri temsil eder. Ses düğümü, tahmin edilebilir bir JSON nesnesi döndürebilir:
1{2 "sensor": "mic-living-room",3 "confidence": 0.98,4 "intent": "open_chrome_20_tabs",5 "execution_node": "ble-host-1"6}
Şemalar, çipler arasındaki yorumlama kaymasını azaltır. Serbest biçimli ses akışları, her alt düğümü bir önceki düğümün anlamını yeniden oluşturmaya zorlar.
Bazı düğümler sıradan koddur
İş akışının komutları yinelemesiz hale getirmesi, sinyalleri zıplamasız hale getirmesi ve niyetleri sabit kodlanmış eylemlere eşlemesi gerekir. Bu işlemlerin belirleyici yanıtları vardır.
Yürütme döngüsü pratikte şöyle görünür. I2S mikrofon sesi yakalar, LLM niyeti flash bellekten ayrıştırır ve C++ kodu Bluetooth komutunu ateşler:
1// 1. Eşlenmiş Flash'tan 28M parametreli modeli başlat2LLM model = LLM_Init(FLASH_MAPPED_EMBEDDINGS);34void loop() {5 // 2. I2S aracılığıyla ortam sesini yakala6 String audio = I2S_Record_Voice();78 if (Detect_Wake_Word(audio)) {9 // 3. Çıkarım (yaklaşık 9,5 belirteç/sn)10 String intent = model.generate(audio);1112 // 4. Belirleyici Yürütme13 if (intent.indexOf("open_chrome") > -1) {14 BLE_Send_Macro(MAC_ADDRESS, CMD_OPEN_CHROME);15 }16 }17}
Bu basit C++ dönüşümü, iş akışını anında işler ve her çalıştırmada aynı çıktıyı üretir. Aynı görevi başka bir modele göndermek gecikme ekler ve bir hata noktası oluşturur. Model düğümleri, doğal dil ayrıştırma ve bulanık mantık etrafında yer alır. Kod, BLE yürütmesini, zıplamasızlaştırmayı ve açık yönlendirme kurallarını işler.
2. SÜRÜ: DAĞITIK DÜĞÜMLER İŞİ NASIL TAŞIR
En ciddi fiziksel yapay zeka grafikleri sonunda aynı şekli alır. Bir görev ortamda başlar, birkaç bağımsız sensöre ayrılır, fiziksel kanıtı sıkıştırır ve sonucu nihai bir donanım yürütmesine iletir.
Bu şekil Sürü'dür.
- Dağıtma (Fan-out): Ortam yakalama (I2S mikrofonlar).
- Bariyer (The Barrier): Çevrimdışı LLM (Niyet ayrıştırma).
- Toplama (Fan-in): Fiziksel eylem (BLE makroları).
Bu desen, bir görev katı eğer-bu-ise-şu kuralları için çok karmaşık hale geldiğinde her yerde ortaya çıkar.
Yakalama bağımsız girdiler oluşturmalıdır
Bir sensör, ana beyni uyandırmadan ortamı dinleyebildiğinde ve kullanışlı bir sonuç üretebildiğinde yakalama aşamasına aittir.
Bir ESP32, neredeyse sıfır güç kullanarak sürekli olarak bir uyandırma kelimesini dinleyebilir. Tetiklendiğinde, orkestrasyon silikon üzerinde kalır. Çip sesi kaydeder, modeli çalıştırır ve doğrulanmış bir niyet döndürür.
Yürütmeden önce azaltın
Sesi yakaladıktan sonra, düğüm birkaç çelişkili yorum tutabilir. Ham sesi doğrudan bir yürütme katmanına göndermek kaos yaratır. Azaltma aşaması komutu hazırlar.
Bazı azaltmalar niceleme yoluyla gerçekleşir (16MB flaşa sığan 4-bit modeller). Yürütme düğümü, izlenebilirliği kaybetmeden katı bir komut alır.
3. MERKEZİYETSİZLİK MİMARİNİN BİR PARÇASIDIR
Bir düğüm çıkarımı hızlıca bitirebilir ve yine de yanlış eylemi tetikleyebilir. Sistemin hangi komutların yürütülmeyi hak ettiğine karar vermek için kurallara ihtiyacı vardır.
Donanım sınırına göre yönlendir
Bir yönlendirici, yapılandırılmış çıktıyı okur ve bir sonraki fiziksel dalı seçer. Bu, pahalı işlemeyi anlamlı etkiye sahip düğümler etrafında yoğunlaştırır.
Donanımı düğümle eşleştirin
Her odanın bir Apple M4 çipine ihtiyacı yoktur. Çıkarma, temel niyet sınıflandırması ve dar ses aramaları 8 dolarlık bir ESP32'de çalışabilir. Ağır video işleme, karmaşık akıl yürütme ve genel sentez, daha güçlü bir merkezi sunucuyu haklı çıkarabilir.
Donanım katmanlaması sürünün başka bir özelliği haline gelir.
Merkezileştirmeyi ne zaman durduracağınızı bilin
Grafik yükü, orkestrasyon, Wi-Fi gecikmesi, yönlendirici yapılandırmaları ve hata ayıklanacak daha fazla ağ durumu içerir. Yalnızca bir masanız olduğunda merkezi bir Mac Mini genellikle yeterlidir.
Sürü mühendisliği, ortam birden çok odaya, yüksek API maliyetlerine, büyük sensör dizilerine veya tam çevrimdışı gizlilik ihtiyacına sahip olduğunda kullanışlı hale gelir.
4. EKSİKSİZ YAPIM TALİMATLARI
Tam olarak neyi lehimleyip flaşlayacağınızı bilmiyorsanız teori işe yaramaz. Bu hafta sonu yerel bir yapay zeka düğümü oluşturmak istiyorsanız, işte filtrelenmemiş, adım adım teknik kılavuz.
Adım 1: Donanım ve Kablolama
Tam olarak iki bileşene ihtiyacınız var:
- ESP32-S3 Geliştirme Kartı (Model bellek eşlemesinin çalışması için 16MB Flash ve 8MB PSRAM'e sahip bir varyant olmalıdır).
- INMP441 I2S Mikrofon Modülü.

Bu fiziksel yapay zeka, yani onu kablolamanız gerekiyor. INMP441, I2S veri yolunu kullanır. Bağlantıları aynen şu şekilde lehimleyin:
- VDD \rightarrow 3.3V
- GND \rightarrow GND
- L/R \rightarrow GND (Mikrofonu Sol kanala çeker)
- WS \rightarrow GPIO 4 (Kelime Seçimi / Çerçeve Senkronizasyonu)
- SCK \rightarrow GPIO 5 (Seri Saat)
- SD \rightarrow GPIO 6 (Seri Veri)

Adım 2: Model ve Flaşlama Süreci
ChatGPT yüklemiyorsunuz. Yalnızca niyet sınıflandırması ve yapılandırılmış JSON çıktısı için optimize edilmiş 28,9 milyon parametreli damıtılmış bir model yüklüyorsunuz.
ESP-IDF araç zinciriyle uğraşmanıza gerek yok. Önceden derlenmiş ikili dosyayı ve model ağırlıklarını doğrudan esptool.py kullanarak flaşlayabilirsiniz.
- Kartınızı Bootloader moduna alın (BOOT'a basılı tutun, RST'ye basın, BOOT'u bırakın).
- Modeli doğrudan 16MB Flash bölümüne eşleyen tam flaşlama komutunu çalıştırın:
1esptool.py --chip esp32s3 --baud 921600 \2 --before default_reset --after hard_reset write_flash -z \3 --flash_mode dio --flash_freq 80m --flash_size 16MB \4 0x10000 build/firmware.bin \5 0x400000 models/intent_classifier_28M_q4.bin

Adım 3: Alıcı (Home Assistant)
Flaşlandıktan sonra ESP32'nin Wi-Fi'ye veya bir bulut API'sine ihtiyacı yoktur. Bir niyet algıladığında, standart bir BTHome uyumlu BLE yükü yayınlar.
Bu sinyali yakalamak ve ışıklarınızı gerçekten açmak için:
- Bluetooth entegrasyonu (veya bir ESP32 BLE Proxy'si) ile Home Assistant'ı çalıştırın.
- Düğüm, bir BTHome sensörü olarak otomatik olarak keşfedilecektir.
- Niyet (ör. open_chrome, lights_off), bir sensör durum değişikliği olarak görünecektir. Bu durumu doğrudan mevcut otomasyonlarınıza eşleyin.
Değer, hesaplamayı görünmez kılmaktan gelir.
Her düğümün sınırlı bir fiziksel sorumluluğu vardır. Her çip yapılandırılmış bir niyet taşır. Her odanın var olmak için bir nedeni vardır. Her sesli komut çevrimdışı kalır.
Bu noktada, eviniz artık pahalı bir API üzerinde çalışmıyordur.
Mühendislik ürünü bir sürüyü yürütüyordur.





