Kod İnceleme Doğruluğunu Artırmak için Küçük Dil Modellerinin İnce Ayar Yapılması

Üretken Yapay Zeka, birçok uygulama üzerinden inovasyonu destekleyerek işletmeleri dönüştürüyor. Ancak, büyük temel modellerin benimsenmesi, yüksek maliyetler, yavaş performans ve veri gizliliği gibi çeşitli zorluklar getiriyor. Birçok işletme, hassas kod veya verileri dış LLM sağlayıcılarıyla paylaşma konusunda isteksiz. Ayrıca, temel LLM’ler genel görevlerde oldukça başarılı olsalar da, belirli işletme odaklı kullanım durumlarında yüksek doğruluk elde etmek için kapsamlı bir şekilde prompt mühendisliği gerektiriyorlar.

Küçük dil modellerinin (SLMs) ince ayarını yapmak, sık sık bilgi damıtma gibi teknikleri kullanarak, bu zorluklar için cazip bir çözüm sunuyor. Bu daha küçük LLM’ler, daha büyük modellere yakın bir performans sunarken, önemli ölçüde daha hızlı ve maliyet açısından da daha etkin bir seçenek. Ayrıca, SLM’ler, hassas verilerin güvende tutulmasına olanak tanıyarak, yerel veya sanal özel bulutlarda (VPC’lerde) dağıtılabilir. Bununla birlikte, daha küçük modellerin ince ayarı, yüksek kaliteli etiketlenmiş verilere ihtiyaç duyar ki bu da oluşturulması zaman alıcı ve maliyetli olabilir.

Bu yazıda, model performansını iteratif olarak artıran bir otomatik ince ayar yaklaşımını tanıtıyoruz. Bu yaklaşım, insan öğreniminden ilham alan öğrenim müfredatı (curriculum learning) ilkesini içeriyor; burada eğitim verileri karmaşıklıklarına göre kademeli olarak tanıtılmaktadır. Bu yöntem, büyük “öğretmen” modelleri kullanarak sentetik eğitim verisi oluşturmak ve yapılandırmakta, bu sayede ince ayar sürecini optimize etmekte, daha küçük modellerin karmaşık görevleri daha etkili bir şekilde yerine getirmesini sağlamakta ve insan müdahalesini en aza indirmektedir.

Otomatik İnce Ayar Yaklaşımının Genel Görünümü

Geliştirilen otomatik ince ayar yaklaşımı, öğretmenlerin dersleri, öğrencilerin özel ihtiyaçlarına göre nasıl uyarladığını örnek alıyor. Öğretmen-öğrenci paradigmasına dayanan bilgi damıtma ilkelerini içeriyor.

Bu süreçte, büyük bir LLM (öğretmen) daha küçük bir LLM veya SLM’ye (öğrenci) eğitim verilerini (müfredatı) düzenleyip hazırlar; bu beş yinelemeli adımı içerir:

  1. Sınav oluşturma: Öğretmen LLM, önceki performans, kullanıcı geri bildirimi ve önceki sınav sonuçlarına dayanarak öğrenci SLM için bir sınav oluşturur.
  2. Sınavı alma: Öğrenci, öğretmen tarafından oluşturulan sınavı alır.
  3. Değerlendirme: Öğretmen, öğrencinin performansını değerlendirir ve zayıf yönleri ile güçlü yanlarını vurgular.
  4. Müfredat oluşturma: Öğretmen, değerlendirme sonuçlarına göre öğrencinin zayıf yönlerini hedef alacak şekilde eğitim materyalini özelleştirir.
  5. İnce ayar: Öğrenci, güncellenmiş veri setinde LoRA gibi teknikler kullanılarak ince ayar yapılır. Geleneksel ince ayar, modelin tüm parametrelerini ayarlarken yüksek hesaplama kaynakları gerektirirken, LoRA belirli bir görev için yalnızca daha küçük bir parametre setini optimize eder; böylece daha maliyet ve hafıza verimli hale gelir.

Uygulama Adımları

Geliştirilen otomatik ince ayar sürecinin her bir adımına daha yakından bakalım.

Sınav Oluşturma

