Reef tamamen açık kaynaktır: https://github.com/Human-Agent-Society/reef
1. Tüm "RSI" heyecanı gerçeğe dönüşmeden önce
Bugünkü RSI heyecanı tam anlamıyla gerçekleşmeden önce, aynı genel sorun için geliştirdiğimiz bir altyapı olan Reef'i açık kaynak olarak sunmak istiyoruz: aracıların (donanım + model) deneyimlerinden sürekli olarak evrimleşmesini sağlamak.
Amaç, açık kaynak topluluğunun sürekli kendini geliştirme konusunda deneyler yapmasını ve bunun için üretim düzeyinde bir altyapıya kolayca erişmesini sağlamaktır. Burada sürekli kendini geliştirme kavramını daha geniş ve pratik bir çerçeve olarak kullanıyoruz; RSI ise aynı fikrin daha tamamen yinelemeli bir biçimini temsil ediyor.¹
2. Sürekli kendini geliştirme neden yeni bir altyapı gerektiriyor?

GIF
Çoğu LLM altyapısı nispeten basit bir yaşam döngüsü varsayar. Bir modeli eğitiriz, değerlendiririz, dağıtırız ve ardından çıkarım için kullanırız. Sürekli kendini geliştiren aracılar için, bu kurulumun arkasındaki iki varsayımın bozulmaya başladığını düşünüyoruz.
İlk olarak, çıkarım artık boru hattının sonu değil. Aracılar çalışırken yörüngeler, yürütme sonuçları, kullanıcı geri bildirimleri ve gelecekteki iyileştirmeleri yönlendirebilecek diğer sinyaller dahil olmak üzere faydalı deneyimler üretir. Çıkarım zamanında olanlar artık sadece sunup attığımız bir şey değil. Öğrenme sürecinin bir parçası haline gelir.
İkinci olarak, gelişen tek şey model değil. Bir aracı, bir modelden daha fazlasıdır ve sürekli kendini geliştirme, yalnızca model ağırlıklarıyla sınırlı olmamalıdır. İstemler, bellek, beceriler, araçlar ve orkestrasyon mantığı da deneyimden potansiyel olarak iyileşebilir. Daha güçlü bir model, aracının yeteneklerini genişletirken, daha iyi bir donanım, bu yeteneklerin daha etkili bir şekilde ortaya çıkarılmasına ve karmaşık görevlerde daha güvenilir bir şekilde kullanılmasına yardımcı olur.
Birlikte ele alındığında, bu değişiklikler bir zamanlar çoğunlukla sıralı olan bir boru hattını sürekli bir evrim döngüsüne dönüştürür. Aracılar etkileşime girer, deneyim üretir, kendilerinin farklı bölümlerini iyileştirir, bu değişikliklerin saklamaya değer olup olmadığını değerlendirir ve sistemin yeni sürümleri olarak hizmet vermeye geri döner.
Bu nedenle Reef'i yalnızca eğitim altyapısı olarak görmüyoruz. Eğitim, döngünün yalnızca bir parçasıdır. Sürekli kendini geliştirme için altyapının, canlı çıkarımdan başlaması ve tüm aracının evrimini desteklemesi gerektiğini düşünüyoruz.

GIF
3. Böyle bir altyapının neye ihtiyacı var ve Reef bunu nasıl uyguluyor?

Reef mimarisi
Sürekli kendini geliştirme için altyapının üç şeye uçtan uca sahip olması gerekir: deneyim, aracı ve güncellemeler. Bu, (1) canlı trafikten öğrenmek, (2) hem modeli hem de donanımı güncellemek ve (3) güncellemelerin nasıl yayınlandığını uygun şekilde değerlendirmek, sürümlemek ve kontrol etmek anlamına gelir.
Deneyime sahip olun — öğrenme, canlı sunum üzerine inşa edilmelidir
Çıkarım ve eğitim tarihsel olarak birbirinden ayrılmıştır. Bazı RL altyapıları (örneğin, Slime, veRL) veri üretmek için bir çıkarım motoru içerir, ancak bu sistemler model sunumu yerine model eğitimi için tasarlanmıştır. Sürekli kendini geliştiren bir altyapının öncelikle bir çıkarım altyapısı olması ve eğitim kapasitesini canlı çıkarım etrafında inşa etmesi gerektiğini öne sürüyoruz: sistem gerçek uygulamalara hizmet eder, test zamanı deneyimini toplar ve öğrenme tariflerinin bunu sürekli olarak tüketmesine izin verir. Bu inanç, eğitim sinyali oluşturma ve eğitim örneği seçimi dahil olmak üzere birçok tasarım seçiminin yeniden düşünülmesine yol açar.
Çıkarım, Reef'in doğasında vardır. Reef, standart çıkarım uç noktalarını kullanıma sunarak mevcut uygulamalara entegre olmayı ve bunları kendi kendini geliştiren sistemlere dönüştürmeyi kolaylaştırır.
1# client = xxx # httpx istemcisini Reef'in sunum uç noktasına başlatır23# Reef üzerinden standart çıkarım çağrısı, Open-AI formatı4response = client.post(5 "/v1/chat/completions",6 json={"model": xxx, "messages": xxx},7)89# Reef tarafından depolanan çıkarım kaydına referans10receipt = response.headers["x-reef-agent-record-id"]
Uygulamalar ayrıca belirli çıkarım çağrılarıyla ilişkili ödülleri, değerlendirici geri bildirimlerini veya diğer sinyalleri aşağıdaki yolla bildirebilir:
1# İlgili çıkarım kaydına geri bildirim ekleyin2client.post(3 "/reef/report",4 json={"feedback": "yanlış cevap", "references": [receipt]},5)
Yaşam döngüleri boyunca statik kalan mevcut çıkarım motorlarından farklı olarak Reef, durum bilgisi olan çıkarım sunar: Reef, çıkarım izlerini ve geri bildirimleri yapılandırılmış bir deneyim akışı olarak depolar ve politika dışı eskime, oturum birleştirme ve yinelemeyi kaldırma gibi sorunları ele alır. Öğrenme tarifleri, bu akışın nasıl işleneceğini, hangi öğrenme algoritmasının kullanılacağını ve güncellemelerin ne zaman değerlendirilip dağıtılacağını tanımlar. Bu, farklı uygulamaların aynı altyapı üzerinde kendi öğrenme stratejileriyle gelişmesine olanak tanır.
Tüm aracıya sahip olun — hem model hem de donanım, durum bilgisi olan çıkarım yoluyla gelişir
Uçtan uca sonuçlar sunabilen bir yapay zeka aracısı yalnızca bir modelden değil, aynı zamanda bir donanımdan da oluşur. Model, görevleri çözmek için gereken temel yetenekleri sağlarken, donanım; araçları, bağlamı, belleği, geri bildirimi ve orkestrasyonu yöneterek karmaşık, uzun vadeli yörüngelerde güvenilir yürütmeyi sağlar. İkisi sıkı sıkıya bağlıdır: donanım, modelin yeteneklerinin nasıl ortaya çıkarılacağını, temellendirileceğini ve kullanılacağını belirlerken, model, donanımın güvenilir bir şekilde hangi yürütme biçimlerini destekleyebileceğini belirler. Bu nedenle, herhangi birindeki ilerlemeler diğerinin optimal tasarımını değiştirebilir. Sürekli kendini geliştiren bir altyapı, yalnızca model ağırlıklarını değil, aynı zamanda istemleri, belleği, becerileri, araçları ve orkestrasyon mantığını da içeren tüm aracı yığınının ortak evrimini desteklemelidir.
Reef, hem modelin hem de donanımın güncellenmesini destekler.
Donanım tarafında Reef, bir "eğitim arka ucu" olarak Cordis'i kullanır. Bir donanım evrim tarifi tipik olarak aracı yörüngelerini ve geri bildirimlerini analiz eder, ardından donanımda düzenlemeler önerir. Bu süreç tamamen Reef içinde gerçekleşir ve geliştirilen her donanım sürümü, kullanıcıya yüklenebilir bir güncelleme olarak sunulur (Reef'in localhost:8900'de sunulduğu varsayılarak):
1curl -fsS -H "Authorization: Bearer $REEF_TOKEN" \2 'http://localhost:8900/reef/harness/install?adapter=pi' | bash
Yukarıdaki komut, Reef ile sarılmış bir Pi donanımını, tipik bir kodlama aracısına benzer şekilde kurar. Donanım, Reef'in durum bilgisi olan çıkarım uç noktasını kullanacak şekilde yapılandırılmıştır, böylece çıkarım trafiği Reef üzerinden akar. Kullanıcı çalışırken Cordis, yapılandırılmış donanım evrim tarifini izleyerek donanımı geliştirir ve yeni sürümler Reef aracılığıyla kullanıma sunulur. Kullanıcı donanımı bir dahaki açışında şunları görebilir:

