Program
Baru-baru ini Microsoft memperkenalkan Phi-4, tambahan terbaru dalam keluarga model bahasa kecil. Karena unggul dalam matematika, saya memutuskan untuk menggunakan Phi-4 untuk membangun pemeriksa PR yang terintegrasi dengan Gradio.
Dalam tutorial ini, saya akan memandu Anda langkah demi langkah membangun aplikasi web fungsional yang mampu memvalidasi solusi, mengoreksi kesalahan, dan memberikan pendekatan alternatif—layaknya asisten pengajar virtual!
Apa Itu Model Phi-4 dari Microsoft?
Phi-4 unggul dalam tugas penalaran yang kompleks, khususnya dalam matematika, sekaligus tetap mahir dalam pemrosesan bahasa konvensional. Fitur utamanya meliputi:
- Kemampuan penalaran tingkat lanjut: Phi-4 dilatih pada kumpulan data sintetis berkualitas tinggi dan menggunakan teknik pascapelatihan inovatif untuk melampaui model yang lebih besar pada tugas penalaran terkait matematika.
- Efisiensi dan aksesibilitas: Dengan 14 miliar parameter, Phi-4 memberikan hasil berkualitas tinggi tanpa memerlukan sumber daya komputasi yang ekstensif, sehingga menjadikannya lebih mudah diakses untuk beragam aplikasi.
- Ketersediaan: Phi-4 saat ini dapat diakses melalui Azure AI Foundry di bawah Microsoft Research License Agreement (MSRLA) dan Hugging Face.
Phi-4 menunjukkan performa yang sangat baik pada tugas penalaran matematis, bahkan melampaui model yang lebih besar seperti Gemini Pro 1.5 pada soal kompetisi matematika. Ini menjadikannya pilihan yang baik untuk aplikasi yang membutuhkan kemampuan pemecahan masalah matematika tingkat lanjut.

Sumber: Microsoft
Pemeriksa PR Phi-4: Gambaran Implementasi
Aplikasi yang akan kita bangun dengan Phi-4 adalah pemeriksa PR berbasis AI. Berikut alur kerja yang akan dilalui pengguna:
- Pengguna mengirimkan PR yang sudah dikerjakan (baik instruksi soal maupun solusi pengguna).
- Jika solusi salah, model akan menjelaskan solusi yang benar dengan langkah-langkah terperinci, seperti guru.
- Jika solusi benar, model akan mengonfirmasi solusinya atau menyarankan alternatif yang lebih rapi dan efisien jika jawabannya berantakan.

