انتقل إلى المحتوى الرئيسي

المشاركة في مجتمع المصادر المفتوحة

KataGo هو مشروع مفتوح المصدر نشط، وهناك طرق متعددة للمشاركة والمساهمة.

توجد أربع طرق رئيسية للمشاركة في KataGo: المساهمة بقوة معالجة الرسوميات (GPU) لشبكة التدريب الموزع (katagotraining.org)، والإبلاغ عن المشاكل على GitHub، وتحسين التوثيق، والمساهمة بكود C++/Python؛ وأقل هذه الطرق صعوبةً هي تشغيل اللعب الذاتي على حاسوب مزوّد بمعالج رسوميات للمساهمة بقوة الحوسبة.


نظرة عامة على طرق المساهمة​

الطريقةالصعوبةالمتطلبات
المساهمة بقوة الحوسبةمنخفضةحاسوب مع GPU
الإبلاغ عن المشاكلمنخفضةحساب GitHub
تحسين التوثيقمتوسطةمعرفة المحتوى التقني
المساهمة بالكودعاليةمهارات تطوير C++/Python

المساهمة بقوة الحوسبة: التدريب الموزع​

مقدمة عن KataGo Training​

KataGo Training هي شبكة تدريب موزعة عالمية:

  • المتطوعون يساهمون بقوة GPU لتنفيذ اللعب الذاتي
  • بيانات اللعب الذاتي تُرفع للخادم المركزي
  • الخادم يدرب نماذج جديدة بشكل دوري
  • النماذج الجديدة توزع على المتطوعين لمواصلة اللعب

الموقع الرسمي: https://katagotraining.org/

خطوات المشاركة​

1. إنشاء حساب​

اذهب إلى https://katagotraining.org/ وسجل حساباً.

2. تحميل KataGo​

# تحميل أحدث إصدار
wget https://github.com/lightvector/KataGo/releases/download/v1.15.3/katago-v1.15.3-cuda11.1-linux-x64.zip
unzip katago-v1.15.3-cuda11.1-linux-x64.zip

3. إعداد وضع المساهمة​

# التشغيل الأول سيرشدك خلال الإعداد
./katago contribute -username YOUR_USERNAME -password YOUR_PASSWORD

سيقوم النظام تلقائياً بـ:

  • تحميل أحدث نموذج
  • تنفيذ اللعب الذاتي
  • رفع بيانات اللعب

4. التشغيل في الخلفية​

# استخدام screen أو tmux للتشغيل في الخلفية
screen -S katago
./katago contribute -username YOUR_USERNAME -password YOUR_PASSWORD
# Ctrl+A, D للخروج من screen

إحصائيات المساهمة​

يمكنك مشاهدة ما يلي في https://katagotraining.org/contributions/:

  • ترتيب مساهماتك
  • إجمالي عدد المباريات المساهمة
  • أحدث النماذج المدربة

الإبلاغ عن المشاكل​

أين يمكن الإبلاغ​

تقرير المشكلة الجيد يتضمن​

  1. إصدار KataGo: katago version
  2. نظام التشغيل: Windows/Linux/macOS
  3. الأجهزة: طراز GPU، الذاكرة
  4. رسالة الخطأ الكاملة: نسخ السجل الكامل
  5. خطوات إعادة الإنتاج: كيفية تفعيل هذه المشكلة

مثال​

## وصف المشكلة
يظهر خطأ نفاد الذاكرة عند تشغيل benchmark

## البيئة
- إصدار KataGo: 1.15.3
- نظام التشغيل: Ubuntu 22.04
- GPU: RTX 3060 12GB
- النموذج: kata-b40c256.bin.gz

## رسالة الخطأ

CUDA error: out of memory


## خطوات إعادة الإنتاج
1. تشغيل `katago benchmark -model kata-b40c256.bin.gz`
2. الانتظار حوالي 30 ثانية
3. ظهور الخطأ

تحسين التوثيق​

مواقع التوثيق​

  • README: README.md
  • توثيق GTP: docs/GTP_Extensions.md
  • توثيق Analysis: docs/Analysis_Engine.md
  • توثيق التدريب: python/README.md

