tahamajs's picture
|
download
raw
8.27 kB

آزمایش جامع Systematic Generalization با Gemini API و LangChain

🎯 هدف پروژه

این پروژه یک آزمایش کامل و جامع برای Systematic Generalization با استفاده از تکنولوژی‌های پیشرفته هوش مصنوعی است:

  • Gemini API برای پردازش زبان طبیعی پیشرفته
  • LangChain برای ساخت سیستم‌های RAG (Retrieval-Augmented Generation)
  • Neural-Symbolic Integration برای ترکیب رویکردهای عصبی و نمادین
  • ارزیابی جامع برای اندازه‌گیری توانایی‌های تعمیم سیستماتیک

📋 ویژگی‌های کلیدی

🧠 Systematic Generalization

  • ترکیب‌پذیری (Compositionality): معنی عبارات پیچیده از ترکیب معانی اجزای آن‌ها
  • تولیدی بودن (Productivity): توانایی تولید ترکیبات نامحدود از اجزای محدود
  • سیستماتیک بودن (Systematicity): پردازش ترکیبات مرتبط به صورت سیستماتیک

🔧 تکنولوژی‌های استفاده شده

  • Gemini 1.5 Pro: مدل زبان پیشرفته Google
  • LangChain: فریمورک برای ساخت برنامه‌های LLM
  • FAISS/Chroma: پایگاه داده‌های برداری
  • PyTorch: فریمورک یادگیری عمیق
  • SymPy: محاسبات نمادین

🚀 نصب و راه‌اندازی

پیش‌نیازها

  • Python 3.8+
  • pip یا conda
  • API Key برای Gemini

نصب کتابخانه‌ها

# نصب کتابخانه‌های اصلی
pip install -r requirements_gemini.txt

# یا نصب دستی
pip install google-generativeai langchain langchain-google-genai torch transformers sentence-transformers

تنظیم API Key

# تنظیم متغیر محیطی
export GEMINI_API_KEY="your-gemini-api-key-here"

# یا در فایل .env
echo "GEMINI_API_KEY=your-gemini-api-key-here" > .env

📁 ساختار پروژه

CA6_systematic_generalization/
├── 📄 gemini_config.py                    # پیکربندی Gemini API
├── 📄 advanced_rag_system.py             # سیستم RAG پیشرفته
├── 📄 systematic_generalization_gemini.py # پیاده‌سازی Systematic Generalization
├── 📄 neural_symbolic_integration.py     # یکپارچه‌سازی Neural-Symbolic
├── 📄 main_experimental.py               # فایل اجرایی اصلی
├── 📓 CA6_Experimental_Notebook.ipynb   # نوت‌بوک آزمایشی
├── 📄 requirements_gemini.txt           # نیازمندی‌های پروژه
├── 📁 configs/                           # فایل‌های پیکربندی
│   └── experimental_config.json
├── 📁 data/                              # داده‌های آزمایش
├── 📁 experimental_results/              # نتایج آزمایش‌ها
└── 📁 logs/                              # فایل‌های لاگ

🧪 نحوه اجرا

1. اجرای آزمایش کامل

python main_experimental.py --mode full --config configs/experimental_config.json

2. اجرای تست‌های پایه

python main_experimental.py --mode basic

3. اجرای ارزیابی جامع

python main_experimental.py --mode comprehensive

4. اجرای نوت‌بوک

jupyter notebook CA6_Experimental_Notebook.ipynb

🔬 آزمایش‌های موجود

1. تست‌های ریاضی (Arithmetic Composition)

  • یادگیری عملیات ریاضی پایه
  • تعمیم به اعداد جدید
  • ترکیب عملیات پیچیده

2. تست‌های زبانی (Language Composition)

  • یادگیری دستورات ناوبری
  • تعمیم به ترکیبات جدید
  • ترکیب مودفایرها و اعمال

3. تست‌های استدلال بصری (Visual Reasoning)

  • یادگیری روابط فضایی
  • تعمیم به اشکال و رنگ‌های جدید
  • ترکیب روابط پیچیده