Öğretmen LLM sınavı oluştururken aşağıdaki EXAM_PROMPT kullanılır. Sınavın oluşturulmasında dikkate alınan girdiler şunlardır:

  1. Görev verileri: Görevle ilgili özel veriler, kullanıcı geri bildirimleri veya sentetik örnekler.
  2. Görev istemi: Görev verilerini öğrencinin öğrenebilmesi için bir eğitim örneğine çevirir.
  3. Mevcut yeterlilik: Öğrenci LLM’nin önceki değerlendirmelerden elde edilen yeterlilik seviyesi.
  4. Geri bildirim: Öğretmenin öğrencinin zayıf yönlerini vurgulayan bilgileri.

Sınav soruları oluşturmak için öğretmen LLM, TASK_PROMPT‘u DATA_SOURCE içindeki her bir girişe uygular ve soruları öğrencinin zayıf yönlerine göre özelleştirir.

EXAM_PROMPT örneği aşağıda gösterilmiştir.

EXAM_PROMPT = """
[TASK]
%s

[DATA SOURCE]
%s

[PREVIOUS_EXAM_RESULTS]
Yeterlilik: %s
Geri Bildirim: %s

[TASK] başlığının ardından belirtilen görev için %s sorudan oluşan bir sınav oluşturun.
Soru oluşturmak için [DATA_SOURCE] kısmındaki verileri kullanabilirsiniz.
Eğer yeterli veri yoksa, kendi sorularınızı oluşturun.
Önceki sınavdan elde edilen yeterlilik ve geri bildirim sonuçları [PREVIOUS_EXAM_RESULTS] kısmında belirtilmiştir. Bu bilgileri kullanarak daha iyi bir sınav oluşturun.
Tam sınav sonucunu, düşüncelerinizi belirtmeden json formatında raporlayın.
"""

Takvim Oluşturma

Yeni eğitim örnekleri, mevcut veri seti ile birleştirilerek güncellenmiş bir müfredat oluşturulur. Bu özelleştirilmiş müfredat, öğrencinin zayıf yönlerini hedef alarak daha etkili bir ince ayar süreci sağlar.

İnce Ayar

Öğrenci LLM, güncellenmiş müfredat ile ince ayar yapılır. İnce ayar, NVIDIA NeMo Framework kullanarak yapılır ve megatron_gpt_finetuning.py betiğiyle verimli bir ince ayar süreci gerçekleştirilir. Aşağıda, ince ayarın nasıl başlatılacağını gösteren bir örnek bulunmaktadır.

import subprocess
import pathlib
import os
import shutil

def initialize_directory(directory, clean=True):
    ...

Gerçek Dünya Uygulaması: Kod İnceleme Otomasyonu

Kod incelemeleri, yazılım kalitesini ve performansını sağlamak için esastır ve genellikle insan gözden geçirenler tarafından gerçekleştirilir. Tipik bir kod inceleme süreci şu adımları içerir:

  • Yazar, bir özellik veya hata düzeltmesi içeren bir merge request (MR) gönderir.
  • İnsan gözden geçirenler, MR’ı değerlendirir ve değişiklik önerilerinde bulunur veya kodu onaylar.
  • Değişiklikler isteniyorsa, yazar düzenlemeler yapar ve MR’ı tekrar gönderir, bu süreç kod kabul edilene kadar devam eder.

Üretken yapay zekanın son gelişmeleri, kod inceleme sürecinin otomasyonu için olanaklar sağladı. İnce ayarlanmış LLM‘ler, MR’ları değerlendirmek, hataları veya sorunları tanımlamak, her birine ciddiyet seviyesi atamak ve derecelendirme için açıklamalar sağlamakta kullanılıyor. Bu süreç, kullanıcı tanımlı bir eşiğin altında kalan düşük ciddiyetli sorunları filtreler ve geliştiricilerin kritik sorunlara odaklanmasını sağlar.

Performans Değerlendirmesi: Doğruluk ve Kalite Kazançları

GPT-4’ü öğretmen olarak kullanarak Llama 3 8B modelini ince ayar yaptık ve llama38B+LORA modelini oluşturduk. Bu modelin performansı, iki ana görevde değerlendirildi:

  • Ciddiyet derecelendirme tahmini: Ciddiyet tahminlerinin doğruluğu ölçüldü.
  • Ciddiyet açıklama üretimi: Ciddiyet derecelendirmeleri için verilen açıklamaların kalitesi değerlendirildi.

