---
title: "Üretim Düzeyinde Bir Makine Öğrenimi Aday Sıralama Sistemi Geliştirdim"
url: https://blog.edumints.com/uretim-duzeyinde-bir-makine-ogrenimi-aday-siralama-sistemi-g-20ldnjwk
category: "Makine Öğrenmesi"
date: 2026-09-12T15:10:48.285Z
publisher: Edumints Blog
lang: tr-TR
source_name: "dev.to"
source_url: https://dev.to/techwithhari/i-built-a-production-grade-ml-candidate-ranking-system-4od3
---

# Üretim Düzeyinde Bir Makine Öğrenimi Aday Sıralama Sistemi Geliştirdim

## Meydan Okuma
Redrob India Data & AI Challenge kapsamında, bir Kıdemli ML/AI Mühendisi pozisyonu için 100.000 aday profilini inceleyip en uygun 100 adayı gerekçeleriyle sıralayan bir yapay zekâ sistemi kurmam gerekiyordu. Resmi bir makine öğrenimi eğitimi almamış, 2 yıllık bir bulut ve backend mühendisi olarak bu problemi doğrudan "inşa ederek öğrenme" yaklaşımıyla ele aldım.

## Anahtar Kelime Eşleştirme Neden Başarısız Olur?
Geleneksel anahtar kelime eşleştirme sistemleri, pratikte ciddi açıklar barındırır:
- **Anlamsal Uyuşmazlık**: "Vektör arama hattı geliştirdi" ifadesi ile "embedding tabanlı arama sistemi kurdu" ifadesi aynı tecrübeyi anlatır. Ancak BM25 gibi standart kelime eşleyiciler, kelimeler birebir örtüşmediği için bunları tamamen alakasız görür.
- **Özgeçmiş Şişirme**: CV'sine anahtar kelime yığan vasat bir aday, gerçekte üretim ortamına değer katan özlü ve başarılı bir mühendisten daha yüksek puan alabilir.
- **İnsan Tutarsızlığı**: İşe alım uzmanları bile ihbar süresi, konum, GitHub aktivitesi, şirket prestiji ve teknik derinlik gibi 20'den fazla sinyali yüzlerce profil boyunca zihinlerinde adil biçimde tartamaz.

## Mimari: Tek Bir Sinyale Bağımlı Kalmayın
Sistemin temel felsefesi hiçbir sinyale tek başına güvenmemektir:
- BM25 anlamsal eşleşmeleri kaçırır.
- Vektör benzerliği anahtar kelime ağırlıklı rolleri gözden kaçırabilir.
- Kariyer bağlamı olmayan yetenek eşleştirme, sadece popüler kavramları toplayanları ödüllendirir.
- Davranışsal sinyalleri dikkate almayan kariyer puanlaması, kağıt üzerinde mükemmel görünen fakat 6 ay ihbar süresi isteyen adayları filtreleyemez.

Bu doğrultuda, her sinyalin birbirini denetlediği 4 bileşenli hibrit bir yapı tasarlandı.

## Formül
Nihai sıralama skoru, hibrit sinyaller ile filtreleyici katsayıların çarpımıyla elde edilir:
`skor = (0.20 × BM25 + 0.30 × FAISS + 0.20 × Yetenek + 0.30 × Kariyer Yörüngesi) × tecrübe_faktörü × ml_ürün_yılı_faktörü × eşik_çarpanı × davranışsal_filtre`

## Aşama 1: Her Şeyi Önceden Hesaplayın (~1.7 Saat)
İşlem hattı operasyonel verimlilik için ikiye ayrılmıştır:
- **Aşama 1 (Ağır İş)**: 100.000 adayın tüm metinlerinin vektörleştirilmesi bir defalık çalıştırılır ve diske kaydedilir (~1.7 saat).
- **Aşama 2 (Hızlı Sıralama)**: Tamamen matematiksel işlemlerden oluşur ve CPU üzerinde 2 dakikanın altında tamamlanır.

## Sinyal 1: BM25 (Ağırlık: 0.20)
`BM25Okapi` ile iş tanımındaki "vector search", "FAISS", "learning to rank" gibi teknik terimlerden bir sorgu oluşturuldu. Açık eşleşmeleri yakalamada hızlı olsa da manipülasyona açık yapısı nedeniyle ağırlığı %20 ile sınırlandırıldı.

## Sinyal 2: FAISS Kosinüs Benzerliği (Ağırlık: 0.30)
100.000 adayın kariyer özeti `BAAI/bge-small-en-v1.5` modeliyle 384 boyutlu vektörlere dönüştürülüp `FAISS IndexFlatIP` ile arandı. `all-MiniLM-L6-v2` yerine BGE-small seçilmesinin sebebi, MTEB kıyaslamasında 56.9'a karşı 61.7 (%8.4 artış) skor üretmesi ve asimetrik kodlama desteğidir (iş tanımı sorgusuna özel arama öneki eklenir).

## Yazılım Geliştiriciler İçin Pratik Çıkarımlar
- **Hibrit Arama Zorunluluğu**: Üretim ortamlarında leksikal (BM25) ve semantik (vektör) aramayı birleştirmek en dengeli arama doğruluğunu sağlar.
- **İki Aşamalı Mimari Tasarımı**: Ağır çıkarım işlemlerini önceden hesaplayıp sıralamayı saf matematiksel formüllere indirgemek, büyük veri setlerinde gecikmeyi saatlerden dakikalara düşürür.

[Orijinal kaynağa buradan ulaşabilirsiniz.](https://dev.to/techwithhari/i-built-a-production-grade-ml-candidate-ranking-system-4od3)

---

Bu konuyu derinlemesine öğrenmek isterseniz: [Reranking Modelleri: Serving ve Entegrasyon](https://edumints.com/kesfet/embedding-ve-reranking-modelleri-productionda-depl-blu6) modülüne göz atın.

---

**Kaynak:** [dev.to](https://dev.to/techwithhari/i-built-a-production-grade-ml-candidate-ranking-system-4od3)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/uretim-duzeyinde-bir-makine-ogrenimi-aday-siralama-sistemi-g-20ldnjwk
