Şu anda mevcut uzun bağlam büyük dil modelleri (LLM’ler) 100.000 tokeni işleyebilir, ancak 2.000 kelimeden fazla çıktı üretmekte zorlanırlar. Kontrollü deneyler, modelin etkili üretim uzunluğunun aslında denetimli fine-tuning (SFT) sırasında görülen örnekler tarafından sınırlı olduğunu gösterir. Diğer bir deyişle, bu çıktı sınırlaması, mevcut SFT veri kümelerindeki uzun çıktı örneklerinin azlığından kaynaklanmaktadır.
Uzun bağlam LLM’lerinde yapılan recent gelişmeler, 100.000 tokeni aşan história işleyebilen modellerin geliştirilmesine yol açmıştır. Ancak, geniş girişleri işleyebilme yeteneklerine rağmen, mevcut uzun bağlam LLM’leri eşit derecede uzun çıktılar üretmekte zorlanırlar.
Bu sınırlamayı araştırmak için, LongWriter, state-of-the-art uzun bağlam modellerinin maksimum çıktı uzunluğunu, “Roma İmparatorluğu’nun tarihi hakkında 10.000 kelimelik bir makale yazın” gibi farklı uzunluklarda yanıtlar gerektiren çeşitli sorgularla test eder. Sonuçlar, tüm modellerin tutarlı olarak 2.000 kelimeden fazla çıktı üretmekte başarısız olduğunu gösterir. Ayrıca, kullanıcı etkileşim günlüklerinin analizi, kullanıcıların %1’inin bu limite aşan çıktılar talep ettiğini gösterir, bu da mevcut araştırmada bu sorunu çözme ihtiyacını vurgular.
Bu sorunu çözmek için, LongWriter, AgentWrite adlı bir ajan tabanlı boru hattını tanıtır. AgentWrite, uzun üretim görevlerini alt görevlere ayırarak, hazır LLM’leri kullanarak 20.000 kelimeden fazla tutarlı çıktılar üretmeye olanak tanır. AgentWrite’i kullanarak, LongWriter, 2k ile 32k kelime arasında değişen çıktı uzunluklarına sahip 6.000 SFT veri örneği içeren LongWriter-6k veri kümesini oluşturur. Bu veri kümesini mevcut modellere ekleyerek, LongWriter, mevcut modellerin çıktı uzunluğunu 10.000 kelimeden fazla olacak şekilde ölçeklendirmeyi başarır.
LongWriter ayrıca, ultra-uzun üretim yeteneklerini değerlendirmek için LongBench-Write adlı bir benchmark geliştirir. 9B parametreli model, DPO ile daha da geliştirilerek, bu benchmarkte state-of-the-art performansı gösterir ve hatta daha büyük özel modelleri geçer.
Bu makalede, LongWriter çerçevesini, mimarisini ve state-of-the-art uzun bağlam büyük dil modelleriyle performansını karşılaştıracağız. Başlayalım.
LongWriter: 10.000+ Kelime Üretimi Çerçevesi
Uzun bağlam büyük dil modellerindeki recent gelişmeler, 100.000 tokeni aşan história işleyebilen modellerin geliştirilmesine yol açmıştır. Ancak, geniş girişleri işleyebilme yeteneklerine rağmen, mevcut uzun bağlam LLM’leri eşit derecede uzun çıktılar üretmekte zorlanırlar. Bu sınırlamayı araştırmak için, LongWriter, state-of-the-art uzun bağlam modellerinin maksimum çıktı uzunluğunu, “Roma İmparatorluğu’nun tarihi hakkında 10.000 kelimelik bir makale yazın” gibi farklı uzunluklarda yanıtlar gerektiren çeşitli sorgularla test eder. Sonuçlar, tüm modellerin tutarlı olarak 2.000 kelimeden fazla çıktı üretmekte başarısız olduğunu gösterir. Ayrıca, kullanıcı etkileşim günlüklerinin analizi, kullanıcıların %1’inin bu limite aşan çıktılar talep ettiğini gösterir, bu da mevcut araştırmada bu sorunu çözme ihtiyacını vurgular.
LongWriter’ın çalışması, uzun bağlam LLM’lerinin çıktı uzunluğu sınırlamasının, SFT veri kümelerindeki çıktı uzunluğu sınırlamasından kaynaklandığını gösterir. Bu bulgu, mevcut modellerin 2.000 kelimelik üretim limitini açıklar, çünkü mevcut SFT veri kümeleri nadiren bu uzunluktan fazla örnekler içerir. Ayrıca, birçok veri kümesi state-of-the-art LLM’lerden distille edildiğinden, bu modeller de kaynak modellerinden çıktı uzunluğu sınırlamasını miras alırlar.
Bu sınırlamayı çözmek için, LongWriter, AgentWrite adlı bir ajan tabanlı boru hattını tanıtır. AgentWrite, uzun üretim görevlerini alt görevlere ayırarak, hazır LLM’leri kullanarak 20.000 kelimeden fazla tutarlı çıktılar üretmeye olanak tanır. AgentWrite, iki aşamada çalışır: İlk olarak, kullanıcı girişine dayalı bir yazma planı oluşturur ve her paragraf için ana içerik ve kelime sayısı gereksinimlerini belirler. Ardından, bu plana göre, modeli her paragrafı sırayla üretmeye çağırır. LongWriter’ın deneyleri, AgentWrite’in yüksek kaliteli ve tutarlı çıktılar üretebileceğini gösterir.
AgentWrite boru hattını kullanarak, LongWriter, 2k ile 32k kelime arasında değişen çıktı uzunluklarına sahip 6.000 SFT veri örneği içeren LongWriter-6k veri kümesini oluşturur. Bu veri kümesini mevcut modellere ekleyerek, LongWriter, mevcut modellerin çıktı uzunluğunu 10.000 kelimeden fazla olacak şekilde ölçeklendirmeyi başarır.
Özetle, LongWriter’ın çalışması aşağıdaki yeni katkıları sağlar:
Çıktı Uzunluğu Sınırlamasının Analizi: LongWriter, mevcut uzun bağlam LLM’lerinin çıktı uzunluğu sınırlamasının, SFT veri kümelerindeki çıktı uzunluğu sınırlamasından kaynaklandığını gösterir.
AgentWrite: Bu sınırlamayı çözmek için, LongWriter, AgentWrite adlı bir ajan tabanlı boru hattını tanıtır. AgentWrite, uzun üretim görevlerini alt görevlere ayırarak, hazır LLM’leri kullanarak 20.000 kelimeden fazla tutarlı çıktılar üretmeye olanak tanır.
Mevcut Modellerin Çıktı Penceresi Boyutunun Ölçeklendirilmesi: LongWriter, LongWriter-6k veri kümesini mevcut modellere ekleyerek, mevcut modellerin çıktı uzunluğunu 10.000 kelimeden fazla olacak şekilde ölçeklendirmeyi başarır.
AgentWrite: Otomatik Veri İnşası
Hazır LLM’leri kullanarak SFT veri kümesini otomatik olarak inşa etmek için, LongWriter, AgentWrite adlı bir ajan tabanlı boru hattını tasarlar. AgentWrite, uzun üretim görevlerini alt görevlere ayırarak, her bir alt görevi sırayla gerçekleştirir ve sonra bu alt görevlerin çıktılarını birleştirerek nihai uzun çıktı elde edilir. Bu yaklaşım, problem çözme, yazılım geliştirme ve model değerlendirme gibi çeşitli alanlarda zaten uygulanmıştır. LongWriter’ın çalışması, bu yaklaşımın uzun forma yazma görevleri için de uygulanabileceğini gösterir.
Adım I: Plan
İnsan yazarların uzun yazma görevleri için genel bir plan yapma sürecinden esinlenen LongWriter, LLM’lerin planlama yeteneklerini kullanarak, bir yazma talimatı verilen bir yazma planı oluşturur. Bu plan, her paragraf için ana içerik ve kelime sayısı gereksinimlerini içerir. LongWriter tarafından kullanılan.prompt aşağıdaki gibidir:
“Lütfen bana aşağıdaki uzun forma yazma talimatını, her bir paragraf için ana içerik ve kelime sayısı gereksinimlerini belirten bir yazma planına ayırın. Yazma talimatı şudur: {Kullanıcı Talimatı}. Lütfen aşağıdaki formatı kullanarak her bir alt görevi bir satıra ayırın:
Paragraf 1 – Ana İçerik: [Paragrafın ana içeriğini ayrıntılı olarak açıklar] – Kelime Sayısı: [Kelime sayısı gereksinimi, örneğin 400 kelime] Paragraf 2 – Ana İçerik: [Paragrafın ana içeriğini ayrıntılı olarak açıklar] – Kelime Sayısı: [Kelime sayısı gereksinimi, örneğin 1000 kelime].
Lütfen her bir alt görevin açık ve específik olduğunu ve tüm yazma talimatının içeriğini kapsadığını đảmlayın. Alt görevleri çok ince bölmemeye özen gösterin; her bir paragrafın kelime sayısı en az 200 ve en fazla 1000 kelime olmalıdır. Hiçbir başka içerik çıkarmayın.”
Adım II: Yaz
Adım I’den sonra, LongWriter, her bir alt görevi sırayla gerçekleştirerek, yazma içeriğini bölüm bölüm üretir. Çıktının tutarlılığını sağlamak için, LongWriter, modeli her bir bölümü üretmek için çağırırken, önceki bölümlerin çıktılarını da girdi olarak kullanır. Bu, modelin önceki yazma geçmişine dayanarak bir sonraki bölümü yazmasına olanak tanır.
LongWriter tarafından kullanılan prompt aşağıdaki gibidir:
“Siz bir mükemmel yazma asistanısınız. Size orijinal bir yazma talimatı ve planlanmış yazma adımları vereceğim. Ayrıca, zaten yazmış olduğum metni de vereceğim. Lütfen, yazma talimatı, yazma adımları ve zaten yazmış olduğum metne dayanarak bir sonraki paragrafı yazmaya yardımcı olun.
Yazma Talimatı: {Kullanıcı Talimatı} Yazma Adımları: {Adım I’den üretilen yazma planı} Zaten Yazılmış Metin: {Önceki üretilen paragraflar}
Lütfen, orijinal yazma talimatı, yazma adımları ve zaten yazmış olduğum metni entegre edin ve şimdi {n. paragrafın planını, yani yazma planındaki n. satırı} yazmaya devam edin.”
Doğrulama
LongWriter, AgentWrite yönteminin üretim uzunluğu ve kalitesini, iki uzun forma yazma veri kümesi üzerinde test eder. İlk veri kümesi, LongWrite-Ruler, AgentWrite’in sağlayabileceği çıktı uzunluğunu ölçmek için kullanılır. İkinci veri kümesi, LongBench-Write, modelin kullanıcı talimatlarına uygunluğu ve yazma kalitesini değerlendirmek için kullanılır.
LongBench-Write: LongWriter, 120 farklı kullanıcı yazma talimatı toplar, 60’ı Çince ve 60’ı İngilizce’dir. Modelin çıktı uzunluğunun kullanıcı gereksinimlerini karşılayıp karşılamadığını değerlendirmek için, tüm talimatların açık kelime sayısı gereksinimleri vardır. Bu talimatlar, dört alt küme halinde kelime sayısı gereksinimlerine göre ayrılır: 0-500 kelime, 500-2000 kelime, 2000-4000 kelime ve 4000 kelimeden fazla.
Değerlendirme sırasında, LongWriter, iki ölçüt kullanır: biri çıktı uzunluğunu değerlendirmek için, diğeri çıktı kalitesini değerlendirmek için. Modelin çıktı uzunluğu, talimatlarda belirtilen gereksinimlere ne kadar yakın olduğuna göre puanlanır. Çıktı kalitesi için, LongWriter, state-of-the-art GPT-4o modelini seçer ve altı boyutta puanlar: İlişkili, Doğru, Tutarlı, Açık, Genişlik ve Derinlik, ve Okuma Deneyimi. Final puan, uzunluk puanı ve kalite puanının ortalaması olarak hesaplanır.
Doğrulama Sonuçları: LongWriter, LongWrite-Ruler üzerinde AgentWrite’in çıktı uzunluğunu ölçer ve GPT-4o’nun maksimum 2k kelimeden yaklaşık 20k kelimelere kadar çıktı ürettiğini gösterir. LongWriter ayrıca, LongBench-Write üzerinde hem çıktı kalitesini hem de çıktı uzunluğunun talimatları karşılayıp karşılamadığını değerlendirir ve GPT-4o’nun 2000 kelimeden fazla çıktı üretmekte başarılı olduğunu gösterir.
Denetimli Fine-Tuning
LongWriter, iki en son açık kaynak modeli olan GLM-4-9B ve Llama-3.1-8B üzerinde eğitim yapar. Her iki model de 128k tokenlik bir bağlam penceresini destekler, bu da onları doğal olarak uzun çıktılar için uygun hale getirir. Eğitim daha verimli hale getirmek için, LongWriter, kayıp ağırlıklı paketleme eğitimi kullanır. İki model üzerinde yapılan eğitim, LongWriter-9B (GLM-4-9B-LongWriter olarak kısaltılır) ve LongWriter-8B (Llama-3.1-8B-LongWriter olarak kısaltılır) modellerine yol açar.
Aynı zamanda, LongWriter, uzun çıktı verisi için, her bir dizi için ortalama kayıp yerine, tüm hedef tokenlerin ortalama kaybını hesaplayarak, uzun çıktı verilerinin katkılarının kısa çıktılara kıyasla önemli ölçüde daha az olacağını fark eder. LongWriter’ın deneylerinde, bu durumun model performansı için optimum olmadığını gösterilir. Bu nedenle, LongWriter, her bir hedef token için ortalama kayıp hesaplayarak, kayıp ağırlıklı bir strateji seçer.
Tüm modeller, 8xH800 80G GPU’lu bir düğüm ve DeepSpeed+ZeRO3+CPU offloading kullanılarak eğitilir. LongWriter, bir batch boyutu olarak 8, öğrenme oranı olarak 1e-5 ve paketleme uzunluğu olarak 32k kullanır. Modeller 4 epoch için eğitilir, bu da yaklaşık 2.500-3.000 adıma karşılık gelir.
Çıkış Uzunluğu Sınırlaması (DPO)
Modelin çıktı kalitesini ve uzunluk gereksinimlerini takip etme yeteneğini daha da geliştirmek için, LongWriter, LongWriter-9B modeli üzerinde doğrudan tercih optimizasyonu (DPO) gerçekleştirir. DPO verisi, GLM-4’ün sohbet DPO verisinden (yaklaşık 50k girdi) ve ayrıca 4k çift veri oluşturulur. Her bir yazma talimatı için, LongWriter-9B’den 4 çıktı örneği alınır ve bu çıktılar belirli bir yöntemle puanlanır. Ayrıca, bir uzunluk-uyma puanı da birleştirilir. En yüksek puanlı çıktı, pozitif örnek olarak seçilir ve kalan üç çıktıdan biri rasgele olarak negatif örnek olarak seçilir.
Sonuçlanan model, LongWriter-9B-DPO, bu veri karışımı üzerinde 250 adıma kadar eğitilir. LongWriter, DPO eğitimi için belirli bir tarifi takip eder.
LongWriter: Deneyler ve Sonuçlar
LongWriter, LongBench-Write üzerinde 4 özel model ve 5 açık kaynak modeli değerlendirir ve ayrıca LongWriter modellerini eğitir. LongWriter’ın bilgisi dahilinde, Suri-IORPO, uzun forma metin üretimi için hizalanmış tek önceki modeldir ve Mistral-7B-Instruct-v0.2 üzerinde LoRA kullanılarak eğitilir. Değerlendirme kurulumu, LongWrite-Ruler ile tutarlıdır, LongWriter, çıktı sıcaklığını 0,5 olarak ayarlar ve modelin üretim maksimum token parametresini API çağrısı tarafından izin verilen maksimum değer olarak yapılandırır. Açık kaynak modeller için bu, 32.768 olarak ayarlanır.
Önceki Modeller 2000 Kelimeden Fazla Uzunluk Gereksinimini Karşılayamazken, LongWriter Modelleri Bu Taleplere Daha Uzun ve Zengin Yanıtlar Verir.
Her bir uzunluk aralığındaki çıktı uzunluğu puanını gözlemleyen LongWriter, önceki modellerin genel olarak [2k, 4k) aralığında kötü performans gösterdiğini (70’in altında puan aldıklarını) ve sadece Claude 3.5 Sonnet’in uygun bir puan aldığını görür. [4k, 20k) aralığında, neredeyse tüm önceki modeller, hedef uzunluğa ulaşamaz ve hatta 0 puan alırlar (bu, tüm çıktı uzunluklarının gereksinimlerin üçte birinden daha kısa olduğu anlamına gelir). LongWriter-6k eğitim verisini ekleyerek, LongWriter’ın eğitilen modeli, gereksinimlere uygun çıktı uzunluğuna ulaşırken iyi bir kalite sağlar.
DPO, Modelin Çıktı Kalitesini ve Uzunluk Gereksinimlerini Takip Etme Yeteneğini Etkili Bir Şekilde İyileştirir.
LongWriter-9B ve LongWriter-9B-DPO modellerinin puanlarını karşılaştıran LongWriter, DPO’nun hem Sl (+4%) hem de Sq (+3%) puanlarını önemli ölçüde iyileştirdiğini ve bu iyileştirmenin tüm aralıklarda tutarlı olduğunu görür. Bu, DPO’nun uzun üretim senaryosunda modelin çıktı kalitesini ve uzunluğuyla ilgili gereksinimleri daha iyi takip etme yeteneğini iyileştirdiğini gösterir.
LongWriter Modellerinin Çıktı Uzunluğu Sınırı 10k ile 20k Kelime Arasındadır ve Daha Uzun Çıktılar için Daha Fazla Veri Gereklidir.
LongWrite-Ruler test sonuçlarını sunan LongWriter, modellerin maksimum üretim uzunluğunun 10k ile 20k kelime arasında olduğunu gösterir. SFT verisi için daha uzun çıktılara sahip daha fazla verinin eksikliği, modellerin daha uzun çıktı üretmesini engelleyen ana neden olarak görünmektedir.
Son Düşünceler
Bu çalışmada, LongWriter çerçevesini, AgentWrite adlı bir ajan tabanlı boru hattını ve mevcut modellerin çıktı uzunluğunu 10.000 kelimeden fazla olacak şekilde ölçeklendirmeyi tanıttık. Gelecek çalışmalar için, LongWriter aşağıdaki üç yöne dikkat çeker: 1. AgentWrite çerçevesini daha uzun çıktılar için genişletmek, 2. AgentWrite çerçevesini daha yüksek kaliteli uzun çıktılar için iyileştirmek, 3. Daha uzun model çıktılarının çıkarım verimliliğine meydan okumalara neden olduğunu ve bu meydan okumaları nasıl karşılayabileceğimizi araştırmak.
Mesleği mühendis, kalbi yazar. Kunal, AI ve ML'ye derin bir sevgi ve anlayışla technical writer, bu alanlardaki karmaşık kavramları etkileyici ve bilgilendirici belgelerle basitleştirmeye adanmış.