[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Faimlops-ml-cicd-pipelines":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-ml-cicd-pipelines","Aimlops Ml Cicd Pipelines","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,24,27,30,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":28,"name":29,"count":11},"aimlops-feature-store-data-versioning","Aimlops Feature Store Data Versioning",{"key":8,"name":9,"count":11},{"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":115,"explanation":126},"019f94fd-69eb-7475-8c68-47cbbf00a84d",1,"Bir ML CI\u002FCD pipeline'ında, eğitim\u002Fdeğerlendirme adımından hemen sonra yer alan bir deploy-öncesi validation gate'in temel amacı nedir?",[114,117,120,123],{"key":115,"text":116},"a","Yeni eğitilen model tanımlı metrik eşiklerini geçmedikçe bir sonraki aşamaya ilerlemesini engeller.",{"key":118,"text":119},"b","Eğitilmiş modelin ağırlıklarını sıkıştırarak deploy artifact'ini küçültür.",{"key":121,"text":122},"c","Modelin mimarisine dayanarak eğitim kodunun unit testlerini otomatik yazar, ardından bunları gelecekteki denetimler için model registry içinde zorunlu regresyon artifact'leri olarak arşivler.",{"key":124,"text":125},"d","Model düzeltilmiş hedeflerle yeniden eğitilebilsin diye eğitim verisini yeniden etiketler.","Validation gate bir kontrol noktasıdır: aday modelin metrikleri (accuracy, latency vb.) tanımlı barı geçmezse pipeline durur ve model daha ileri taşınmaz. (b) model sıkıştırmayı, (c) test üretimini, (d) yeniden etiketlemeyi anlatır — bunların hiçbiri bir validation gate'in yaptığı şey değildir.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":124,"explanation":139},"019f94fd-69ec-70e8-b3c8-4eb9e34bb54a","Bir ML pipeline üç retraining tetikleyici tipini destekliyor: sabit bir zamanlama (örn. haftalık), bir mühendisin manuel tetiklemesi ve gelen feature verisi eğitim dağılımından saptığında ateşlenen otomatik bir tetikleyici. Hangisi 'drift tabanlı' olandır?",[131,133,135,137],{"key":115,"text":132},"Sabit haftalık zamanlama, çünkü drift doğal olarak bir hafta boyunca birikir.",{"key":118,"text":134},"Manuel tetikleyici, çünkü drift'i herhangi bir sistemden önce bir insan fark eder.",{"key":121,"text":136},"Üçünden hiçbiri; drift tespiti retraining tetikleyicileriyle ilgisizdir, çünkü drift yalnızca veri bilimcilerin dashboard'ları manuel incelemesiyle keşfedilir.",{"key":124,"text":138},"Gelen feature verisi eğitim-zamanı dağılımından saptığında ateşlenen otomatik tetikleyici.","Drift tabanlı bir tetikleyici, prod girdi verisini eğitim dağılımına karşı izler ve sapma bir eşiği aştığında retraining'i otomatik ateşler. (a) zaman tabanlıdır, dağılım tabanlı değil. (b) insan başlatmalıdır, otomatik değil. (c) drift tetikleyicilerinin var olduğunu yanlış biçimde inkar ediyor.",{"id":141,"topic":9,"difficulty":142,"body":143,"options":144,"correct_key":118,"explanation":153},"019f94fd-69ee-74ab-8be9-dfb9da07a385",2,"Bir deploy gate'i, aday modelin accuracy'sinin mevcut production modelinin accuracy'sinden en fazla 0,01 düşük olmasını şart koşuyor. Production accuracy 0,90. Aday model 0,885 skorluyor. Aday gate'i geçer mi?",[145,147,149,151],{"key":115,"text":146},"Evet, çünkü 0,885 yukarı yuvarlanınca 0,89 olur, bu da minimumu tam karşılar.",{"key":118,"text":148},"Hayır, çünkü kabul edilebilir minimum accuracy 0,90 - 0,01 = 0,89'dur ve 0,885 bunun altındadır.",{"key":121,"text":150},"Evet, çünkü production modelleri için 0,80 üzeri her accuracy kabul edilebilir sayılır.",{"key":124,"text":152},"Hayır, çünkü adayın production accuracy'sini sadece yaklaşmakla değil kesin olarak geçmesi gerekir.","min_kabul = 0,90 - 0,01 = 0,89; adayın 0,885'i 0,89'un altında, bu yüzden gate başarısız olur. (a) gate'in kullanmadığı bir yuvarlama kuralı uyduruyor. (c) ilgisiz sabit bir eşik uyduruyor. (d) gate'in kuralını kesin iyileşme gerektiriyormuş gibi yanlış tarif ediyor.",{"id":155,"topic":9,"difficulty":142,"body":156,"options":157,"correct_key":124,"explanation":166},"019f94fd-69ee-7cf6-8b44-49ca31f578da","Bir latency gate'i, p95 inference latency'sinin en fazla 200ms olmasını şart koşuyor. Aday modelin load test'i p95 = 215ms raporluyor. Gate ne yapar?",[158,160,162,164],{"key":115,"text":159},"Adayı geçirir, çünkü 215ms, 200ms limitinin %10'u içindedir.",{"key":118,"text":161},"Adayı geçirir, çünkü p95 latency yalnızca production modeli için önemlidir, adaylar için değil.",{"key":121,"text":163},"215ms'i önceki modelin p95'i ile ortalar ve bu ortalamayı 200ms ile karşılaştırır.",{"key":124,"text":165},"Adayı başarısız sayar, çünkü 215ms 200ms eşiğini aşıyor, ve deploy'u engeller.","215ms > 200ms olduğundan gate koşulu (p95 \u003C= 200ms) sağlanmaz ve aday deploy edilmekten engellenir. (a) gate'in sahip olmadığı bir tolerans bandı uyduruyor. (b) gate'i yanlış uyguluyor; gate'in amacı adayı promosyon öncesi kontrol etmektir. (c) ilgisiz bir ortalama adımı uyduruyor.",{"id":168,"topic":9,"difficulty":111,"body":169,"options":170,"correct_key":115,"explanation":179},"019f94fd-69ef-7656-ade4-e6b71429300a","Bir ML CI\u002FCD pipeline'ında 'canary training run' nedir?",[171,173,175,177],{"key":115,"text":172},"Tam ölçekli eğitim işine geçmeden önce pipeline hatalarını yakalamak için önce çalıştırılan, hızlı ve küçük ölçekli bir eğitim işi (daha az epoch veya veri örneği).",{"key":118,"text":174},"Canlı trafiğin küçük bir yüzdesini yeni bir model versiyonuna yönlendiren bir production deploy stratejisi, hata oranları ve latency sabit bir gözlem penceresi boyunca kabul edilebilir sınırlarda kaldıktan sonra bu yüzdeyi kademeli olarak artırır.",{"key":121,"text":176},"Gelen her yeni kayıt üzerinde modeli sürekli yeniden eğiten bir arka plan işi.",{"key":124,"text":178},"Eğitim pipeline'ına yapılan değişiklikleri merge etmeden önce yapılan manuel kod incelemesi adımı.","Canary training run, gerçek işe tam compute harcamadan önce bozuk config'leri, çöken kodu veya bozuk veriyi erken açığa çıkaran, eğitim pipeline'ının ucuz bir kuru-çalıştırmasıdır (küçük veri alt kümesi, daha az adım). (b) canary *deployment*'ı anlatır, farklı bir kavram. (c) sürekli\u002Fonline eğitimi anlatır. (d) kod incelemesini anlatır, eğitim run'larıyla ilgisizdir.",{"id":181,"topic":9,"difficulty":111,"body":182,"options":183,"correct_key":118,"explanation":192},"019f94fd-69ef-7df9-9852-4c7138bc6627","Bir ML CI\u002FCD pipeline'ı, eğitim aşamasından önce genellikle neden bir veri şema doğrulama adımı içerir?",[184,186,188,190],{"key":115,"text":185},"Eğitim başlamadan önce eğitim veri setindeki yanlış etiketleri otomatik düzeltmek için, hangi satırların üzerine yazılacağına ayrı bir etiketleme modelinden hesaplanan bir güven skoruna göre karar vererek.",{"key":118,"text":187},"Sütun tiplerindeki, eksik sütunlardaki veya shape uyuşmazlıklarındaki beklenmedik değişiklikleri, eğitimi sessizce bozmadan veya yanlılık katmadan önce yakalamak için.",{"key":121,"text":189},"Eğitim sırasında daha az disk alanı kaplasın diye ham veri setini sıkıştırmak için.",{"key":124,"text":191},"Veri seti çok küçük olduğunda sentetik eğitim örnekleri üretmek için.","Şema doğrulama, gelen verinin yapısını (sütun adları, tipler, aralıklar) beklenen bir kontrata karşı kontrol eder, böylece sessiz bir upstream değişiklik eğitimi bozmaz veya yanıltıcı bir model üretmez. (a), (c) ve (d) etiket düzeltmeyi, sıkıştırmayı ve veri artırmayı anlatır — bunların hiçbiri şema doğrulamanın yaptığı şey değildir.",{"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]