İçeriğe geç
edumintsBlog
LLM3 dk okuma

Dharma Field Extractor: Her Türlü Belgeden Yapılandırılmış JSON Çıktısı Üretmek

Kaynak: Hugging Face Blog

Paylaş
LLMEdumints Blog

Dharma-AI ekibi tarafından geliştirilen Dharma Field Extractor, yalnızca 2 milyar parametreye sahip olmasına rağmen herhangi bir belge türünden tam olarak istenen alanları çıkarabilen ve test edilen öncü (frontier) büyük dil modellerini çok daha düşük maliyetle geride bırakan özelleşmiş bir modeldir.

Ekip daha önce sözleşmelerden mahkeme dosyalarına, faturalardan kimliklere ve formlara kadar geniş bir belge yelpazesinde optik karakter tanıma (OCR) için uzmanlaşmış DharmaOCR-LITE modelini yayınlamıştı. Bu çalışmanın arkasındaki temel fikir, göreve özel eğitilmiş daha küçük bir modelin genel amaçlı dev API'leri kendi alanında geçebileceğini kanıtlamaktı.

Klasik OCR, bir sayfadaki metni orijinal biçimlendirmesine sadık kalarak sunar. Bir sözleşmeyi baştan sona okumak veya bir el yazmasını dijitalleştirmek istediğinizde tam olarak ihtiyacınız olan şey budur. Ancak yazılım geliştirmede çok farklı bir kullanım senaryosu daha vardır: Tüm sayfayı değil, alt sistemlerin (downstream) doğrudan tüketebileceği biçimde belirli alanları istersiniz. Bir faturadaki her satır kalemini liste olarak, bir tıbbi istem formundaki hasta adı, tetkik türü ve tarihi randevu sistemine hazır şekilde veya bir kimlikteki bilgileri çalışan tablosunun sütunlarıyla eşleşmiş olarak almak buna örnektir.

Belgeleri standart OCR'dan geçirdiğinizde tüm metni satır satır alırsınız; ancak hangi dizgenin tetkik türü, hangisinin tarih veya toplam tutar olduğuna dair bir işaret yoktur. Veritabanına ulaşmadan önce bir geliştiricinin bu değerleri doğru alanlarla eşleştiren ek kodlar yazması gerekir. Genel amaçlı bir LLM dikkatli istem (prompt) mühendisliğiyle bu işi yapabilir; fakat yüksek hacimli işlerde öncü API fiyatları ve gecikme süreleri (latency), iyi tanımlanmış bir problemi çözmenin en pahalı yoluna dönüşür. Modeller: Hangisi, Ne Zaman? perspektifinden bakıldığında, bu tür dar ve yüksek hacimli görevler için özel bir model geliştirmek mimari açıdan çok daha verimlidir.

Field Extractor, bir belge görüntüsünü alır ve belge türüne özel ince ayar (fine-tuning) gerektirmeden tek bir kontrol noktası (checkpoint) üzerinden tipleri belirlenmiş, iç içe geçmiş (nested) yapılandırılmış JSON döndürür. Bir fatura, miktar ve değerleriyle sıralı kalemler listesi olarak; bir kimlik ise sisteminizin halihazırda kullandığı alan adlarıyla gelir.

Model Ne Yapıyor?#

Her sabah tedarikçi faturalarının geldiğini ve sisteminize aktarmak için tedarikçi adı, fatura numarası, son ödeme tarihi ve toplam tutar olmak üzere dört alana ihtiyacınız olduğunu düşünün. Aynı durum tıbbi formlar veya uyumluluk sistemini besleyen sözleşmeler için de geçerlidir. Sayfanın tamamına değil, yalnızca belirli alanlara ihtiyacınız vardır. Structured Output ve JSON Modu yaklaşımlarıyla doğrudan örtüşen Field Extractor ile bu verileri istemenin iki yolu bulunur:

  • Açık (Open) Mod: Herhangi bir şema verilmez. Model sayfayı okur; sabit bir alan adı listesinden değil, doğrudan bağlam ve sayfa düzeninden (etiket ve ardından gelen değer, başlık satırı olan bir tablo gibi) hangi bölümlerin yapılandırılmış alanlar olduğunu çıkarır ve bulduğu her şeyi anahtar-değer (key-value) çiftleri olarak döndürür.
  • Şema Yönlendirmeli (Schema-directed) Mod: İstenen şekli alan alan ve her birinin veri tipini belirterek tam olarak tanımlarsınız. Geliştiriciler için bu yöntem, veri hattındaki tip güvenliğini (type safety) garanti altına alarak arka uç entegrasyonlarında ekstra ayrıştırma (parsing) kodu yazma yükünü ortadan kaldırır.

Kaynak ve atıf

Bu yazı, Hugging Face Blog üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • huggingface.co/blog/Dharma-AI/dharma-field-extractor