Skip to main content
Yapay Zeka ve Yazılım

Hugging Face ile Açık Kaynak AI Modelleri Kullanma

Mart 06, 2026 12 dk okuma 8 views Raw
Hugging Face ile açık kaynak AI modelleri ve topluluk geliştirme
İç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 Google 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.

Bu yazıyı paylaş