3 puan yazan GN⁺ 2023-07-21 | 2 yorum | WhatsApp'ta paylaş
  • Mevcut uygulamalara doğal dil girdisi eklerken en büyük zorluk, kullanıcı niyetini yazılımın güvenebileceği bir yapıya dönüştürmektir; TypeChat bu noktayı TypeScript tipleriyle çözmeye çalışan bir kütüphanedir
  • LLM’lerin serbest metin yanıtlarını ayrıştırmak istikrarsız olduğundan, TypeChat yanıtları JSON formatına yönlendirir ve şema doğrulaması ekleyerek uygulamanın işleyebileceği veriye dönüştürür
  • TypeScript tipleri JSON yapısını ayrıntılı biçimde ifade edebilir ve LLM’lerin eğitim sürecinde çokça karşılaştığı bir format olduğu için yanıt şeması olarak kullanmaya uygundur
  • Yanıt tipe uymuyorsa TypeScript derleyici hatası geri bildirim olarak yeniden verilip düzeltilmesi sağlanabilir; böylece sonradan işleme veya kullanıcı onayı öncesinde tip güvenliği artırılabilir
  • TypeChat npm install typechat ile kurulabilir; MIT lisanslı açık kaynak olarak yayımlanmıştır ve OpenAI API ile Azure OpenAI Service entegrasyonu da sunar

Doğal dil isteklerini uygulamanın işleyebileceği veriye dönüştürme

  • En yeni büyük dil modelleri sohbet asistanlarına kolayca bağlanabilse de, doğal dili mevcut uygulama arayüzlerine güvenilir biçimde entegre etmek ayrı bir meseledir
  • TypeChat, kullanıcı isteklerini uygulamanın işleyebileceği bir biçime dönüştürmeye ve geliştiriciler ile kullanıcıların güvenebileceği işlemler yapılmasını sağlamaya odaklanır
  • Yayımlanan kütüphane, kod tabanının tip tanımlarını kullanarak yapılandırılmış yapay zeka yanıtları elde eder ve tip güvenliğini hedefler
  • Kurulum şu komutla yapılabilir
npm install typechat

Doğal dil ayrıştırma yerine JSON ve tip kullanımı

  • LLM’ler temelde İngilizce gibi doğal dil konuşmalarına göre ayarlandığından, prompt’a “madde işaretli liste olarak yanıtla” gibi kurallar eklense bile genel yazılımların bunu güvenilir biçimde ayrıştırması zordur
  • JSON ile yanıt vermesi istendiğinde, genellikle uygulamaların işlemesi kolay biçimde yanıt üretebilir
    • Örnekte 1 adet “blueberry muffin” ve 1 adet “grande latte” isteği, items dizisine sahip JSON’a dönüştürülür
  • Basit örnekler yapıyı yönlendirmeye yardımcı olsa da, yapay zekanın ne döndürmesi gerektiğini yeterince tanımlamaz ve doğrulama ölçütü de sağlamaz

TypeScript tiplerini yanıt şeması olarak kullanma

  • TypeChat, LLM’nin döndürmesi gereken JSON yapısını yönlendirmek için prompt’a TypeScript tiplerini dahil eder
  • Örnek şemadaki Response tipi items: Item[] içerir; Item ise name, quantity, isteğe bağlı size ve notes alanlarına sahiptir
  • TypeScript, JSON’u ayrıntılı biçimde açıklamak için uygundur; LLM’ler çok sayıda tip tanımıyla karşılaşmış olduğundan yanıt formatını yönlendirmede kullanışlıdır
  • Yanıt tipe uymadığında, geçerli TypeScript kodu olan tip tanımları temel alınarak TypeScript derleyicisi tarafından doğrulanır
  • Derleyici hata geri bildirimi, yanıtın düzeltilmesini yönlendirmek için kullanılır ve tipe uygun yanıt elde etme akışını daha sağlam hale getirir

