[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Faimlops-deployment-strategies-ml":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-deployment-strategies-ml","Aimlops Deployment Strategies Ml","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,22,25,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":8,"name":9,"count":11},{"key":23,"name":24,"count":11},"aimlops-experiment-tracking-reproducibility","Aimlops Experiment Tracking Reproducibility",{"key":26,"name":27,"count":11},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"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-6985-7111-bb30-eaed9d6c42ff",1,"Bir 'canary deployment', normal uygulama kodu için yapılan generic canary deployment'a kıyasla bir ML model release'i için özel olarak ne anlama gelir?",[114,117,120,123],{"key":115,"text":116},"a","Yalnızca serving container'ının başladığını ve temel bir health check'ten geçtiğini kontrol eder, tıpkı diğer servislerde olduğu gibi.",{"key":118,"text":119},"b","Canlı trafiğin küçük bir yüzdesi yeni model sürümüne yönlendirilirken yalnızca altyapı sağlığı değil, model-özgü sinyaller (tahmin dağılımı, iş metriği, hata oranı) izlenir.",{"key":121,"text":122},"c","İki özdeş production ortamı yan yana çalışır ve tüm trafik anında yenisine geçirilir.",{"key":124,"text":125},"d","Yeni model sürümü yalnızca çevrimdışı statik bir test setine karşı değerlendirilir ve asla canlı trafik almaz, bu yüzden modelin gerçek production koşullarında nasıl davrandığı hakkında hiçbir bilgi sağlamaz.","Model canary'si genel canary mekaniğini (küçük canlı trafik dilimi) yeniden kullanır ama izlenen sinyaller model-özgüdür: tahmin\u002Fetiket dağılımı kaymaları ve iş metrikleri, yalnızca CPU\u002Fbellek ya da HTTP durumu değil. (a) yalnızca genel altyapı health check'lerini anlatır. (c) blue-green'i tanımlar. (d) canlı trafiğe hiç dokunmadığı için canary bile sayılmayan çevrimdışı değerlendirmeyi anlatır.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":124,"explanation":139},"019f94fd-6991-73c6-9e96-e5d609320803","Bir ML modeli için 'shadow deployment' (shadow mode) nedir?",[131,133,135,137],{"key":115,"text":132},"Yeni model canlı trafiğin küçük bir yüzdesini alır ve yanıtı doğrudan o kullanıcılara döndürülür.",{"key":118,"text":134},"İki tam production ortamı anında değiştirilir ve tüm trafik bir kerede yenisine geçer.",{"key":121,"text":136},"Eski modeli çalıştıran instance'lar, yeni modeli çalıştıran instance'lar tarafından kademeli, birkaçı birden olacak şekilde değiştirilir.",{"key":124,"text":138},"Yeni model, canlı production isteklerinin bir kopyası üzerinde paralel çalışır; tahminleri karşılaştırma için loglanır ama kullanıcıya gerçekte servis edilen yanıt her zaman mevcut production modelinden gelir.","Shadow mode'da aday model, saf çevrimdışı karşılaştırma için gerçek trafiğin (bir kopyasını) alır; kullanıcının gördüğü şeyi asla etkilemez, bu yüzden çıktısından kullanıcıya doğrudan hiçbir risk yoktur. (a) yeni modelin çıktısının gerçekten servis edildiği canary'yi anlatır. (b) blue-green'i anlatır. (c) rolling update'i anlatır.",{"id":141,"topic":9,"difficulty":142,"body":143,"options":144,"correct_key":115,"explanation":153},"019f94fd-6993-7226-963b-97b6d8282be2",2,"ML sistemlerinde blue-green deployment, uygulama kodunun genel blue-green cutover'ının ötesinde ekstra bir gereksinime sahiptir. Bu nedir?",[145,147,149,151],{"key":115,"text":146},"Model artifact'ı ve onunla eşleşen preprocessing\u002Ffeature-transformation kodu birlikte atomik olarak değiştirilmelidir; böylece serving hiçbir zaman yeni bir modeli uyumsuz (eski) feature mantığıyla eşleştirmez.",{"key":118,"text":148},"Yalnızca model ağırlıkları değiştirilir; preprocessing kodunun tüm model sürümleri boyunca sonsuza dek değişmeden kalması beklenir.",{"key":121,"text":150},"ML için blue-green, modelin yalnızca CPU tabanlı altyapıda deploy edilebileceği, asla GPU'da olamayacağı anlamına gelir.",{"key":124,"text":152},"ML için blue-green, serving ortamıyla ilgisi olmayan, training veri setinin iki ayrı kopyasının tutulmasını gerektirir; bu yüzden salt veri-yönetimi meselesidir ve cutover'ın kendisiyle hiç ilgisi yoktur.","Bir model ve onun eğitildiği feature\u002Fpreprocessing kodu tek bir bağlı birim oluşturur; modeli, eşleşen preprocessing'i geçirmeden geçirmek train-serve skew riski taşır, bu yüzden ikisi de atomik olarak değişmelidir. (b) preprocessing'in asla değişmediğini yanlış varsayar. (c) ve (d), blue-green'in ML için gerçekte gerektirdiğiyle ilgisiz kısıtlamalar tanımlar.",{"id":155,"topic":9,"difficulty":111,"body":156,"options":157,"correct_key":121,"explanation":166},"019f94fd-6995-7b43-8f24-a30042e0a60f","Temel düzeyde, bir model A\u002FB testi nedir?",[158,160,162,164],{"key":115,"text":159},"Deterministik olup olmadığını kontrol etmek için aynı modeli aynı girdi üzerinde iki kez çalıştırmak.",{"key":118,"text":161},"Deploy öncesinde bir modelin training set ile validation set üzerindeki accuracy'sini karşılaştırmak.",{"key":121,"text":163},"Kullanıcıları veya trafiği rastgele ayrık gruplara bölmek, her grubu farklı bir model sürümüyle servis etmek ve gruplar arasında bir sonuç metriğini karşılaştırmak.",{"key":124,"text":165},"Yalnızca ağ gecikmesi farklarını ölçmek için bir modeli iki farklı bulut bölgesine deploy etmek.","Modeller için A\u002FB testi, gerçek trafiği iki (veya daha fazla) model varyantına rastgele atar ve production'da hangisinin daha iyi performans gösterdiğine karar vermek için gruplar arasında tanımlı bir sonuç metriğini karşılaştırır. (a) varyantları karşılaştırmakla ilgisiz bir determinizm kontrolünü anlatır. (b) çevrimdışı train\u002Fvalidation değerlendirmesini anlatır. (d) bir model karşılaştırması değil, bir latency benchmark'ını anlatır.",{"id":168,"topic":9,"difficulty":142,"body":169,"options":170,"correct_key":118,"explanation":179},"019f94fd-6997-775b-876a-1e72443bee43","ML model deployment bağlamında bir 'rollback trigger' nedir?",[171,173,175,177],{"key":115,"text":172},"Bir geliştiricinin deployment'tan günler sonra gelecekteki bir code review talep etmek için açtığı manuel bir ticket.",{"key":118,"text":174},"İzlenen bir metriğin bir eşiği aşması gibi önceden tanımlanmış bir koşul; bu koşul serving sistemini otomatik veya yarı-otomatik olarak bilinen en son sağlıklı model sürümüne geri döndürür.",{"key":121,"text":176},"Bir kez ayarlandığında tüm gelecekteki deployment'ları kalıcı olarak devre dışı bırakan bir konfigürasyon flag'i.",{"key":124,"text":178},"Mevcut performanstan bağımsız olarak modeli sıfırdan yeniden eğiten zamanlanmış bir gece işi; izlenen herhangi bir metrik veya eşikle hiçbir bağlantısı yoktur.","Bir rollback trigger, somut, izlenen bir koşulu (hata oranı sıçraması, latency regresyonu, drift alarmı vb.) otomatik ya da onay gerektiren bir geri alma aksiyonuna bağlar; böylece bozulmuş davranış uzun süre sürmez. (a) otomasyonu olmayan ilgisiz bir manuel süreci anlatır. (c) ve (d) kötü bir deployment'ı geri almayan ilgisiz mekanizmalardır.",{"id":181,"topic":9,"difficulty":111,"body":182,"options":183,"correct_key":115,"explanation":192},"019f94fd-6999-722e-a7e0-42a402c421af","'Multi-model serving' (veya model routing) ne anlama gelir?",[184,186,188,190],{"key":115,"text":185},"Birden fazla model sürümü aynı anda tek bir serving katmanının arkasında çalışır ve bir router, gelen her isteği trafik ağırlığı, kullanıcı segmenti veya request tipi gibi kurallara göre uygun sürüme yönlendirir.",{"key":118,"text":187},"Production'da her zaman yalnızca bir model sürümü bulunabilir ve yeni bir sürümün serving'e devam edebilmesi için onu tamamen değiştirmesi gerekir.",{"key":121,"text":189},"Tek bir model, sadece yükü eşit paylaşmak için hiçbir sürüm farkı olmadan birden fazla özdeş replica'ya kopyalanır.",{"key":124,"text":191},"Toplam training süresini azaltmak için aynı GPU'da birden fazla modeli eşzamanlı eğitmek.","Multi-model serving\u002Frouting, özellikle birden fazla farklı model sürümünü (veya varyantını) aynı anda servis etmek ve tanımlı kurallara göre request'leri aralarında yönlendirmekle ilgilidir. (b) tam tersini, yalnızca tek-sürümlü serving'i anlatır. (c) sürümler arası hiçbir yönlendirme olmadan tek özdeş modelin sade yük dengeli replicalarını anlatır. (d) serving ile ilgisi olmayan bir training-zamanı kavramını anlatır.",{"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]