MODULE 05 / LESSON 40

Cost vs Response Quality در RAG — مدیریت هزینه بدون خراب کردن کیفیت پاسخ

وقتی یک RAG را از حالت Prototype به Production می‌بریم، یک مسئله مهم ظاهر می‌شود: هزینه کمتر ↕ کیفیت پاسخ بهتر هدف مهندس RAG این نیست که همیشه قوی‌ترین مدل را استفاده کند؛ هدف این است که بهترین کیفیت با کمترین هزینه منطقی را پیدا…

نویسنده: محمد ابوطالبی۷۶۰ واژهماژول ۵: Production

وقتی یک RAG را از حالت Prototype به Production می‌بریم، یک مسئله مهم ظاهر می‌شود:

هزینه کمتر
      ↕
کیفیت پاسخ بهتر

هدف مهندس RAG این نیست که همیشه قوی‌ترین مدل را استفاده کند؛ هدف این است که بهترین کیفیت با کمترین هزینه منطقی را پیدا کند.


بزرگ‌ترین هزینه‌ها در RAG

معمولاً دو بخش بیشترین هزینه را دارند:

1. LLM Inference
2. Vector Database

بخش اول: کاهش هزینه LLM

1. استفاده از مدل کوچک‌تر

یکی از ساده‌ترین راه‌ها:

استفاده از مدل‌های کوچک‌تر.

مثلاً:

به جای:

70B Model

استفاده از:

8B Model

اما آیا کیفیت خراب می‌شود؟

همیشه نه.

بعضی کارها نیاز به مدل بزرگ ندارند.

مثلاً:

Router LLM

وظیفه:

آیا نیاز به Retrieval داریم؟
Yes / No

نیازی به GPT بزرگ ندارد.

یک مدل کوچک کافی است.


مثال Agentic RAG

به جای:

GPT-5
 |
 |-- Router
 |-- Query Rewriter
 |-- Evaluator
 |-- Generator
 |-- Citation Generator

می‌توان:

Small LLM
 |
 |-- Router

Small LLM
 |
 |-- Query Rewrite

Large LLM
 |
 |-- Final Answer

استفاده کرد.


2. Quantization مدل

قبلاً دیدیم:

FP16

↓

INT8

↓

INT4

باعث:

  • کاهش VRAM
  • سرعت بیشتر
  • هزینه کمتر

می‌شود.


مثال:

مدل:

Llama 70B FP16

ممکن است:

140GB VRAM

بخواهد.

نسخه:

Llama 70B INT4

ممکن است:

40GB VRAM

کافی باشد.


3. کاهش تعداد Token ورودی

در RAG معمولاً Prompt بزرگ‌ترین بخش هزینه است.

مثلاً:

System Prompt
+
Conversation History
+
Retrieved Chunks
+
User Question

همه Token مصرف می‌کنند.


مثال:

قبل:

Retrieved chunks = 10

هر chunk = 1000 token

Total:
10000 tokens

بعد:

Retrieved chunks = 3

Total:
3000 tokens

هزینه تقریباً یک سوم می‌شود.


4. کاهش Top-K Retrieval

در Vector Search:

مثلاً:

Top K = 20

یعنی:

20 Chunk به LLM بده.


اما شاید:

Top K = 5

همان کیفیت را بدهد.


پس باید تست کنیم:

K=20

↓

K=10

↓

K=5

و با Evaluation ببینیم.


5. کوتاه کردن پاسخ خروجی

بعضی LLMها خیلی توضیح می‌دهند.

ولی:

هر Token خروجی = هزینه.


راهکار:

System Prompt:

Answer concisely.
Avoid unnecessary explanations.

یا:

تنظیم:

max_tokens

مثلاً:

قبل:

1000 output tokens

بعد:

300 output tokens

6. Fine-tuning مدل کوچک

گاهی:

یک مدل کوچک Fine-tune شده بهتر از مدل بزرگ عمومی عمل می‌کند.

مثلاً:

کار:

