Ocak 2024'ten Aralık 2024'e kadar Avustralya merkezli Noraco için uzaktan, sözleşmeli olarak çalıştım. Yazılı sınavları PDF olarak alıp yapılandırılmış, veritabanına hazır LaTeX maddelerine dönüştüren bir pipeline'ı otomatikleştirdim; toplamda 5.000+ soru. LLM API'leri konu, beceri ve zorluk metadata'sını üretiyor; bir React inceleme konsolu da doğrulama, QA ve yayınlamayı kapsıyor.
Bağlam
Sınav soruları çoğu zaman yalnızca belge olarak bulunur: baskı için hazırlanmış; denklemler, numaralı bölümler, tablolar ve cevap şıklarıyla dolu PDF'ler. Bu format kâğıt sınav için işe yarar, neredeyse geri kalan her şey için ise kötüdür. Konuya göre arayamaz, zorluğa göre filtreleyemez, ondan yeni testler oluşturamaz ya da web'de güvenilir biçimde gösteremezsiniz.
Amaç bu materyali bir soru bankasına dönüştürmekti. Her soru, metadata'sıyla birlikte ayrı ve yapılandırılmış bir madde haline gelir, veritabanında saklanır ve çevrim içi yayınlanmaya hazır olur.
Mühendislik problemi
Sınav PDF'lerini temiz maddelere dönüştürmek kulağa geldiğinden daha zordur; nedenleri bu türden her proje için geçerlidir:
- PDF bir sayfa düzeni formatıdır. Gliflerin sayfada nerede durduğunu kaydeder, ne anlama geldiklerini değil. Düz metin çıkarma matematiği düzleştirir, üst simgeleri ve kesirleri kaybeder ve sorular arasındaki sınırları bulanıklaştırır.
- Matematiğin gerçek bir temsile ihtiyacı vardır. Formül içeren sınav içeriği için doğal hedef LaTeX'tir. Kesindir, derlenerek ya da render edilerek kontrol edilebilir ve web sayfaları onu gösterebilir.
- Metadata belgeyle birlikte gelmez. Bir soru bankasını kullanışlı kılan konu, beceri ve zorluktur. Binlerce maddeyi elle etiketlemek yavaştır ve farklı kişiler aynı soruyu farklı etiketler.
- Otomasyon hata yapar. Her otomatik dönüştürme ya da etiketleme adımı zaman zaman yanılır. Binlerce madde söz konusu olduğunda, bir şey bu hataları yakalamazsa küçük bir hata oranı bile çok sayıda hatalı maddeye ulaşır.
Geliştirdiklerim
- Aktarım pipeline'ı. Yazılı sınavları yapılandırılmış, veritabanına hazır maddelere dönüştüren PDF'ten LaTeX'e dönüşümü otomatikleştirdim. Pipeline 5.000+ soru üretti.
- LLM ile metadata. Sorular için konu, beceri ve zorluk metadata'sı üretmek üzere LLM API'lerini OpenRouter üzerinden entegre ettim.
- Backend servisleri. Servisleri FastAPI uygulamaları olarak teslim ettim.
- Bir inceleme konsolu. LaTeX doğrulama, QA ve çevrim içi yayınlama için bir React inceleme konsolu teslim ettim.
Tasarım notları
Aşağıdaki notlar bu tür bir pipeline'ın genel gerekçesini veriyor. Noraco'nun iç yapısının bir tarifi değiller.
Madde formatı olarak LaTeX
LaTeX her soruya, matematik için kesin ve yine de insanlar tarafından okunabilen bir metin biçimi verir. Ucuz bir ilk kontrol de sunar: bir maddenin LaTeX'i derlenmiyor ya da render edilmiyorsa bir şeyler ters gitmiştir ve sistem bunu, bir kişi bakmadan önce işaretleyebilir. Bu, "bu dönüşüm doğru mu?" sorusunun bir kısmını mekanik bir teste çevirir.
Sorunun tamamını yanıtlamaz. Render edilen LaTeX yine de yanlış bir şey söylüyor olabilir; bu yüzden kontrolden geçmek bir filtredir, incelemenin yerini tutmaz.
Metadata için LLM'ler, taslak olarak
Bir soruyu konu, beceri ve zorluğa göre etiketlemek bir dil görevidir ve LLM'ler bunu elle etiketlemenin yetişemeyeceği bir hacimde yapabilir. Ancak bir modelin etiketleri birer öneridir. Özellikle zorluk, gerçek öğrenciler soruyu cevaplayana kadar bir tahminden ibarettir. Bu tür bir pipeline'da üretilen metadata en iyi, bir madde yayına girmeden önce inceleyicinin düzeltebileceği bir taslak olarak ele alınır.
Neden OpenRouter
OpenRouter, farklı sağlayıcılardan pek çok modeli tek bir API'nin arkasında toplar. Binlerce madde üzerinde çalışan bir pipeline için bu, model seçimi açık kalırken entegrasyon kodunu sabit tutar; model değiştirmenin nedeni belirli bir konudaki kalite, maliyet ya da erişilebilirlik olabilir.
İnceleme konsolu neden önemli
Hacmi otomasyon karşılar; muhakemeyi insanlar yapar. İnceleme konsolu önemlidir, çünkü dönüştürme ve etiketleme zaman zaman yanlış olacaktır ve bunu yakalamanın en ucuz yeri, bu iş için yapılmış bir araçtır; orada inceleyici bir maddeyi dosyalara geri dönmeden kontrol edip düzeltebilir. Yayınlamayı aynı konsola koymak "dönüştürüldü" ile "yayında" arasında net bir kapı bırakır: bir script bitti diye hiçbir şey yayına girmez.
Backend'de FastAPI
Belge işleme ve LLM istemci kütüphaneleri Python'da iyi desteklenir. FastAPI, Python kodunu HTTP servisleri olarak sunmanın hafif bir yoludur; tipli istek ve yanıt modelleri ile otomatik üretilen API dokümantasyonu sağlar. Bunlar bir inceleme frontend'i ve onun backend'i yan yana geliştirildiğinde işe yarar, çünkü aralarındaki sözleşme tek bir yerde yazılı olur.
Teknoloji yığını
- Python ve FastAPI
- OpenRouter üzerinden LLM API'leri
- LaTeX
- İnceleme konsolu için React
Sonuç
Yalnızca PDF olarak var olan yazılı sınavlar, LLM ile üretilmiş konu, beceri ve zorluk metadata'sına sahip, yapılandırılmış ve veritabanına hazır 5.000+ soruya dönüştü. React konsolu, projeye LaTeX doğrulama, QA ve çevrim içi yayınlama için tek bir yer sağlıyor.
İlgili
Yapılandırılmış metadata'ya sahip madde bankaları genel olarak uyarlamalı testin hammaddesidir; değerlendirme işinin bu tarafı için uyarlamalı test platformu vaka çalışmasına bakın. Aklınızda benzer bir proje varsa Benimle çalışın sayfasına bakın.
Sık sorulan sorular
Noraco soru aktarım pipeline'ı ne yapıyordu?
PDF formatındaki yazılı sınavları yapılandırılmış, veritabanına hazır LaTeX maddelerine dönüştürdü: toplamda 5.000+ soru.
Pipeline'da LLM'ler nasıl kullanıldı?
Mahdi Molavi, sorular için konu, beceri ve zorluk metadata'sı üretmek üzere LLM API'lerini OpenRouter üzerinden entegre etti.
İnceleme konsolu ne işe yarıyordu?
Soruların LaTeX doğrulaması, kalite güvencesi ve çevrim içi yayınlanması için geliştirilmiş, FastAPI servislerine dayanan bir React uygulamasıdır.
Bu bölümdeki diğer sayfalar
- Uyarlamalı Test Platformu: yaklaşık 89.000 öğrenci için IRT tabanlı değerlendirmeler
- Hamsayeh: binaları ve konut sitelerini yönetmek için bir SaaS
- Teslimat ve Saha Servisi Platformu: siparişler, kuryeler, teknisyenler ve stok tek sistemde
- Sınav Zirvesinde Yüksek Erişilebilirlik: 45.000–70.000 eşzamanlı kullanıcı için Redis Sentinel
- Refah Bankası Döviz Bürosu için Döviz Havalesi Back Office Sistemi
- MBRI için Finansal Gösterge Dashboard'u
- Çok Kiracılı Mikroservis Platformu: kiracılık, mesajlaşma ve iş akışı temelleri (geliştiriliyor)
Mahdi Molavi