1 puan yazan GN⁺ 2023-08-25 | 1 yorum | WhatsApp'ta paylaş
  • Kodlama yardımcısı talebi artarken Meta, Code Llama'yı tanıttı; böylece açık model tabanlı kod üretimi, tamamlama ve hata ayıklama seçenekleri genişledi
  • Bu model, Llama 2'nin kod verileriyle ek eğitim almış bir sürümü ve hem kod hem de doğal dil istemleriyle kod görevlerini yerine getiriyor
  • 7B·13B·34B·70B boyutlarında sunuluyor; 70B model ise 29 Ocak 2024'te Code Llama ailesinin en büyük ve en yüksek performanslı modeli olarak ayrıca yayımlandı
  • Temel model, Python'a özelleşmiş model ve doğal dil talimatları için Instruct varyantı olarak ayrılıyor; seçim yapılırken gecikme, performans ve kullanım amacı dikkate alınmalı
  • Araştırma ve ticari kullanım ücretsiz, ancak lisansa ve izin verilen kullanım politikasına uyulmalı ve kod üretiminin güvenliği ayrıca değerlendirilmelidir

Code Llama'nın hedeflediği kod görevleri

  • Code Llama, metin istemleriyle kod üretebilen, kodlamaya yönelik bir büyük dil modelidir
  • Açık olarak yayımlanmış LLM'ler arasında kod görevlerinde son teknoloji performansı hedefler ve geliştirici iş akışlarını daha hızlı ve verimli hâle getirme potansiyeline sahiptir
  • Kodlama öğrenenlerin giriş bariyerini düşüren ve programcıların daha sağlam ve daha iyi dokümante edilmiş yazılımlar yazmasına yardımcı olan bir üretkenlik ve eğitim aracı olarak kullanılabilir
  • Meta, Code Llama'yı Llama 2 ile aynı topluluk lisansı ile yayımlıyor

Llama 2'nin kod verileriyle ek eğitilmesi

  • Code Llama, Llama 2'nin yalnızca koda odaklı bir veri kümesiyle daha fazla eğitilmesiyle oluşturulmuş, koda özelleşmiş bir sürümdür
  • Hem kodu hem de doğal dil istemlerini girdi olarak alıp kod ve kodla ilgili doğal dil çıktıları üretebilir
    • Örnek istem: “Fibonacci dizisini yazdıran bir fonksiyon yaz”
  • Kod tamamlama ve hata ayıklama için de kullanılabilir
  • Desteklenen diller arasında Python, C++, Java, PHP, Typescript(JavaScript), C#, Bash bulunur

Boyuta göre seçim ölçütleri ve bağlam

  • Code Llama, 7B, 13B, 34B, 70B parametre boyutlarında sunulur
  • 7B, 13B ve 34B modelleri kod ve kodla ilgili verilerden oluşan 500B token ile eğitildi, 70B model ise 1T token ile eğitildi
  • 7B ve 13B'nin temel ve Instruct modelleri, mevcut kodun ortasına kod eklemeye imkân veren fill-in-the-middle(FIM) özelliğiyle de eğitildi
    • Kod tamamlama gibi görevleri doğrudan destekleyebilir
  • Model boyutu, sunum şekline ve gecikme gereksinimlerine göre değişir
    • 7B model tek bir GPU üzerinde sunulabilir
    • 34B ve 70B modeller en iyi sonuçları ve daha güçlü kodlama desteğini sağlar
    • 7B ve 13B modeller daha hızlı olduğu için gerçek zamanlı kod tamamlama gibi düşük gecikme gerektiren işler için daha uygundur
  • Code Llama modelleri, en fazla 100,000 token bağlamda istikrarlı üretim sağlar
    • Tüm modeller 16,000 token dizileriyle eğitildi
    • En fazla 100,000 token girdide iyileşme gösterir

Temel·Python·Instruct olmak üzere üç varyant

  • Code Llama ailesi üç varyanta ayrılır
    • Code Llama: temel kod modeli
    • Code Llama - Python: Python'a özelleşmiş model
    • Code Llama - Instruct: doğal dil talimatlarını anlamaya göre ince ayarlanmış model
  • Code Llama - Python, 100B token Python kodu ile ek olarak ince ayarlandı
    • Python, kod üretiminde en çok benchmark yapılan dildir
    • Python ve PyTorch, yapay zeka topluluğunda önemli bir rol oynar
  • Code Llama - Instruct, doğal dil talimat girdileri ve beklenen çıktılarla eğitime devam edilen varyanttır
    • İnsanların bir istemden ne beklediğini daha iyi anlaması için tasarlandı
    • Doğal dilde yararlı ve güvenli yanıtlar üretmesi için ince ayarlandı
  • Kod üretiminde Code Llama kullanılırken Code Llama - Instruct varyantının kullanılması önerilir
  • Code Llama ve Code Llama - Python, doğal dil talimatlarını izlemek üzere tasarlanmadığı için genel doğal dil görevlerinde önerilmez
  • Code Llama, koda özelleşmiş görevler içindir; diğer görevler için temel model olarak uygun değildir

