Program
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.

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

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:
AutoModelForCausalLMveAutoTokenizersı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:
- Çözüm doğrulama: Model, kullanıcının çözümünü değerlendirir ve yanlışsa düzeltmeler sunar.
- Alternatif öneriler: Kullanıcının çözümü dağınıksa daha temiz çözümler önerir.
- 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:
- 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ü.

- 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.

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!
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.

