fokan commited on
Commit
bfcf3ff
·
1 Parent(s): a9c212c

Force Space rebuild v2.1.0 with incremental training

Browse files

- Updated app version to 2.1.0 to force complete rebuild
- Added rebuild trigger file with timestamp
- Updated Docker environment variables
- Force restart to ensure all incremental training features are active
- Complete deployment of model retraining capabilities

Files changed (2) hide show
  1. README_ARABIC.md +164 -0
  2. deployment_config.md +316 -0
README_ARABIC.md ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # منصة تقطير المعرفة متعددة الوسائط
2
+
3
+ ## نظرة عامة
4
+
5
+ منصة شاملة لإنشاء نماذج ذكاء اصطناعي جديدة من خلال تقطير المعرفة من نماذج متعددة مدربة مسبقاً. تدعم المنصة النماذج متعددة الوسائط وتتخصص في البيانات الطبية.
6
+
7
+ ## الميزات الرئيسية
8
+
9
+ ### 🤖 إدارة النماذج
10
+ - **النماذج المعلمة**: إضافة وإدارة النماذج المعلمة من مصادر متنوعة
11
+ - **النماذج الطلابية**: إنشاء وإدارة النماذج الطلابية للتدريب
12
+ - **نماذج Google**: دعم مباشر لنماذج Google المفتوحة المصدر
13
+ - **نماذج مخصصة**: إمكانية إضافة نماذج من Hugging Face أو مصادر أخرى
14
+
15
+ ### 🏥 البيانات الطبية المتخصصة
16
+ - **قواعد بيانات طبية**: مجموعة من قواعد البيانات الطبية المتخصصة
17
+ - **الصور الشعاعية**: دعم للصور الشعاعية والتصوير الطبي
18
+ - **معالجة DICOM**: معالجة ملفات DICOM الطبية
19
+ - **حفظ البيانات**: إمكانية حفظ واسترجاع قواعد البيانات المفضلة
20
+
21
+ ### 🔑 إدارة الرموز المميزة
22
+ - **رموز متعددة**: دعم أنواع مختلفة من الرموز المميزة
23
+ - **رموز طبية**: رموز متخصصة للبيانات الطبية
24
+ - **رموز تجارية**: رموز للنماذج التجارية
25
+ - **إدارة آمنة**: تخزين آمن ومشفر للرموز
26
+
27
+ ### ⚡ تحسينات الأداء
28
+ - **تحميل بالقطع**: تحميل النماذج الكبيرة بالقطع لتوفير الذاكرة
29
+ - **تحسين CPU**: تحسينات خاصة للمعالجات
30
+ - **إدارة الذاكرة**: إدارة ذكية للذاكرة لتجنب نفادها
31
+ - **تدفق البيانات**: تحميل البيانات بالتدفق للمجموعات الكبيرة
32
+
33
+ ## بنية المشروع
34
+
35
+ ```
36
+ ai-distillation-platform/
37
+ ├── src/ # الكود المصدري
38
+ │ ├── core/ # المكونات الأساسية
39
+ │ │ ├── memory_manager.py # إدارة الذاكرة
40
+ │ │ ├── chunk_loader.py # تحميل بالقطع
41
+ │ │ ├── cpu_optimizer.py # تحسين المعالج
42
+ │ │ └── token_manager.py # إدارة الرموز
43
+ │ │
44
+ │ ├── medical/ # المكونات الطبية
45
+ │ │ ├── medical_datasets.py # قواعد البيانات الطبية
46
+ │ │ ├── dicom_handler.py # معالج DICOM
47
+ │ │ └── medical_preprocessing.py # معالجة البيانات الطبية
48
+ │ │
49
+ │ ├── models_manager.py # إدارة النماذج المحفوظة
50
+ │ └── saved_datasets_manager.py # إدارة قواعد البيانات المحفوظة
51
+ │
52
+ ├── database/ # قواعد البيانات
53
+ │ ├── database.py # إعداد قاعدة البيانات
54
+ │ ├── models.py # نماذج البيانات
55
+ │ ├── saved_models.db # النماذج المحفوظة
56
+ │ └── saved_datasets.db # قواعد البيانات المحفوظة
57
+ │
58
+ ├── templates/ # واجهة المستخدم
59
+ │ ├── index.html # الصفحة الرئيسية
60
+ │ ├── google-models.html # إدارة النماذج
61
+ │ ├── medical-datasets.html # البيانات الطبية
62
+ │ └── token-management.html # إدارة الرموز
63
+ │
64
+ ├── static/ # الملفات الثابتة
65
+ │ ├── css/style.css # التصميم
66
+ │ ├── js/main.js # JavaScript الأساسي
67
+ │ ├── js/google-models.js # إدارة النماذج
68
+ │ ├── js/medical-datasets.js # البيانات الطبية
69
+ │ └── js/saved-items.js # العناصر المحفوظة
70
+ │
71
+ └── app.py # التطبيق الرئيسي
72
+ ```
73
+
74
+ ## كيفية الاستخدام
75
+
76
+ ### 1. إعداد النماذج المعلمة
77
+ 1. انتقل إلى صفحة "إدارة النماذج"
78
+ 2. أضف نماذج معلمة من نماذج Google المتاحة أو أدخل معرفات مخصصة
79
+ 3. احفظ النماذج للاستخدام لاحقاً
80
+
81
+ ### 2. إعداد قواعد البيانات
82
+ 1. انتقل إلى صفحة "البيانات الطبية"
83
+ 2. استعرض قواعد البيانات المتاحة
84
+ 3. احفظ قواعد البيانات المفيدة لمشاريعك
85
+
86
+ ### 3. إعداد الرموز المميزة
87
+ 1. انتقل إلى صفحة "إدارة الرموز"
88
+ 2. أضف رموز Hugging Face المطلوبة
89
+ 3. اختر النوع المناسب لكل رمز
90
+
91
+ ### 4. بدء التدريب
92
+ 1. في الصفحة الرئيسية، اختر النماذج المعلمة
93
+ 2. اختر النموذج الطالب (أو اتركه فارغاً لإنشاء جديد)
94
+ 3. اختر قواعد البيانات للتدريب
95
+ 4. اضغط "بدء عملية التقطير"
96
+
97
+ ## الميزات المتقدمة
98
+
99
+ ### تقطير المعرفة الذكي
100
+ - **استراتيجيات متعددة**: دعم لاستراتيجيات تقطير مختلفة
101
+ - **تدريب متدرج**: تدريب بالمراحل لتحسين النتائج
102
+ - **تحسين تلقائي**: تحسين تلقائي لمعاملات التدريب
103
+
104
+ ### دعم البيانات الطبية
105
+ - **تخصص طبي**: تحسينات خاصة للبيانات الطبية
106
+ - **معايير طبية**: دعم للمعايير الطبية المختلفة
107
+ - **تحليل متقدم**: أدوات تحليل متقدمة للنتائج الطبية
108
+
109
+ ### الأمان والخصوصية
110
+ - **تشفير البيانات**: تشفير جميع البيانات الحساسة
111
+ - **إدارة الوصول**: نظام إدارة وصول متقدم
112
+ - **امتثال طبي**: امتثال للمعايير الطبية
113
+
114
+ ## المتطلبات التقنية
115
+
116
+ ### الحد الأدنى
117
+ - **الذاكرة**: 8 جيجابايت RAM
118
+ - **المعالج**: معالج متعدد النوى
119
+ - **التخزين**: 50 جيجابايت مساحة فارغة
120
+
121
+ ### الموصى به
122
+ - **الذاكرة**: 16 جيجابايت RAM أو أكثر
123
+ - **المعالج**: معالج حديث متعدد النوى
124
+ - **التخزين**: 100 جيجابايت مساحة فارغة
125
+ - **GPU**: كرت رسوميات للتسريع (اختياري)
126
+
127
+ ## الدعم والمساعدة
128
+
129
+ ### الوثائق
130
+ - دليل المستخدم الشامل
131
+ - أمثلة عملية
132
+ - أسئلة شائعة
133
+
134
+ ### المجتمع
135
+ - منتدى المطورين
136
+ - قناة Discord
137
+ - مجموعة Telegram
138
+
139
+ ## التطوير المستقبلي
140
+
141
+ ### الميزات القادمة
142
+ - **دعم المزيد من النماذج**: إضافة دعم لنماذج جديدة
143
+ - **تحسينات الأداء**: تحسينات إضافية للسرعة والكفاءة
144
+ - **واجهة محسنة**: تحسينات على واجهة المستخدم
145
+ - **دعم اللغات**: دعم لغات برمجة إضافية
146
+
147
+ ### المساهمة
148
+ نرحب بالمساهمات من المجتمع! يمكنك المساهمة عبر:
149
+ - تقديم تقارير الأخطاء
150
+ - اقتراح ميزات جديدة
151
+ - تحسين الكود
152
+ - تحسين الوثائق
153
+
154
+ ## الترخيص
155
+
156
+ هذا المشروع مرخص تحت رخصة MIT. راجع ملف LICENSE للتفاصيل.
157
+
158
+ ## الشكر والتقدير
159
+
160
+ شكر خاص لجميع المساهمين والمطورين الذين ساعدوا في تطوير هذه المنصة.
161
+
162
+ ---
163
+
164
+ **ملاحظة**: هذا المشروع في مرحلة التطوير النشط. قد تتغير بعض الميزات أو تتم إضافة ميزات جديدة.
deployment_config.md ADDED
@@ -0,0 +1,316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # إعدادات النشر - منصة تقطير المعرفة
2
+
3
+ ## متطلبات النشر
4
+
5
+ ### 1. متغيرات البيئة المطلوبة
6
+ ```bash
7
+ # Hugging Face Configuration
8
+ HF_TOKEN=your_huggingface_token_here
9
+ HF_HOME=/tmp/huggingface
10
+
11
+ # Application Configuration
12
+ PORT=7860
13
+ HOST=0.0.0.0
14
+ DEBUG=false
15
+
16
+ # Database Configuration
17
+ DATABASE_URL=sqlite:///./database/main.db
18
+ MODELS_DB_URL=sqlite:///./database/saved_models.db
19
+ DATASETS_DB_URL=sqlite:///./database/saved_datasets.db
20
+
21
+ # Memory Configuration
22
+ MAX_MEMORY_GB=14
23
+ CHUNK_SIZE_MB=512
24
+ CPU_THREADS=4
25
+
26
+ # Security Configuration
27
+ SECRET_KEY=your_secret_key_here
28
+ ENCRYPTION_KEY=your_encryption_key_here
29
+ ```
30
+
31
+ ### 2. ملفات التكوين المطلوبة
32
+
33
+ #### requirements.txt
34
+ ```
35
+ fastapi==0.104.1
36
+ uvicorn[standard]==0.24.0
37
+ jinja2==3.1.2
38
+ python-multipart==0.0.6
39
+ transformers==4.35.2
40
+ torch==2.1.1
41
+ datasets==2.14.6
42
+ huggingface-hub==0.19.4
43
+ accelerate==0.24.1
44
+ safetensors==0.4.0
45
+ pillow==10.1.0
46
+ numpy==1.24.3
47
+ pandas==2.0.3
48
+ scikit-learn==1.3.2
49
+ matplotlib==3.8.2
50
+ seaborn==0.13.0
51
+ tqdm==4.66.1
52
+ psutil==5.9.6
53
+ sqlite3
54
+ logging
55
+ pathlib
56
+ datetime
57
+ uuid
58
+ json
59
+ asyncio
60
+ ```
61
+
62
+ #### Dockerfile (للنشر في حاويات)
63
+ ```dockerfile
64
+ FROM python:3.10-slim
65
+
66
+ WORKDIR /app
67
+
68
+ # Install system dependencies
69
+ RUN apt-get update && apt-get install -y \
70
+ git \
71
+ curl \
72
+ && rm -rf /var/lib/apt/lists/*
73
+
74
+ # Copy requirements and install Python dependencies
75
+ COPY requirements.txt .
76
+ RUN pip install --no-cache-dir -r requirements.txt
77
+
78
+ # Copy application code
79
+ COPY . .
80
+
81
+ # Create necessary directories
82
+ RUN mkdir -p database logs temp uploads models
83
+
84
+ # Set permissions
85
+ RUN chmod +x app.py
86
+
87
+ # Expose port
88
+ EXPOSE 7860
89
+
90
+ # Health check
91
+ HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
92
+ CMD curl -f http://localhost:7860/health || exit 1
93
+
94
+ # Run the application
95
+ CMD ["python", "app.py"]
96
+ ```
97
+
98
+ ### 3. إعدادات Hugging Face Spaces
99
+
100
+ #### app.py (نقطة الدخول)
101
+ ```python
102
+ import os
103
+ import uvicorn
104
+
105
+ if __name__ == "__main__":
106
+ # Configuration for Hugging Face Spaces
107
+ port = int(os.getenv("PORT", 7860))
108
+ host = os.getenv("HOST", "0.0.0.0")
109
+
110
+ uvicorn.run(
111
+ "app:app",
112
+ host=host,
113
+ port=port,
114
+ reload=False,
115
+ access_log=True,
116
+ log_level="info"
117
+ )
118
+ ```
119
+
120
+ #### README.md (لـ Hugging Face Spaces)
121
+ ```markdown
122
+ ---
123
+ title: AI Knowledge Distillation Platform
124
+ emoji: 🧠
125
+ colorFrom: blue
126
+ colorTo: purple
127
+ sdk: gradio
128
+ sdk_version: 4.7.1
129
+ app_file: app.py
130
+ pinned: false
131
+ license: mit
132
+ ---
133
+
134
+ # AI Knowledge Distillation Platform
135
+
136
+ A comprehensive platform for creating new AI models through knowledge distillation from multiple pre-trained models.
137
+
138
+ ## Features
139
+ - Multi-modal model support
140
+ - Medical datasets specialization
141
+ - Advanced memory management
142
+ - Progressive training capabilities
143
+
144
+ ## Usage
145
+ 1. Add teacher models from Google models or custom sources
146
+ 2. Configure student models
147
+ 3. Select medical datasets
148
+ 4. Start the distillation process
149
+
150
+ ## Requirements
151
+ - Python 3.10+
152
+ - 16GB RAM recommended
153
+ - GPU support (optional)
154
+ ```
155
+
156
+ ### 4. إعدادات الأمان
157
+
158
+ #### تشفير البيانات
159
+ ```python
160
+ # في ملف config/security.py
161
+ import os
162
+ from cryptography.fernet import Fernet
163
+
164
+ class SecurityConfig:
165
+ def __init__(self):
166
+ self.encryption_key = os.getenv('ENCRYPTION_KEY', Fernet.generate_key())
167
+ self.secret_key = os.getenv('SECRET_KEY', 'your-secret-key-here')
168
+ self.cipher_suite = Fernet(self.encryption_key)
169
+
170
+ def encrypt_token(self, token: str) -> str:
171
+ return self.cipher_suite.encrypt(token.encode()).decode()
172
+
173
+ def decrypt_token(self, encrypted_token: str) -> str:
174
+ return self.cipher_suite.decrypt(encrypted_token.encode()).decode()
175
+ ```
176
+
177
+ ### 5. إعدادات قاعدة البيانات
178
+
179
+ #### تهيئة قواعد البيانات
180
+ ```sql
181
+ -- إنشاء الجداول الأساسية
182
+ CREATE TABLE IF NOT EXISTS teacher_models (
183
+ id TEXT PRIMARY KEY,
184
+ name TEXT NOT NULL,
185
+ model_id TEXT NOT NULL,
186
+ description TEXT,
187
+ model_type TEXT DEFAULT 'huggingface',
188
+ config TEXT,
189
+ tags TEXT,
190
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
191
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
192
+ is_active BOOLEAN DEFAULT 1
193
+ );
194
+
195
+ CREATE TABLE IF NOT EXISTS saved_datasets (
196
+ id TEXT PRIMARY KEY,
197
+ name TEXT NOT NULL,
198
+ dataset_key TEXT NOT NULL,
199
+ repo_id TEXT,
200
+ description TEXT,
201
+ dataset_type TEXT DEFAULT 'medical',
202
+ config TEXT,
203
+ metadata TEXT,
204
+ status TEXT DEFAULT 'saved',
205
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
206
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
207
+ is_active BOOLEAN DEFAULT 1
208
+ );
209
+ ```
210
+
211
+ ### 6. مراقبة الأداء
212
+
213
+ #### إعدادات المراقبة
214
+ ```python
215
+ # في ملف monitoring/performance.py
216
+ import psutil
217
+ import logging
218
+ from datetime import datetime
219
+
220
+ class PerformanceMonitor:
221
+ def __init__(self):
222
+ self.logger = logging.getLogger(__name__)
223
+
224
+ def get_system_stats(self):
225
+ return {
226
+ 'cpu_percent': psutil.cpu_percent(),
227
+ 'memory_percent': psutil.virtual_memory().percent,
228
+ 'disk_usage': psutil.disk_usage('/').percent,
229
+ 'timestamp': datetime.now().isoformat()
230
+ }
231
+
232
+ def log_performance(self):
233
+ stats = self.get_system_stats()
234
+ self.logger.info(f"Performance: {stats}")
235
+ ```
236
+
237
+ ### 7. إعدادات النسخ الاحتياطي
238
+
239
+ #### نسخ احتياطي تلقائي
240
+ ```python
241
+ # في ملف backup/backup_manager.py
242
+ import shutil
243
+ import os
244
+ from datetime import datetime
245
+
246
+ class BackupManager:
247
+ def __init__(self, backup_dir="backups"):
248
+ self.backup_dir = backup_dir
249
+ os.makedirs(backup_dir, exist_ok=True)
250
+
251
+ def backup_databases(self):
252
+ timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
253
+ backup_path = os.path.join(self.backup_dir, f"backup_{timestamp}")
254
+
255
+ # نسخ قواعد البيانات
256
+ shutil.copytree("database", backup_path)
257
+
258
+ return backup_path
259
+ ```
260
+
261
+ ### 8. اختبارات النشر
262
+
263
+ #### اختبارات التكامل
264
+ ```python
265
+ # في ملف tests/test_deployment.py
266
+ import pytest
267
+ import requests
268
+ from fastapi.testclient import TestClient
269
+ from app import app
270
+
271
+ client = TestClient(app)
272
+
273
+ def test_health_check():
274
+ response = client.get("/health")
275
+ assert response.status_code == 200
276
+
277
+ def test_main_page():
278
+ response = client.get("/")
279
+ assert response.status_code == 200
280
+
281
+ def test_api_endpoints():
282
+ # اختبار APIs الأساسية
283
+ response = client.get("/api/models/teacher")
284
+ assert response.status_code == 200
285
+
286
+ response = client.get("/api/datasets/saved")
287
+ assert response.status_code == 200
288
+ ```
289
+
290
+ ### 9. إرشادات النشر
291
+
292
+ #### خطوات النشر على Hugging Face Spaces
293
+ 1. إنشاء Space جديد على Hugging Face
294
+ 2. رفع الملفات إلى المستودع
295
+ 3. تكوين متغيرات البيئة
296
+ 4. تفعيل Space
297
+ 5. مراقبة الأداء
298
+
299
+ #### خطوات النشر على خادم مخصص
300
+ 1. إعداد الخادم وتثبيت المتطلبات
301
+ 2. نسخ الملفات إلى الخادم
302
+ 3. تكوين قاعدة البيانات
303
+ 4. تشغيل التطبيق
304
+ 5. إعداد Nginx/Apache للوكيل العكسي
305
+
306
+ ### 10. استكشاف الأخطاء
307
+
308
+ #### مشاكل شائعة وحلولها
309
+ - **نفاد الذاكرة**: تقليل حجم النماذج أو استخدام التحميل بالقطع
310
+ - **بطء التحميل**: تحسين إعدادات الشبكة وحجم القطع
311
+ - **أخطاء قاعدة البيانات**: التحقق من صلاحيات الكتابة
312
+ - **مشاكل الرموز**: التحقق من صحة رموز Hugging Face
313
+
314
+ ---
315
+
316
+ **ملاحظة**: تأكد من تحديث جميع الإعدادات حسب بيئة النشر المستهدفة.