happy fine-tuning & GenAI Agents

Caner Guney
4 min readJun 8, 2024

--

İnsan gibi çalışan GenAI etmenleri (agents)

İnsan dili kullanılarak gerçekleştirilebilen herhangi bir görev (task) büyük dil modelleri ile gerçekleştirilebilir hale gelmiştir. Dil modellerinin yetenekleri/yapabilirlikleri parametre sayılarıyla ilişkilidir. Ne kadar yüksek parametre sayısına sahip bir dil modeli (yapay öğrenme modeli) kullanılırsa modelin çıkarım (inference) başarısı da o kadar yüksek olacaktır. Bununla birlikte yapay öğrenme modelinin parametre sayısı arttıkça modeli koşturmak için gerekli olacak bellek (VRAM) miktarı, depolama (disk) miktarı, hesaplama gücü artmak durumundadır ve maliyetler yükselmektedir.

Dil modelleri parametre sayılarına göre küçük dil modelleri ve büyük dil modelleri olmak üzere genel olarak iki gruba ayrılmaktadır. Dil modelleri açık kaynak ve ticari olmak üzere de iki gruba ayrılmaktadır. Bu durumun genel bir özeti aşağıda gösterilmektedir.

Ticari büyük dil modellerinin enterprise sürümleri işletmeler tarafından kullanılabilir. Bu yaklaşımın maliyetinden kaçınan ve veri güvenliği endişesi yaşayan kişiler ve işletmeler açık kaynak kodlu küçük dil modelleri üzerinden çözüm geliştirebilir. Bir diğer çözüm ise açık kaynaklı çözüm oluşturup bazı ticari büyük dil modeli gereksinimleri modeli satın almak yerine ticari modellere API üzerinden ulaşılabilir.

Sıfırdan bir dil modeli oluşturmak çok büyük veri ve işlem gücü gerektirmekte bunun sonucunda büyük maliyetler ortaya çıkarmaktadır. Bu durumda bağımsız geliştiriciler aşağıdaki şekilde gösterildiği gibi çalıştıkları alana (domain) yönelik o alanla ilgili veri kümelerini kullanarak özelleştirilmiş AI modellerini oluşturabilir. Bu tür açık kaynaklı modeller kişilerin veya işletmelerin veri güvenliğini sağlamanın yanında ücretsiz ve özgür olması, istenilen cihazlarda çalıştırılabilmesi gibi üstünlükleri de beraberinde getirmektedir.

Çıkarım (inference) amaçlı büyük dil modelleri (LLM) aşağıdaki gibi farklı formatlarda paylaşılmaktadır:

· GGML (GPT-Generated Model Language) (Georgi Gerganov tarafından geliştirilmiş bir kütüphanedir)

o Georgi Gerganov tarafından geliştirilen llama.cpp temellidir

· GGUF (GPT-Generated Unified Format) (Ağustıs 2023’de yayınlanmıştır)

o llama.cpp’nin ötesinde daha geniş bir model yelpazesini desteklemektedir. Örneğin ExLlama.

Açık kaynaklı modeller Hugging Face üzerinde indirildikten sonra istenilirse önce seçilen modelin boyutu niceleme (quantization) tekniği ile düşürülebilir. Bu yaklaşımda hız artarken kaliteden ödün verilmektedir. Örneğin 32 bitlik float model ağırlıkları 4 veya 8 bitlik integer (32-bit floating-point number (FP32) to an 8-bit or 4-bit integer (INT4 or INT8))model ağırlıklarına dönüştürüldüğünde 4 katlık bellek (memory) kazanılmış olur. Böylece model daha düşük kapasiteli GPU üzerinde koşturulabilir. Niceleme yöntemleri genel olarak iki sınıfa ayrılmaktadır:

· Post-Training Quantization (PTQ): Önceden eğitilmiş bir modelin ağırlıklarının herhangi bir yeniden eğitim gerektirmeden daha düşük bir hassasiyete dönüştürülmesidir.

