[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Faimlops-model-versioning-registry":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-model-versioning-registry","Aimlops Model Versioning Registry","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,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":28,"name":29,"count":11},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"key":31,"name":32,"count":11},"aimlops-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines",{"key":34,"name":35,"count":11},"aimlops-model-monitoring-drift-detection","Aimlops Model Monitoring Drift Detection",{"key":8,"name":9,"count":11},{"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,153,167,180],{"id":110,"topic":9,"difficulty":111,"body":112,"options":113,"correct_key":118,"explanation":126},"019f94fd-6a24-76e0-8e88-59aae4d3d3ae",1,"MLOps bağlamında 'model registry' (model kayıt sistemi) nedir?",[114,117,120,123],{"key":115,"text":116},"a","Yalnızca eğitim sırasındaki GPU kullanımını ve bellek tüketimini gösteren bir panel. Bu tür bir kısayol zaman baskısı altında yaygındır, ama gerçek kullanım örüntüleri yakından incelendiğinde tutmaz.",{"key":118,"text":119},"b","Eğitilmiş model sürümlerini, metadata'larını ve yaşam döngüsü aşamalarını takip eden merkezi bir sistem.",{"key":121,"text":122},"c","Model ağırlıklarını diske kaydetmeden önce sıkıştırmak için kullanılan bir dosya formatı.",{"key":124,"text":125},"d","Paylaşılan bir GPU cluster'ında hangi eğitim job'ının sırada çalışacağını zamanlayan bir kuyruk.","Model registry, ekiplerin neyin deploy edilebilir olduğuna dair tek doğru kaynak olarak kullandığı, ilişkili metadata (metrikler, lineage, aşama) ile birlikte eğitilmiş model sürümlerinin bir kataloğudur. (a) izleme panelini anlatır, versiyonlamayla ilgisizdir. (c) bir serileştirme\u002Fsıkıştırma formatını anlatır, takip sistemi değil. (d) bir job zamanlayıcısını anlatır, eğitilmiş artifact'leri takip etmekten farklı bir konudur.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":124,"explanation":139},"019f94fd-6a25-74d8-8522-f8d7696972c2","Birçok model registry, sürümleri 'staging', 'production' ve 'archived' gibi aşamalara ayırır. Bu aşamaların temel amacı nedir?",[131,133,135,137],{"key":115,"text":132},"Bir sürümün inference sırasında kaç GPU kullanabileceğini belirlerler.",{"key":118,"text":134},"Yalnızca kozmetik etiketlerdir; hangi sürümün gerçekte trafiği karşıladığı üzerinde bir etkileri yoktur. Bu, devrede olan mekanizmayı yanlış okur ve registry'lerin ya da serving sistemlerinin normalde nasıl uygulandığıyla örtüşmez.",{"key":121,"text":136},"Modelin ağırlıklarının depolamaya yazılmadan önce nasıl sıkıştırılacağını kontrol ederler.",{"key":124,"text":138},"Bir sürümün yaşam döngüsündeki güncel rolünü işaret ederler; böylece araçlar ve insanlar hangi sürüme trafik yönlendirmenin güvenli olduğunu bilir.","Yaşam döngüsü aşamaları niyeti iletir — 'staging' sürümü doğrulama aşamasındadır, 'production' sürümü canlı trafiği karşılaması beklenen sürümdür, 'archived' ise emekliye ayrılmış demektir — ve downstream otomasyon ile insanlar buna güvenir. (a) aşamaların sahip olmadığı bir kaynak-tahsisi anlamı uyduruyor. (b) aşamaların operasyonel bir etkisi olmadığını yanlış iddia ediyor; birçok pipeline deployment'ı aşamaya bağlı olarak kısıtlar. (c) aşamayı, yaşam döngüsü takibiyle ilgisiz bir depolama\u002Fsıkıştırma konusuyla karıştırıyor.",{"id":141,"topic":9,"difficulty":111,"body":142,"options":143,"correct_key":115,"explanation":152},"019f94fd-6a26-714b-b622-e2172fe276ea","Eğitilmiş modelleri, onları üreten kodun yalnızca git commit hash'ine güvenmek yerine ondan ayrı olarak versiyonlamak neden yaygın bir pratiktir?",[144,146,148,150],{"key":115,"text":145},"Aynı kod ve config, çalıştırmalar arasında farklı ağırlık artifact'leri üretebilir (farklı veri anlık görüntüsü, rastgele seed ya da donanım), bu yüzden ortaya çıkan modelin kendi kimliğine ihtiyacı vardır.",{"key":118,"text":147},"Git, birkaç kilobayttan büyük hiçbir dosyayı temelde takip edemez, bu yüzden model ağırlıkları asla commit edilemez.",{"key":121,"text":149},"Bir model yayınlandıktan sonra eğitim kodu asla değişmez, bu yüzden ilk sürümden sonra kod versiyonlama gereksiz hale gelir.",{"key":124,"text":151},"Belirli bir commit hash için model ağırlıkları her zaman özdeştir, bu yüzden modeli ayrı takip etmek yalnızca stilistik bir gelenektir.","Aynı commit'in iki çalıştırması farklı ağırlık dosyaları verebilir (farklı eğitim verisi dilimi, non-determinism ya da ortam farkı), bu yüzden eğitilmiş artifact koddan ayrı bir şeydir ve kendi versiyon kimliğine ve metadata'sına ihtiyaç duyar. (b) git'in pratik sınırlarını, ayrı model versiyonlamasının gerçek nedeni olmayan mutlak bir kural gibi abartıyor. (c) yanlıştır — eğitim kodu gelişmeye devam eder. (d) çalıştırmaların birbirinden ayrışabileceği öncülüyle çelişiyor, ki model versiyonlamanın var olma nedeni tam olarak budur.",{"id":154,"topic":9,"difficulty":155,"body":156,"options":157,"correct_key":121,"explanation":166},"019f94fd-6a26-7e01-94a5-48b1f4d7b29a",2,"Bir model registry, tipik olarak bir experiment tracking aracından nasıl farklılaşır?",[158,160,162,164],{"key":115,"text":159},"Experiment tracking araçları hiçbir metrik kaydedemez, model registry ise yalnızca metrik kaydeder.",{"key":118,"text":161},"Gerçek bir fark yoktur; her iki terim de her araçta tam olarak aynı işlevselliği anlatır.",{"key":121,"text":163},"Experiment tracking, geliştirme sırasındaki birçok çalıştırmayı kapsar; registry ise deployment yaşam döngüsü yönetimi için seçilen model alt kümesini derler.",{"key":124,"text":165},"Bir model registry aynı anda yalnızca bir model sürümü saklayabilir, experiment tracking ise sınırsız sürüm saklar.","Experiment tracking genellikle karşılaştırma için geliştirme sırasında yapılan her çalıştırmayı (metrikler, parametreler, artifact'ler) loglar; registry ise staging\u002Fproduction kullanımı için terfi ettirilen belirli model sürümlerinin daha küçük, derlenmiş bir kümesidir ve yaşam döngüsü yönetimi yapar. (a) hiçbir aracın gerçekte sahip olmadığı hep-ya-da-hiç bir metrik kısıtlaması uyduruyor. (b) genellikle birbirini tamamlayan iki farklı kavramı yanlış biçimde birleştiriyor. (d) registry'lerin dayatmadığı tek-sürüm sınırını icat ediyor.",{"id":168,"topic":9,"difficulty":111,"body":169,"options":170,"correct_key":121,"explanation":179},"019f94fd-6a27-7864-bc53-29b527de30ec","Kayıtlı bir model sürümü bağlamında 'provenance' (köken) neyi ifade eder?",[171,173,175,177],{"key":115,"text":172},"Model sürümü için bir production yük testinde ölçülen inference gecikmesi.",{"key":118,"text":174},"Model sürümünün client uygulamalar tarafından kaç kez indirildiği. Bu, devrede olan mekanizmayı yanlış okur ve registry'lerin ya da serving sistemlerinin normalde nasıl uygulandığıyla örtüşmez.",{"key":121,"text":176},"Model sürümünün kaydedilmiş kökeni: onu hangi verinin, kodun ve yapılandırmanın ürettiği.",{"key":124,"text":178},"Modelin serving container'ının hangi programlama dilinde yazıldığı.","Provenance, bir artifact'ın nasıl ortaya çıktığına dair izlenebilir kayıttır — bir model için bu, onu üreten veri anlık görüntüsü, eğitim kodu sürümü ve hiperparametreler anlamına gelir. (a) köken takibiyle ilgisiz bir çalışma-zamanı performans metriğini anlatır. (b) farklı bir konu olan kullanım istatistiklerini anlatır. (d) modelin kökeniyle değil, serving container'ının bir uygulama detayıyla ilgilidir.",{"id":181,"topic":9,"difficulty":155,"body":182,"options":183,"correct_key":115,"explanation":192},"019f94fd-6a28-7261-8f48-0fc275dd3fee","Kayıtlı bir modelin eğitimini tam olarak yeniden üretebilmek için lineage kaydının tipik olarak birlikte yakalaması gereken üç bileşen nedir?",[184,186,188,190],{"key":115,"text":185},"Kullanılan eğitim verisi anlık görüntüsü, eğitim kodu\u002Fcommit'i ve hiperparametreler\u002Fyapılandırma.",{"key":118,"text":187},"Yalnızca nihai doğruluk metriği, çünkü tek başına bu, aynı ağırlıkları yeniden oluşturmak için yeterlidir. Mühendisler bazen bu varsayıma erken aşamada güvenir, ta ki uç durumlar bunun neden tutmadığını ortaya çıkarana kadar.",{"key":121,"text":189},"Yalnızca eğitim job'ında 'run'a basan kişinin adı.",{"key":124,"text":191},"Yalnızca modeli inference anında yüklemek için kullanılan serving framework sürümü.","Eğitimi yeniden üretmek, hangi verinin kullanıldığını, hangi kodun (ve tam sürümünün) çalıştığını ve hangi hiperparametrelerin\u002Fconfig'in ayarlandığını bilmeyi gerektirir — bunlardan herhangi biri eksikse, diğerleri bilinse bile çalıştırma yeniden üretilemez. (b) bir çıktı metriğini, bir çalıştırmayı yeniden oluşturmak için gereken girdilerle karıştırıyor. (c) operasyonel bir detaydır, ortaya çıkan ağırlıkları belirleyen bir şey değildir. (d) serving\u002Finference ile ilgilidir, modelin nasıl eğitildiğiyle ilgisizdir.",{"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":155,"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]