This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Saturday, 22 November 2025
بحثنا عن "دليل الانتشار" ولم نحصل على شيء، على الرغم من أن هناك مقالة عن "النشر إلى الإنتاج" RAG (الجيل المدمج في إعادة التوازن) يحل هذا من خلال فهم المعنى، وليس مجرد كلمات مفتاحية. هذه السلسلة تظهر لكم كيف جاء RAG، وكيف يعمل تحت الغطاء، وكيف يبني أنظمة الإنتاج. من البحث الدلالي إلى AI- Q&A مع الاستشهادات - كل مع العمل C# رمز الأمثلة.
مجموعة القواعد النموذجية للملاحة: هذا هو الجزء الأول من سلسلة RAG (الجيل المستأنف):
تم تطوير RAG لجعل AI أكثر ذكاءاً - منح LLLMs الوصول إلى المعلومات التي لم يتم تدريبهم عليها. ولكن هنا ما هو مثير للاهتمام: التكنولوجيا تفتح فرصاً أبعد بكثير من AI tashabots. إنها تقوى البحث الدلالي على مواقع الإنترنت، توصية المحتوى، مساعدة الكتابة، وإدارة المعرفة.
الطابع المزدوج: RAG يمكن أن تساعد العملاء (بحث أفضل، إجابات دقيقة مع إشارات) أو تستغلهم (توصيات متلاعبة، دفن مراجعات سلبية، تصفح المحتوى البيعي). الفرق ليس التكنولوجيا - بل القصد. بحث دلالي يساعد المستخدمين على العثور على ما يحتاجون إليه فعلاً؟ عظيم. واحد يعطي الأولوية لما يجعلك أكثر مالاً بينما تبدو مفيداً؟ هذه منطقة نمط مظلمة، وهو السبب في فهم كيفية عمل هذا المهم.
هذه هي الحقيقة حول RAG: يبدو الأمر مخيفاً. مزجات الفيروسات؟ نماذج المحولات؟ مخابئ KV؟ ولكن مثل كل شيء آخر في البرمجيات، الأمر يتعلق فقط بفهم كيف يعمل. لا تحتاج إلى معرفة الرياضيات وراء هندسة المحولات أكثر مما تحتاج إلى فهم التجميع لكتابة C#.
في ثلاث خطوات:
هذه هي، الباقي هو تفاصيل التنفيذ
هذه السلسلة تظهر لكم كيفية بناء أنظمة RAG مع C# code. لا تمويه لليد. لا افتراضات. فقط القطع وكيف تتلائم.
ما سوف تتعلمه في هذه السلسلة:
وفي وقت لاحق، سأريكم أيضاً كيفية بناء أنظمة RAG كاملة بما في ذلك:
الجيل المستخلص من الانتقاص من الانتقـال: اعثر على المعلومات ذات الصلة، ثم استخدمها.
flowchart LR
A[User Question] --> B[Retrieve Relevant Info]
B --> C[Retrieved Documents/Context]
C --> D[Generate Response]
A --> D
D --> E[Grounded, Accurate Answer]
style B stroke:#f9f,stroke-width:2px
style D stroke:#bbf,stroke-width:2px
بدون RAG: يَسْألُ المستخدمُ TM LL تخمينات من الذاكرة / قد يُهَوْسِن
مع RAG: يَسْألُ المُسْتَطِر ابحث عن أجوبة وثيقة ذات صلة عن LLLم باستخدام تلك dos o مستندة إلى الواقع
// Without RAG: Hope the LLM knows
var answer = await llm.GenerateAsync("How do I deploy Docker?");
// Risk: Might make up outdated or wrong steps
// With RAG: Give it the docs
var relevantDocs = await vectorSearch.FindSimilar("How do I deploy Docker?");
var context = string.Join("\n", relevantDocs.Select(d => d.Text));
var answer = await llm.GenerateAsync($"Context: {context}\n\nQuestion: How do I deploy Docker?");
// Result: Answer based on YOUR actual Docker deployment docs
البصيرة الرئيسية: معلومات منفصلة تخزين (بحث) من المنطق (LLLM) تحديث documentsك، البحث يبقى جاريًا، لا حاجة لإعادة التدريب.
يقوم RAG على عقود من البحث والبحوث NLP. فهم هذا التاريخ يساعدك على تقدير لماذا تم تصميم RAG بالطريقة التي هي عليها - وما هي المشاكل التي تحلها.
3- البحث المستند إلى كلمات رئيسية:
المشكلة: هذا مُطابق **لا، لا أولاً - مقدمةابحثوا عن "الإنتقال بالحاويات" ولن تجدوا "السوكارم" إلا إذا ظهرت تلك الكلمات الدقيقة
واتسون (IBM، 2011):
نماذج قراءة القراءة:
محولات (2017): "الاهتمام هو كل ما تحتاج اليه"
المقرر (2018):
GPT-2/3 (2019/2020):
كائنات متجه دالة:
BART (Facebook AI، تشرين الأول/أكتوبر 2019):
M2M-100 (Facebook AI، تشرين الأول/أكتوبر 2020):
مثال العالم الحقيقي: مـا مـا م أداة ترجمة آلية وتستخدم شركة BART كنموذج للترجمة الاحتياطية عندما تكون الخدمات الأولية غير متاحة، مما يبين كيف أصبحت هذه النماذج القائمة على المحولات لبنات بناء عملية لنظم الإنتاج.
" المادة الأساسية "الجيل المعزز من أجل المهام المكثفة للمعرفة" قام باتريك لويس وآخرون (Facebook AI Research) رسميا بإدخال RAG، المبنية مباشرة على BART:
ما جمعوه معاً:
النتائج: وتفوقت نظم RAG في أداء نماذج أكبر بكثير بشأن المهام الكثيفة الاستخدام للمعرفة في الوقت الذي تكون فيه أكثر كفاءة وتحديثاً، ويمكنك تحديث قاعدة المعارف دون إعادة تدريب النموذج.
وقد جعل كل من شاتغبت، وGPT-4، وكلود RAG أمراً أساسياً:
اليوم (2024-2025): وهي المعيار الواقعي لنظم الإنتاج التي تحتاج إلى الدقة والقابلية لمراجعة الحسابات.
قبل الغوص بعمق في التفاصيل التقنية (التي سنغطيها في الجزء 2)، دعونا نفهم تدفق العمل العالي المستوى.
تعمل نظم RAG في ثلاث مراحل متميزة:
flowchart LR
A[Your Documents] --> B[Split into Chunks]
B --> C[Generate Embeddings]
C --> D[Store in Vector DB]
style C stroke:#f9f,stroke-width:2px
style D stroke:#bbf,stroke-width:2px
ما يحدث:
المفهوم الرئيسي: وتنتج المعاني المماثلة متجهات متشابهة، وبالتالي ينتهي المطاف بـ "حاوية Docker" و"منصة الإحتواء" في الفضاء القريب معاً في الفضاء المتجه.
flowchart LR
A[User Question] --> B[Generate Query Embedding]
B --> C[Search Vector DB]
C --> D[Top K Most Similar Chunks]
style B stroke:#f9f,stroke-width:2px
style C stroke:#bbf,stroke-width:2px
ما يحدث:
سبب عمله: "كيف يمكنني نشر الحاويات؟" (الضغط) هي من الناحية الدلالية مشابهة للقطع حول انتشار Docker، حتى لو كانت الكلمات الدقيقة مختلفة.
flowchart TB
A[User Question] --> B[Build Prompt]
C[Retrieved Context] --> B
B --> D[LLM]
D --> E[Generated Answer with Citations]
style B stroke:#f9f,stroke-width:2px
style D stroke:#bbf,stroke-width:2px
ما يحدث:
:السحر: LLLL لا يمكن أن يهلوس الحقائق التي ليست في السياق. يمكن فقط أن تجمّع وتوضّح ما هو مقدّم.
دعونا نتتبع اعلاماً من خلال النظام:
هذا الأمر: "كيف يمكنني استخدام Doker Compruus؟"
الخطوة 1 - الاستعادة:
Query embedding: [0.234, -0.891, 0.567, ...]
Search vector DB for similar embeddings...
Retrieved chunks:
1. "Docker Compose is a tool for defining multi-container applications..." (similarity: 0.92)
2. "To use Docker Compose, create a docker-compose.yml file..." (similarity: 0.87)
3. "The docker-compose up command starts all services..." (similarity: 0.83)
الخطوة 2 - جيل:
Prompt to LLM:
"Context:
[1] Docker Compose is a tool for defining multi-container applications...
[2] To use Docker Compose, create a docker-compose.yml file...
[3] The docker-compose up command starts all services...
Question: How do I use Docker Compose?
Answer (use the context above):"
LLM Response:
"To use Docker Compose [1], start by creating a docker-compose.yml file [2] that
defines your services. Then run 'docker-compose up' to start all services [3]..."
النتيجة: جواب دقيق مع إشارات ضمنية من وثائقك.
ويتطلب فهم الوقت الذي تستخدم فيه RAG (ومتى لا تستخدم) مقارنته بالبدائل.
RAG RAG SPLOS |--------|-----|-------------| | المعلومات المحدثات * فوري (تُحدّث قاعدة المعارف) يحتاج إلى إعادة تدريب * | **** مستوى منخفض (تخزين + غرس) مستوى عال (الزمن التدريبي لمعدّل التركيز الإجمالي) | **** □ مُسْطَرَة في المصادر □ يمكن ان تُهَلْسَكِنْ □ □ □ | التروية □ مقيّد للاسترجاع □ تكيّف نموذج عميق | **** □ عالية (يمكن الرجوع إلى المصادر) منخفضة (الصندوق الأسود) □ منخفضة (الصندوق الأسود) □ | للأفضل (أ) المهام القائمة على كثافة المعارف
متى إلى استخدام:
وقت استخدام الرافعة:
هل يمكنك الجمع بين الاثنين؟ أجل، إنّها مُتقنة للأسلوب، مُقلّدة للحقائق.
تتباهى LLLs الحديثة بنوافذ سياقية ضخمة (GPT-4: 128K رمزية، كلود: 200K رمزية). لماذا لا مجرد إلقاء جميع وثائقك في السياق؟
المشاكل ذات السياق الطويل:
عندما يكون السياق الطويل منطقياً:
عندما يكون الشعار منطقياً:
الممارسات الفضلى: استخدم RAG لانتقاء المحتوى الأكثر صلة، ثم استخدم السياق الطويل لتلك المجموعة الفرعية.
والحض على عدد قليل من الطلقات (تقديم أمثلة في السرعة) هو خط أساس بسيط.
مقدم العرض:
Examples:
Q: What is Docker?
A: Docker is a containerization platform...
Q: How does Kubernetes work?
A: Kubernetes orchestrates containers...
Q: What is my new question?
A: [LLM generates answer]
القيود:
تحسين المجموعة:
يمكنك أن تفكر في RAG على أنه "القليل من لقطة الحث على مقياس."
يمكنك دمج RAG مع بحث النص الكامل التقليدي باستخدام RRRF.
لماذا هجين؟
public async Task<List<SearchResult>> HybridSearchAsync(string query)
{
// Run both searches in parallel
var semanticTask = SemanticSearchAsync(query, limit: 20);
var keywordTask = KeywordSearchAsync(query, limit: 20);
await Task.WhenAll(semanticTask, keywordTask);
var semanticResults = await semanticTask;
var keywordResults = await keywordTask;
// Combine using Reciprocal Rank Fusion
return ApplyRRF(semanticResults, keywordResults);
}
private List<SearchResult> ApplyRRF(
List<SearchResult> list1,
List<SearchResult> list2,
int k = 60)
{
var scores = new Dictionary<string, double>();
// Score from first list
for (int i = 0; i < list1.Count; i++)
{
var id = list1[i].Id;
scores[id] = scores.GetValueOrDefault(id, 0) + 1.0 / (k + i + 1);
}
// Score from second list
for (int i = 0; i < list2.Count; i++)
{
var id = list2[i].Id;
scores[id] = scores.GetValueOrDefault(id, 0) + 1.0 / (k + i + 1);
}
// Merge and sort by combined score
var allResults = list1.Concat(list2)
.GroupBy(r => r.Id)
.Select(g => g.First())
.OrderByDescending(r => scores[r.Id])
.ToList();
return allResults;
}
الآن بما أنكم تفهمون ما هو RAG، من أين جاء، وكيف يقارن بالبدائل،
1 - إضفاء الطابع الديمقراطي على منظمة العفو الدولية
2 - الدقة العملية
3 - دائماً إلى وقت المواعدة
4 - الخصوصية والسيطرة
٥ - التكاليف
6 - التطبيقات العرسانية
لقد تتبعنا تطور RAG:
ثانياً - الآراء الرئيسية المستمدة من الجزء 1:
النموذج العقلي الثلاثي الخطوات:
كل ما عدا ذلك هو الاستخدام الأمثل.
أنت الآن تفهم ما هو RAG هو، ألف - أسباب السبب في ما يتعلق بمسائلها، حيث أُدرج لكن كيف يعمل تحت الغطاء؟
داخل **الجزء 2: الهيكل والداخليات**نتعمق في التفاصيل التقنية:
مشروع خط أساس المشروع الكامل:
LLLL::
(أ) عمليات الغطس العميق التقني:
مواصلة الجزء الثاني: الهندسة المعمارية والداخلية
بعد الجزء 2، ستكونون مستعدين للجزء 3، حيث نبني أنظمة حقيقية، ونحل التحديات المشتركة، ونستكشف تقنيات متقدمة مثل هايدي،
أولاً - معلومات أساسية:
اقرأ المزيد:
التالي في سلسلة هذه السلسلة:
© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.