
Headergen هو نهج قائم على الأدوات لتعزيز فهم وملاحة دفاتر Jupyter المستندة إلى Python غير الموثقة عن طريق إنشاء بنية سردية تلقائيًا في دفتر الملاحظات.
يقوم علماء البيانات بإنشاء دفتر حلول يستند إلى ML عن طريق إعداد البيانات أولاً ، ثم استخراج الميزات الرئيسية ، ثم إنشاء النموذج وتدريبه. يقوم Headergen بتعزيز الهيكل السردي الضمني لدفتر ML لإضافة الرؤوس الهيكلية كتعليقات توضيحية إلى دفتر الملاحظات.

pip install headergen
إدراج رأس تخفيض تلقائي: من خلال تصنيف لعمليات التعلم الآلي ، يقوم Headergen بتعليق خلايا الكود برؤوس تخفيض ذات صلة.
تصنيف استدعاء الوظيفة: يصنف بشكل منهجي مكالمات الوظائف بناءً على تصنيف عمليات التعلم الآلي.
تحليل الرسم البياني المتقدم للمكالمات: يعزز إطار عمل PYCG مع الحساسية للتدفق ودقة نوع المكتبة الخارجية.
الدقة في المكتبات الخارجية: القدرة على حل أنواع إرجاع الوظائف بدقة من المكتبات الخارجية باستخدام typestubs.
مطابقة نمط بناء الجملة: توظف بيانات النوع لمطابقة الأنماط.
generate الأمر:قم بإنشاء دفتر NoteGen المشروح في الدليل الحالي. لاحظ أنه سيتم إنشاء ذاكرة التخزين المؤقت في المرة الأولى التي يتم فيها تشغيل Headergen.
headergen generate -i /path/to/input.ipynbقم بإنشاء ملف بيانات تعريف JSON يتضمن معلومات تحليل مختلفة ، استخدم علامة -json_output أو -j.
headergen generate -i /path/to/input.ipynb -o /path/to/output/ -jtypes :قم بتشغيل الاستدلال نوعًا على الملف وجلب المعلومات.
headergen types -i /path/to/input.ipynbقم بإنشاء ملف JSON مع معلومات النوع ، استخدم علامة -json_output أو -j.
headergen types -i /path/to/input.ipynb -o /path/to/output/ -jserver :بدء الخادم واضح ومباشر:
headergen server
سيؤدي ذلك إلى بدء تشغيل خادم Uvicorn على المضيف 0.0.0.0 ومنفذ 54068.
تقوم نقطة النهاية بإرجاع تحليل دفتر الملاحظات المحدد أو البرنامج النصي Python كاستجابة JSON التي تحتوي على بيانات تحليل مثل cell_callsites و block_mapping.
مثال باستخدام Curl:
curl "http://0.0.0.0:54068/get_analysis_notebook?file_path=/absolute/path/to/your/file.ipynb"
تقوم نقطة النهاية بإرجاع معلومات النوع من دفتر الملاحظات المحدد أو البرنامج النصي Python كاستجابة JSON.
مثال باستخدام Curl:
curl "http://0.0.0.0:54068/get_types?file_path=/absolute/path/to/your/file.ipynb"
هذه نقطة النهاية تُرجع دفتر الملاحظات المشروح بناءً على التحليل. سيكون الاستجابة تنزيل ملف.
مثال باستخدام Curl:
curl "http://0.0.0.0:54068/generate_annotated_notebook?file_path=/absolute/path/to/your/file.ipynb" --output annotated_file.ipynb
callsites-jupyternb-micro-benchmark : معيار صغيرcallsites-jupyternb-real-world-benchmark : معيار في العالم الحقيقيevaluation : يحتوي على توضيح الرأس اليدوي ونتائج دراسة المستخدمframework_models : مكالمات الوظائف إلى تعيين تصنيف MLtypestub-database : نوع STBS لمكتبات MLheadergen : رمز مصدر headergenpycg_extended : رمز المصدر لـ PYCG الممتدheadergen-extension : jupyter Notebook plugin for hgheadergen_output : مجلد حيث يتم تخزين أجهزة الكمبيوتر المحمولة التي تم إنشاؤها من حاوية Docker احصل على ملفات المصدر
git clone --recursive
git submodule update --init --recursive
git pull --recurse-submodules
Linux
docker build -t headergen .
docker run -v {$PWD}/headergen_output:/headergen_output -it headergen bash
النوافذ
docker build -t headergen .
docker run -v "%cd%"/headergen_output:/headergen_output -it headergen bash
يتم تخزين الإخراج الذي تم إنشاؤه من الأوامر التالية ، مثل دفاتر الملاحظات المشروحة والتقارير والمكالمات والرؤوس وما إلى ذلك ، في المجلد المحلي headergen_output بعد تنفيذ الأوامر التالية.
القياس الصغير (يولد ملف CSV مع نتائج)
make ROOT_PATH=/app/HeaderGen microbench
معيار العالم الحقيقي (يولد دفاتر ملاحظات مشروحة وملف CSV الذي يعيد إنتاج الجدول 2)
make ROOT_PATH=/app/HeaderGen realworldbench
كلا المعايير
make ROOT_PATH=/app/HeaderGen all
الناتج الناتج الناتج
make clean
احصل على ملفات المصدر
git clone --recursive
git submodule update --init --recursive
git pull --recurse-submodules
مسح ذاكرة التخزين المؤقت إذا كانت موجودة
rm framework_models/models_cache.pickle
rm pycg_extended/machinery/pytd_cache.pickle
الإعداد VenV والتبعيات مع setup.sh SCRIPT
./setup.sh -i
القياس الصغير (يولد ملف CSV مع نتائج)
make ROOT_PATH=<path to repo root> microbench
معيار العالم الحقيقي (يولد دفاتر ملاحظات مشروحة وملف CSV الذي يعيد إنتاج الجدول 2)
make ROOT_PATH=<path to repo root> realworldbench
كلا المعايير
make ROOT_PATH=<path to repo root> all
الناتج الناتج الناتج
make clean
يحتوي هذا الريبو على رمز للورقة "تعزيز الفهم والتنقل في دفاتر جوبيتر مع تحليل ثابت" تم نشره في مؤتمر Saner 2023.