Ciddiyet Derecelendirme Tahmini

GPT-4’ü öğretmen olarak kullanarak gerçekleştirilen ince ayar, daha küçük modelin ciddiyet derecelendirme tahmin doğruluğunu önemli ölçüde artırdı. Şekil 4, ince ayar yapılmış Llama 3 8B (yeşil olarak gösterilen) modelinin, temel modeline (ince ayar yapılmamış Llama 3 8B) göre %18’den fazla bir iyileşme sağladığını göstermektedir.

Ciddiyet Açıklama Kalitesi

Açıklama kalitesini değerlendirmek için, öğretmen LLM (GPT-4) bir yargıç olarak kullanıldı. Öğretmen, ince ayar yapılmış modelin açıklamalarını diğer modellerle karşılaştırdı. Şekil 5, ince ayar yapılmış modelin açıklama kalitesini arttırarak diğer modellere göre daha çok tercih edildiğini göstermektedir.

İnce Ayar Yapılmış SLM’lerin Avantajları

İnce ayar yapılmış SLM’lerin kod inceleme otomasyonu üzerindeki uygulamaları, iki ana avantaj sunmaktadır:

  • Maliyet etkin ince ayar: Kod inceleme görevlerinde ince ayar yapılmış SLM’leri kullanmak, maliyetleri ve gecikmeleri azaltır, bu da bütçe kısıtlamalarıyla performans gereksinimlerini dengeleyen kurumsal iş akışları için ideal bir yaklaşım sunar.
  • Geliştirilmiş doğruluk ve uyum: İnce ayar yapılmış SLM’ler, göreve özgü performansı önemli ölçüde artırır. Ciddiyet derecelendirmelerinde iyileşme ve uzman seviyesindeki standartlarla uyum sağlamak, ince ayar yapılmış SLM’lerin güvenilir değerlendirmeler sunmasını sağlar.

SLM’lerle AI’yi Ölçeklendirme Deneyimlerinden Çıkarılan Dersler

Otomatik bir yaklaşım kullanarak ince ayar yapılmış SLM’lerin geliştirilmesi, kurumsal uygulamalar için maliyet etkin ve ölçeklenebilir yapay zeka çözümleri yaratmaya yönelik değerli içgörüler sağlar. Kilit dersler şunlardır:

  • Hedefe yönelik ince ayar yapmaya odaklanın: Küçük modeller üzerinde çalışarak performans ve kaynak kullanımı arasında ideal bir denge kurun. Bu, işletmelerin büyütme öncesinde ticari rakiplerini değerlendirmesine olanak tanır.
  • Parametre verimli ince ayar (PEFT) ve bilgi damıtmayı kullanın: LoRA gibi PEFT yöntemlerini bilgi damıtma ile birleştirmek, yüksek performans sağlarken hesaplama yükünü minimuma indirir; bu da kaynak sınırlı ortamlar için idealdir.

Kendi AI Uygulamalarınız için Modelleri İnce Ayarlamaya Başlayın

NVIDIA’nın üretken yapay zeka teknolojileri, ihtiyaçlarınıza uygun modelleri ince ayarlamak ve dağıtmak konusunda sizlere yardımcı olabilir. Eğer sadece başlıyorsanız, İlk LLM Ajan Uygulamanızı Oluşturun ve İlk İnsan-Makine İşbirliği AI Ajanınızı Oluşturun projelerini inceleyerek, NVIDIA’nın geliştirme ve dağıtım araçları ile metodolojileri hakkında pratik deneyim kazanabilirsiniz.

Teşekkürler

Bu çalışmanın gerçekleştirilmesinde değerli katkıları ve destekleri için Rushang Karia, Agustin Rivera, Mark Philipp, Abhinav Kumar, Anbang Xu, Rama Akkiraju, Ashwin Poojary, Ahmad Daoud ve Ashwin Jha’ya içtenlikle teşekkür ederiz. Uzmanlıkları ve bağlılıkları, bu çalışmanın hayata geçirmede önemli rol oynamıştır.

Kaynak

Nvdia Blog

Exit mobile version