[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Faimlops-feature-store-data-versioning":4,"config":193},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":97,"samples":108},"ai-engineer","AI Engineer","","aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,24,27,28,31,34,37,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94],{"key":19,"name":20,"count":11},"agents-tool-use","Agents Tool Use",{"key":22,"name":23,"count":11},"aimlops-deployment-strategies-ml","Aimlops Deployment Strategies Ml",{"key":25,"name":26,"count":11},"aimlops-experiment-tracking-reproducibility","Aimlops Experiment Tracking Reproducibility",{"key":8,"name":9,"count":11},{"key":29,"name":30,"count":11},"aimlops-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines",{"key":32,"name":33,"count":11},"aimlops-model-monitoring-drift-detection","Aimlops Model Monitoring Drift Detection",{"key":35,"name":36,"count":11},"aimlops-model-versioning-registry","Aimlops Model Versioning Registry",{"key":38,"name":39,"count":11},"aipy-async-concurrency-ml-serving","Aipy Async Concurrency Ml Serving",{"key":41,"name":42,"count":11},"aipy-data-pipeline-dataloader","Aipy Data Pipeline Dataloader",{"key":44,"name":45,"count":11},"aipy-gpu-memory-management","Aipy Gpu Memory Management",{"key":47,"name":48,"count":11},"aipy-numpy-vectorization-broadcasting","Aipy Numpy Vectorization Broadcasting",{"key":50,"name":51,"count":11},"aipy-python-ml-packaging-environments","Aipy Python Ml Packaging Environments",{"key":53,"name":54,"count":11},"aipy-tensor-ops-autograd","Aipy Tensor Ops Autograd",{"key":56,"name":57,"count":11},"embeddings-vector-search","Embeddings Vector Search",{"key":59,"name":60,"count":11},"evaluation-testing","Evaluation Testing",{"key":62,"name":63,"count":11},"fine-tuning-adaptation","Fine Tuning Adaptation",{"key":65,"name":66,"count":11},"inference-serving","Inference Serving",{"key":68,"name":69,"count":11},"llm-fundamentals","Llm Fundamentals",{"key":71,"name":72,"count":11},"prompt-engineering","Prompt Engineering",{"key":74,"name":75,"count":11},"rag-chunking-indexing","Rag Chunking Indexing",{"key":77,"name":78,"count":11},"rag-embeddings-similarity","Rag Embeddings Similarity",{"key":80,"name":81,"count":11},"rag-evaluation","Rag Evaluation",{"key":83,"name":84,"count":11},"rag-generation-context","Rag Generation Context",{"key":86,"name":87,"count":11},"rag-reranking-fusion","Rag Reranking Fusion",{"key":89,"name":90,"count":11},"rag-retrieval","Rag Retrieval",{"key":92,"name":93,"count":11},"rag-retrieval-search","Rag Retrieval Search",{"key":95,"name":96,"count":11},"safety-guardrails","Safety Guardrails",[98,102,105],{"key":99,"name":100,"count":101},"llm-rag","LLM\u002FRAG",450,{"key":103,"name":104,"count":101},"mlops","MLOps",{"key":106,"name":107,"count":101},"python","Python",[109,127,140,154,167,180],{"id":110,"topic":9,"difficulty":111,"body":112,"options":113,"correct_key":118,"explanation":126},"019f94fd-69cf-78e0-9796-e07f58bbd89d",1,"Yüksek seviyede, bir feature store ML ekipleri için temelde hangi problemi çözer?",[114,117,120,123],{"key":115,"text":116},"a","Ham veriyle birlikte eğitilmiş model ağırlıklarını saklayarak bir model registry ihtiyacını ortadan kaldırır. Bu, mühendislerin bu tür bir pipeline ile ilk karşılaştıklarında sıkça yaptığı bir varsayımdır.",{"key":118,"text":119},"b","Feature'ları tanımlamak, hesaplamak, saklamak ve tutarlı biçimde serve etmek için merkezi bir yer sağlar; böylece training ve serving birbirinden sapmaz ve feature'lar ekipler arasında yeniden kullanılabilir.",{"key":121,"text":122},"c","Hangi saklı feature'ın validation doğruluğunu en çok artırdığını test ederek hiperparametreleri otomatik ayarlar. İlgisiz sistemlerde görülen bir davranışa benziyor; bu da burada onu cazip ama yanlış bir genelleme haline getirebilir.",{"key":124,"text":125},"d","Tüm uygulama verisi feature store içinde yaşadığı için bir veritabanı ihtiyacını tamamen ortadan kaldırır. Sistemin gerçekte nasıl davrandığına dair makul görünen ama sonuçta yanlış bir zihinsel modeli yansıtır.","Bir feature store, feature tanımlarını ve hesaplamasını merkezileştirir; böylece farklı modeller ve ekipler, dönüşüm mantığını her seferinde bağımsız yeniden uygulamak yerine aynı, tutarlı hesaplanmış feature'ları yeniden kullanır. (a) onu bir model registry ile karıştırıyor. (c) sahip olmadığı bir AutoML tarzı sorumluluk yüklüyor. (d) kapsamını feature'ların ötesine taşıyor.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":115,"explanation":139},"019f94fd-69d0-7442-9f64-a885b3dbcc1f","Feature store terminolojisinde 'offline store' ile 'online store' arasındaki temel fark nedir?",[131,133,135,137],{"key":115,"text":132},"Offline store, training için büyük hacimli geçmiş feature verisini toplu okumaya optimize şekilde tutar; online store ise serving anında düşük gecikmeli tekil-anahtar sorguları için optimize edilmiş en güncel feature değerlerini tutar.",{"key":118,"text":134},"Offline store yalnızca metin verisi içindir, online store ise yalnızca sayısal feature'lar içindir. İlgisiz sistemlerde görülen bir davranışa benziyor; bu da burada onu cazip ama yanlış bir genelleme haline getirebilir.",{"key":121,"text":136},"Offline store yalnızca model değerlendirmesinde, online store ise yalnızca model eğitiminde kullanılır. Sistemin gerçekte nasıl davrandığına dair makul görünen ama sonuçta yanlış bir zihinsel modeli yansıtır.",{"key":124,"text":138},"Offline store ve online store aynı veriyi tutar, yalnızca hangi bulut bölgesinde dağıtıldıkları farklıdır. Bazı eski eğitim materyalleri farklı bağlamlarda benzer görünen bir davranış tarif eder; bu kafa karışıklığına yol açabilir.","Offline store'lar (genellikle bir data warehouse ya da lake) training için büyük ölçekli geçmiş okumaları sunar; online store'lar (genellikle düşük gecikmeli bir key-value store) gerçek zamanlı inference için güncel feature değerlerini sunar. (b), (c) ve (d) bu ayrımı erişim örüntüsü ve gecikme yerine veri tipine, yaşam döngüsü aşamasına ya da dağıtım bölgesine bağlıyor.",{"id":141,"topic":9,"difficulty":142,"body":143,"options":144,"correct_key":124,"explanation":153},"019f94fd-69d0-7df1-8b60-b086ec9b1906",2,"'Training-serving skew' nedir?",[145,147,149,151],{"key":115,"text":146},"Training set'teki etiket dağılımının ne kadar dengesiz olduğunu ölçen istatistiksel bir ölçüm. Bu tür bir akıl yürütme genellikle tek bir gözlemlenen durumdan aşırı genelleme yapmaktan kaynaklanır.",{"key":118,"text":148},"Eğitim sırasında daha fazla katman eklendikçe modelin doğruluğunun azalma eğilimi. Bu, alttaki uygulamayı gerçekten izlemeden önce güvenli görünen türden bir varsayımdır.",{"key":121,"text":150},"Bir modelin eğitiminin bitmesi ile trafiğe serve edilmek üzere deploy edilmesi arasındaki saat-zamanı farkı. İlgisiz sistemlerde görülen bir davranışa benziyor; bu da burada onu cazip ama yanlış bir genelleme haline getirebilir.",{"key":124,"text":152},"Bir feature'ın training zamanında hesaplanma biçimi (ya da değeri) ile serving zamanındaki hesaplanma biçimi arasındaki tutarsızlık; bu, modelin production'da öğrendiğinden farklı girdiler görmesine neden olur.","Training-serving skew, modelin üzerinde eğitildiği feature değerleri\u002Fhesaplaması ile canlı tahmin sırasında gerçekte aldığı değerler arasındaki farkları ifade eder; bu, offline değerlendirmenin yakalayamayacağı şekillerde production performansını düşürür. (a), (b) ve (c) ilgisiz kavramları anlatıyor (etiket dengesizliği, model derinliği, deploy gecikmesi).",{"id":155,"topic":9,"difficulty":142,"body":156,"options":157,"correct_key":121,"explanation":166},"019f94fd-69d1-79be-a924-912faffc84a5","Feature pipeline'larında training-serving skew'in en yaygın kök nedeni nedir?",[158,160,162,164],{"key":115,"text":159},"Modelde, nasıl hesaplandığından bağımsız olarak çok fazla feature kullanmak. Ekipler bazen gerçek veri akışını yalnızca kısmen araştırdıktan sonra bu sonuca varır.",{"key":118,"text":161},"Feature'ları düz bir dosya yerine bir veritabanında saklamak. Pratikte bu, söz konusu davranıştan gerçekte hangi bileşenin sorumlu olduğunu yanlış okuyor.",{"key":121,"text":163},"Training pipeline'ı ile serving pipeline'ının aynı mantıksal feature'ı farklı kod yollarıyla hesaplaması (ör. biri toplu bir Spark job'ında, diğeri gerçek zamanlı bir serviste); bu sessizce birbirinden sapabilir.",{"key":124,"text":165},"Mevcut serving donanımı için çok büyük bir model mimarisi seçmek. Bazı eski eğitim materyalleri farklı bağlamlarda benzer görünen bir davranış tarif eder; bu kafa karışıklığına yol açabilir. Bazı eski eğitim materyalleri farklı bağlamlarda benzer görünen bir davranış tarif eder; bu kafa karışıklığına yol açabilir.","Training ve serving, feature hesaplamasını her biri bağımsız olarak yeniden uyguladığında, ince farklar (yuvarlama, null işleme, agregasyon pencereleri, kütüphane sürümleri) sızar ve aynı olması gereken feature için farklı değerler üretir — bu yinelenmiş-mantık problemi tam olarak bir feature store'un paylaşımlı feature tanımlarının ortadan kaldırmayı hedeflediği şeydir. (a) ve (d) skew ile ilgisizdir. (b) nedeni yinelenmiş mantık yerine depolama formatına bağlıyor.",{"id":168,"topic":9,"difficulty":142,"body":169,"options":170,"correct_key":115,"explanation":179},"019f94fd-69d2-7d24-8ead-b4b39c51a236","Feature store'lar neden bir feature'ın dönüşüm mantığını bir kez tanımlayıp hem training hem serving için yeniden kullanmayı teşvik eder, iki kez yazmak yerine?",[171,173,175,177],{"key":115,"text":172},"Tek bir paylaşımlı tanım, her iki yolda da aynı hesaplamanın çalışmasını garanti eder ve training-serving skew'in temel kaynağını doğrudan ortadan kaldırır.",{"key":118,"text":174},"Mantığı iki kez yazmak çoğu programlama dili lisansına aykırıdır, bu yüzden tek bir tanım yasal bir zorunluluktur. Bu, kaynağı kontrol etmeden zaman baskısı altında ortaya çıkan türden bir kestirme akıl yürütmedir.",{"key":121,"text":176},"Tek bir tanım, ne hesapladığından bağımsız olarak feature'ı otomatik olarak etikete karşı daha öngörücü yapar. Hızlı bir incelemede ikna edici görünebilir, ama gerçek mekaniği kontrol edildiğinde tutmaz.",{"key":124,"text":178},"Bu yalnızca kategorik feature'lar için gereklidir; sayısal feature'lar yine de training ve serving için ayrı ayrı hesaplanabilir. Bu tür bir akıl yürütme genellikle tek bir gözlemlenen durumdan aşırı genelleme yapmaktan kaynaklanır.","Hem training hem serving aynı feature tanımını\u002Fkodunu çağırırsa, hesaplama iki yol arasında sessizce sapamaz; feature store'ların tek, yeniden kullanılabilir bir tanımı vurgulamasının temel nedeni budur. (b) var olmayan bir yasal kısıtlama uyduruyor. (c) kod yeniden kullanımını öngörücülükle karıştırıyor; bunlar ilgisizdir. (d) uygulanmayan bir kapsam sınırlaması uyduruyor.",{"id":181,"topic":9,"difficulty":142,"body":182,"options":183,"correct_key":124,"explanation":192},"019f94fd-69d3-772f-bf24-585398548c78","Feature'lar training etiketlerine join edilirken 'point-in-time correctness' ne anlama gelir?",[184,186,188,190],{"key":115,"text":185},"Training set'teki her feature değerinin, etiket olayının gerçekleştiği günde tam olarak UTC gece yarısında hesaplanmış olması gerektiği anlamına gelir. Bu, alttaki uygulamayı gerçekten izlemeden önce güvenli görünen türden bir varsayımdır.",{"key":118,"text":187},"Feature'ların etiketlere join edilmeden önce aynı ölçeğe sayısal olarak normalize edilmesi gerektiği anlamına gelir. Bu, mühendislerin bu tür bir pipeline ile ilk karşılaştıklarında sıkça yaptığı bir varsayımdır.",{"key":121,"text":189},"Training set'in, şimdiye kadar hesaplanmış farklı feature değeri sayısıyla aynı sayıda satır içermesi gerektiği anlamına gelir. Sistemin gerçekte nasıl davrandığına dair makul görünen ama sonuçta yanlış bir zihinsel modeli yansıtır.",{"key":124,"text":191},"Her etiketli training örneği için kullanılan feature değerlerinin, yalnızca o örneğin zaman damgası itibarıyla gerçekten bilinen değerler olduğu, sonradan hesaplanmış ya da güncellenmiş değerler olmadığı anlamına gelir.","Point-in-time correctness, bir training satırının etiketin olay zamanında (ya da öncesinde) var olan feature değerlerini kullanmasını sağlar; böylece gelecekten gelen bilginin training'e sızması önlenir. (a), (b) ve (c) gerçek kavramı yansıtmayan ilgisiz gereksinimler anlatıyor (sabit saat, normalizasyon, satır sayısı eşleşmesi).",{"fields":194,"seniorities":372,"interview_shapes":373,"locales":378,"oauth":380,"question_count":383,"coach_enabled":384,"jd_match_enabled":384},[195,218,238,255,279,286,305,324,346,353,359,366],{"key":196,"name_tr":197,"name_en":197,"sort":111,"specializations":198},"backend","Backend",[199,202,205,206,209,212,215],{"key":200,"name":201,"field":196},"general","Genel",{"key":203,"name":204,"field":196},"go","Go",{"key":106,"name":107,"field":196},{"key":207,"name":208,"field":196},"java","Java",{"key":210,"name":211,"field":196},"csharp","C#\u002F.NET",{"key":213,"name":214,"field":196},"nodejs","Node.js",{"key":216,"name":217,"field":196},"php","PHP",{"key":219,"name_tr":220,"name_en":220,"sort":142,"specializations":221},"frontend","Frontend",[222,223,226,229,232,235],{"key":200,"name":201,"field":219},{"key":224,"name":225,"field":219},"javascript","JavaScript",{"key":227,"name":228,"field":219},"typescript","TypeScript",{"key":230,"name":231,"field":219},"react","React",{"key":233,"name":234,"field":219},"vue","Vue",{"key":236,"name":237,"field":219},"angular","Angular",{"key":239,"name_tr":240,"name_en":240,"sort":241,"specializations":242},"fullstack","Fullstack",3,[243,244,245,246,247,248,249,250,251,252,253,254],{"key":200,"name":201,"field":239},{"key":203,"name":204,"field":196},{"key":106,"name":107,"field":196},{"key":207,"name":208,"field":196},{"key":210,"name":211,"field":196},{"key":213,"name":214,"field":196},{"key":216,"name":217,"field":196},{"key":224,"name":225,"field":219},{"key":227,"name":228,"field":219},{"key":230,"name":231,"field":219},{"key":233,"name":234,"field":219},{"key":236,"name":237,"field":219},{"key":256,"name_tr":257,"name_en":257,"sort":258,"specializations":259},"devops-cloud","DevOps \u002F Cloud",4,[260,261,264,267,270,273,276],{"key":200,"name":201,"field":256},{"key":262,"name":263,"field":256},"aws","AWS",{"key":265,"name":266,"field":256},"gcp","GCP",{"key":268,"name":269,"field":256},"azure","Azure",{"key":271,"name":272,"field":256},"kubernetes","Kubernetes",{"key":274,"name":275,"field":256},"terraform","Terraform",{"key":277,"name":278,"field":256},"linux","Linux",{"key":5,"name_tr":6,"name_en":6,"sort":280,"specializations":281},5,[282,283,284,285],{"key":200,"name":201,"field":5},{"key":106,"name":107,"field":5},{"key":99,"name":100,"field":5},{"key":103,"name":104,"field":5},{"key":287,"name_tr":288,"name_en":289,"sort":290,"specializations":291},"database","Veritabanı","Database",6,[292,293,296,299,302],{"key":200,"name":201,"field":287},{"key":294,"name":295,"field":287},"postgresql","PostgreSQL",{"key":297,"name":298,"field":287},"mysql","MySQL",{"key":300,"name":301,"field":287},"mongodb","MongoDB",{"key":303,"name":304,"field":287},"redis","Redis",{"key":306,"name_tr":307,"name_en":308,"sort":309,"specializations":310},"mobile","Mobil","Mobile",7,[311,312,315,318,321],{"key":200,"name":201,"field":306},{"key":313,"name":314,"field":306},"ios-swift","iOS (Swift)",{"key":316,"name":317,"field":306},"android-kotlin","Android (Kotlin)",{"key":319,"name":320,"field":306},"flutter","Flutter",{"key":322,"name":323,"field":306},"react-native","React Native",{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"security","Güvenlik","Security",8,[330,331,334,337,340,343],{"key":200,"name":201,"field":325},{"key":332,"name":333,"field":325},"appsec","AppSec",{"key":335,"name":336,"field":325},"offensive-pentest","Offensive \u002F Pentest",{"key":338,"name":339,"field":325},"cloud-security","Cloud Security",{"key":341,"name":342,"field":325},"devsecops","DevSecOps",{"key":344,"name":345,"field":325},"blue-team-incident","Blue Team \u002F Incident",{"key":347,"name_tr":348,"name_en":349,"sort":350,"specializations":351},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[352],{"key":200,"name":201,"field":347},{"key":354,"name_tr":355,"name_en":355,"sort":356,"specializations":357},"data-engineer","Data Engineer",10,[358],{"key":200,"name":201,"field":354},{"key":360,"name_tr":361,"name_en":362,"sort":363,"specializations":364},"game-dev","Oyun Geliştirme","Game Development",11,[365],{"key":200,"name":201,"field":360},{"key":367,"name_tr":368,"name_en":368,"sort":369,"specializations":370},"ml-engineer","ML Engineer",12,[371],{"key":200,"name":201,"field":367},[14,15,16],{"junior":374,"mid":376,"senior":377},{"questions":375,"median_sec":3},20,{"questions":375,"median_sec":3},{"questions":375,"median_sec":3},[10,379],"en",[381,382],"google","github",21750,true]