Customer Support Classification

نیاز به GPT بزرگ ندارد.

یک:

7B Fine-tuned model

می‌تواند کافی باشد.


بخش دوم: کاهش هزینه Vector Database

Vector Database سه نوع حافظه دارد:

RAM
Disk
Object Storage

مقایسه هزینه

RAM

سریع‌ترین:

Latency ↓
Cost ↑↑↑

Disk

وسط:

Latency متوسط
Cost متوسط

Object Storage

مثل:

S3

ارزان:

Cost ↓↓↓
Speed ↓

چه چیزی کجا ذخیره شود؟

همه چیز را نباید RAM کنیم.


مثلاً:

HNSW Index

باید RAM باشد.

چون:

ANN Search

به سرعت نیاز دارد.


اما:

Document Content

لازم نیست همیشه RAM باشد.

می‌تواند:

Disk
یا
Object Storage

باشد.


معماری بهتر:

              RAM

          HNSW Index


              |

          Disk

      Frequently Used Docs


              |

      Object Storage

       Rare Documents

Multi-Tenancy برای کاهش هزینه

Multi-tenancy یعنی:

تقسیم داده‌ها بر اساس کاربر یا سازمان.


مثال:

یک SaaS داریم:

1000 customers

هر customer:
1000 documents

به جای:

یک Index بزرگ:

1,000,000 vectors

داریم:

Tenant A
   |
 HNSW


Tenant B
   |
 HNSW


Tenant C
   |
 HNSW

مزیت:

وقتی کاربر Login کرد:

فقط Vectorهای همان کاربر را Load کنیم.


مثلاً:

صبح:

کاربران اروپا:

RAM

شب:

منتقل شوند:

Disk

Dedicated Hardware برای LLM

در ابتدا:

استفاده از API:

مثلاً:

OpenAI API
AWS Bedrock
Together AI

خوب است.


اما در Scale بالا:

هزینه Token زیاد می‌شود.


راهکار:

اجاره GPU:

مثلاً:

A100
H100
L40S

و اجرای مدل خودمان.


مدل هزینه:

API:

Pay per token

Dedicated GPU:

Pay per hour

در حجم بالا:

GPU اختصاصی ارزان‌تر می‌شود.


یک معماری بهینه Production

مثلاً:

                 User

                  |

          Query Router
          Small LLM

                  |

          Query Rewrite
          Small LLM

                  |

          Vector Search

                  |

          Reranker

                  |

          Top 5 Chunks

                  |

          Large LLM
          Answer Generation

                  |

              Response

Trade-off واقعی

مثلاً:

گزینه A

مدل بزرگ:

GPT-5 class
TopK=20
No optimization

Quality: 95%
Cost: $$$$

گزینه B

بهینه:

Small Router
TopK=5
Reranker
Quantized LLM

Quality: 92%
Cost: $

در Production معمولاً گزینه B بهتر است.


فرآیند درست بهینه‌سازی

نباید حدس بزنیم.

روش درست:

مرحله 1

اندازه‌گیری:

Latency
Cost
Quality

مرحله 2

یک تغییر بده:

مثلاً:

TopK 20 → 5

مرحله 3

Evaluation:

بررسی:

Faithfulness
Answer relevance
User feedback

مرحله 4

تصمیم:

آیا کاهش هزینه ارزش افت کیفیت را دارد؟


خلاصه نهایی

برای کاهش هزینه RAG:

بخش تکنیک
LLM مدل کوچک‌تر
LLM Quantization
LLM کاهش Token
RAG کاهش Top-K
LLM Fine-tune مدل کوچک
Vector DB Quantized vectors
Vector DB RAM فقط برای داده مهم
Vector DB Disk/Object Storage
Scale بالا Dedicated GPU
Multi User Multi-tenancy

اصل مهم:

بهترین RAG، قوی‌ترین RAG نیست؛ RAGای است که با کمترین هزینه، کیفیت کافی برای نیاز واقعی کاربر را ارائه دهد.