عملية المساهمة​

  1. Fork المشروع
  2. إنشاء فرع جديد
  3. تعديل التوثيق
  4. تقديم Pull Request
git clone https://github.com/YOUR_USERNAME/KataGo.git
cd KataGo
git checkout -b improve-docs
# تعديل الملفات
git add .
git commit -m "Improve documentation for Analysis Engine"
git push origin improve-docs
# إنشاء Pull Request على GitHub

المساهمة بالكود​

إعداد بيئة التطوير​

# نسخ المشروع
git clone https://github.com/lightvector/KataGo.git
cd KataGo

# البناء (وضع Debug)
cd cpp
mkdir build && cd build
cmake .. -DUSE_BACKEND=OPENCL -DCMAKE_BUILD_TYPE=Debug
make -j$(nproc)

# تشغيل الاختبارات
./katago runtests

أسلوب الكود​

يستخدم KataGo أسلوب الكود التالي:

C++:

  • مسافتان للإزاحة
  • الأقواس المنحنية في نفس السطر
  • أسماء المتغيرات بـ camelCase
  • أسماء الفئات بـ PascalCase
class ExampleClass {
public:
void exampleMethod() {
int localVariable = 0;
if(condition) {
doSomething();
}
}
};

Python:

  • اتباع PEP 8
  • 4 مسافات للإزاحة

مجالات المساهمة​

المجالموقع الملفاتالمهارات المطلوبة
المحرك الأساسيcpp/C++, CUDA/OpenCL
برنامج التدريبpython/Python, PyTorch
بروتوكول GTPcpp/command/gtp.cppC++
Analysis APIcpp/command/analysis.cppC++, JSON
الاختباراتcpp/tests/C++

عملية Pull Request​

  1. إنشاء Issue: ناقش التغيير الذي تريده أولاً
  2. Fork & Clone: إنشاء فرعك الخاص
  3. التطوير والاختبار: تأكد من نجاح جميع الاختبارات
  4. تقديم PR: وصف مفصل لمحتوى التغيير
  5. Code Review: الرد على ملاحظات المشرفين
  6. الدمج: المشرفون يدمجون كودك

مثال PR​

## وصف التغيير
إضافة دعم لقواعد نيوزيلندا

## محتوى التغيير
- إضافة قاعدة NEW_ZEALAND في rules.cpp
- تحديث أمر GTP لدعم `kata-set-rules nz`
- إضافة اختبارات وحدة

## نتائج الاختبار
- جميع الاختبارات الحالية ناجحة
- الاختبارات الجديدة ناجحة

## Issue ذو صلة
Fixes #123

موارد المجتمع​

الروابط الرسمية​

الموردالرابط
GitHubhttps://github.com/lightvector/KataGo
Discordhttps://discord.gg/bqkZAz3
شبكة التدريبhttps://katagotraining.org/

منتديات النقاش​

  • Discord: نقاش فوري، أسئلة تقنية
  • GitHub Discussions: نقاشات طويلة، اقتراحات ميزات
  • Reddit r/baduk: نقاش عام عن الذكاء الاصطناعي للغو

المشاريع ذات الصلة​

المشروعالوصفالرابط
KaTrainأداة تعليم وتحليلgithub.com/sanderland/katrain
Lizzieواجهة تحليلgithub.com/featurecat/lizzie
Sabakiمحرر سجلات المبارياتsabaki.yichuanshen.de
BadukAIتحليل عبر الإنترنتbaduk.ai

التقدير والمكافآت​

قائمة المساهمين​

جميع المساهمين يُذكرون في:

  • صفحة GitHub Contributors
  • لوحة ترتيب المساهمين في KataGo Training

فوائد التعلم​

فوائد المشاركة في المشاريع مفتوحة المصدر:

  • تعلم بنية أنظمة AI على مستوى صناعي
  • التواصل مع مطورين من حول العالم
  • تراكم سجل المساهمات مفتوحة المصدر
  • فهم معمق لتقنية الذكاء الاصطناعي للغو

قراءات إضافية​