Code Llama 70B'nin ek olarak yayımlanması

  • 29 Ocak 2024 güncellemesiyle Code Llama 70B yayımlandı
  • 70B, Code Llama ailesinin en büyük ve en yüksek performanslı modelidir
  • Mevcut Code Llama ile aynı üç sürümde sunulur ve hepsi araştırma ile ticari kullanım için ücretsizdir
    • CodeLlama - 70B: temel kod modeli
    • CodeLlama - 70B - Python: Python'a özelleşmiş 70B model
    • Code Llama - 70B - Instruct 70B: doğal dil talimatlarını anlamaya göre ince ayarlanmış model

Benchmark'lar ve güvenlik değerlendirmesi

  • Performans değerlendirmesi iki kodlama benchmark'ı ile yapıldı
    • HumanEval: docstring tabanlı kod tamamlama yeteneğini değerlendirir
    • MBPP: açıklama tabanlı kod yazma yeteneğini değerlendirir
  • Benchmark'larda Code Llama, açık kaynak koda özelleşmiş LLM'lerden ve Llama 2'den daha iyi performans gösterdi
  • Code Llama 34B, HumanEval'de %53.7, MBPP'de %56.2 elde etti
    • Açık olarak yayımlanmış son teknoloji çözümlerle karşılaştırıldığında en üst düzeydeydi ve ChatGPT'ye benzer seviyedeydi
  • Meta, yayımlamadan önce çeşitli güvenlik önlemleri uyguladı ve red team sürecinde kötü amaçlı kod üretimi riskini nicel olarak değerlendirdi
    • Kötü amaçlı kodu açık niyetle isteyen istemler oluşturdu
    • Code Llama yanıtlarını ChatGPT'nin GPT-3.5 Turbo yanıtlarıyla karşılaştırarak puanladı
    • Sonuçlarda Code Llama daha güvenli yanıtlar verdi
  • Sorumlu yapay zeka, saldırı güvenlik mühendisliği, kötü amaçlı yazılım geliştirme ve yazılım mühendisliği alanlarındaki uzmanların yer aldığı red team ayrıntıları araştırma makalesinde bulunuyor

Açık materyaller ve sorumlu kullanım

  • Code Llama'nın eğitim reçetesi GitHub deposunda yayımlanıyor
  • Model ağırlıkları da sağlanıyor
  • Araştırma makalesi, Code Llama'nın geliştirilmesini, benchmark test yöntemlerini, sınırlamalarını, bilinen zorlukları, azaltma önlemlerini ve gelecekte incelenecek konuları içeriyor
  • Responsible Use Guide da güncellendi
    • İçerik politikaları ve azaltma önlemlerinin tanımı
    • Veri hazırlığı
    • Model ince ayarı
    • Performans değerlendirmesi ve iyileştirme
    • Girdi ve çıktı düzeyindeki risklere karşı önlemler
    • Kullanıcı etkileşimlerinde şeffaflık ve raporlama mekanizmalarının kurulması
  • Geliştiriciler modeli, koda özelleşmiş değerlendirme benchmark'larıyla test etmelidir
  • Kötü amaçlı yazılım, bilgisayar virüsü ve kötü niyetli kod üretimi gibi koda özelleşmiş kullanım senaryoları için güvenlik araştırması önerilir
  • Otomatik ve insan değerlendirmesi için güvenlik veri kümelerinin kullanılması ve adversarial prompt tabanlı red team çalışmaları da önerilir

Açık kodlama modeli ekosistemindeki rolü

  • Code Llama; araştırma, sanayi, açık kaynak projeleri, STK'lar ve şirketler gibi farklı alanlardaki yazılım mühendislerini desteklemek için tasarlandı
  • Temel modelin ve Instruct modelinin kapsayabildiğinden daha fazla kullanım senaryosu hâlâ mevcut
  • Meta, Code Llama'nın başkalarını Llama 2'yi kullanarak araştırma ve ticari ürünler için yeni araçlar oluşturmaya teşvik etmesini umuyor
  • İlgili kaynaklar:

1 yorum

 
GN⁺ 2023-08-25
Hacker News yorumları