PromptChainer: İstemlerin Görsel Programlama ile Zincirlenmesi

Cahit Barkin Ozer
4 min readDec 13, 2023

--

“PromptChainer: Chaining Large Language Model Prompts
through Visual Programming” makalesini inceliyip özetliyoruz.

For English:

Özet

LLM’ler, yeni makine öğrenimi işlevlerinin hızlı bir şekilde prototipini oluşturmayı mümkün kılsa da, birçok gerçek dünya uygulaması, tek bir LLM’in çalışmasıyla kolayca halledilemeyecek karmaşık görevleri içermektedir. Son zamanlarda yapılan çalışmalar, birden fazla LLM’in birlikte çalışmasının (bir adımın çıktısı diğerinin girdisi olacak şekilde) kullanıcıların bu daha karmaşık görevleri daha şeffaf ve kontrol edilebilir olarak algılamalarına yardımcı olabileceğini ortaya koymuştur. Ancak, kullanıcıların kendi LLM zincirlerini yazarken neye ihtiyaç duydukları henüz tam olarak anlaşılamamıştır; bu, yapay zeka uzmanı olmayanların yapay zeka ile aşılanmış uygulamaları prototipleme konusundaki engelleri azaltmada önemli bir adımdır.

Bu çalışmada, LLM zinciri yazma sürecini araştırmaktayız. Yapılan pilot çalışmalardan elde edilen bulgular, kullanıcıların bir zincirin adımları arasında veri dönüştürmenin yanı sıra zincirde birden fazla ayrıntı düzeyinde hata ayıklama desteğine ihtiyaç duyduğunu göstermektedir. Bu ihtiyaçları karşılamak amacıyla, görsel programlama zincirlerine yönelik etkileşimli bir arayüz olan PromptChainer’ı tasarladık. Dört tasarımcı ve geliştiriciyle gerçekleştirilen vaka çalışmaları, PromptChainer’ın çeşitli uygulamalar için prototip oluşturmayı desteklediğini göstermekte ve zincirleri daha karmaşık görevlere ölçeklendirme ile birlikte low-fi zincir prototiplemesini destekleme konusunda açık bıraktığımız soruları ele almaktadır.

Geniş Özet

Yapay zeka işlevlerinin prototipini oluşturmak için büyük dil modellerinin (LLM’ler) kullanımını ve birden fazla LLM çalışmasını bir araya getirirken karşılaşılan zorluklar tartışılmaktadır. Yazarlar, kullanıcıların kendi zincirlerini yazarken ihtiyaçlarını karşılamak amacıyla PromptChainer adlı etkileşimli bir arayüz üzerinden LLM zincirlerini görsel olarak programlamayı önermektedir. PromptChainer kullanan tasarımcılar ve geliştiricilerle gerçekleştirilen vaka çalışmalarından elde edilen bulgular vurgulanmakta ve bu, zincirleri daha karmaşık görevlere ölçeklendirme ve low-fi zincir prototiplemesini destekleme konusunda açık soruları gündeme getirmektedir.

LLM zincirleri kullanarak karmaşık uygulamaların prototipini oluştururken, araştırmacıların karşılaştığı zorluklar tartışılmaktadır. Bu zorluklar arasında veri dönüştürme ihtiyacı, LLM işlev imzalarının istikrarsızlığı ve ardışık hataların olasılığı vurgulanmaktadır.

Yazarlar, zincirleri oluşturmak ve görüntülemek için bir Chain View, zincirdeki bireysel adımları yazmak için bir Node View ve zincir hata ayıklama desteği içeren PromptChainer adında bir arayüz önermektedir. Arayüz, LLM düğümleri, veri dönüşümü ve değerlendirmesi için yardımcı düğümler, özel JavaScript düğümleri ve iletişim düğümleri dahil olmak üzere çeşitli düğüm türlerini sağlar. PromptChainer, kullanıcıların yararlı yeteneklere ilişkin zihinsel bir model geliştirmelerine yardımcı olmak için sıklıkla oluşturulan zincirlerin örneklerini sunar.

Düğüm Görünümü, hızlı düzenlemelerle tutarlılığı sağlamak için otomatik güncellemelerle kullanıcılara ayrı ayrı düğümleri inceleme, uygulama ve test etme olanağı tanır. Etkileşimli hata ayıklama işlevleri farklı ayrıntı düzeylerinde sunulur. Metinde, kullanıcıların birden fazla istemi birbirine zincirlemesine olanak tanıyan PromptChainer adlı bir araç anlatılmaktadır. Kesme noktası hata ayıklamayı destekler ve kullanıcılara bir düğümün çıktısını düzenlemeden önce besleme olanağı tanır. Yapılan çalışmada, istem yazma deneyimi olan katılımcılar görevlendirilmiştirve PromptChainer’ı kullanarak zincir oluşturmaları sağlanmıştır. Katılımcılar, zincir başına ortalama 5,5 düğüm olacak şekilde istedikleri zincirleri başarıyla oluştururlar. Zincirler, paralel mantık dalları ve içerikteki artan yineleme gibi farklı modelleri yansıtmaktadır. Katılımcılar tek istem sınırlamalarını ele almak ve prototiplerini daha genelleştirilebilir hale getirmek için zincirlemeyi kullanmışlardır. PromptChainer çeşitli zincir oluşturma stratejilerini desteklemiştir ve çok düzeyli hata ayıklamayı etkinleştirmiştir. Katılımcılar zincirlerini oluştururken farklı yaklaşımlar uygulamışlardır ve önceden tanımlanmış yardımcıların zincirleme ihtiyaçlarının çoğunu karşılamışlardır. PromptChainer, kullanıcıların zincirlerini yinelemeli olarak yazma ve geliştirme konusunda etkili olmuştur. Metinde, kullanıcıların çeşitli görevler için dil modelleri zincirleri oluşturmasına yardımcı olmak üzere tasarlanmış bir araç olan PromptChainer tartışılmaktadır.