TypeChat’in kullanım biçimi ve örnekler

  • TypeChat, kullanıcı niyetini yapılandırılmış yanıta dönüştüren veri şeması yaklaşımında kullanılabilir
  • Örnek kod, kullanıcı giriş cümlesinin duygusunu negative, neutral, positive seçeneklerinden biri olarak değerlendiren SentimentResponse arayüzünü tanımlar
  • createLanguageModel(process.env) ile ortam değişkenleri tabanlı bir dil modeli oluşturur, şema dosyasını okur ve ardından createJsonTranslator<SentimentResponse> ile bir çevirici oluşturur
  • translator.translate(request) başarılı olursa response.data.sentiment çıktılanır; başarısız olursa hata mesajı çıktılanır
  • Veri şemasının yanı sıra, API şeması kullanılarak temel programlar da oluşturulabilir
  • Kullanım biçimi docs ve examples sayfalarından görülebilir

Açık kaynak ve model bağımsızlığı

  • TypeChat, MIT lisanslı açık kaynaktır ve GitHub üzerinde yayımlanmıştır
  • Kolaylık için OpenAI API ve Azure OpenAI Service için varsayılan entegrasyonlar sağlar
  • Tasarım hedefi model bağımsızlığıdır; sohbet tamamlama tarzı API’lerle kullanılabilen bir yaklaşımı hedefler
  • TypeChat şu anda hem düzyazı hem de kodla eğitilmiş modellerde en iyi şekilde çalışır
  • Paket npm üzerinde yer aldığından hemen denenebilir

2 yorum

 
sungwoo 2023-07-26

Haha, haberi görünce paylaşmaya çalışmıştım ama yapay zekaya yetişemiyorum.

 
GN⁺ 2023-07-21
Hacker News görüşleri
  • Burada ne tür bir katma değer olduğunu pek göremiyorum
    LLM'e gönderilen asıl mesaj burada: https://github.com/microsoft/TypeChat/blob/main/src/typechat...
    Sonuçta sabit bir prompt ile yapılandırılmış veri döndürtüyor gibi görünüyor; üstüne biraz otomasyon ve satıcı bağımlılığı eklenmiş bir hâli. Bu tür LLM kütüphanelerinin çoğu, alttaki API'leri saran kaba API'lere daha yakın; aynı işi yapan bir script kolayca yazılabilir ve modelle kullanıcı gereksinimleri değiştikçe daha esnek olur
    Örneğin prompt'u değiştirmek ya da Python sınıfları kullanmak istenirse, böyle bir kütüphane ile API çağrılarını ve metin şablonlarını kullanıcıya açan bir yaklaşım (https://github.com/hofstadter-io/hof/blob/_dev/flow/chat/llm...) arasında iş yükü açısından büyük fark var

    • Değer şurada: 1) LLM'in döndürdüğü sonuç üzerinde TypeScript tip denetleyicisi çalıştırılıyor, 2) tip hataları varsa bunlar toplanıp bir “düzeltme prompt'u”na dönüştürülüyor ve tip denetiminden geçme olasılığı daha yüksek bir çıktı üretilmesi sağlanıyor, 3) 2. maddedeki heuristik başarısız olduğunda bu da temiz biçimde ele alınıyor
      https://github.com/microsoft/TypeChat/blob/main/src/typechat...
      Aynı fikri denemiş biri olarak söyleyebilirim ki, 2. maddedeki heuristik nispeten basit tiplerde, yani derin iç içe geçmeyen kayıtlar ve diziler ile tip değişkenlerinin sınırlı kullanımında şaşırtıcı derecede iyi çalışıyor. LLM'e nispeten basit tiplerde değerler döndürmesini söyleyen prompt'larla bile faydalı uygulamalar yapılabiliyor; bu kütüphane de bu istek kalıbını doğrudan uygulama ihtiyacını azaltması ve TypeScript kod tabanlarıyla standart entegrasyon sunması açısından değerli
    • Son zamanlarda görülen LLM kütüphanelerinin neredeyse hepsi böyle. Eninde sonunda LLM'den belli bir işi belli bir şekilde yapmasını istemeye dayanıyor ve karmaşık koşullarda talimatlara daha az uyup varsayılan davranışa geri döndüğünü gördüm
      Yine de kütüphane kullanma yönü doğru gibi geliyor; hangi yaklaşımın yeterince olgunlaşacağını izlemeye devam ediyorum
    • Satıcı bağımlılığının nerede olduğunu anlamadım. Bu bir açık kaynak kütüphane ve bağlantı verilen dosyada ChatGPT ile Bard için iki sağlayıcı yapılandırması da var
    • Değer, yapılandırılmamış veriyi yapılandırılmış veriye dönüştürmesi ve şema kısıtlarını karşıladığını garanti etmesinde
      Örneğin bir ürün hakkında serbest metinli 1000 anket yanıtınız varsa, bir şema oluşturup her biri için TypeChat çalıştırarak bu serbest metinlerden bir veri kümesi elde edebilirsiniz. İnanılmaz derecede faydalı
    • Soyutlamalar ne kadar iyileşirse, faydalı şeyleri kodlamak da o kadar kolaylaşır
  • Anlamadığım bir nokta var
    Geçerli bir yanıt gelmesini umup, son aşamaya hatalı yanıtları tespit eden bir doğrulayıcı ekleyip, modele lütfen istediğimiz sözdizimiyle cevap vermesi için yalvaran bu karmaşık sürecin neden gerektiğini anlamıyorum
    İstenen biçime uyan token'lar örneklenirse geçerli JSON sözdizimi garanti edilebilir. Her seferinde en yüksek puanlı token'ı açgözlü biçimde seçmek yerine, istenen biçime uyan token'lar arasından puanı en yüksek olanı seçmek yeterli
    Microsoft'un Guidance'ı bunu zaten yapıyor: https://github.com/microsoft/guidance
    Ama OpenAI tüm token'ların tam puanlarını vermiyor, yalnızca en yüksek puanlı token'ı veriyor gibi görünüyor. Modeli yerelde çalıştırırsanız Guidance kullanmak basit, JSON'un her seferinde doğru olacağı garanti edilebilir ve üretim de daha hızlı olur; tuhaf gerçekten

    • Bu, kahverengi M&M hikâyesine[0] benziyor. Model anlamsal olarak doğru veri döndürüyorsa, en azından sözdizimini de doğru vermesini beklersiniz. Bunu yapamıyorsa zaten yanıtı çöpe atmak gerekir
      Ayrıca bu yaklaşımla TypeScript tiplerinin tüm karmaşıklığını ifade etmek zor olabilir gibi geliyor
      [0] https://www.snopes.com/fact-check/brown-out/
    • Bu şekilde sözdizimsel olarak doğru JSON garanti edilebilir, ama anlamsal olarak doğru olup olmadığı ayrı bir mesele
      Model aslında başka token'lar üretmek isterken onu zorla { koymaya mecbur bırakırsanız, sonrasında üretilen metnin kalitesi düşebilir. Emin değilim, sadece aklıma gelen bir ihtimal
    • Yalnızca geçerli token'ları örnekleme yaklaşımı bence çok umut verici
      Açık kaynak bir LLM'i JSON ayrıştırma için ince ayar yaparak kullandım; yönlendirilmiş token örneklemesi olmadan bile kullanım durumuna göre 70B parametre fazla olabilir. Çok daha küçük modellerde de oldukça iyi sonuçlar gördüm ve küçük model ince ayarıyla yönlendirilmiş token örneklemesini birleştirmek ilginç olabilir
      Ancak çok genel amaçlı uygulamalarda ince ayar kusursuz olmayabilir. Eğitim veri setinde öngörülmeyen girdiler gelirse sorun çıkabilir
    • LLM'ler daha karmaşık senaryoları işleyebilir. Örneğin bir otomatta tüm sipariş akışını tek tek geçmeden sadece siparişi söylerseniz, “birkaç çikolata barı” gibi ifadeleri stokla eşleştirerek tahmin edebilir
      Elbette web'de bunun pek anlamı yok. Fareyle birkaç ürüne tıklamak çok daha kolay
    • Llama.cpp'nın yakın zamanda açıkladığı gibi, sabit bir biçime uyması için token seçimini kısıtlayan gramer tabanlı örnekleme eklendi
      https://github.com/ggerganov/llama.cpp/pull/1773
  • Ben bir şey düşününce sanki Anders Hejlsberg gidip onu yapıyor gibi.
    Yapılandırılmış istekler ve yanıtlar, LLM'lerin bir sonraki evrimi olarak %100 doğru görünüyor. İnsanlar zaten chatbotlardan bıkmaya başlıyor ve metin parse etme ya da prompt derdi olmadan herhangi bir backend'e takılabildiğinde müthiş olacak

    • Benim sağladığım eyleme dönüştürülebilir arayüzü yerelde çalışan bir LLM'e bağlamak istiyorum. “Saati kontrol et”, “takvimi kontrol et”, “kullanıcıya mesaj gönder” gibi şeyler.
      TypeChat doğru yönde gidiyor gibi. “Mümkünse bu JSON girdisini olası eylemlerden birine eşleştir” gibi ek bir katman hayal edebiliyorum.
      Botların, yani LLM vb.'nin gerçek kod katmanlarını birbirine bağladığı temiz bir hibrit gelecek görünüyor. Bazen toplama/etiketleme işinin bir parçası olur, bazen de girdiye yanıt veren kısmın bir parçası olur.
      Genel olarak çok ilginç bir alan ama her şey o kadar hızlı ilerliyor ki henüz derinlemesine dalmadım. Bir sürü zeki insan çalışıyor, o yüzden tozun biraz yatışmasını beklemek gerektiğini düşünüyorum. Yine de hayalini kurduğum ev arayüzünü artık yapabilecek noktaya gelmişiz gibi görünüyor
    • Dün buna benzer bir şeyi yeni uyguladım ama nesnelerden çok fonksiyon odaklı bir yaklaşıma yoğunlaştım
    • Backend katmanında dinamik eşleyici olarak kullanılırsa müthiş olabilir.
      Örneğin Java tüketicisi çevresinde sık sık değişen API payload'larını düşünün. Bankacılıkta, devasa JSON payload'ları ve Java backend ortamında akıl sağlığımı korumaya çalışırken ayrı bir NodeJS katmanı kurmuştum.
      Eşleme, LLM'lerin parlayabileceği bir alan
    • Bakmaya değer: https://news.ycombinator.com/item?id=36750083
  • Kışkırtıcı bir yorum yapacak olursam, yavaş yavaş AI'ın araçsallaşma aşamasına giriyoruz. İnsanlar bunun çok fazla gerçek değer üretmediğini fark ediyor ama AI'a fazlasıyla yatırım yapıldığı için para akmaya devam ediyor. Akademik makale çıkarmak için de iyi bir konu ve LangChain neredeyse şaka gibi ama seed turunda 10 milyon dolar aldı.
    DeFi/crypto bu aşamadan 2 yıl önce geçti. Birkaç yıl boyunca tuhaf bir limbo hali sürecek, sonra insanlar yavaş yavaş AI'ın bir ürün değil özellik olduğunu, uygulama alanının sınırlı kaldığını ve dünyayı kurtarmayacağını fark edecek. Tüm edge case'ler yüzünden otonom araçlar yapılamayacak, insan öldürebileceği için ameliyat da yapamayacak.
    Copilot gibi en kullanışlı AI araçlarının bile olsa olsa çevresel düzeyde faydalı olduğunu hep söyledim. En iyi ihtimalle Google'da birkaç tıkla yapacağınız işi azaltır, ajanlar ise hiç de “zeki” değil. Birkaç yıl önce chatbot[1] ile benzer bir balon yaşandı, bugün ise kimse umursamıyor. “Metaverse” çok daha kısa sürdü ama aynı sürü psikolojisi işledi. “Bir sonraki büyük şey” denip sonra öyle olmadığının görülmesi gibi.
    [1] https://venturebeat.com/business/facebook-opens-its-messenger...

    • AI'ın sadece sınırlı kapsama sahip bir balon olduğu fikrine kesinlikle katılmıyorum.
      Otonom araçlar ve ameliyat gibi AI için en zor kullanım örneklerini seçmişsin. Çoğu insanın işi ölüm kalım meselesi değil, bu yüzden otomasyon için çok uygun. Ölüm kalım içeren mesleklerde insan unsuru kalsa bile bunların AI ajanlarıyla güçlendirilmesi çok muhtemel. Örneğin ameliyatı insan yapsa bile, doktor ya da hemşirenin AI ile birlikte teşhis koyması zorunlu hale gelebilir.
      Birkaç yıl önceki chatbot balonuyla bugünü gerçekten karşılaştırıyor musun? ChatGPT birkaç ay içinde 100 milyon kullanıcıya ulaştı ve gerçekten çok sayıda insan kullandı. Birkaç yıl önceki chatbot balonunun ise neredeyse hiç görünürlüğü yoktu.
      Copilot vb.'nin sadece çevresel fayda sağladığını söylemen, şu an en kötü sürümlerine bakıyor olmandan kaynaklanıyor. ChatGPT benim hayatımı değiştirdi ve henüz kod bile çalıştırmıyor. Code Interpreter bunu yapıyor ama ben daha denemedim.
      2030 civarında insanlar muhtemelen artık kod yazmayacak; makinelere prompt verip AI ajanlarını yönlendirecek. O zamana kadar çoğu işin de otomatikleşmesi kuvvetle muhtemel.
      AI sadece gelip geçici bir moda değil; tüm endüstrileri değiştirecek ve bu insanların düşündüğünden çok daha hızlı olacak. AI'ın sonuçlarını metaverse ile karşılaştırarak küçümseyen bu alaycı yaklaşım saçma ve hayal gücünden yoksun. Özellikle AI ajanları tarafında yapılacak çok iş var ama muhtemelen insanların düşündüğünden çok daha hızlı oraya ulaşacağız ve etkisi devasa olacak
    • ChatGPT'yi her kullandığımda, başkalarının gördüğünden farklı bir teknolojiye baktığımı hissediyorum. Her soruya cevap verdiği ve her şeyi öğrettiği söyleniyor ama gerçekte içerik çiftliği servisi gibi geliyor. Copilot da benzer; çoğu zaman kötü örnekler arasında en az kötü olanı seçip bug düzeltmeye çalışmaktansa kodu doğrudan yazmak daha kolay.
      Yine de AlphaGo'nun kötü hamleler “halüsinasyon” gördüğü durumdan dünyanın en iyi Go oyuncusu haline gelmesi uzun sürmemişti. Dil modellerinde de bu mümkün olursa, GPT-x bugünkü tüm tartışmaları süpürüp atabilir
    • “Gerçek değer üretmiyor” sözüne kesinlikle katılmıyorum. Kendi kullanım örneklerimde buna çok net karşı örnekler var.
      GPT-4, yetkin bir kişinin kendi becerilerinin genel olarak işe yaradığı ama alan bilgisinin zayıf olduğu yan işlerde inanılmaz yardımcı oluyor.
      10 yıldır kod yazıyorum ve yakın zamanda ilk kez makine öğrenmesi öğrenmeye başladım; her gün GPT-4 kullanıyorum ve son derece memnunum.
      Elbette pürüzlü tarafları bazen can sıkıcı olabiliyor. Benim için yönetilebilir seviyede ve büyük bir zahmet değil. Görmezden gelmeye ya da etrafından dolaşmaya alıştım; bu tür araçları kullanmanın gerçekten bir becerisi var.
      Sunulan değerin artmaya devam edeceğini düşünüyorum. Daha alçakta duran meyvelerin ve orta yükseklikteki meyvelerin hepsini bile toplamış değiliz
    • DeFi/crypto ile arasındaki temel fark şu: o tarafta teknoloji ne kadar etkileyici olursa olsun, insanların ilk faydayı elde edebilmesi için yaptıkları şeyi tamamen değiştirmeleri gerekiyordu.
      Modern AI, pratikte çoğunlukla LLM'ler, ekonominin neredeyse tüm sektörlerine anında ve geniş ölçekte uygulanabiliyor. Bu yüzden zaten pek çok kişi özellikler geliştirip yayımlıyor. Bu teknolojide muazzam bir değer var. Dünyayı tamamen değiştirir mi? Hayır. Ama yeni ürün kategorileri oluşturacak ve mevcut ürünlerin yeteneklerinin büyük bir bölümünü kökten iyileştirecek kadar güçlü
    • Bence oldukça makul bir yorum. AI'ın çok sayıda kullanım alanı var ve bazı işlerde gerçekten çok iyi ama insanların beklediği her derde deva değil
  • Apple, Google, Amazon ve Microsoft’un sesli asistanları arasında neden hâlâ hizmetlerine LLM entegre eden olmadığını ve OpenAI’ın neden kendi sesli asistanını çıkarmadığını anlayamıyorum.
    Ayrıca RSS gibi, web siteleri AI etkileşimi için standart bir URL yayımlasa ve TypeChat ile arayüzlerini açsa, bu yönde epey ilerleme kaydedilebilir gibi görünüyor.

    • OpenAI’ın kendi asistanını yapma olasılığı yüksek. Karpathy’nin “Building a kind of JARVIS @ OреոΑӏ” paylaşımına bakınca öyle görünüyor; Microsoft da elbette OpenAI’ın LLM’i ile Cortana’yı entegre etmek veya yeniden yorumlamak için çalışıyordur.
      Yine de ses tabanlı bir LLM’den çok, gerçekten eylem gerçekleştirme yeteneğinin değeri daha büyük. Örneğin Alexa’da, akıllı ev kontrolünü öngörülebilir ve hata ayıklanabilir biçimde ele alan bir sisteme ihtiyaç var. Yoksa insanlar sinir oluyor.
      Bunun kesinlikle mümkün olduğunu düşünüyorum, ama Alexa ya da Siri gibi mevcut sistemler, hatta daha az kullanılan Cortana da, yıllardır daha zayıf modellerin üzerine pek çok hook ve API kullanan kurallar ve yazılımlarla inşa edildi. Bunu çalışır hale getirmek için mevcut kaliteyi koruyarak iyileştirmek ve aynı anda sistemin ana parçalarını baştan aşağı yenilemek gerekiyor; bu yüzden zaman alıyor.
      Üstelik bu tür asistanlar doğrudan para kazanmıyor, çoğu zaman zarar ettiriyor. Telefon, alışveriş gibi başka yollarla para kazanabilen veya işlerini itebilen büyük şirketler için değerli; bu yüzden startup’ların bunu yapması için teşvik az.
      Geçmişte hem Cortana hem Alexa tarafında çalıştım ve LLM’deki gelişmelerden yola çıkarak sıfırdan yeni bir sürüm yapmayı da çok düşündüm. Teknoloji genel olarak sezgiseldi ve artık mümkün hale gelen yeni kullanım senaryosu fikirleri de vardı, ama işe yarayan bir iş modeli bulamadım. O yüzden şu anda tamamen başka bir şey yapıyorum.
    • ChatGPT’nin ne olduğunu ilk öğrendiğimde aklımdan geçen şey, “Aa, Siri aslında böyle olmalıydı” oldu.
    • ChatGPT ve Bing’i kullandıktan sonra Alexa ile konuşmak gülünç kalıyor. İyi donanımın yıllardır berbat yazılım yüzünden kösteklenmesini görmek gerçekten sinir bozucu.
    • Microsoft bunu Windows 11’de Cortana’nın yerine koymak için yapıyor.
    • Home Assistant’ı kontrol etmek için kullanılabilecek bir şeyi gerçekten dört gözle bekliyorum.
      Yalnız bunun için bulut tabanlı bir API kullanmak fazla rahatsız edici, bu yüzden ev içindeki bir sunucuda çalışan bir çözüm istiyorum. Aynı zamanda konuşmayı tanıma ve yanıt süresi çok hızlı olmalı; bekliyormuşum gibi hissettirmemeli.
      Kişisel asistan DIY denemelerini birkaç kez gördüm ama hep epey yüksek gecikme vardı; sık kullanılsa insanı çabuk sinirlendirir gibi geliyor.
  • { "name": "grande latte" } gibi bir yanıt almanın kolay olduğundan bahsedilen bir kısım var.
    Ama tip Item = { name: string; ... size?: string; } ise, bunun name: "grande latte" sonucunu nasıl engellediğini pek anlamıyorum.
    Örnek yanıtta "size": 16 var ve buna “oldukça iyi” deniyor, ama aslında istenen tipi bile döndürmüyor. Muhtemelen örnekte bir yazım hatası var; öyleyse fikrin kendisi hoş görünüyor.

    • Yakalamış olman iyi oldu. Blog yazısının önceki bir sürümünde, yanlışlıkla size alanını number olarak tanımlayan farklı bir şema kullanılmıştı. Şemayı değiştirdim ama prompt’u yeniden çalıştırmadım; şimdi düzeltilmiş olmalı.
    • Bence bu örnek genel olarak epey zayıf. Sadece basit bir yazım hatasının ötesinde bir sorun.
      Başta bir name string alanı istemiyor olabilirsiniz. { name: “kahverengi olan”, size: “espresso fincanı boyu”, … } gibi değerler gelmesini engelleyemezsiniz; bu da aslında ham string’i parse etmek kadar kötü.
      Muhtemelen her alan için bilinen değerleri temsil eden büyük bir string union type istersiniz. Böylece LLM’i bunlardan birine uydurmaya zorlayabilirsiniz.
      Ama bunun neden tip sözdizimine bağlanması gerektiğini de merak ediyorum. Böyle union tipleri runtime verisinden kurabilen Zod gibi bir yaklaşım daha uygun görünüyor.
      Miktarın pozitif tam sayı olması ve kesirli olmaması gibi kısıtlar da gerekir. Elbette JSON değerlerini sonradan doğrulayabilirsiniz, ama o zaman kullanıcı iki tür hata görür: biri LLM’in akıcı insan diliyle verdiği hata, diğeri de “miktar değeri çok büyük” gibi tuhaf derecede teknik bir hata.
      Bunu anlatmak için tip sözdizimi yanlış yerde duruyor gibi.
    • Bu sadece bir dokümantasyon hatası gibi görünüyor. Sunum hazırlanırken son anda ons cinsinden ölçüden standart boyuta geçilmiş ve çıktı değerlerini ona göre güncellemeyi unutmuşlar gibi.
      Verilen kodla sistemin “grande”yi 16’ya eşlemesinin bir yolu yok; ayrıca 16 başka bir yerde de kullanılıyor gibi görünmüyor.
    • Hemen sonraki paragrafta “tipler göz ardı edilirse ne olur” konusu ele alındığı için, muhtemelen onu kastederek yazılmış.
  • LLM’i, tip denetimini geçen bir şey üretinceye kadar tekrar tekrar çalıştırıp hata mesajlarıyla yeniden prompt’luyor gibi görünüyor.
    Şirin bir fikir ve işe yarayacak gibi, ama büyük modeller ve uzun giriş prompt’larında maliyet yüksek olabilir. Her senaryo için çözüm olmayabilir.

    • En azından OpenAI tarafında, bunun yerine dahili yeni function calling özelliğini kullanmak daha iyi olmaz mı?
    • TypeChat’in tam olarak nasıl çalıştığını bilmiyorum ama Guidance [1] de benzer bir proje ve gerçekten token örneklemesine entegre olarak formatı zorunlu kılabiliyor.
      [1]: https://github.com/microsoft/guidance
    • Çoğu ürün önce ürün-pazar uyumu konusunda endişelenir, maliyeti azaltmaya ise sonra bakar gibi geliyor.
      Pazar yapılandırılmış çıktı istediğine göre, modellerin de o yöne doğru iyileşeceği varsayımı oldukça makul.
  • Bu hafta Laravel PHP için buna çok benzeyen ama kapsamı daha dar olan bir şey geliştirip yayınladım: https://github.com/adrenallen/ai-agents-laravel
    Mühendislerin, ellerindeki LLM ile yeni bir “bot”u kolayca ayağa kaldırabilmesi gerektiğini düşünüyorum. Fonksiyonları ChatGPT’nin anlayabileceği bir biçime dönüştürmek, yanıtları işlemek ve sonra tekrar ayrıştırmak gibi çok sıkıcı işler var
    Bu tür sistemleri kullanınca asıl olarak gerçek PHP kodu yazmaya ve birkaç net yorum eklemeye odaklanabiliyorsunuz; sonra bot bu kodu hangi görev olursa olsun doğrudan bir araç gibi kullanabiliyor
    Ayrıca bu yaklaşım kod paylaşımını çok daha kolay hale getiriyor. Biri bir fonksiyon yazdığında, onu yeni bir bota alıp hemen kullanabiliyorsunuz. “LLM’in kullanıp anlayabilmesi için dönüştürme katmanını” ortadan kaldırması çok hoş ve geliştirme hızını ciddi biçimde artırıyor
    Henüz kusursuz değil ama birbirimizin kodundan daha iyi yararlanmak istiyorsak sonunda her şeyin bu yöne gideceğini düşünüyorum. Bugün kod yazarken paket yöneticilerini nasıl kullanıyorsak, AI araçlarına özel bir paket yöneticisi olmasını isterdim. Mesela “hava durumu getir” kütüphanesini kurup botuma eklerim ve artık hava durumunu alabilir

    • Benzer ama biraz daha geniş kapsamlı bir yaklaşım üzerinde çalışıyorum, o yüzden yıldız verdim. Bazı fikirler gerçekten çok temiz
  • Bir saniye, bu TypeScript tip tanımlarına karşı nesneleri çalışma zamanında doğrulama mı yapıyor? Bunu bağımsız bir kütüphane ya da özellik olarak dağıtabilirlerse, TypeScript kod tabanlarında API yanıt payload doğrulaması gibi işler için tam bir oyun değiştirici olabilir

  • Burada guidance [0] kullanılmaması çok şaşırtıcı
    Zorunlu alanların tamamlanmasını önerebildiği için doğrulama[1] ihtiyacını azaltabilir ve sonuçta GPU zamanı da tasarruf ettirebilir gibi görünüyor
    Bunun kesin bir nedeni vardır ama gerçekten bilmek isterim
    Bir yandan da tam olarak böyle bir şey yapıyordum; Microsoft bir anda gelip öğle yemeğimi elimden almış gibi hissettirdi
    [0] https://github.com/microsoft/guidance
    [1] https://github.com/microsoft/TypeChat/blob/main/src/typechat...