Hugging Face, “makine öğreniminin GitHub’ı” olarak anılıyor ve kabul görüyor. Gitgide büyüyen topluluğu ise bizlere mannequin koleksiyonundan çok daha fazlası olduğunu göstermekte.
Hugging Face, açık kaynaklı bir yapay zeka kütüphanesi sunan Fransız-
Amerikan şirketidir. Doğal dil işleme (NLP) alanında uzmanlaşmış platformları, birbirinden farklı modellerin kolayca kullanılabilir olmasını sağlayan araçlar sunuyor. Ayrıca kendi modellerinizi eğitip globalde paylaşmanıza da olanak tanır.
Aslında şirketin misyonu, güçlü yapay zeka araçlarına ve yeteneklerine erişimi demokratikleştirerek, daha fazla insanı yapay zekanın gelişim serüvenine dahil etmek.
Peki gerçekten veri bilimcilere kolaylık sağlıyor mu?
Kesinlikle evet! Bunun en güzel örneği GPT-3, BERT, YOLO ve RoBERTa gibi çok sayıda hazır modeli sunarak çeşitli NLP projelerine başlangıcı kolaylaştırması.
Topluluğun da katkılarıyla sürekli güncellenen platform, switch studying ile mevcut modeli yeni bir görev için yeniden eğiterek zamandan büyük tasarruf etmenizi sağlıyor.
Hugging Face üzerindeki Transformers kütüphanesinden halihazırda eğitilmiş modelleri alarak geliştirebiliyorsunuz. Aynı zamanda PyTorch, TensorFlow ve JAX arasında çerçeve (framework) uyumluluğu sağlıyor.
Daha pek çok kütüphane erişim veya bulut hizmetleri ile entegrasyon opsiyonları ise yine en büyük avantajlarından. Areas ve Inference Endpoints gibi kendi bulut hizmetleriyle küçük internet uygulamaları oluşturabilir, modelleri kolayca dağıtabilirsiniz.
Hangi Ortamlarda Mannequin Geliştirme ve Advantageous-Tuning Yapabilirim?
Hugging Face modellerini hemen hemen her ortamda kullanabilirsiniz. Aşağıda birkaç popüler seçenek listeliyorum:
- Google Colab: Google Colab, ücretsiz GPU desteği ile modellerinizi eğitmek için mükemmel bir yerdir. Eğitim süresince yüksek performans sunar ve ücretsizdir. Hugging Face çoğu modelde platform üzerinden direkt bağlantı sağlayabiliyor.
- Jupyter Pocket book: Kendi bilgisayarınızda veya bir sunucuda Jupyter Pocket book ile çalışabilirsiniz. Özellikle kendi donanımınız güçlü ise bu seçenek maliyetsizdir ve büyük esneklik sunar.
- Kaggle: Kaggle, ücretsiz GPU ve TPU desteği sunar. Veri bilimi yarışmaları ve projeler için supreme bir ortamdır.
Free-Trial abonelikler ile deneyebileyeceğiniz ortamlar ise:
- Azure ML: Microsoft’un sunduğu güçlü bir AI platformudur. Geniş veri işleme kapasitesi ve public cloud ekosistemi ile entegrasyon seçenekleri sunar.
- OpenShift AI: Kubernetes tabanlı bu platform, esnek ve açık kaynaklı bir çözümdür. Hem on-premise hem de bulut ortamları için uygundur.
Advantageous-Tuning gibi işlem gücü senaryolarda avantaj sağlar. - Amazon Sagemaker: Amazon Sagemaker, büyük ölçekli projeler için idealdir. Kapsamlı araçlar ve yüksek ölçeklenebilirlik elde edilir.
- IBM Watson: Yapay zeka ve veri analitiği konusunda uzun yıllardır kendini kanıtlamış bir platformdur. Özellikle kurumsal projeler için geniş entegrasyon ve kullanım seçenekleri sunuyor.
Yazımın devamında yakın zamanda katıldığım Purple Hat OpenShift AI workshop deneyimimden bahsedeceğim. Aynı zamanda Purple Hat Global Youtube kanalında benzer bir demo videosu mevcut.
OpenShift AI ile veri bilimi projelerinin baştan sona yönetimini, MLOps süreçlerini ve dağıtım için gerekli adımların hepsini kolaylıkla sağlayabiliyorsunuz. Modellerinizi hem bulut ortamlarında hem de on-premise üzerinde çalıştırabilirsiniz.
Hugging Face’den alacağınız modelleri geliştirmeden tutun AI destekli uygulamaları daha hızlı teslim etmek için ekipler arasında karmaşıklığı azaltmaya kadar pek çok avantaj ile geliyor.
OpenShift AI Dev-Sandbox ortamı 30 gün ücretsiz. Kullanıcı oluşturarak platformun özelliklerini deneyimleyebilirsiniz.
Jupyter Pocket book Tabanlı Büyük Dil Modeli (LLM) Örnekleri
LLM (Massive Language Mannequin), çok büyük miktarda metin verisi üzerinde eğitilmiş yapay zeka modelleridir. Bu modeller, dilin karmaşıklıklarını öğrenerek metin üretme, çeviri yapma ve soruları yanıtlama gibi görevleri gerçekleştirebilirler. GPT-4 bunun en iyi örneği olabilir.
Workshop içeriğine dönecek olursak, farazi bir sigorta projesini Github’dan pull ettikten sonra iki farklı oturumda LLM ve picture detection metotları üzerinden ilerlediğimizi söyleyebilirim.
İlk oturumda metin özetleme, bilgi çıkarımı, iki LLM’i karşılaştırma ve mannequin yeteneklerini genişletme gibi doğal dil işleme adımlarını izledik.
Örneğin eğitim verilerinde bulunmayan bir soru sorduğumuzda, yanıt verebilmesi için modeli güncellemek gerektiğinde, Alıntı Yönlendirilmiş Üretim (RAG) yöntemiyle LLM’yi yeniden eğitmeden veya ince ayar (fine-tuning) yapmadan üretken yapay zekanın yeteneklerini artırabildik.
Yeniden eğitim sonrasında, modelin kullandığı ‘California driver handbook’ gibi belgelerin içeriği, vektör temsilleriyle bir Vektör Veritabanı’nda depolandığı yerden bulunabilir hale geldi. Yani ek kaynak erişimi çoğaldı.
Bu sayede mannequin, zaman ve donanım ihtiyacını minimuma indirerek kullanıcı sorgusuna yönelik, related bilgi parçalarını bulup kullanabiliyor.
DevOps tarafında ise mannequin performansını sistemli olarak check etmek için platform, Elyra Pipeline operatörünü sunuyor.
Görseldeki akışı oluşturup otomasyon sürecini başlattık. Python, pocket book veya R dosyalarını sürükle-bırak yöntemiyle dilediğiniz gibi kurgulayarak check süreçlerini gerçekleştirebiliyorsunuz.
YOLOv8 ile Görüntü İşleme
İkinci oturumda ise object detection senaryolarında kullanılan YOLOv8 modeli ile görüntü işleme adımlarını gerçekleştirdik.
Mannequin, araçları ve araç üzerinde varsa mevcut kaza görüntülerini tespit edebilme yeteneğine sahip. Sırasıyla modeli güncellediğimizde, araç görüntülerinde hasar oranlarını bile belirleyebilen noktaya gelecek.
Bu teknoloji, yakın gelecekte sigorta şirketleri için hasar tespitinde veya trafik yönetimi gerektiren iş kollarında daha sık kullanılacak gibi duruyor.
Hugging Face’den alınan bu mannequin içeriğinde ultralytics paketi ve bazı Python paketlerini barındırıyor.
import cv2
from ultralytics import YOLO
from PIL import Picture
İlerleyen adımlarda görüntüde birden fazla araç olduğunda, kaç araç olduğunu belirleyebilmesini ve araçların etrafında field ile işaretlenmesini istediğimiz için modeli güncelledik.
# This is similar code we used within the earlier cells, however in a single move
outcomes = mannequin.predict("pictures/carImage4.jpg")
outcome = outcomes[0]
for field in outcome.bins:
class_id = outcome.names[box.cls[0].merchandise()]
cords = field.xyxy[0].tolist()
cords = [round(x) for x in cords]
conf = spherical(field.conf[0].merchandise(), 2)
print("Object kind:", class_id)
print("Coordinates:", cords)
print("Chance:", conf)
print("---")
Picture.fromarray(outcome.plot()[:,:,::-1])
output: