Ana içeriğe atla

Microsoft Phi-4: Adım Adım Eğitim ve Demo Projesi

Microsoft'un Phi-4 modelini kullanarak, çözümleri doğrulayan, ayrıntılı düzeltmeler sunan ve daha zarif alternatifler öneren bir ödev denetleyicisinin nasıl oluşturulacağını öğrenin.
Güncel 3 Eki 2026  · 12 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Microsoft, küçük dil modeli ailesi Phi’nin en yeni üyesi Phi-4’ü kısa süre önce tanıttı. Matematikte öne çıktığı için, Gradio ile entegre bir ödev denetleyicisi oluşturmak üzere Phi-4’ü kullanmaya karar verdim.

Bu eğitimde, çözümleri doğrulayabilen, hataları düzelten ve alternatif yaklaşımlar sunabilen işlevsel bir web uygulamasını adım adım nasıl kuracağınızı göstereceğim—tıpkı sanal bir öğretim asistanı gibi!

Microsoft’un Phi-4 Modeli Nedir?

Phi-4, özellikle matematikte olmak üzere karmaşık akıl yürütme görevlerinde başarılıdır ve geleneksel dil işleme becerisini de korur. Öne çıkan özellikleri şunlardır:

  • Gelişmiş akıl yürütme yetenekleri: Phi-4, yüksek kaliteli sentetik veri kümeleri üzerinde eğitilmiştir ve yenilikçi sonradan eğitim teknikleri kullanarak matematikle ilgili akıl yürütme görevlerinde daha büyük modelleri geride bırakır.
  • Verimlilik ve erişilebilirlik: 14 milyar parametreye sahip olan Phi-4, yüksek hesaplama kaynaklarına ihtiyaç duymadan kaliteli sonuçlar sunar ve böylece daha geniş bir uygulama yelpazesi için erişilebilir hale gelir.
  • Erişilebilirlik: Phi-4 şu anda Azure AI Foundry üzerinden Microsoft Research Lisans Sözleşmesi (MSRLA) kapsamında ve Hugging Face’te erişilebilir durumdadır.

Phi-4, matematiksel akıl yürütme görevlerinde güçlü bir performans sergilemiş, hatta matematik yarışması sorularında Gemini Pro 1.5 gibi daha büyük modelleri bile geride bırakmıştır. Bu da onu ileri düzey matematiksel problem çözme yetenekleri gerektiren uygulamalar için iyi bir seçenek yapar.

Matematik yarışması problemlerinde Phi4 performansı

Kaynak: Microsoft

Phi-4 Ödev Denetleyicisi: Uygulama Genel Bakışı

Phi-4 ile oluşturacağımız uygulama, yapay zekâ destekli bir ödev denetleyicisi. Kullanıcının izleyeceği iş akışı şöyle:

  1. Kullanıcı, tamamladığı ödevi (hem alıştırma talimatlarını hem de kendi çözümünü) gönderir.
  2. Çözüm yanlışsa, model doğru çözümü bir öğretmen gibi ayrıntılı adımlarla açıklar.
  3. Çözüm doğruysa, model çözümü onaylar veya yanıt dağınıksa daha temiz, verimli bir alternatif önerir.

phi-4 demo uygulama iş akışı

Kullanıcıların ödev denetleyiciyle etkileşim kurabileceği bir web arayüzü sağlamak için Gradio’yu kullanacağız.

Adım 1: Önkoşullar

Başlamadan önce aşağıdakilerin kurulu olduğundan emin olun:

  • Python 3.8+
  • PyTorch: Derin öğrenme modellerini çalıştırmak için.
  • HuggingFace Transformers kütüphanesi: Phi-4 modelini HuggingFace’ten yüklemek için.
  • Gradio: Kullanıcı dostu bir web arayüzü oluşturmak için.

Bu bağımlılıkları şu komutla kurun:

!pip install torch transformers gradio -q

Artık tüm bağımlılıkları kurduk. Sırada Phi-4 modelini ayarlamak var.

Adım 2: Modeli Ayarlama

Phi-4 modelini HuggingFace’in Transformers kütüphanesinden yüklüyoruz. Ardından, belirteçleyici (tokenizer) girişi (alıştırma ve çözüm) ön işler ve çıkarım için hazırlar.

# Imports
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import gradio as gr

# Load the Phi-4 model and tokenizer
model_name = "NyxKrage/Microsoft_Phi-4"
model=AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Set tokenizer padding token if not set
if tokenizer.pad_token_id is None:
    tokenizer.pad_token_id = tokenizer.eos_token_id

Yukarıdaki kod parçacığı, Phi-4 modelini ve belirteçleyiciyi ayarlar ve hesaplamalar için PyTorch ile entegre eder. Kodun ayrıntılı açıklaması şöyle:

  • AutoModelForCausalLM ve AutoTokenizer sınıfları, model ve belirteçleme ile çalışmak için içe aktarılır.
  • Model, from_pretrained() yöntemiyle Hugging Face deposundan yüklenir ve bellek kullanımı ile hesaplama hızını optimize etmek için FP16 duyarlılıkla yapılandırılır.
  • device_map="auto" parametresi, modelin mevcut donanıma otomatik olarak eşlenmesini sağlar.
  • Belirteçleyici de yüklenir; girdi metnini modele uygun belirteçlere dönüştürür.
  • Bir kontrol, belirteçleyicinin tanımlı bir doldurma belirteci olup olmadığını doğrular; yoksa doldurma belirteci olarak eos_token_id (dizisonu belirteci) atanır.

Adım 3: Çekirdek Özellikleri Tasarlama 

