Memora: Uzun Vadeli Görevler İçin Ölçeklenebilir Bellek Sistemi
(github.com/microsoft)Özet genel bakış
-
Amaç
- AI ajanlarının konuşma ve belgelerden gerekli bilgileri otomatik olarak çıkarıp uzun vadeli olarak saklamasını ve geri getirmesini destekleyen bir bellek çerçevesi
-
Temel tasarım
- Tam özgün metin olan
Memory valueaynen korunur, aramada isePrimary abstractionveCue anchorskullanılır
- Tam özgün metin olan
-
Başlıca farklar
- Tüm özgün metni doğrudan gömen yaygın RAG yaklaşımına kıyasla bilgi kaybını ve arama belirsizliğini azaltmayı hedefleyen bir yapı
-
Başlıca özellikler
- Otomatik bellek çıkarımı, tekilleştirme, birleştirme ve güncelleme, anlamsal arama, anahtar kelime araması, LLM tabanlı çok aşamalı arama desteği
-
Hedef kullanım alanları
- Uzun süreli etkileşimli yapay zeka, çok ajanlı sistemler, kişiselleştirilmiş hizmetler, belge tabanlı bilgi yönetimi
-
Mevcut durum
- Python tabanlı, MIT lisanslı açık bir proje; benchmark ve deneysel özellikler içeriyor ancak ilk duyuru aşamasına yakın
Giriş
Ajan bellek yönetiminin karmaşıklığını çözmek
-
Mevcut AI ajanı geliştirmede geliştiricilerin aşağıdaki sorunları doğrudan ele alması gerekir
- Hangi bilginin bellek olarak saklanacağına karar vermek
- Saklanan bilgilerin ne zaman güncelleneceğini veya silineceğini belirlemek
- Kullanıcı sorusuyla ilgili anıları geri getirmek
- Yinelenen veya çelişen anıları yönetmek
-
Memora, bu bellek yaşam döngüsünü çerçevenin içinde ele almayı amaçlıyor
-
Geliştiriciler, düşük seviyeli saklama ve arama mantığından çok ajanın görev yeteneklerine ve yanıt üretimine odaklanabiliyor
Mevcut bellek yapılarının sınırlamaları
-
Tipik RAG sistemleri
- Belgeyi veya konuşma metnini belirli boyutlarda parçalara ayırır
- Her parçayı gömerek bir vektör veritabanında saklar
- Soruyla anlamsal olarak yakın parçaları arar
-
Bu yöntem uygulaması kolay olsa da aşağıdaki sorunlara yol açabilir
- Uzun bağlam birden fazla parçaya bölünebilir
- Benzer ifadelerdeki bilgiler yinelenerek saklanabilir
- Basit anlamsal benzerlik, gerçek soru niyetiyle örtüşmeyebilir
- Yalnızca sıkıştırılmış özetler saklanırsa ayrıntılar kaybolabilir
-
Grafik tabanlı bilgi tabanları ilişki gösteriminde avantajlı olsa da şema ve ilişki yapısını sürekli yönetme yükü taşır
Ana bölüm
Özgün metin ile arama yapısını ayırmak
- Memora’daki her bellek üç bileşenden oluşur
Memory value
- Fiilen saklanan tam bilgi
- Özgün metin ve ayrıntılar sıkıştırılmadan korunur
- Arama indeksine doğrudan dahil edilmez
- Bilgi kaybı olmadan özgün bağlamı koruma rolünü üstlenir
Primary abstraction
- İlgili belleğin ne hakkında olduğunu gösteren temsili özet
- Her bellek için bir tane üretilir
- Arama, güncelleme, birleştirme ve tekilleştirme için ölçüt olarak kullanılır
- Belleğin kimliğini gösteren standart birim olarak işlev görür
Cue anchors
- Tek bir belleğe erişmeyi sağlayan birden çok anlamsal ipucu
- Kişi, nesne, olay, temel özellik gibi öğelerin birleşiminden oluşur
- Tek bir anıya birden fazla ipucu bağlanabilir
- Birden çok anı aynı ipucunu paylaşan çoktan çoğa bir yapı oluşturur
Arama hedeflerinin seçici olarak indekslenmesi
-
Memora, tüm özgün metni doğrudan indekslemez
-
Gerçek aramada yalnızca şu bilgiler kullanılır
- Primary abstraction
- Cue anchors
-
Arama tamamlandığında bağlı özgün
Memory valuedöndürülür -
Bu yapının amacı
- Arama ifadesi ile fiili saklanan bilgiyi ayırmak
- Arama indeksini sade tutmak
- Özgün metnin ayrıntılarını olduğu gibi korumak
- Özgün metin gömmesinden kaynaklanabilecek anlamsal gürültüyü azaltmak
RAG ile grafik yapı arasında bir orta form
-
Genel RAG’e göre daha yapılandırılmış arama ipuçları sunar
-
Grafik veritabanlarında olduğu gibi tüm ilişkileri katı bir şemayla tanımlamaz
-
Belleğin üzerine bir soyutlama katmanı ekleyerek esneklik ve yapısallığı aynı anda elde etmeye çalışan bir yaklaşım
-
Temel yönelim
- Özgün metin serbest biçimde saklanır
- Arama ve bağlantı için yapılandırılmış gösterimler kullanılır
- Saklama yapısı ile arama yapısı birbirinden bağımsız yönetilir
Bellek oluşturmadan yanıta kadar işleme akışı
1. Bellek toplama
-
Ajan konuşmayı veya belgeyi işler
-
İçerikten aşağıdaki bilgiler otomatik olarak çıkarılır
- Olgusal bilgi
- Olaylar ve deneyimler
- Prosedürler ve çalışma yöntemleri
-
Uzun konuşmalar konu bazlı bölümlere ayrılır
-
Temel bilgiler yapılandırılmış bellek girdilerine dönüştürülür
2. Akıllı saklama
-
Varsayılan depolama olarak ChromaDB vektör veritabanı kullanılır
-
Anlamsal embedding ile bellekler saklanır
-
Yeni bilgi girildiğinde mevcut belleklerle karşılaştırılır
-
Benzer veya yinelenen bilgiler için aşağıdaki işlemler yapılır
- Tekilleştirme
- Mevcut anıyla birleştirme
- Eski bilgiyi güncelleme
-
İsteğe bağlı olarak yapılandırılmış aramayı desteklemek için Cue index oluşturulabilir
3. Uyarlanabilir arama
- Soru tipine ve ayarlara göre birden fazla arama stratejisi sunulur
Semantic arama
- Soru ile bellek gösterimi arasındaki vektör benzerliği hesaplanır
- Uygulaması basittir ve genel sorulara uygulanabilir
- İfade farklı olsa bile anlamsal olarak benzer bilgileri bulabilir
Prompted arama
- LLM arama sürecini adım adım yürütür
- İlk arama sonuçlarına dayanarak arama terimi ve arama kapsamı yinelemeli olarak ayarlanır
- Karmaşık sorular veya birden çok anının birleştirilmesini gerektiren sorular için uygundur
- Ek LLM çağrıları gerektirdiğinden maliyet ve yanıt süresi artabilir
Hybrid arama
- Vektör tabanlı anlamsal arama ile BM25 ve anahtar kelime aramasını birleştirir
- Anlamsal benzerlik ile tam sözcük eşleşmesini birlikte kullanır
- Özel isimler, ürün adları, kodlar, tarihler gibi öğelerin aramada kaçırılmasını azaltmada avantajlıdır
GRPO arama
- Pekiştirmeli öğrenmeyle eğitilmiş bir arama politikası kullanır
- Soru için gerekli belleğin nasıl seçileceğini bizzat öğrenir
- LLM tabanlı yinelemeli aramayı yerel ince ayarlı bir modelle değiştirmeyi hedefler
- Şu anda deneysel özellik olarak sınıflandırılıyor
4. Yanıt üretimi
- Geri getirilen bellekler belirli bir biçimde düzenlenir
- Bu içerik LLM prompt’una eklenir
- LLM, soruyu ve geri getirilen anıları birlikte kullanarak yanıt üretir
- Yanıtın saklanan belleklere dayanması teşvik edilir
Bellek kalitesini koruyan yönetim işlevleri
-
Sadece durmadan bellek ekleyen düz depolardan farklı olarak mevcut belleklerin durumunu yönetir
-
Başlıca yönetim işlevleri
- Yinelenen anıları kaldırma
- Benzer anıları birleştirme
- Değişen olguları güncelleme
- Bellek yapısını yeniden düzenleme
-
Primary abstraction, bellek güncelleme ve birleştirme için ölçüt olarak kullanılır
-
Zamanla belleklerin sınırsız şekilde yinelenerek birikmesi sorununu azaltmayı hedefler
Farklı bellek türleri desteği
- Bellek değeri ve soyutlama biçimi farklı kurgulanarak çeşitli anı türleri ifade edilebilir
Olgusal bellek
- Kişi, yer, özellik, ayar gibi görece istikrarlı bilgiler
- Örnek: belirli bir kullanıcının çalışma yeri, tercih ettiği araçlar, projenin teknoloji yığını
Epizodik bellek
- Belirli bir zamanda yaşanan olay veya konuşma
- Örnek: geçmiş bir toplantıda alınan kararlar, belirli bir hatanın çözülme süreci
Prosedürel bellek
- Çalışma yöntemi veya tekrarlanabilir prosedürler
- Örnek: sunucu dağıtım prosedürü, hata kontrol sırası, belge oluşturma kuralları
Çok ajanlı bellek paylaşımı ve izolasyonu
-
Aynı ortamda çalışan birden fazla ajan ortak bir bellek alanı kullanabilir
-
Bir ajanın sakladığı bilgi başka bir ajan tarafından yeniden kullanılabilir
-
Bellek kapsamı ajan veya rol bazında sınırlandırılabilir
-
Beklenen etkiler
- Ajanlar arasında bilgi tekrarını azaltma
- Görev devrini iyileştirme
- Ortak proje bilgilerinde tutarlılığı koruma
-
Erişim kontrolü ve izolasyon işlevleri sayesinde seçici paylaşımı ve kişisel verilerin korunmasını destekleyen bir yapı
Depolama altyapısı ile gösterim yapısının ayrılması
-
Bellek gösterim biçimi belirli bir depoya güçlü biçimde bağımlı olmayacak şekilde tasarlanmış
-
Proje yapısında aşağıdaki veritabanı bağlantıları yer alıyor
- ChromaDB
- Redis
-
Yerel veya uzak depolama ortamlarına uygulanabilir
-
Depolama arka ucu değişse bile belleğin soyutlama ve ipucu yapısı korunabilir
Temel kullanım biçimi
- Python 3.10 veya üzeri gerekir
- GitHub deposu klonlandıktan sonra paket kurulur
MemoraClientoluşturulur ve kullanıcı ya da ajan tanımlayıcısı belirtiliradd()kullanılarak konuşma veya belge belleğe eklenirquery()kullanılarak anlamsal arama yapılıradvance_query()kullanılarak Prompted veya GRPO türünde gelişmiş arama yapılır
Ajan entegrasyon yapısı
-
Kullanıcı mesajı geldiğinde önce ilgili bellekler geri getirilir
-
Geri getirilen sonuçlar ve kullanıcı sorusu kullanılarak yanıt üretilir
-
Üretilen yanıt ile kullanıcı mesajı tek bir konuşma kaydı olarak yapılandırılır
-
Bu konuşma yeniden Memora’ya kaydedilir
-
Yinelenen süreç
- Soru alma
- İlgili anıları geri getirme
- Yanıt üretme
- Konuşmayı kaydetme
- Sonraki sorularda yeniden kullanma
Uzun vadeli bellek performansının değerlendirilmesi
LoCoMo benchmark
-
Uzun süre devam eden konuşmalarda bellek geri getirme yeteneğini değerlendirir
-
Başlıca değerlendirme türleri
- Tek aşamalı sorular
- Birden fazla bilgiyi birleştiren çok aşamalı sorular
- Zaman ilişkili sorular
- Açık uçlu sorular
-
Semantic, Prompted, Cue index gibi bileşimler denenebilir
LongMemEval benchmark
- Uzun vadeli bellek sistemlerinin çeşitli soru işleme yeteneklerini değerlendirir
- Epizodik bellek ve anlamsal arama ayarları uygulanabilir
- Gerçek uzun süreli konuşma ortamlarında bilgi koruma ve arama performansını doğrulamak için kullanılır
GRPO tabanlı arama politikası eğitimi
-
Arama prosedürünü bir pekiştirmeli öğrenme politikası olarak öğreten deneysel özellik
-
İşleme adımları
- Mevcut politikayla arama yolu üretme
- Arama sonuçlarının gerekçelilik, tekrar ve maliyet açısından değerlendirilmesi
- Grup göreli avantajının hesaplanması
- GRPO yöntemiyle arama politikasının eğitilmesi
-
Qwen 3B veya 7B ailesi modeller ile LoRA ince ayarı örnek olarak sunuluyor
-
Eğitim için GPU gerekir
-
Hedefler
- Her aramada dış LLM çağırma maliyetini azaltmak
- Belirli veri ve iş yüküne optimize edilmiş arama stratejileri kurmak
-
Sınırlamalar
- Eğitim verisi ve değerlendirme ölçütleri gerekir
- Model eğitimi ve operasyon yönetimi ek yük getirir
- Genel kullanıcıların hemen uygulaması için Semantic aramaya göre daha karmaşıktır
Başlıca avantajlar
- Özgün metindeki ayrıntıları sıkıştırmadan koruyabilir
- Arama için kullanılan gösterim ile gerçek bilginin ayrılması sayesinde bellek yapısı nettir
- Bellek tekilleştirme ve güncelleme sistematik biçimde ele alınabilir
- Anlamsal arama, anahtar kelime araması, LLM araması ve pekiştirmeli öğrenme tabanlı arama arasında seçim yapılabilir
- Olgusal, epizodik ve prosedürel bellek tek bir çerçevede yönetilebilir
- Birden fazla ajan aynı belleği paylaşabilir
- Mevcut ajan sistemlerine görece az değişiklikle entegre olmayı hedefler
- Hem yerel hem uzak depolama yapılarını destekleyebilir
Yapısal sınırlamalar ve dikkat noktaları
- Primary abstraction ve Cue anchors kalitesi arama performansını doğrudan etkiler
- Otomatik üretilen soyutlama hatalıysa özgün metin doğru olsa bile aramada gözden kaçabilir
- Özgün metni doğrudan indekslemeyen yapı, ayrıntılı ifadeler veya seyrek bilgiler için aramada dezavantajlı olabilir
- Tekilleştirme ve birleştirme sürecinde farklı olaylar yanlışlıkla tek bir anıda birleştirilebilir
- Prompted arama, birden fazla LLM çağrısı nedeniyle maliyet ve gecikmeyi artırabilir
- GRPO yaklaşımı GPU, eğitim verisi ve değerlendirme sistemi gerektirdiğinden operasyonel karmaşıklığı yüksektir
- Çok ajanlı paylaşımlı belleklerde erişim yetkileri ve bilgi izolasyonu açık biçimde tasarlanmalıdır
- Kişisel veri veya hassas konuşmalar saklanacaksa ayrıca şifreleme, silme ve saklama politikaları gerekir
- Açık depoda bir release yok ve katkıcı ile kullanım göstergeleri az; bu nedenle büyük ölçekli işletim kararlılığının yeterince doğrulandığını söylemek zor
Sonuç
Yapılandırılmış erişim katmanı ekleyen uzun vadeli bellek yaklaşımı
-
Memora, tüm özgün metni basitçe vektörleştiren yaklaşımın ötesine geçerek şu yapıyı öneriyor
- Ayrıntılar
Memory valueiçinde korunur - Temsili anlam
Primary abstractionile ifade edilir - Çeşitli arama yolları
Cue anchorsile oluşturulur
- Ayrıntılar
-
Temel değer önerisi, bilgi koruma ile arama verimliliği arasındaki dengede yatıyor
-
Basit belge aramasına kıyasla aşağıdaki ortamlarda kullanım potansiyeli daha yüksek
- Uzun süre kullanıcıyla etkileşen kişiselleştirilmiş ajanlar
- Çok sayıda geliştirme ve iş belgesini sürekli biriktiren sistemler
- Farklı rollerdeki ajanların bilgiyi paylaştığı ortamlar
- Geçmiş kararların ve çalışma prosedürlerinin yeniden kullanılması gereken projeler
Devreye almadan önce doğrulama gerekli
-
Gerçek uygulamada öncelikle şu unsurlar doğrulanmalı
- Türkçe olmayan belgelerde soyutlama ve Cue üretim kalitesi
- Mevcut RAG ile karşılaştırıldığında arama doğruluğu
- Bellek birleştirme sürecindeki hata oranı
- Uzun süreli kullanımda veri büyümesi ve arama hızı
- LLM ve embedding API maliyetleri
- Kişisel veri saklama ve erişim kontrol yöntemi
-
İlk aşamada temel belgelerin bir kısmı üzerinde küçük ölçekli bir PoC yapıp, performansı genel RAG ve hibrit arama yöntemleriyle karşılaştırmak uygun bir yaklaşım olur
Henüz yorum yok.