Untuk menyediakan antarmuka web tempat pengguna dapat berinteraksi dengan pemeriksa PR, kita akan menggunakan Gradio.
Langkah 1: Prasyarat
Sebelum mulai, pastikan Anda telah memasang hal-hal berikut:
- Python 3.8+
- PyTorch: Untuk menjalankan model deep learning.
- Pustaka HuggingFace Transformers: Untuk memuat model Phi-4 dari HuggingFace.
- Gradio: Untuk membuat antarmuka web yang ramah pengguna.
Pasang dependensi ini dengan menjalankan:
!pip install torch transformers gradio -q
Sekarang semua dependensi sudah terpasang. Selanjutnya, kita menyiapkan model Phi-4.
Langkah 2: Menyiapkan Model
Kita memuat model Phi-4 dari pustaka Transformers milik HuggingFace. Lalu, tokenizer melakukan praproses pada masukan (soal dan solusi) dan menyiapkannya untuk inferensi.
# 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
Cuplikan kode di atas menyiapkan model dan tokenizer Phi-4 serta mengintegrasikannya dengan PyTorch untuk komputasi. Mari kita uraikan lebih detail:
- Kelas
AutoModelForCausalLMdanAutoTokenizerdiimpor untuk bekerja dengan model dan tokenisasi. - Model dimuat dari repositori Hugging Face menggunakan metode
from_pretrained()dan dikonfigurasi menggunakan presisi FP16 untuk mengoptimalkan penggunaan memori dan kecepatan komputasi. - Parameter
device_map="auto"memastikan model secara otomatis dipetakan ke perangkat keras yang tersedia. - Tokenizer juga dimuat untuk memproses teks masukan menjadi token yang sesuai bagi model.
- Pemeriksaan memastikan tokenizer memiliki token padding; jika belum, ia menetapkan
eos_token_id(token akhir urutan) sebagai token padding.
Langkah 3: Merancang Fitur Inti
Setelah model siap, kita mendefinisikan tiga fungsi kunci untuk aplikasi:
- Validasi solusi: Model mengevaluasi solusi pengguna dan memberikan koreksi jika salah.
- Saran alternatif: Model menyarankan solusi yang lebih rapi jika solusi pengguna berantakan.
- Umpan balik yang jelas: Model juga menyusun keluaran dengan bagian-bagian yang jelas.
Fungsi berikut, check_homework(), menyusun prompt yang berisi soal, solusi pengguna, dan instruksi khusus untuk model agar mengonfirmasi kebenaran, mengidentifikasi masalah, atau memberikan panduan langkah demi langkah jika solusi salah.
# 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
Fungsi check_homework() melakukan tokenisasi prompt menggunakan tokenizer milik model. Fungsi ini menyiapkan masukan untuk diproses dengan mengonversinya menjadi tensor PyTorch, yang dipetakan ke perangkat tempat model dijalankan.
Kemudian model menghasilkan respons dengan batas max_new_tokens=1024 untuk mengontrol panjang keluaran. Panjang token ini bisa diubah sesuai kebutuhan.
Terakhir, respons yang telah diproses—yang memberikan umpan balik atau solusi yang dikoreksi—dikembalikan.
Langkah 4: Membuat Antarmuka Ramah Pengguna dengan Gradio
Gradio memudahkan penyebaran pemeriksa PR dengan memungkinkan pengguna memasukkan soal dan solusi secara interaktif. Cuplikan kode berikut membuat antarmuka web Gradio yang ramah pengguna untuk fungsi check_homework(). Antarmuka Gradio menerima masukan pengguna (soal dan solusi) dan meneruskannya ke model untuk divalidasi.
# 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)
Kita membuat dua kolom masukan menggunakan gr.Textbox: satu untuk soal matematika (exercise) dan satu lagi untuk solusi pengguna. Keluaran ditampilkan dalam satu gr.Textbox berlabel "Feedback". Perintah interface.launch() menjalankan aplikasi Gradio di peramban, dan flag debug=True mengaktifkan log terperinci untuk membantu menelusuri kesalahan.
Langkah 5: Pengujian dan Validasi
Saatnya menguji aplikasi AI Homework Checker kita. Berikut beberapa pengujian yang saya lakukan:
- Soal matematika sederhana: Saya mencoba menyelesaikan soal probabilitas dasar, dan aplikasi memberikan solusi yang tersusun rapi dan jelas.

- Soal turunan yang kompleks: Menyelesaikan turunan bisa menantang bagi beberapa model. Di sini, saya mencoba mencari turunan pertama dari fungsi logaritma natural dengan pemeriksa PR dan model menghasilkan penalaran langkah demi langkah yang benar untuk solusinya.

Kesimpulan
Dalam tutorial ini, kita membuat pemeriksa PR berbasis AI menggunakan model Phi-4. Aplikasi ini memvalidasi solusi, memberikan koreksi terperinci, dan menyarankan alternatif yang elegan, sehingga ideal sebagai guru virtual bagi pelajar.
Siap memperluas aplikasi? Cobalah soal yang lebih kompleks, atau integrasikan ke dalam platform pendidikan untuk penggunaan yang lebih luas!
Saya adalah Google Developers Expert di ML (Gen AI), Kaggle 3x Expert, dan Women Techmakers Ambassador dengan pengalaman lebih dari 3 tahun di bidang teknologi. Saya ikut mendirikan startup health-tech pada 2020 dan sedang menempuh studi magister ilmu komputer di Georgia Tech dengan spesialisasi machine learning.