PromptChainer, LLM adımlarının etkileşimli etkileri olduğunda istemlerin oluşturulmasına ve zincirde hata ayıklamaya yardımcı olur. Çalışma, LLM zincir yazarlığındaki, birbirine bağımlı alt görevler arasında tutarlılığın sağlanması ve karmaşık mantıkla zincirlerin izlenmesi gibi zorlukları tespit etmektedir. Gelecekteki yönelimler arasında daha karmaşık zincirlerin desteklenmesi ve farklı istem yapılarının hızlı bir şekilde test edilmesi için “yarı pişmiş” zincir yapısının kolaylaştırılması yer alıyor.

Şekiller

Şekil 1: PromptChainer arayüzü. (A) Zincir Görünümü, zincir yapısını düğüm kenarı diyagramlarıyla (Şekil 2'de detaylı olarak görülebilir) görselleştirir ve kullanıcılara, düğümleri ekleyerek, çıkararak veya yeniden bağlayarak zinciri düzenleme imkanı tanır. (B) Düğüm Görünümü, her bir düğümün uygulanmasını, iyileştirilmesini ve test edilmesini, örneğin LLM düğümleri için istemlerin düzenlenmesini destekler. PromptChainer ayrıca zincirin uçtan uca çalıştırılmasını da destekler.
Şekil 2: Bir pilot kullanıcının oluşturduğu müzik sohbet botunun prototiplenmesine yönelik örnek bir zincir (genel bakış Şekil 1'dedir). Birincil girdi-çıktı örneklerini sağlıyoruz ve düğüm işlevlerine satır içi açıklama ekliyoruz.
Şekil 3: Çekirdek LLM düğümleri, veri dönüşümü ve değerlendirmesi için yardımcı düğümler ve LLM verilerinin harici kullanıcılar veya hizmetlerle değişimi için iletişim düğümleri dahil olmak üzere düğüm türlerinin bir özeti.
Şekil 4: Şekil 2'nin bir uzantısı, müzikle ilgilidir: (A) Düğüm görselleştirmesi: düğümde bir durum simgesi (𝑎1), adlandırılmış girdi (𝑎2) ve çıktı tutamaçlarının (𝑎3) bir listesi ve ayrıca ayrıntılı veri önizlemeleri bulunur (𝑎4). (B) Uygulama: tanıtıcı adları temel bilgi istemi şablonuyla (𝑏1) senkronize edilir. Düğümde birden çok düzeyde hata ayıklayabiliriz.
Şekil 5: Kullanıcı araştırması katılımcıları tarafından oluşturulan dört farklı zincir. P1 ve P2'nin zincirleri paralel dallanma mantığını kullanırken P3 ve P4'ün zincirleri yinelemeli içerik işlemeyi tasvir eder. Tüm ayrıntılar Şekil 6, Ek A’dadır.

Sonuç

LLM’lerin çok yönlü ve açık uçlu yeteneklerinin beraberinde getirdiği LLM zincir yazarlığı için üç benzersiz zorluk belirledik. Bu zorlukların üstesinden gelmek adına PromptChainer’ı tasarladık ve bu aracın kullanıcıların ara LLM çıktısını dönüştürmesine ve LLM adımlarının etkileşimli olduğunda zincirde hata ayıklanmasına yardımcı olduğunu tespit ettik. Çalışmamız ayrıca, daha karmaşık zincirlerin desteklenmesinin yanı sıra “yarı pişmiş” zincir yapısının daha açık bir şekilde desteklenmesi de dahil olmak üzere ilginç gelecek yönelimlerini ortaya çıkardı. Böylece kullanıcılar, önceden yönlendirmeye çok fazla zaman harcamadan kolayca bir zincir yapısının taslağını çizebildiler.

Kaynak

[1] Tongshuang Wu, Ellen Jiang, Aaron Donsbach, Jeff Gray, Alejandra Molina, Michael Terry, Carrie J Cai, (13 Mar 2022), PromptChainer: Chaining Large Language Model Prompts through Visual Programming, https://doi.org/10.48550/arXiv.2203.06566

[https://arxiv.org/abs/2203.06566]

--

--

Cahit Barkin Ozer
Cahit Barkin Ozer

Written by Cahit Barkin Ozer

Üretken YZ başta olmak üzere teknoloji alanındaki yenilikleri öğrenip sizlerle paylaşıyorum. Youtube Kanalım: https://www.youtube.com/@cbarkinozer

No responses yet