Model tarafında, öğrenme tarifleri model ağırlıklarını güncellemek için Reef kayıtlarını tüketir. Eğitim, dağıtılmış bir eğitim arka ucu kullanılarak canlı sunumla eşzamansız olarak çalışır (şu anda Slime'dan uyarlanmıştır) ve kontrol noktaları veya LoRA bağdaştırıcıları gibi aday ağırlık güncellemeleri üretir.
Bir aday değerlendirmeyi geçip dağıtım için onaylandığında, Reef bunu senaryonun model yapıtının yeni bir sürümü olarak yayınlar ve NCCL tabanlı ağırlık senkronizasyonu kullanarak sunum motorunu hizmeti yeniden başlatmadan sıcak günceller.
Güncellemelere sahip olun — geliştirilen sürümler değerlendirilir ve sürümlenir
Sürekli gelişen bir aracı, özellikle evrimin performans iyileştirmesi getirmesi garanti edilmediğinden, hizmet kalitesinde düşüşe maruz kalabilir. Bu nedenle, geliştirilen her aday yayınlanmadan önce değerlendirilmelidir. Reef, geliştirilen bir adayın bir senaryoya hizmet eden yapıtın yerini almasına izin verilip verilmeyeceğini kontrol eder. Aday reddedilirse, sunum değişmeden kalır. Aksi takdirde Reef, bunu denetlenebilir yeni bir sürüm olarak yayınlar.
Reef'in geliştirebileceği her şey (bir model kontrol noktası, LoRA bağdaştırıcısı, donanım ağacı veya yönlendirme politikası gibi), bir sürüm denetleyicisi tarafından yönetilen bir yapıt olarak temsil edilir. Reef, özellikle model ağırlıkları gibi büyük disk alanı kaplayan yapıtları yönetmek için Git LFS'yi benimser. Yayın yolu şudur:

Her senaryonun, yalnızca ekleme yapılabilen bir yayın zinciri vardır. Reef, karşılaştır ve değiştir yöntemini kullanarak senaryonun yayın başını ilerletir, böylece eski bir yayıncı daha yeni bir sürümün üzerine yazamaz. Yayın hattı, Reef'in sürekli sürüm değişikliklerini ve yayın süreçlerini verimli bir şekilde izlemesine olanak tanır.
4. Reef'te sürekli kendini geliştirme yöntemleri
Yukarıdaki altyapı, sürekli kendini geliştirme için ortak soyutlamalar sağlar. Bir aracının nasıl iyileştiğine dair gerçek mantık, modüler öğrenme tarifleri aracılığıyla uygulanır.
Test zamanında üretilen sinyalleri daha iyi aracılara dönüştürmek için giderek büyüyen bir yöntem koleksiyonu görüyoruz: çevrimiçi pekiştirmeli öğrenme, test zamanı eğitimi, beceri evrimi, donanım evrimi, kendi kendine oyun ve daha fazlası. Farklı isimlerine ve mekanizmalarına rağmen, aynı temel kalıbı paylaşırlar: test zamanında üretilen sinyaller, bir sonraki etkileşimi üreten sisteme yapılan güncellemelere dönüştürülür.
Bu tarifler temel olarak üç boyutta farklılık gösterir:
Öğrenme sinyali: İyileştirmeyi hangi sinyal biçimi yönlendirir ve nereden gelir?
Deneyim edinimi: Öğrenme deneyimi nasıl oluşturulur? Aracı tarafından proaktif olarak mı aranır, yoksa harici bir görev veya etkileşimden reaktif olarak mı oluşturulur?
Gelişen hedef: Gerçekte ne değişir: model, donanım veya her ikisi?

Reef'te halihazırda desteklenen veya yakında eklenecek tarifler
Reef, bu yöntemlerin büyük ölçüde aynı altyapı üzerinde farklı öğrenme tarifleri aracılığıyla ifade edilebilmesi için tasarlanmıştır. Bir tarifi kullanmak basittir: bir tane seçin ve Reef hizmetini başlatırken yapılandırın.
1# serve.yaml2reef:3 recipe: recipes.sao.recipe:SAORecipe # Bir evrim tarifi ekleyin4 batch_size: 1 # Tarife özel yapılandırma5 max_staleness: 18
Ardından Reef'i yapılandırmayla başlatın:
1reef serve -c recipes/sao/examples/sao/serve.yaml
Aşağıda, çok farklı evrim stratejileri izleyen ancak her ikisi de Reef'te uygulanabilen iki örneği, OpenClaw-RL ve TTT-Discover'ı gösteriyoruz.

GIF
Görsel, Reef'te bir OpenClaw-RL entegrasyonunu göstermektedir. Kullanıcı, modeli Reef tarafından kullanıcıyı kesintiye uğratmadan eşzamansız olarak sürekli geliştirilen bir aracıyla etkileşime girer. Daha fazla tur biriktikçe, aracı kullanıcının tercihini doğru bir şekilde yorumlamayı kademeli olarak öğrenir ve tatmin edici bir cevap verir.

GIF
Görsel, TTT'nin bir Paketleme 32 çözümünü yinelemeli olarak nasıl iyileştirdiğini göstermektedir. Optimizasyon ilerledikçe, giderek daha etkili çözümler keşfedilir ve saklanır, bu da giderek daha yüksek paketleme puanlarına yol açar.
5. Sonuç
Reef, sürekli kendini geliştirme gibi geniş bir fikri somut bir sistem sorununa dönüştürme girişimimizdir. Reef'i açık kaynak haline getirerek, bu sorunu incelemeyi kolaylaştırmayı ve topluluğa yalnızca hizmet etmekle kalmayıp sürekli öğrenen ve deneyimden gelişen aracılar oluşturmak için pratik bir temel sağlamayı umuyoruz.
Sizi Reef'i denemeye, kendi öğrenme tariflerinizi oluşturmaya ve aracılarınızla entegre etmeye davet ediyoruz. Kodu, belgeleri ve örnek tarifleri https://github.com/Human-Agent-Society/reef adresinde keşfedin. Reef'i faydalı bulursanız, depoya bir yıldız vermekten memnuniyet duyarız. Bizimle birlikte oluşturmak veya sürekli kendini geliştirme hakkında daha geniş bir şekilde tartışmak isterseniz, Discord sunucumuza katılmanızı memnuniyetle karşılıyoruz: https://discord.gg/5y8e5f937k.
- Sürekli kendini geliştirme kavramını RSI'dan daha geniş ve pratik bir çerçeve olarak kullanıyoruz. Yapay zekanın bir sonraki sürümünü üreten sistemi oluşturmaya ve geliştirmeye katıldığı, RSI ile sıklıkla ilişkilendirilen tamamen kapalı döngüyü gerektirmeden, deneyimden tekrar tekrar gelişen sistemleri kapsar. Reef bu daha geniş sorun için tasarlanmıştır ve bunun üzerinde daha yinelemeli kendini geliştirme biçimlerinin ortaya çıkmasına yer bırakır.
Büyüyen Katkıda Bulunanlar Listesi (alfabetik sırayla): Chai Wenhao (@wenhaocha1), Ding Shuangrui (@ShuangruiDing), He Hao, He Haoze, Jiang Chonhe (@JiangChonghe), Jiang Nan (@nanjiangwill), Jiang Xuan, Li Xiaochen (@jacobli99), Liang Paul (@pliang279), Liu Bo (@Benjamin_eecs), Long Boyuan, Mang Qiuyang (@MangQiuyang), Qi Zhenting (@ZhentingQi), Qu Ao (@ao_qu18465), Qu Mingruo, Wang Zhaokai, Yan Xuezhi, Yu Hanfei (@yhfchitanda), Yu Haofei (@haofeiyu44), Yu Simon (@simon_ycl), Zheng Han (@hanzheng_7), Zhou Kaichen (@alex_kai2020), Zhou Zijian (@BobbyZhouZijian), Zhu Jiacheng (@JiachengZhu_ML), Zhuang Dingyi





