📑 İçindekiler
Yapay zeka dünyasında açık kaynak modellerin yükselişi, teknolojinin demokratikleşmesinde çığır açıcı bir rol oynamaktadır. Bu devrimin merkezinde ise Hugging Face platformu yer almaktadır. Milyonlarca geliştirici, araştırmacı ve kuruluş tarafından kullanılan Hugging Face, yapay zeka modellerinin paylaşılması, keşfedilmesi ve uygulanması için dünyanın en büyük açık kaynak ekosistemini sunmaktadır. Bu kapsamlı rehberde, Hugging Face ekosisteminin tüm bileşenlerini detaylı şekilde inceleyeceğiz.
1. Hugging Face Nedir?
Hugging Face, 2016 yılında kurulan ve başlangıçta bir chatbot uygulaması olarak yola çıkan bir yapay zeka şirketidir. Zaman içinde, yapay zeka topluluğunun en önemli platformlarından birine dönüşmüştür. Bugün Hugging Face, aşağıdaki temel bileşenleri sunan kapsamlı bir ekosistemdir:
| Bileşen | Açıklama |
|---|---|
| Model Hub | 900.000+ açık kaynak model barındıran merkez |
| Datasets | 200.000+ veri seti koleksiyonu |
| Spaces | ML demo uygulamaları barındırma |
| Transformers | En popüler NLP/ML Python kütüphanesi |
| Inference API | Bulut tabanlı model çalıştırma |
Platform, "yapay zekanın GitHub'ı" olarak anılmakta ve geliştiricilerin modellerini paylaşması, işbirliği yapması ve topluluktan geri bildirim alması için ideal bir ortam sağlamaktadır. Google, Meta, Microsoft, NVIDIA gibi büyük şirketler de modellerini bu platform üzerinden yayınlamaktadır.
Hugging Face'in Temel Felsefesi
Hugging Face'in temel felsefesi, yapay zeka teknolojilerini herkes için erişilebilir kılmaktır. Bu yaklaşım, büyük teknoloji şirketlerinin kapalı model stratejilerine alternatif bir yol sunmaktadır. Açık kaynak yaklaşımı sayesinde, küçük ekipler ve bireysel geliştiriciler bile son teknoloji AI modellerine erişebilmekte ve bunları kendi projelerinde kullanabilmektedir.
2. Transformers Kütüphanesi
Hugging Face'in en önemli açık kaynak projesi olan Transformers kütüphanesi, doğal dil işleme (NLP), bilgisayarlı görme (CV) ve ses işleme alanlarında binlerce önceden eğitilmiş modele kolay erişim sağlar. PyTorch, TensorFlow ve JAX ile tam uyumlu çalışır.
Kurulum
# Temel kurulum
pip install transformers
# PyTorch ile birlikte kurulum
pip install transformers[torch]
# TensorFlow ile birlikte kurulum
pip install transformers[tf-cpu]
# Tüm bağımlılıklarla kurulum
pip install transformers[sentencepiece,torch,vision]
Pipeline API ile Hızlı Başlangıç
Transformers kütüphanesinin en güçlü özelliklerinden biri pipeline API'sidir. Bu API, karmaşık model yükleme ve inference işlemlerini tek satırda gerçekleştirmenizi sağlar:
from transformers import pipeline
# Duygu analizi
sentiment = pipeline("sentiment-analysis")
result = sentiment("Hugging Face harika bir platform!")
print(result)
# [{'label': 'POSITIVE', 'score': 0.9998}]
# Metin üretimi
generator = pipeline("text-generation", model="gpt2")
text = generator("Yapay zeka gelecekte", max_length=50)
print(text)
# Soru-cevap sistemi
qa = pipeline("question-answering")
context = "Hugging Face, 2016 yılında kurulmuş bir AI şirketidir."
question = "Hugging Face ne zaman kuruldu?"
answer = qa(question=question, context=context)
print(answer['answer']) # '2016'
Desteklenen Görev Türleri
Transformers kütüphanesi, aşağıdaki görev türlerini destekler:
| Görev | Pipeline Adı | Örnek Kullanım |
|---|---|---|
| Duygu Analizi | sentiment-analysis |
Metin sınıflandırma |
| Metin Üretimi | text-generation |
İçerik oluşturma |
| Çeviri | translation |
Dil çevirisi |
| Özetleme | summarization |
Uzun metinleri özetleme |
| Görüntü Sınıflandırma | image-classification |
Görsel tanıma |
| Ses Tanıma | automatic-speech-recognition |
Konuşmayı metne çevirme |
3. Model Hub Kullanımı
Hugging Face Model Hub, 900.000'den fazla modeli barındıran dünyanın en büyük açık kaynak model deposudur. Model Hub üzerinde modelleri keşfetmek, indirmek ve kendi modellerinizi paylaşmak son derece kolaydır.
Model Arama ve Filtreleme
Model Hub üzerinde modelleri çeşitli kriterlere göre filtreleyebilirsiniz: görev türü, dil, lisans, model boyutu ve framework gibi. Her model kartında modelin açıklaması, performans metrikleri, kullanım örnekleri ve lisans bilgileri yer alır.
from huggingface_hub import HfApi
api = HfApi()
# Türkçe NLP modellerini listele
models = api.list_models(
filter="language:tr",
sort="downloads",
direction=-1,
limit=10
)
for model in models:
print(f"{model.modelId} - İndirme: {model.downloads}")
# Model bilgilerini al
model_info = api.model_info("dbmdz/bert-base-turkish-cased")
print(f"Model: {model_info.modelId}")
print(f"İndirme sayısı: {model_info.downloads}")
print(f"Lisans: {model_info.card_data.get('license', 'Belirtilmemiş')}")
Model İndirme ve Yükleme
Model Hub'dan model indirmek ve kullanmak için birkaç yöntem bulunmaktadır:
from transformers import AutoModel, AutoTokenizer
# Otomatik model ve tokenizer yükleme
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)
# Belirli bir sürümü yükleme
model = AutoModel.from_pretrained(model_name, revision="v1.0")
# Modeli yerel dizine kaydetme
model.save_pretrained("./my_model")
tokenizer.save_pretrained("./my_model")
# Yerel dizinden yükleme
model = AutoModel.from_pretrained("./my_model")
💡 İpucu
Model Hub'daki her modelin bir "Model Card" sayfası bulunur. Bu sayfa, modelin nasıl eğitildiğini, performans metriklerini, bilinen kısıtlamalarını ve etik değerlendirmelerini içerir. Bir modeli kullanmadan önce mutlaka model kartını incelemenizi öneririz.
4. Popüler Açık Kaynak Modeller
Hugging Face üzerinde barındırılan en popüler ve etkili açık kaynak modelleri inceleyelim:
Büyük Dil Modelleri (LLM)
| Model | Geliştirici | Parametre | Özellik |
|---|---|---|---|
| Llama 3 | Meta | 8B-70B | Çok dilli, yüksek performans |
| Mistral | Mistral AI | 7B-8x22B | Verimli MoE mimarisi |
| Gemma | 2B-7B | Hafif ve hızlı | |
| Qwen 2.5 | Alibaba | 0.5B-72B | Çok dilli, kod yeteneği |
| Phi-3 | Microsoft | 3.8B-14B | Küçük ama güçlü |
Görüntü ve Multimodal Modeller
Metin tabanlı modellerin yanı sıra, Hugging Face üzerinde görüntü işleme, görüntü üretimi ve multimodal modeller de mevcuttur:
- Stable Diffusion XL: Yüksek kaliteli görüntü üretimi için açık kaynak model
- CLIP: Metin-görüntü eşleştirme modeli (OpenAI)
- Whisper: Güçlü ses tanıma ve çeviri modeli (OpenAI)
- SAM (Segment Anything): Evrensel görüntü segmentasyonu (Meta)
- LLaVA: Görsel soru-cevap multimodal modeli
from transformers import pipeline
# Görüntü sınıflandırma
classifier = pipeline("image-classification", model="google/vit-base-patch16-224")
result = classifier("photo.jpg")
print(result)
# Ses tanıma (Whisper)
transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-base")
result = transcriber("audio.mp3")
print(result["text"])
5. Inference API
Hugging Face Inference API, modelleri yerel olarak indirmeden bulut üzerinde çalıştırmanızı sağlar. Bu özellik, özellikle büyük modelleri GPU olmadan kullanmak isteyenler için idealdir. Ücretsiz tier ile başlayabilir, ihtiyaç durumunda ücretli planlara geçebilirsiniz.
API Kullanımı
from huggingface_hub import InferenceClient
# Client oluştur
client = InferenceClient(token="hf_xxxxxxxxxxxxx")
# Metin üretimi
response = client.text_generation(
"Yapay zeka ile gelecekte",
model="meta-llama/Meta-Llama-3-8B-Instruct",
max_new_tokens=200,
temperature=0.7
)
print(response)
# Chat formatında kullanım
messages = [
{"role": "system", "content": "Sen yardımcı bir asistansın."},
{"role": "user", "content": "Hugging Face nedir?"}
]
response = client.chat_completion(
messages=messages,
model="meta-llama/Meta-Llama-3-8B-Instruct",
max_tokens=500
)
print(response.choices[0].message.content)
# Görüntü üretimi
image = client.text_to_image(
"A beautiful sunset over mountains",
model="stabilityai/stable-diffusion-xl-base-1.0"
)
image.save("generated_image.png")
REST API ile Kullanım
# cURL ile Inference API kullanımı
curl https://api-inference.huggingface.co/models/gpt2 \
-X POST \
-H "Authorization: Bearer hf_xxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"inputs": "Yapay zeka gelecekte"}'
# JavaScript ile kullanım
const response = await fetch(
"https://api-inference.huggingface.co/models/gpt2",
{
method: "POST",
headers: {
"Authorization": "Bearer hf_xxxxxxxxxxxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({ inputs: "Yapay zeka gelecekte" })
}
);
const result = await response.json();
⚠️ Uyarı
Inference API'nin ücretsiz kullanımında hız sınırlamaları bulunmaktadır. Üretim ortamları için Inference Endpoints veya ücretli API planlarını değerlendirmenizi öneririz.
6. Hugging Face Spaces
Hugging Face Spaces, makine öğrenmesi demo uygulamalarını ücretsiz olarak barındırmanızı sağlayan bir platformdur. Gradio veya Streamlit kullanarak etkileşimli web uygulamaları oluşturabilir ve bunları toplulukla paylaşabilirsiniz.
Gradio ile Hızlı Demo Oluşturma
import gradio as gr
from transformers import pipeline
# Duygu analizi pipeline'ı
sentiment = pipeline("sentiment-analysis")
def analyze_sentiment(text):
result = sentiment(text)
label = result[0]['label']
score = result[0]['score']
return f"Sonuç: {label} (Güven: {score:.2%})"
# Gradio arayüzü oluştur
demo = gr.Interface(
fn=analyze_sentiment,
inputs=gr.Textbox(label="Metin girin", placeholder="Analiz edilecek metni yazın..."),
outputs=gr.Textbox(label="Duygu Analizi Sonucu"),
title="Duygu Analizi Demo",
description="Transformers kütüphanesi ile duygu analizi yapın."
)
demo.launch()
Bu kodu bir app.py dosyası olarak oluşturup Hugging Face Spaces'a yükleyerek herkesle paylaşabilirsiniz. Spaces, Docker container desteği de sunmakta olup daha karmaşık uygulamalar geliştirmenize olanak tanır.
Spaces ile Yapılabilecekler
- Metin üretimi ve chatbot demo uygulamaları
- Görüntü üretimi ve düzenleme araçları
- Ses tanıma ve sentez uygulamaları
- Model karşılaştırma araçları
- Veri görselleştirme dashboardları
- GPU destekli uygulamalar (ücretli)
7. Fine-Tuning Rehberi
Fine-tuning, önceden eğitilmiş bir modeli kendi özel veri setinizle yeniden eğiterek belirli bir göreve uyarlamanız sürecidir. Hugging Face, bu süreci son derece kolaylaştıran araçlar sunar.
Trainer API ile Fine-Tuning
from transformers import (
AutoModelForSequenceClassification,
AutoTokenizer,
TrainingArguments,
Trainer
)
from datasets import load_dataset
# Veri seti yükleme
dataset = load_dataset("imdb")
# Model ve tokenizer
model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2)
# Tokenize fonksiyonu
def tokenize_function(examples):
return tokenizer(examples["text"], padding="max_length", truncation=True, max_length=512)
tokenized_datasets = dataset.map(tokenize_function, batched=True)
# Eğitim parametreleri
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=8,
per_device_eval_batch_size=16,
warmup_steps=500,
weight_decay=0.01,
logging_dir="./logs",
logging_steps=100,
evaluation_strategy="epoch",
save_strategy="epoch",
load_best_model_at_end=True
)
# Trainer oluştur ve eğit
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["test"]
)
trainer.train()
LoRA ile Verimli Fine-Tuning (PEFT)
Büyük dil modellerinin tamamını fine-tune etmek yüksek GPU belleği gerektirir. PEFT (Parameter-Efficient Fine-Tuning) ve özellikle LoRA (Low-Rank Adaptation) tekniği, modelin yalnızca küçük bir bölümünü eğiterek bu sorunu çözer:
from peft import LoraConfig, get_peft_model, TaskType
# LoRA konfigürasyonu
lora_config = LoraConfig(
task_type=TaskType.CAUSAL_LM,
r=16,
lora_alpha=32,
lora_dropout=0.1,
target_modules=["q_proj", "v_proj"]
)
# PEFT modeli oluştur
peft_model = get_peft_model(model, lora_config)
peft_model.print_trainable_parameters()
# Trainable params: 4,194,304 || All params: 6,742,609,920 || Trainable%: 0.06%
💡 İpucu
LoRA ile fine-tuning, orijinal modelin ağırlıklarını değiştirmez. Eğitilen küçük adaptör ağırlıkları ayrı olarak kaydedilir ve paylaşılır. Bu sayede tek bir temel model üzerinde birçok farklı görev için adaptörler oluşturabilirsiniz.
8. Türkçe NLP Modelleri
Hugging Face Model Hub, Türkçe doğal dil işleme için özel olarak eğitilmiş birçok model barındırmaktadır. Bu modeller, Türkçe metinler üzerinde İngilizce modellerden çok daha iyi performans gösterir.
Önemli Türkçe Modeller
| Model | Görev | Açıklama |
|---|---|---|
| dbmdz/bert-base-turkish-cased | Genel NLP | Türkçe BERT modeli, temel NLP görevleri |
| savasy/bert-base-turkish-sentiment-cased | Duygu Analizi | Türkçe duygu analizi için fine-tune edilmiş |
| dbmdz/bert-base-turkish-128k-cased | Genel NLP | 128K kelime dağarcıklı Türkçe BERT |
| Helsinki-NLP/opus-mt-tr-en | Çeviri | Türkçe-İngilizce çeviri modeli |
| ytu-ce-cosmos/turkish-gpt2 | Metin Üretimi | Türkçe metin üretimi için GPT-2 |
Türkçe Duygu Analizi Örneği
from transformers import AutoModelForSequenceClassification, AutoTokenizer, pipeline
# Türkçe duygu analizi modeli
model_name = "savasy/bert-base-turkish-sentiment-cased"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
sentiment = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
# Türkçe metinler üzerinde test
texts = [
"Bu ürün gerçekten harika, çok memnun kaldım!",
"Kargo çok geç geldi ve ürün hasarlıydı.",
"Fiyat-performans açısından idare eder.",
"Müşteri hizmetleri çok ilgili ve yardımcıydı."
]
for text in texts:
result = sentiment(text)
print(f"Metin: {text}")
print(f"Sonuç: {result[0]['label']} ({result[0]['score']:.2%})")
print("---")
Türkçe-İngilizce Çeviri
from transformers import pipeline
# Türkçe-İngilizce çeviri
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-tr-en")
result = translator("Hugging Face, yapay zeka modellerini herkes için erişilebilir kılmaktadır.")
print(result[0]['translation_text'])
# "Hugging Face makes artificial intelligence models accessible to everyone."
9. Pratik Kod Örnekleri
Aşağıda, Hugging Face ekosistemini kullanarak gerçekleştirebileceğiniz çeşitli pratik uygulamaların kod örneklerini bulabilirsiniz.
Metin Özetleme
from transformers import pipeline
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
article = """
Hugging Face has become the central hub for the open-source AI community.
With over 900,000 models, 200,000 datasets, and 300,000 demo applications,
the platform serves millions of developers worldwide. The company's mission
is to democratize artificial intelligence by making state-of-the-art models
accessible to everyone. Major tech companies including Google, Meta, Microsoft,
and NVIDIA regularly publish their models on the platform.
"""
summary = summarizer(article, max_length=60, min_length=20)
print(summary[0]['summary_text'])
Varlık İsmi Tanıma (NER)
from transformers import pipeline
ner = pipeline("ner", model="dbmdz/bert-large-cased-finetuned-conll03-english",
aggregation_strategy="simple")
text = "Hugging Face was founded in New York by Clément Delangue and Julien Chaumond."
entities = ner(text)
for entity in entities:
print(f"Varlık: {entity['word']}, Tür: {entity['entity_group']}, "
f"Güven: {entity['score']:.2%}")
Sıfır-Shot Sınıflandırma
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
text = "Bugün hava çok güzel, parkta yürüyüş yapmak istiyorum."
candidate_labels = ["spor", "hava durumu", "politika", "teknoloji", "sağlık"]
result = classifier(text, candidate_labels)
for label, score in zip(result['labels'], result['scores']):
print(f"{label}: {score:.2%}")
Embedding Üretimi ve Benzerlik Hesaplama
from transformers import AutoTokenizer, AutoModel
import torch
model_name = "sentence-transformers/all-MiniLM-L6-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModel.from_pretrained(model_name)
def get_embedding(text):
inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
outputs = model(**inputs)
return outputs.last_hidden_state.mean(dim=1)
# İki metin arasındaki benzerliği hesapla
text1 = "Yapay zeka dünyayı değiştiriyor"
text2 = "AI teknolojisi global dönüşüm yaratıyor"
emb1 = get_embedding(text1)
emb2 = get_embedding(text2)
similarity = torch.cosine_similarity(emb1, emb2)
print(f"Benzerlik skoru: {similarity.item():.4f}")
Model Hub'a Model Yükleme
from huggingface_hub import HfApi, login
# Hugging Face'e giriş yap
login(token="hf_xxxxxxxxxxxxx")
# Modeli Hub'a yükle
model.push_to_hub("kullanici-adi/model-adi")
tokenizer.push_to_hub("kullanici-adi/model-adi")
# Veya API ile
api = HfApi()
api.upload_folder(
folder_path="./my_model",
repo_id="kullanici-adi/model-adi",
repo_type="model"
)
10. Sonuç
Hugging Face, yapay zeka ekosisteminde devrim yaratan bir platform olarak konumunu güçlendirmeye devam etmektedir. Açık kaynak felsefesi, kullanıcı dostu araçları ve güçlü topluluk desteği sayesinde, yapay zeka teknolojilerinin demokratikleşmesinde kilit bir rol oynamaktadır.
Transformers kütüphanesi ile birkaç satır kodla son teknoloji modellere erişebilir, Model Hub üzerinde binlerce modeli keşfedebilir, Inference API ile bulut üzerinde modelleri çalıştırabilir ve Spaces ile demo uygulamalar oluşturabilirsiniz. Fine-tuning araçları sayesinde mevcut modelleri kendi ihtiyaçlarınıza göre özelleştirebilir, Türkçe NLP modelleri ile Türkçe metin işleme görevlerini yüksek doğrulukla gerçekleştirebilirsiniz.
Yapay zeka alanında kariyer yapmak veya projelerinize AI yetenekleri eklemek istiyorsanız, Hugging Face ekosistemi öğrenmeniz gereken ilk platformlardan biridir. Sürekli büyüyen model koleksiyonu, kapsamlı dokümantasyonu ve aktif topluluğu ile Hugging Face, yapay zeka yolculuğunuzda en değerli araçlarınızdan biri olacaktır.
11. Sıkça Sorulan Sorular (SSS)
Hugging Face ücretsiz mi?
Evet, Hugging Face'in temel özellikleri ücretsizdir. Model Hub'dan model indirmek, Transformers kütüphanesini kullanmak ve Spaces'ta demo oluşturmak ücretsizdir. Inference API'nin ücretsiz tier'i sınırlı kullanım sunar. GPU destekli Spaces ve Inference Endpoints gibi gelişmiş özellikler ücretlidir.
Hugging Face modellerini ticari projelerde kullanabilir miyim?
Bu tamamen modelin lisansına bağlıdır. Birçok model Apache 2.0 veya MIT lisansı ile yayınlanır ve ticari kullanıma uygundur. Ancak bazı modeller (örneğin belirli Llama sürümleri) özel lisanslara sahiptir. Model kartında lisans bilgisini mutlaka kontrol edin.
Hangi GPU'ya ihtiyacım var?
Bu modelin boyutuna bağlıdır. BERT gibi küçük modeller CPU üzerinde bile çalışabilir. 7B parametreli modeller için en az 16GB VRAM'li bir GPU (örneğin RTX 4080) önerilir. 70B modeller için birden fazla GPU veya quantization teknikleri gerekir. Alternatif olarak Inference API veya Google Colab kullanabilirsiniz.
Transformers ile TensorFlow ve PyTorch arasında nasıl geçiş yapılır?
Transformers kütüphanesi her iki framework'ü de destekler. PyTorch modeli yüklemek için AutoModel.from_pretrained(), TensorFlow için TFAutoModel.from_pretrained() kullanılır. Ayrıca from_tf=True parametresi ile framework'ler arası dönüşüm yapabilirsiniz.
Kendi modelimi Hugging Face'e nasıl yüklerim?
Öncelikle bir Hugging Face hesabı oluşturun ve API token'ı alın. Ardından model.push_to_hub("kullanici-adi/model-adi") komutuyla modelinizi yükleyebilirsiniz. Model kartı oluşturmayı, lisans belirtmeyi ve kullanım örnekleri eklemeyi unutmayın.
Türkçe için en iyi model hangisidir?
Görev türüne göre değişir. Genel NLP görevleri için dbmdz/bert-base-turkish-cased, duygu analizi için savasy/bert-base-turkish-sentiment-cased, metin üretimi için ise çok dilli büyük dil modelleri (Llama 3, Qwen 2.5 gibi) tercih edilebilir. Görevinize uygun modeli Model Hub üzerinde filtreleyerek bulabilirsiniz.
Fine-tuning ne kadar sürer?
Bu, model boyutuna, veri seti büyüklüğüne, GPU kapasitesine ve eğitim parametrelerine bağlıdır. BERT gibi küçük bir modeli birkaç bin örnek üzerinde fine-tune etmek, tek bir GPU'da 30-60 dakika sürebilir. LoRA gibi verimli yöntemler bu süreyi önemli ölçüde kısaltır.