
Headergen เป็นวิธีการตามเครื่องมือเพื่อเพิ่มความเข้าใจและการนำทางของสมุดบันทึก Jupyter ที่ไม่มีเอกสารที่ไม่มีเอกสารโดยการสร้างโครงสร้างการเล่าเรื่องโดยอัตโนมัติในสมุดบันทึก
นักวิทยาศาสตร์ข้อมูลสร้างสมุดบันทึกโซลูชัน ML โดยเตรียมข้อมูลก่อนจากนั้นการแยกคุณสมบัติที่สำคัญจากนั้นสร้างและฝึกอบรมโมเดล Headergen ใช้ประโยชน์จากโครงสร้างการเล่าเรื่องโดยนัยของสมุดบันทึก ML เพื่อเพิ่มส่วนหัวโครงสร้างเป็นคำอธิบายประกอบในสมุดบันทึก

pip install headergen
การแทรกส่วนหัวของ Markdown อัตโนมัติ: ผ่านอนุกรมวิธานสำหรับการดำเนินการเรียนรู้ด้วยเครื่อง, headergen annotates เซลล์รหัสที่มีส่วนหัว markdown ที่เกี่ยวข้อง
ฟังก์ชั่นการเรียกใช้อนุกรมวิธาน: การจำแนกฟังก์ชั่นการเรียกใช้ฟังก์ชันตามลำดับการดำเนินการของการเรียนรู้ด้วยเครื่อง
การวิเคราะห์กราฟการโทรขั้นสูง: เพิ่มเฟรมเวิร์ก PYCG ด้วยความไวต่อการไหลและความละเอียดแบบส่งคืนไลบรารีภายนอก
ความแม่นยำในไลบรารีภายนอก: ความสามารถในการแก้ไขประเภทการส่งคืนฟังก์ชั่นอย่างแม่นยำจากไลบรารีภายนอกโดยใช้ typestubs
การจับคู่รูปแบบไวยากรณ์: ใช้ข้อมูลประเภทสำหรับการจับคู่รูปแบบ
generate คำสั่ง:สร้างโน้ตบุ๊ก headergen Annotated ในไดเรกทอรีปัจจุบัน โปรดทราบว่าแคชจะถูกสร้างขึ้นในครั้งแรกที่ headergen ทำงาน
headergen generate -i /path/to/input.ipynbสร้างไฟล์ข้อมูลเมตา JSON ที่มีข้อมูลการวิเคราะห์ต่าง ๆ ใช้ -JSON_OUTPUT หรือ -J FLAG
headergen generate -i /path/to/input.ipynb -o /path/to/output/ -jtypes คำสั่ง:เรียกใช้การอนุมานประเภทบนไฟล์และข้อมูลประเภทการดึงข้อมูล
headergen types -i /path/to/input.ipynbสร้างไฟล์ JSON พร้อมข้อมูลประเภทใช้ -JSON_OUTPUT หรือ -J FLAG
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 : Micro Benchmarkcallsites-jupyternb-real-world-benchmark : มาตรฐานโลกแห่งความเป็นจริงevaluation : มีคำอธิบายประกอบส่วนหัวด้วยตนเองและผลการศึกษาของผู้ใช้framework_models : ฟังก์ชั่นเรียก ML Taxonomy Mappingtypestub-database : Type-STB สำหรับ ML Librariesheadergen : รหัสที่มาของ headergenpycg_extended : ซอร์สโค้ดของ PYCG แบบขยายheadergen-extension : JUPYTER NOTEBOOK ปลั๊กอินสำหรับ HGheadergen_output : โฟลเดอร์ที่เก็บสมุดบันทึกที่สร้างขึ้นจากคอนเทนเนอร์ Docker รับไฟล์ต้นฉบับ
git clone --recursive
git submodule update --init --recursive
git pull --recurse-submodules
ลินเวกซ์
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
เอาท์พุทที่สร้างขึ้นจากคำสั่งต่อไปนี้เช่นโน้ตบุ๊กหมายเหตุประกอบรายงานโทรออกส่วนหัว ฯลฯ จะถูกเก็บไว้ในโฟลเดอร์ local headergen_output หลังจากคำสั่งต่อไปนี้ดำเนินการ
Micro Benchmark (สร้างไฟล์ 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
./setup.sh -i
Micro Benchmark (สร้างไฟล์ 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
repo นี้มีรหัสสำหรับกระดาษ "เพิ่มความเข้าใจและการนำทางในสมุดบันทึก Jupyter พร้อมการวิเคราะห์แบบคงที่" เผยแพร่ในการประชุม Saner 2023