امبدینگها
Embeddings
تبدیل متن به بردار عددی برای جستجوی معنایی، خوشهبندی و RAG
نمای کلی
نود Embeddings یکی از اجزای کلیدی سیستمهای هوش مصنوعی پیشرفته در n8n است. Embedding فرآیندی است که متن را به یک آرایه از اعداد (بردار) تبدیل میکند. این بردار معنای متن را نشان میدهد و متون با معنای مشابه بردارهای نزدیک به هم دارند.
مفهوم Embedding به زبان ساده:
- فرض کنید هر متن یک نقطه روی نقشه است
- متون با معنای مشابه نزدیک هم قرار میگیرند
- متون با معنای متفاوت دور از هم هستند
- این "نقشه" ممکن است 256 تا 3072 بُعد داشته باشد (ابعاد بردار)
مفاهیم کلیدی:
- بردار (Vector): آرایهای از اعداد اعشاری مثل [0.12, -0.34, 0.56, ...]
- ابعاد (Dimensions): تعداد اعداد در هر بردار (مثلاً 1536 یا 3072)
- شباهت کسینوسی (Cosine Similarity): معیار اندازهگیری شباهت دو بردار (0 تا 1)
- فاصله (Distance): هر چه فاصله کمتر، شباهت معنایی بیشتر
- Token: واحد پردازش متن (هر کلمه فارسی تقریباً 3-5 توکن)
قابلیتهای کلیدی:
- تبدیل متن فارسی و انگلیسی به بردار
- پشتیبانی از مدلهای چندزبانه (Multilingual)
- یکپارچهسازی با Vector Storeها (Pinecone، Supabase، Qdrant)
- استفاده در زنجیره RAG برای AI Agent
- پشتیبانی از مدلهای محلی با Ollama (رایگان و بدون اینترنت)
- Batch Processing برای پردازش حجم بالای اسناد
ارائهدهندگان Embedding:
- OpenAI: text-embedding-3-small/large, text-embedding-ada-002
- Google AI: text-embedding-004, embedding-001
- Cohere: embed-multilingual-v3.0, embed-english-v3.0
- HuggingFace: مدلهای متنباز متنوع
- Ollama: مدلهای محلی مانند nomic-embed-text, mxbai-embed-large
- Azure OpenAI: نسخه Azure مدلهای OpenAI
- AWS Bedrock: Titan Embeddings
کاربردهای اصلی:
- جستجوی معنایی (Semantic Search)
- سیستم پرسش و پاسخ از اسناد (RAG)
- خوشهبندی و دستهبندی اسناد
- تشخیص محتوای تکراری (Deduplication)
- سیستم توصیهگر محتوا
- تطبیق سوال با پاسخ (FAQ Matching)
- تحلیل شباهت متون
احراز هویت
احراز هویت و تنظیمات
نود Embeddings بسته به ارائهدهنده انتخابی، credential متفاوتی نیاز دارد:
1. OpenAI Embeddings (محبوبترین)
- 1به [platform.openai.com](https://platform.openai.com) بروید
- 2API Key بسازید (شروع با
sk-) - 3در n8n: Credentials > OpenAI API
- 4مدلها:
text-embedding-3-small: 1536 بُعد، ارزان (توصیه میشود)text-embedding-3-large: 3072 بُعد، دقیقترtext-embedding-ada-002: 1536 بُعد، نسل قبلی
قیمت OpenAI Embeddings:
text-embedding-3-small: $0.02 / 1M tokens
text-embedding-3-large: $0.13 / 1M tokens
text-embedding-ada-002: $0.10 / 1M tokens2. Google AI Embeddings
- 1به [Google AI Studio](https://aistudio.google.com/) بروید
- 2API Key بگیرید (رایگان!)
- 3در n8n: Credentials > Google AI
- 4مدل:
text-embedding-004 - 5ابعاد: 768
3. Cohere Embeddings
- 1به [dashboard.cohere.com](https://dashboard.cohere.com) بروید
- 2API Key بسازید
- 3در n8n: Credentials > Cohere API
- 4مدلها:
embed-multilingual-v3.0: چندزبانه (فارسی خوب!)embed-english-v3.0: فقط انگلیسی
4. Ollama Embeddings (محلی و رایگان)
- 1[Ollama](https://ollama.ai) را نصب کنید
- 2مدل Embedding دانلود کنید:
ollama pull nomic-embed-text
ollama pull mxbai-embed-large- 1در n8n: Credentials > Ollama
- 2Base URL: http://localhost:11434
- 3بدون نیاز به API Key و اینترنت!
5. HuggingFace Embeddings
- 1به [huggingface.co](https://huggingface.co) بروید
- 2Access Token بسازید
- 3در n8n: Credentials > HuggingFace API
- 4مدلهای پیشنهادی:
sentence-transformers/all-MiniLM-L6-v2: سبک و سریعsentence-transformers/paraphrase-multilingual-MiniLM-L12-v2: چندزبانه
مقایسه ارائهدهندگان:
OpenAI 3-small: ارزان، دقیق، 1536 بُعد، نیاز به اینترنت
OpenAI 3-large: دقیقترین، 3072 بُعد، گرانتر
Google: رایگان (محدود)، 768 بُعد
Cohere Multi: بهترین برای فارسی، چندزبانه
Ollama: رایگان، محلی، حریم خصوصی
HuggingFace: متنباز، تنوع بالا، رایگان (محدود)نکات مهم:
- برای فارسی: Cohere Multilingual یا OpenAI 3-small توصیه میشود
- برای حریم خصوصی: Ollama (همه چیز محلی)
- برای شروع رایگان: Google AI یا Ollama
- ابعاد بردار باید با Vector Store سازگار باشد
- مدل Embedding تغییر ندهید بعد از ساخت دیتابیس بردار (بردارها ناسازگار میشوند)
عملیاتهای موجود
openaiEmbedding
تبدیل متن به بردار با مدلهای OpenAI (text-embedding-3-small/large)
googleEmbedding
تبدیل متن به بردار با مدل text-embedding-004 گوگل
ollamaEmbedding
تبدیل متن به بردار با مدلهای محلی Ollama بدون نیاز به اینترنت
huggingFaceEmbedding
استفاده از مدلهای متنباز HuggingFace برای تولید Embedding
cohereEmbedding
تبدیل متن به بردار با مدلهای Cohere با پشتیبانی عالی از فارسی
azureOpenaiEmbedding
استفاده از مدلهای OpenAI از طریق Azure برای سازمانها
batchEmbedding
تبدیل چندین متن به بردار در یک درخواست برای بهینهسازی سرعت و هزینه
embeddingForVectorStore
تولید Embedding و ذخیره در Vector Store (Pinecone، Supabase، Qdrant)
embeddingForRetrieval
تبدیل Query به بردار و جستجوی نزدیکترین اسناد در Vector Store
embeddingComparison
مقایسه شباهت معنایی دو یا چند متن با محاسبه Cosine Similarity
کاربردهای متداول
1. جستجوی معنایی در اسناد (Semantic Search)
جستجوی هوشمند در دیتابیس اسناد فارسی:
مرحله 1 - ایندکس اسناد (یکبار):
Google Drive (دانلود اسناد)
→ Text Splitter (تکهتکه کردن - هر 500 کلمه)
→ Embeddings OpenAI (text-embedding-3-small)
→ Pinecone (ذخیره بردارها + metadata)
مرحله 2 - جستجو:
Webhook (سوال کاربر)
→ Embeddings OpenAI (تبدیل سوال به بردار)
→ Pinecone (جستجوی نزدیکترین اسناد، topK: 5)
→ AI Agent (پاسخ بر اساس اسناد یافتهشده)
→ Webhook Response (پاسخ)2. سیستم پرسش و پاسخ از دانش شرکت (RAG)
ساخت چتبات FAQ هوشمند:
Telegram Trigger (سوال کاربر)
→ AI Agent (Tools Agent)
LLM: GPT-4o-mini
Embedding: text-embedding-3-small
Vector Store: Supabase Vector
System: "دستیار دانش شرکت هستی.
فقط بر اساس اسناد موجود پاسخ بده.
اگر پاسخی نیافتی بگو 'این سوال در اسناد ما نیست'."
TopK: 4
Memory: Window Memory (10 پیام)
→ Telegram (پاسخ مستند)3. تشخیص محتوای تکراری (Duplicate Detection)
شناسایی تیکتهای تکراری:
Webhook (تیکت جدید)
→ Embeddings OpenAI (تبدیل متن تیکت به بردار)
→ Pinecone (جستجوی مشابه، threshold: 0.92)
→ IF (شباهت > 0.92)
→ TRUE: تیکت تکراری! لینک تیکت قبلی
→ FALSE: ذخیره بردار + ایجاد تیکت جدید
→ MySQL (ذخیره نتیجه)4. سیستم توصیه محتوا (Content Recommendation)
پیشنهاد مقالات مرتبط:
Webhook (مقاله فعلی کاربر)
→ Embeddings OpenAI (بردار مقاله فعلی)
→ Qdrant (جستجوی 5 مقاله مشابه)
Filter: {category: "technology", status: "published"}
→ Set (فرمتدهی نتایج)
→ Webhook Response (لیست پیشنهادات)5. تطبیق خودکار سوال با پاسخ (FAQ Matching)
پاسخ خودکار به سوالات متداول:
مرحله 1 - ذخیره FAQها:
Google Sheets (سوال + پاسخ)
→ Embeddings OpenAI (بردار هر سوال)
→ Supabase Vector (ذخیره با metadata: answer)
مرحله 2 - تطبیق:
Telegram Trigger (سوال کاربر)
→ Embeddings OpenAI (بردار سوال)
→ Supabase Vector (نزدیکترین FAQ، topK: 1)
→ IF (score > 0.85)
→ TRUE: ارسال پاسخ FAQ
→ FALSE: ارسال به پشتیبان انسانی
→ Telegram (پاسخ)6. خوشهبندی اسناد (Document Clustering)
دستهبندی خودکار نظرات مشتریان:
MySQL (نظرات جدید - هر روز)
→ SplitInBatches (دستههای 50تایی)
→ Embeddings OpenAI (بردار هر نظر)
→ Code (محاسبه Cosine Similarity بین همه نظرات)
→ Code (خوشهبندی K-Means)
→ Set (برچسبگذاری خوشهها)
→ MySQL (ذخیره دستهبندی)
→ Gmail (گزارش خوشهبندی به مدیر)7. جستجوی معنایی محصولات
جستجوی هوشمند در فروشگاه:
مرحله 1 - ایندکس محصولات:
MySQL (همه محصولات)
→ Set (ترکیب: نام + توضیحات + ویژگیها)
→ Embeddings OpenAI (بردار هر محصول)
→ Pinecone (ذخیره با metadata: price, category, stock)
مرحله 2 - جستجو:
Webhook (جستجوی کاربر: "لپتاپ سبک برای دانشجو")
→ Embeddings OpenAI (بردار جستجو)
→ Pinecone (topK: 10, filter: {stock: true})
→ Set (فرمت نتایج + قیمت + تصویر)
→ Webhook Response (نتایج جستجو)8. تحلیل شباهت رزومه با شغل
تطبیق رزومه با آگهی استخدام:
Webhook (رزومه + آگهی شغل)
→ Embeddings OpenAI (بردار رزومه)
→ Embeddings OpenAI (بردار آگهی شغل)
→ Code (Cosine Similarity محاسبه)
→ Set (امتیاز تطبیق + تحلیل)
→ IF (score > 0.75)
→ TRUE: رزومه مناسب → Telegram (اطلاع به HR)
→ FALSE: رزومه نامناسب → Gmail (پاسخ خودکار)9. تشخیص زبان و موضوع اسناد
طبقهبندی خودکار ایمیلها:
Email Trigger (ایمیل جدید)
→ Embeddings Cohere (embed-multilingual-v3.0)
→ Pinecone (جستجو در بردارهای دستهبندیها)
Namespaces: [فنی، مالی، فروش، عمومی]
→ Set (نزدیکترین دسته)
→ IF/Switch (مسیریابی)
→ فنی: ارسال به تیم فنی
→ مالی: ارسال به حسابداری
→ فروش: ارسال به تیم فروش
→ MySQL (ذخیره طبقهبندی)10. پایش برند و تحلیل احساسات
تحلیل معنایی نظرات شبکههای اجتماعی:
HTTP Request (API شبکه اجتماعی - هر ساعت)
→ SplitInBatches (دستههای 100تایی)
→ Embeddings OpenAI (بردار هر نظر)
→ Pinecone (مقایسه با بردارهای مرجع:
"نظر مثبت"، "نظر منفی"، "شکایت"، "پیشنهاد")
→ Set (نزدیکترین دسته + امتیاز)
→ MySQL (ذخیره تحلیل)
→ IF (دسته = "شکایت" AND score > 0.85)
→ Telegram (هشدار فوری به مدیر)11. ساخت موتور جستجوی چندزبانه
جستجوی فارسی در اسناد انگلیسی:
مرحله 1 - ایندکس (اسناد انگلیسی):
Google Drive (اسناد انگلیسی)
→ Text Splitter (500 کلمه)
→ Embeddings Cohere (embed-multilingual-v3.0)
→ Pinecone (ذخیره بردارها)
مرحله 2 - جستجو (فارسی!):
Webhook (سوال فارسی: "چطور سرور نصب کنم؟")
→ Embeddings Cohere (embed-multilingual-v3.0)
inputType: search_query
→ Pinecone (جستجو - topK: 5)
→ نتایج انگلیسی مرتبط پیدا میشوند!
→ AI Agent (ترجمه + خلاصه فارسی)
→ Webhook Response (پاسخ فارسی)12. سیستم ضد تقلب در متون
تشخیص کپی و سرقت ادبی:
Webhook (متن جدید)
→ Text Splitter (پاراگرافها)
→ Embeddings OpenAI (بردار هر پاراگراف)
→ Pinecone (جستجو در پایگاه متون قبلی، threshold: 0.95)
→ Code (محاسبه درصد تشابه)
→ Set (گزارش: بخشهای مشابه + درصد + منابع)
→ IF (plagiarism > 30%)
→ Telegram (هشدار: متن کپی شده!)
→ MySQL (ذخیره گزارش)نکات حرفهای
نکات حرفهای
- 1انتخاب مدل Embedding مناسب:
فارسی + انگلیسی: Cohere embed-multilingual-v3.0
فقط انگلیسی: OpenAI text-embedding-3-small
دقت بالا: OpenAI text-embedding-3-large
رایگان + محلی: Ollama nomic-embed-text
سازمانی: Azure OpenAI Embedding
ترتیب توصیه برای پروژه فارسی:
1. Cohere Multilingual (بهترین فارسی)
2. OpenAI 3-small (خوب + ارزان)
3. Ollama nomic-embed-text (رایگان)- 1استراتژی Chunking (تکهتکه کردن متن):
// اندازه chunk بر کیفیت جستجو تاثیر زیادی دارد
Chunk کوچک (200-300 کلمه):
+ جستجوی دقیقتر
- context کمتر در هر نتیجه
Chunk متوسط (500-800 کلمه):
+ تعادل خوب (توصیه میشود)
+ context کافی
Chunk بزرگ (1000-2000 کلمه):
+ context زیاد
- جستجوی کمدقتتر
- مصرف توکن بیشتر
Overlap (همپوشانی):
50-100 کلمه بین چانکها
مانع از دست رفتن اطلاعات مرزی میشود- 1بهینهسازی هزینه:
// هزینه Embedding خیلی کمتر از Chat است!
// 1 میلیون توکن ≈ 200,000 کلمه فارسی
text-embedding-3-small: $0.02 / 1M tokens
یعنی: 200,000 کلمه فارسی = 0.02 دلار!
راهکارهای کاهش هزینه:
1. Cache بردارها (ذخیره و استفاده مجدد)
2. Batch Processing (چند متن همزمان)
3. Strip کردن فاصلهها و خطوط اضافی
4. حذف متون تکراری قبل از Embedding
5. از 3-small بجای 3-large (7x ارزانتر)- 1Caching بردارها (بسیار مهم!):
// بردار یک متن همیشه یکسان است
// پس نیازی به تولید مجدد نیست!
Webhook (متن)
→ Code (Hash متن: MD5 یا SHA256)
→ Redis/MongoDB (بررسی Cache)
→ IF (Cache hit)
→ Return بردار ذخیرهشده
→ IF (Cache miss)
→ Embeddings OpenAI
→ Redis/MongoDB (ذخیره بردار)
→ Return بردار جدید
// صرفهجویی تا 80% در هزینه و سرعت!- 1Dimension Reduction (کاهش ابعاد):
// مدلهای جدید OpenAI از ابعاد متغیر پشتیبانی میکنند
text-embedding-3-small:
پیشفرض: 1536 بُعد
کاهش به: 512 بُعد (سریعتر، فضای کمتر)
کاهش به: 256 بُعد (بسیار سریع)
// کاهش ابعاد = فضای کمتر در Vector Store
// + جستجوی سریعتر
// - کمی کاهش دقت (معمولاً ناچیز)
توصیه: 512 بُعد برای اکثر کاربردها کافی است- 1نکات فارسی:
// کلمات فارسی توکن بیشتری مصرف میکنند
هر کلمه فارسی ≈ 3-5 توکن
هر کلمه انگلیسی ≈ 1-2 توکن
// برای بهترین نتیجه فارسی:
1. از مدل چندزبانه استفاده کنید (Cohere)
2. متن فارسی نرمالسازی کنید (ی و ک عربی → فارسی)
3. Stop words فارسی حذف کنید (از، به، در، که...)
4. اگر هم فارسی هم انگلیسی دارید: Multilingual الزامی- 1انتخاب Vector Store مناسب:
Pinecone: ابری، مقیاسپذیر، Tier رایگان
Supabase: ابری، PostgreSQL + pgvector
Qdrant: سریع، self-hosted، متنباز
In-Memory: فقط تست (داده از بین میرود)
توصیه:
تست و نمونه: In-Memory
پروژه کوچک: Supabase (رایگان تا 500MB)
پروژه بزرگ: Pinecone یا Qdrant- 1الگوی RAG حرفهای:
// بهترین روش ساخت سیستم Q&A:
مرحله 1 - آمادهسازی (یکبار):
اسناد → Text Splitter → Embedding → Vector Store
مرحله 2 - پاسخدهی:
سوال → Embedding → Vector Store Search
→ Top-K نتایج → LLM (پاسخ بر اساس نتایج)
نکات:
- Text Splitter: RecursiveCharacterTextSplitter
- Chunk Size: 500, Overlap: 50
- TopK: 4-6
- LLM System Prompt: "فقط بر اساس context پاسخ بده"- 1Metadata برای فیلتر بهتر:
// metadata به هر بردار اضافه کنید
{
text: "محتوای سند",
metadata: {
source: "manual.pdf",
category: "technical",
language: "fa",
date: "2024-01-15",
author: "تیم فنی"
}
}
// سپس در جستجو فیلتر کنید:
filter: { category: "technical", language: "fa" }
// نتایج دقیقتر و سریعتر!- 1مقایسه عملکرد مدلها:
// بنچمارک MTEB (مرجع ارزیابی Embedding):
text-embedding-3-large: امتیاز عالی، 3072 بُعد
text-embedding-3-small: امتیاز خوب، 1536 بُعد
Cohere multilingual: بهترین چندزبانه
nomic-embed-text: بهترین رایگان/محلی
برای 95% کاربردها:
text-embedding-3-small کافی و بهینه است!- 1Batch Processing برای حجم بالا:
// ایندکس 10,000 سند:
// روش بد (کند):
Loop → Embedding (تکی) → Vector Store
// زمان: ~30 دقیقه
// روش خوب (سریع):
SplitInBatches (100تایی)
→ Embedding (Batch: 100 متن یکجا)
→ Vector Store (Upsert Batch)
// زمان: ~3 دقیقه!
// + Wait Node بین دستهها برای Rate Limit- 1امنیت و حریم خصوصی:
// دادههای حساس → Ollama (محلی)
// دادههای عمومی → OpenAI / Cohere (ابری)
// Ollama: هیچ دادهای به خارج ارسال نمیشود
// مناسب برای: اسناد محرمانه، اطلاعات پزشکی، مالی- 1نرمالسازی متن فارسی قبل از Embedding:
// استفاده از Code Node قبل از Embedding:
function normalizeText(text) {
return text
.replace(/ي/g, 'ی') // ی عربی → فارسی
.replace(/ك/g, 'ک') // ک عربی → فارسی
.replace(/\s+/g, ' ') // فاصلههای اضافی
.replace(/\n+/g, ' ') // خطوط جدید
.trim();
}
// این کار شباهتیابی فارسی را بهتر میکند- 1Hybrid Search (جستجوی ترکیبی):
// ترکیب جستجوی معنایی + کلمه کلیدی
سوال کاربر
→ شاخه 1: Embedding → Vector Search (معنایی)
→ شاخه 2: MySQL LIKE Search (کلمهای)
→ Merge (ترکیب نتایج)
→ Code (Rank Fusion: امتیاز ترکیبی)
→ Top-K نتایج نهایی
// Hybrid Search دقت بیشتری از هر کدام تنها دارد- 1مدیریت بهروزرسانی اسناد:
// وقتی سندی تغییر کرد:
1. بردارهای قدیمی حذف شوند (Delete by metadata)
2. سند جدید chunk شود
3. بردارهای جدید ذخیره شوند
Schedule (هر شب)
→ MySQL (اسناد تغییریافته)
→ Pinecone (Delete by source)
→ Text Splitter → Embedding → Pinecone (Insert)
// از document_id در metadata استفاده کنیدرفع مشکلات
خطاهای رایج
1. خطای "Dimension mismatch"
علت: ابعاد بردار Embedding با Vector Store سازگار نیست
راهحل
- ابعاد مدل و Vector Store باید یکسان باشند:
text-embedding-3-small: 1536 بُعد
text-embedding-3-large: 3072 بُعد
text-embedding-ada-002: 1536 بُعد
Google text-embedding-004: 768 بُعد
nomic-embed-text (Ollama): 768 بُعد- هنگام ساخت Index در Vector Store ابعاد صحیح تنظیم کنید
- بعد از ساخت Index مدل Embedding تغییر ندهید!
2. خطای "Token limit exceeded"
علت: متن ورودی بلندتر از حد مجاز
راهحل
- محدودیت توکن هر مدل:
OpenAI 3-small/large: 8,191 توکن
Google embedding-004: 2,048 توکن
Cohere multilingual: 512 توکن- از Text Splitter قبل از Embedding استفاده کنید
- هر کلمه فارسی تقریباً 3-5 توکن مصرف میکند
- متون بلند را به چانکهای 500-1000 کلمهای تقسیم کنید
3. خطای "Rate limit reached" (429)
علت: تعداد درخواست بیش از حد مجاز
راهحل
- بین درخواستها Wait Node اضافه کنید
- از Batch Embedding استفاده کنید (چند متن در یک درخواست)
- OpenAI: حداکثر 3,000 RPM در Tier 1
- درخواستهای Batch به جای تکی ارسال کنید
4. خطای "Invalid API key" (401)
علت: API Key نامعتبر
راهحل
- OpenAI: کلید با
sk-شروع شود - Cohere: کلید از Dashboard > API Keys
- Google: کلید از AI Studio
- Credential را Test کنید
5. نتایج جستجو نامربوط
علت: Embedding یا chunking نامناسب
راهحل
- اندازه chunk را تنظیم کنید (500-1000 کلمه بهینه)
- overlap بین چانکها اضافه کنید (50-100 کلمه)
- مدل چندزبانه برای فارسی استفاده کنید
- metadata اضافه کنید برای فیلتر بهتر
- topK افزایش دهید (5-10)
- scoreThreshold تنظیم کنید (0.7-0.85)
6. خطای اتصال Ollama
علت: سرور Ollama در دسترس نیست
راهحل
- مطمئن شوید Ollama در حال اجرا است:
ollama serve - Base URL: http://localhost:11434
- مدل دانلود شده باشد:
ollama list - فایروال بررسی کنید
- در Docker: از
host.docker.internalبجایlocalhost
7. خطای "Model not found"
علت: نام مدل اشتباه
راهحل
- نامهای صحیح:
OpenAI: text-embedding-3-small, text-embedding-3-large
Google: text-embedding-004
Cohere: embed-multilingual-v3.0
Ollama: nomic-embed-text, mxbai-embed-large- حروف بزرگ/کوچک دقت کنید
8. سرعت پایین Embedding
علت: پردازش تکی بجای دستهای
راهحل
- Batch Embedding: چند متن در یک درخواست
- SplitInBatches: دستههای 50-100تایی
- Ollama: از GPU استفاده کنید
- Cache: بردارهای تکراری ذخیره کنید
- موازیسازی: چند Embedding Node همزمان
9. مصرف بالای حافظه
علت: بردارهای زیاد در حافظه
راهحل
- از Vector Store خارجی استفاده کنید (Pinecone، Supabase)
- In-Memory Vector Store فقط برای تست
- Batch Size کاهش دهید
- اسناد غیرضروری حذف کنید