4. تست‌های سنتز برنامه (Program Synthesis)

  • یادگیری توابع پایه
  • تعمیم به ترکیبات پیچیده
  • ترکیب توابع تودرتو

📊 ارزیابی و متریک‌ها

متریک‌های اصلی

  • دقت کلی (Overall Accuracy)
  • امتیاز سیستماتیک (Systematic Score)
  • امتیاز ترکیب‌پذیری (Compositional Score)
  • امتیاز تعمیم طول (Length Generalization Score)

انواع ارزیابی

  • Random Split: تقسیم تصادفی داده‌ها
  • Compositional Split: نگه داشتن ترکیبات خاص
  • Length Split: تقسیم بر اساس طول
  • Systematic Split: تقسیم سیستماتیک

🧠 Neural-Symbolic Integration

حالت‌های یکپارچه‌سازی

  • Neural Only: فقط پردازش عصبی
  • Symbolic Only: فقط پردازش نمادین
  • Hybrid: ترکیب وزنی
  • Adaptive: تصمیم‌گیری تطبیقی

مزایای ترکیب

  • دقت نمادین + انعطاف عصبی
  • تفسیرپذیری + یادگیری از داده
  • سیستماتیک بودن + سازگاری با تغییرات

📈 نتایج نمونه

📊 نتایج آزمایش Systematic Generalization:
  دقت کلی: 85.2%
  امتیاز سیستماتیک: 78.5%
  امتیاز ترکیب‌پذیری: 82.1%
  امتیاز تعمیم طول: 79.8%

✅ موفقیت‌ها:
  • سیستم RAG عملکرد قابل قبولی دارد
  • تست‌های Systematic Generalization اجرا شدند
  • سیستم Neural-Symbolic Integration کار می‌کند

⚠️ نکات بهبود:
  • سیستم RAG نیاز به بهبود دارد
  • می‌توان تعداد تست‌ها را افزایش داد
  • می‌توان دقت ارزیابی را بهبود بخشید

🔧 پیکربندی پیشرفته

تنظیمات Gemini

{
  "gemini": {
    "model_name": "gemini-1.5-pro",
    "temperature": 0.7,
    "max_tokens": 2048
  }
}

تنظیمات RAG

{
  "rag": {
    "embedding_model": "sentence-transformers/all-MiniLM-L6-v2",
    "chunk_size": 1000,
    "vector_store_type": "faiss",
    "top_k": 5
  }
}

تنظیمات Neural-Symbolic

{
  "neural_symbolic": {
    "embedding_dim": 128,
    "integration_mode": "hybrid",
    "symbolic_weight": 0.6,
    "neural_weight": 0.4
  }
}

🐛 عیب‌یابی

مشکلات رایج

  1. خطای API Key

    ❌ خطا: متغیر محیطی GEMINI_API_KEY تنظیم نشده است
    ✅ راه‌حل: export GEMINI_API_KEY="your-key"
    
  2. خطای Import

    ❌ خطا: ModuleNotFoundError
    ✅ راه‌حل: pip install -r requirements_gemini.txt
    
  3. خطای Memory

    ❌ خطا: CUDA out of memory
    ✅ راه‌حل: کاهش batch_size یا استفاده از CPU
    

📚 منابع و مراجع

مقالات کلیدی

  • "Compositional Generalization in Neural Networks" (Lake & Baroni, 2018)
  • "Systematic Generalization: What Is Required?" (Keysers et al., 2019)
  • "Neural-Symbolic Integration: A Survey" (Garcez et al., 2019)

کتابخانه‌های استفاده شده

🤝 مشارکت

برای مشارکت در پروژه:

  1. Fork کنید
  2. Branch جدید ایجاد کنید
  3. تغییرات خود را commit کنید
  4. Pull Request ارسال کنید

📄 مجوز

این پروژه تحت مجوز MIT منتشر شده است.

📞 تماس

برای سوالات و پشتیبانی:


🎉 از آزمایش Systematic Generalization لذت ببرید!

Xet Storage Details

Size:
8.27 kB
·
Xet hash:
44c1a9f9b0948ea3add0f3e53b5d5c6d7d4f1988d06f8ed029021ec004e69b2e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.