Model ayarlandıktan sonra, uygulama için üç temel işlev tanımlarız:

  1. Çözüm doğrulama: Model, kullanıcının çözümünü değerlendirir ve yanlışsa düzeltmeler sunar.
  2. Alternatif öneriler: Kullanıcının çözümü dağınıksa daha temiz çözümler önerir.
  3. Açık geri bildirim: Model çıktıyı net bölümlerle yapılandırır.

Aşağıdaki check_homework() işlevi, alıştırmayı, kullanıcının çözümünü ve modelin doğruluk onayı yapması, sorunları belirlemesi veya çözüm yanlışsa adım adım yol göstermesi için özel talimatları içeren bir istem oluşturur.

# Function to validate the solution and provide feedback
def check_homework(exercise, solution):
    prompt = f"""
    Exercise: {exercise}
    Solution: {solution}
Task: Validate the solution to the math problem, provided by the user. If the user's solution is correct, confirm else provide an alternative if the solution is messy. If it is incorrect, provide the correct solution with step-by-step reasoning.
    """
    # Tokenize and generate response
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    print(f"Tokenized input length: {len(inputs['input_ids'][0])}")
    outputs = model.generate(**inputs, max_new_tokens=1024)
    print(f"Generated output length: {len(outputs[0])}")
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    # response = response.replace(prompt, "").strip()
    prompt_len = len(prompt)
    response = response[prompt_len:].strip()
    print(f"Raw Response: {response}")
    return response

check_homework() işlevi, istemi modelin belirteçleyicisiyle belirteçlere dönüştürür. Girdiyi, modelin çalıştığı cihaza eşlenen PyTorch tensörlerine çevirerek işlemeye hazırlar.

Ardından, çıktı uzunluğunu kontrol etmek için max_new_tokens=1024 sınırıyla modelden bir yanıt üretir. Bu belirteç uzunluğu gereksinime göre değiştirilebilir.

Son olarak, geri bildirim veya düzeltilmiş çözüm sağlayan işlenmiş yanıt döndürülür. 

Adım 4: Gradio ile Kullanıcı Dostu Arayüz Oluşturma

Gradio, kullanıcıların alıştırmalarını ve çözümlerini etkileşimli olarak girmesine olanak tanıyarak ödev denetleyicisinin dağıtımını kolaylaştırır. Aşağıdaki kod parçacığı, check_homework() işlevi için kullanıcı dostu bir Gradio web arayüzü oluşturur. Gradio arayüzü, kullanıcının girdilerini (alıştırma ve çözüm) alır ve doğrulama için modele iletir. 

# Define the function that integrates with the Gradio app
def homework_checker_ui(exercise, solution):
    return check_homework(exercise, solution)

# Create the Gradio interface using the new syntax
interface = gr.Interface(
    fn=homework_checker_ui,
    inputs=[
        gr.Textbox(lines=2, label="Exercise (e.g., Solve for x in 2x + 3 = 7)"),
        gr.Textbox(lines=1, label="Your Solution (e.g., x = 1)")
    ],
    outputs=gr.Textbox(label="Feedback"),
    title="AI Homework Checker",
    description="Validate your homework solutions, get corrections, and receive cleaner alternatives.",
)

# Launch the app
interface.launch(debug=True)

gr.Textbox kullanarak iki giriş alanı oluşturduk: biri matematik problemi (alıştırma) için, diğeri kullanıcının çözümü için. Çıktı, "Feedback" etiketli tek bir gr.Textbox içinde görüntülenir. interface.launch() komutu Gradio uygulamasını tarayıcıda başlatır ve debug=True bayrağı, hataları gidermeye yardımcı olmak için ayrıntılı günlükleri etkinleştirir. 

Adım 5: Test Etme ve Doğrulama

Artık Yapay Zekâ Ödev Denetleyicisi uygulamamızı test etme zamanı. İşte yaptığım bazı testler:

  1. Basit matematik problemi: Temel olasılık sorularını denedim ve uygulama soruna iyi yapılandırılmış, net bir çözüm döndürdü.

Phi4’ü basit bir matematik problemi üzerinde test etme.

  1. Karmaşık türev problemi: Türev çözmek bazı modeller için zorlayıcı olabilir. Burada, doğal logaritma fonksiyonunun birinci türevini ödev denetleyiciyle bulmayı denedim ve çözüm için doğru, adım adım bir akıl yürütme üretti.

Phi4’ü karmaşık bir türev problemi üzerinde test etme.

Sonuç

Bu eğitimde, Phi-4 modelini kullanarak yapay zekâ destekli bir ödev denetleyicisi oluşturduk. Bu uygulama, çözümleri doğrular, ayrıntılı düzeltmeler sağlar ve zarif alternatifler önerir; öğrenciler için ideal bir sanal öğretmen görevi görür.

Uygulamayı genişletmeye hazır mısınız? Daha karmaşık problemlerle deneyler yapın veya daha geniş kullanım için eğitim platformlarına entegre edin!


Aashi Dutt's photo
Author
Aashi Dutt
LinkedIn
Twitter

ML (Üretken Yapay Zekâ) alanında Google Developers Uzmanıyım, Kaggle 3x Expert unvanına sahibim ve 3+ yıllık teknoloji deneyimiyle Women Techmakers Elçisiyim. 2020'de bir sağlık teknolojileri girişiminin kurucu ortağı oldum ve Georgia Tech'te makine öğrenmesi alanında uzmanlaşarak bilgisayar bilimleri yüksek lisansı yapıyorum.

Konular
Yapay Zeka
Üretken Yapay Zeka

Bu kurslarla yapay zekâ öğrenin!

Program

Yapay Zeka Uygulamaları Geliştirme

21 sa
OpenAI API, Hugging Face ve LangChain dahil olmak üzere en yeni yapay zeka geliştirici araçlarıyla yapay zeka destekli uygulamalar oluşturmayı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör