[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ai-engineer\u002Frag-retrieval":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","","rag-retrieval","Rag Retrieval","tr",75,2025,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,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":37,"name":38,"count":11},"aimlops-model-versioning-registry","Aimlops Model Versioning Registry",{"key":40,"name":41,"count":11},"aipy-async-concurrency-ml-serving","Aipy Async Concurrency Ml Serving",{"key":43,"name":44,"count":11},"aipy-data-pipeline-dataloader","Aipy Data Pipeline Dataloader",{"key":46,"name":47,"count":11},"aipy-gpu-memory-management","Aipy Gpu Memory Management",{"key":49,"name":50,"count":11},"aipy-numpy-vectorization-broadcasting","Aipy Numpy Vectorization Broadcasting",{"key":52,"name":53,"count":11},"aipy-python-ml-packaging-environments","Aipy Python Ml Packaging Environments",{"key":55,"name":56,"count":11},"aipy-tensor-ops-autograd","Aipy Tensor Ops Autograd",{"key":58,"name":59,"count":11},"embeddings-vector-search","Embeddings Vector Search",{"key":61,"name":62,"count":11},"evaluation-testing","Evaluation Testing",{"key":64,"name":65,"count":11},"fine-tuning-adaptation","Fine Tuning Adaptation",{"key":67,"name":68,"count":11},"inference-serving","Inference Serving",{"key":70,"name":71,"count":11},"llm-fundamentals","Llm Fundamentals",{"key":73,"name":74,"count":11},"prompt-engineering","Prompt Engineering",{"key":76,"name":77,"count":11},"rag-chunking-indexing","Rag Chunking Indexing",{"key":79,"name":80,"count":11},"rag-embeddings-similarity","Rag Embeddings Similarity",{"key":82,"name":83,"count":11},"rag-evaluation","Rag Evaluation",{"key":85,"name":86,"count":11},"rag-generation-context","Rag Generation Context",{"key":88,"name":89,"count":11},"rag-reranking-fusion","Rag Reranking Fusion",{"key":8,"name":9,"count":11},{"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":115,"explanation":126},"019f5912-465d-7e9b-9ccc-b741f5db7c40",1,"LLM tabanlı uygulamalar bağlamında RAG (Retrieval-Augmented Generation), temelde ne anlama gelir?",[114,117,120,123],{"key":115,"text":116},"a","Sistem ilgili dış içeriği getirir ve modelin bunu kullanarak cevap verebilmesi için prompt'a ekler.",{"key":118,"text":119},"b","Model yeni dokümanlarla yeniden eğitilir, böylece bilgi kalıcı olarak ağırlıklara kodlanır.",{"key":121,"text":122},"c","Model, farklı sampling koşularıyla birden fazla aday cevap üretir ve daha kararlı bir sonuç için bunları ortalar.",{"key":124,"text":125},"d","Sistem önceki cevapları saklar ve benzer bir soru geldiğinde önbellekteki cevabı tekrar döndürür.","RAG, retrieval'i generation ile birleştirir: ilgili dokümanlar getirilir ve model cevap vermeden önce context'e yerleştirilir. (b) fine-tuning'i tarif eder, RAG değil. (c) retrieval ile ilgisi olmayan bir ensembling\u002Fself-consistency tekniğidir. (d) kaynak içerik getirmeyen bir cevap önbellekleme yöntemidir.",{"id":128,"topic":9,"difficulty":111,"body":129,"options":130,"correct_key":118,"explanation":139},"019f5912-465e-7709-b0a5-f61033585bb6","Bir ekibin iç dokümantasyonu her hafta değişiyor. Bu ekip, sadece modelin gömülü bilgisine güvenmek yerine neden RAG'ı tercih edebilir?",[131,133,135,137],{"key":115,"text":132},"RAG her generation adımını hızlandırır çünkü retrieval, token decode etmekten daha az işlem gerektirir.",{"key":118,"text":134},"RAG, sistemin sorgu anında güncel dokümantasyonu getirmesini sağlar, böylece cevaplar yeniden eğitim olmadan güncellemeyi yansıtır.",{"key":121,"text":136},"RAG, modelin dili anlama ihtiyacını tamamen ortadan kaldırır, çünkü sadece getirilen pasajı olduğu gibi tekrar eder.",{"key":124,"text":138},"RAG prompt'u kısaltır çünkü getirilen pasajlar system instruction ihtiyacının yerini alır.","RAG'ın temel değeri, yeniden eğitim gerektirmeden güncellik sağlamasıdır: alttaki dokümanlar değiştirilir, bir sonraki sorgu güncellemeyi yansıtır. (a) yanlış — retrieval bir adım ekler, decode'un yerine geçmez. (c) yanlış — model getirilen metni yine de okuyup üzerinde akıl yürütmek zorundadır. (d) getirilen içeriği system instruction ile karıştırır, bunlar farklı amaçlara hizmet eder.",{"id":141,"topic":9,"difficulty":111,"body":142,"options":143,"correct_key":121,"explanation":152},"019f5912-465f-7045-ad29-68bdf3521f19","Aşağıdakilerden hangisi tipik bir RAG pipeline'ının aşamalarını doğru sırayla tanımlar?",[144,146,148,150],{"key":115,"text":145},"generate, retrieve, chunk, embed, index, augment, ingest",{"key":118,"text":147},"embed, ingest, augment, chunk, retrieve, index, generate",{"key":121,"text":149},"ingest, chunk, embed, index, retrieve, augment, generate",{"key":124,"text":151},"index, chunk, ingest, retrieve, embed, augment, generate","Dokümanlar önce ingest edilir, chunk'lara bölünür, embedding'e dönüştürülür ve bir index'te saklanır; sorgu anında sistem ilgili chunk'ları retrieve eder, prompt'u bunlarla augment eder ve cevabı generate eder. Bu sırayı tersine çevirmek (diğer şıklarda olduğu gibi) bağımlılığı bozar — chunk'lamadan önce embed edilemez, ya da index'lemeden önce retrieve yapılamaz.",{"id":154,"topic":9,"difficulty":155,"body":156,"options":157,"correct_key":118,"explanation":166},"019f5912-4660-7121-90c2-6d1cd7f663fa",2,"Junior bir mühendis, dokümanları embed etmeden önce çok büyük parçalara (ör. tüm bölümler) chunk'lıyor. Bu, retrieval sırasında en olası hangi soruna yol açar?",[158,160,162,164],{"key":115,"text":159},"Embedding adımı tamamen başarısız olur ve hata verir, çünkü büyük metin girdileri model tarafından hiç embed edilemez.",{"key":118,"text":161},"Her chunk birçok konuyu bir arada barındırır, bu yüzden dar bir sorgu bile çoğu alakasız çevre metni birlikte getirir.",{"key":121,"text":163},"Vector index, belirli bir karakter sayısının üzerindeki chunk'ları saklamayı reddeder.",{"key":124,"text":165},"Retrieval, chunk'ları alaka düzeyine göre sıralamak yerine rastgele bir sırada döndürür.","Büyük chunk'lar birden fazla konuyu tek bir embedding'de karıştırır, odağını sulandırır; bu yüzden belirli bir sorgu chunk'ı genel olarak eşleştirir ama cevap çoğu alakasız metnin içine gömülü kalır — bu da context'i israf eder ve isabetliliği düşürür. (a) burada yanlış: hiçbir şey hata vermiyor — retrieval çalışıyor, yalnızca isabetsiz. (Limit aşan girdinin reddedilmesi mi yoksa kesilmesi mi, ingest aşamasına ait ve sağlayıcıya göre değişen ayrı bir konudur; buradaki retrieval belirtisi değil.) (c) ve (d) chunk boyutuna doğası gereği bağlı olmayan başarısızlıkları tarif eder.",{"id":168,"topic":9,"difficulty":155,"body":169,"options":170,"correct_key":124,"explanation":179},"019f5912-4660-7cb7-b3dd-3e2caddd06e4","Başka bir ekip, dokümanları tek cümlelik gibi çok küçük parçalara chunk'lıyor. Bu genellikle hangi dezavantajı ortaya çıkarır?",[171,173,175,177],{"key":115,"text":172},"Embedding modeli, cümle uzunluğundaki girdileri işlemek için çok kısa bularak reddeder.",{"key":118,"text":174},"Depolama maliyeti o kadar düşer ki index'i sürdürmek pratikte bedavaya gelir.",{"key":121,"text":176},"Retrieval, yapılandırılan top-k ne olursa olsun her zaman tam olarak tek bir chunk döndürür.",{"key":124,"text":178},"Tekil chunk'lar çevresindeki bağlamı kaybeder, bu yüzden getirilen bir cümle çevresindeki metin olmadan belirsiz olabilir.","Çok küçük chunk'lar genellikle bir cümlenin bağlı olduğu bağlamı (örneğin \"o\" ya da \"bu değer\" neyi ifade ediyor) koparır, bu yüzden model teknik olarak en benzer metin olsa bile izole bir parçayı yanlış yorumlayabilir. (a) yanlış — kısa girdiler sorunsuz embed edilir. (b) gerçek ama ikincil bir etkiyi abartır (daha fazla chunk, depolama\u002Findex maliyetini azaltmaz artırır). (c) chunk boyutuyla ilgisizdir.",{"id":181,"topic":9,"difficulty":155,"body":182,"options":183,"correct_key":115,"explanation":192},"019f5912-4662-72d4-8981-918d6ac6ffd0","```python\ndef chunk_text(text, size=500, overlap=100):\n    chunks = []\n    start = 0\n    while start \u003C len(text):\n        end = start + size\n        chunks.append(text[start:end])\n        start = end - overlap\n    return chunks\n```\nBu chunk'lama fonksiyonu, metni sert, örtüşmeyen sınırlarda kesmek yerine ardışık chunk'lar arasına neden `overlap` ekliyor?",[184,186,188,190],{"key":115,"text":185},"Chunk sınırına yakın metnin bölünüp her iki chunk'tan da kaybolmak yerine en az birinde bütün görünmesini sağlamak için.",{"key":118,"text":187},"Üretilen toplam chunk sayısının her zaman overlap değerinin tam katı olmasını sağlamak için.",{"key":121,"text":189},"Embedding modelinin her chunk'ı biri doğruluk biri hız için iki kez işleyebilmesi için.",{"key":124,"text":191},"Index'lemeden önce yinelenen chunk'ların tespit edilip otomatik olarak kaldırılabilmesi için.","Overlap, bir cümlenin ya da fikrin tam chunk sınırında kesilip iki komşu chunk'ta da eksik görünmesine karşı koruma sağlar; overlap ile çevredeki metin en az bir chunk'ta bütün olarak görünmeye devam eder. (b) overlap'in kontrol ettiği şeyi yanlış tarif eder — sabit bir sayı ilişkisi üretmez. (c) ve (d) overlap'in amacı değildir; çift işleme ya da dedup ile ilgili 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":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]