· Quantization-Aware Training (QAT): Ağırlıkların dönüştürülmesi eğitim sürecinde gerçekleştirilir. QLoRA ince ayar tekniği bunun bir örneğidir.

QAT yöntemi PTQ yöntemine göre daha başarılıdır ancak hesaplama maliyeti çok daha yüksektir.

Aşağıda bazı quantization tekniklerine örnek verilmiştir:

· bitsandbytes (BNB) NF4 (NF+: normalized float 4-bit)

· Activation aware quantization (AWQ)

· Generalized Post-Training Qunatizaiton (GPTQ)

Burada tartışılması gereken konulardan biri de niceleme tekniği uygulanmış bir büyük dil modeline ince ayar yapılması (quantized LLM) mı yoksa niceleme tekniği uygulanmamış daha küçük bir dil modeline fine-tuning uygulamak mı olduğudur.

Yukarıdaki şekilde görüldüğü gibi dil modelleri üzerinde değişiklik yapılabilmektedir. Bu değişiklik işlemi ince ayar (fine-tuning) olarak adlandırılmaktadır. İnce ayar işlemi localde ve offline olarak yapılabilmektedir. İnce ayar işlemi için aşağıdaki farklı yaklaşımlardan biri kullanılabilir:

· Low Rank Adaptation (LoRA) (modelin bazı parametreleri yeniden eğitilir) (some exterenal knowledge)

o Hugging Face’deki ‘Parameter Efficient Fine Tuning (PEFT)’ kütüphanesi kullanılabilir

o Quantized LoRA (QLoRA)

· Retrieval Augmented Generation (RAG) (model kapsamında olmayan başka bir kaynaktaki veri kümesi modele entegre edilir) (external data source)

· LoRA + RAG birlikte kullanılarak fine-tuning

· Instruction-tuned LLM (promptlar girilerek yapılaiblir)

o Reinforcement Learning with Human Feedback (RLHF)

· RL-tune LLM (reinforcement learning yaklaşımındaki ödül mekanizması kullanarak dil modeline ince ayay yapılaiblir)

Önceden eğitilmiş modelden (pre-trained LLM) ince ayarak yapılarak elde edilen modele fine-tuned LLM denilmektedir.

İnce ayar işlemi yapabilmek için bir platforma gereksinim bulunmaktadır. Aşağıdaki platformlardan biri kullanılabilir:

· LM Studio (özel mülkiyet yazılım)

o Model aramada Hugging Face arayüzünü kullanmakta

· OLLAMA

· Jan.ai

· Open WebUI (Open WebUI; OLLAMA temelli çalışna bir arayüz)

· LoRAX (LoRA eXchange)

İnce ayarı yapılan yapay öğrenme modelinin yapılandırılmış veri kümeleri ile birlikte kullanılabilmesi için aşağıda ifade edilen türde bir platforma gerek duyulmaktadır:

· Langchain

· Auto-GPT

· AgentGPT

· BabyAGI

· HeyGPT

· LangDock

· GradientJ

· Marvin

· FlowiseAI

· TensorFlow

· LlamaIndex

Daha sonra tanımlanan işlerin otomatik yapılması için AI Agent’ların geliştirilmesi gerekmektedir. Multi Agent Workflow (multi-agent interaction frameworks) için aşağıdaki platformlardan biri kullanılabilir:

· CrewAI

· AgentCloud

· AutoGen

Gelişmelere bakıldığında platformların değiştiği gözlenmekte ve yeni tür LLMstack’lerin oluştuğu görülmektedir. Bu LLMstack/GenAI Stack’ler ile LLM orchestration, logic micromodelleri yönetilebilmeli ve mevcut repository’lerdeki bilgilerle birlikte çalışabilemk için pipeline design yapılabilmelidir. (LLMOpps).

Yazının özeti olarak aşağıdaki şekil gerçekleştirilecek adımları genel olarak göstermektedir.

--

--

Caner Guney
Caner Guney

Written by Caner Guney

Caner Guney is an Assoc. Prof Dr in the Dep. of Geomatic Engineering at Istanbul Technical University. His current research interests are robotics, AI, geodesy.