2 puan yazan GN⁺ 2024-06-05 | 1 yorum | WhatsApp'ta paylaş

Program sentezi için sözdizimi ağacı diffusion'ı

Genel bakış

  • Sorun: Büyük dil modelleri (LLM), kodu aynı anda bir token üreterek oluşturur. Bu süreçte programın yürütme sonucunu gözlemleyen geri bildirim yetersiz kalır.
  • Çözüm: Sözdizimi ağacı üzerinde çalışan bir sinirsel diffusion modeli öneriliyor. Görüntü diffusion modellerine benzer şekilde, sözdizimi ağacına uygulanan gürültü tersine çevrilir.
  • Yöntem: Kod üretmek yerine tekrar tekrar düzenleme yaparak sözdizimsel geçerlilik korunur. Bu sayede aramayla birleştirmek kolaylaşır.
  • Uygulama: Ters grafik görevlerine uygulanarak görüntüler, o görüntüleri üreten programlara dönüştürülür. Aramayla birleştirilerek grafik programları yazılır, yürütme sonuçları kontrol edilir ve hata ayıklama yapılır.

Programa gürültü eklemek ne anlama geliyor?

  • Gürültü ekleme: Sözdizimi ağacındaki rastgele bir düğüm seçilir ve bu düğüm doğru türde başka bir düğümle değiştirilir.
  • Gürültüyü tersine çevirme: Gürültü eklendikten sonra süreç ters yönde işlenerek özgün duruma geri dönülür.

Arama yoluyla program üretimi

  • Arama kullanımı: Model, verilen hedef görüntüyü üretmek için en uygun programı bulmak üzere aramayı kullanır.
  • Verimlilik: Yalnızca birkaç arama katmanıyla doğru program bulunabilir.

Alıntı

  • Makale: "Diffusion On Syntax Trees For Program Synthesis"
  • Yazarlar: Shreyas Kapur, Erik Jenner, Stuart Russell
  • Yayımlanma: arXiv, 2024

Teşekkür

  • Teknik destek: Kathy Jang, David Wu, Cam Allen, Sam Toyer, Eli Bronstein, Koushik Sen, Pieter Abbeel

Lisans

  • Creative Commons Attribution-ShareAlike 4.0 International License: Bu web sitesinin kaynak kodu serbestçe kullanılabilir; sayfanın alt kısmına bir bağlantı eklenmesi gerekir.

GN⁺ görüşü

  • İlginç nokta: Programın yürütme sonucunu yansıtarak kodu düzenleme yaklaşımı, mevcut sıralı kod üretim yöntemlerinden daha sezgisel.
  • Neden faydalı: Ters grafik görevlerinde yararlıdır ve özellikle elle çizilmiş eskizleri programa dönüştürmede güçlü bir araç olabilir.
  • Eleştirel bakış: Gürültü ekleme ve tersine çevirme süreci karmaşık olabilir; gerçek kullanımda performans ve verimlilik için ek doğrulama gerekir.
  • İlgili ürün önerisi: Benzer işlevler sunan diğer projeler arasında OpenAI'nin Codex'i gibi kod üretim modelleri bulunur.
  • Teknoloji benimseme değerlendirmeleri: Bu teknoloji benimsenirken modelin eğitim verileri ile gerçek uygulama ortamındaki performansı dikkatle incelenmelidir.

1 yorum

 
GN⁺ 2024-06-05
Hacker News görüşleri
  • Racket ve MOOC ipucu üretimi: Racket ile MOOC ipucu üretim yaklaşımının benzer olduğu belirtiliyor. Sözdizimi ağaçlarını dönüştürüp analiz ederek hedef çözüme ulaşma yöntemi kullanılıyor. Bunun modern makine öğrenimi yaklaşımlarıyla birleştirilip birleştirilemeyeceği merak ediliyor.

  • Genetik algoritmalar ve alt ağaç dönüşümü: 90'larda Koza ve Adami, genetik algoritmaların bir parçası olarak alt ağaç dönüşümünü derinlemesine inceledi. Optimizasyon fonksiyonu biraz farklı.

  • Program ağacı üretimi: 2000 yılında genetik algoritmalar kullanılarak program ağacı üretimi üzerine bir kaynak olduğu belirtiliyor. Ancak ana içerik eksik.

  • Markov Chain Monte Carlo: Markov Chain Monte Carlo'nun program sentezinde yeni olmadığı, Josh Tenenbaum'un çalışmalarının hemen akla geldiği söyleniyor.

  • WebPPL demosu: WebPPL'de 3D uzay gemisi sentezi gibi çeşitli demolar bulunuyor. İlgili kitaplar ve MIT Probabilistic Computing Project yayınları da öneriliyor.

  • Derleyici/yorumlayıcı optimizasyonu: Bunun derleyici/yorumlayıcı optimizasyonuna nasıl uygulanabileceği merak ediliyor. Assembly seviyesinde çalışan kısımlar analiz edilip optimizasyon çıkarılıp çıkarılamayacağı sorgulanıyor.

  • Program token'larının değiştirilmesi: Geleneksel yaklaşımlarda rastgele görüntüler üretilip optimizasyon yöntemleri kullanılıyor. Program token'larını değiştirmenin nasıl türevlenebilir olduğu anlaşılması zor bulunuyor.

  • GitHub ve build araçları entegrasyonu: GitHub'ın genel build araçlarıyla entegre edilebileceği söyleniyor. Tüm llvm-compile edilmiş projelerin derlenip ara temsil üzerinde diffusion model uygulanıp uygulanamayacağı merak ediliyor.

  • Diffusion model ve ikili dosyalar: Diffusion model'in binary seviyesinde çalışıp çalışamayacağı soruluyor. Bir prompt verildiğinde programın nihai binary'sinin üretilebilip üretilemeyeceği merak ediliyor.

  • SDF ile entegrasyon: SDF ile entegrasyon görülmek isteniyor.

  • PDF render hızı: PDF'lerin programatik olarak üretilen çizim komutları nedeniyle yavaş render edildiği söyleniyor. Bunun akademik makale havası verdiği ve özlendiği ifade ediliyor.

  • Beam search ve ters diffusion: Beam search fikri ilginç bulunuyor. Ters diffusion ile beam search'ün nasıl entegre edildiği merak ediliyor. Ters diffusion adımında m > k düğüm örneklenip yalnızca en iyi k düğümün mü genişletildiği soruluyor.