Git สำหรับโครงการปัญญาประดิษฐ์
git init, .gitignore สำหรับข้อมูล/โมเดล การคอมมิตสมุดบันทึก และ DVC สำหรับกำหนดรุ่นข้อมูล
Git สำหรับโครงการปัญญาประดิษฐ์ เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
กิตในโครงการปัญญาประดิษฐ์
กิตติดตามการเปลี่ยนแปลงในโค้ดของคุณ เพื่อให้คุณทำงานร่วมกัน ย้อนคืนข้อผิดพลาด และตรวจสอบประวัติได้ แต่โครงการปัญญาประดิษฐ์มีข้อแตกต่างคือ ไฟล์ข้อมูลขนาดใหญ่และแบบจำลองไบนารีไม่ควรอยู่ในกิต
บทเรียนนี้ครอบคลุมการตั้งค่า .gitignore ที่เหมาะสมและการใช้ DVC เพื่อควบคุมรุ่นข้อมูล
สิ่งที่กิตติดตามได้ดี
กิตทำงานได้ดีเยี่ยมกับข้อความ ได้แก่ ซอร์สโค้ด ไฟล์กำหนดค่า สมุดบันทึก (ที่ล้างผลลัพธ์แล้ว) และเอกสาร โดยจัดเก็บส่วนต่างของไฟล์ข้อความได้อย่างมีประสิทธิภาพ
กิตจัดการไฟล์ไบนารีขนาดใหญ่ได้ไม่ดี เพราะจัดเก็บแต่ละรุ่นไว้อย่างเต็มรูปแบบ ทำให้คลังโครงการพองใหญ่ขึ้นตลอดไป
เหตุใดจึงไม่ควรบันทึกข้อมูลและแบบจำลอง
การบันทึกชุดข้อมูลขนาด 2 GB หรือไฟล์แบบจำลองขนาด 500 MB:
- ทำให้คลังโครงการมีขนาดใหญ่และทำให้การโคลนทุกครั้งช้าลง
- ไม่สามารถเปรียบเทียบความแตกต่างได้อย่างมีความหมาย
- ยังคงอยู่ในประวัติตลอดไป แม้จะลบออกแล้ว
วิธีแก้คือสั่งให้กิตละเว้นไฟล์เหล่านี้ และควบคุมรุ่นด้วยเครื่องมือเฉพาะ
ไฟล์ .gitignore
.gitignore แสดงรายการรูปแบบที่กิตไม่ควรติดตาม ให้สร้างไฟล์นี้ไว้ที่ระดับรากของโครงการ แต่ละบรรทัดเป็นรูปแบบจับคู่ไฟล์แบบโกลบ
# .gitignore
*.pkl
*.joblib
*.h5
data/raw/*
data/processed/*
models/*
__pycache__/
*.pyc
.ipynb_checkpoints/
.envการละเว้นไฟล์แบบจำลองและแคช
รูปแบบการละเว้นที่พบบ่อยในโครงการปัญญาประดิษฐ์:
*.pkl*.joblibและ*.h5— แบบจำลองที่จัดเก็บในรูปอนุกรม__pycache__/และ*.pyc— รหัสไบต์ของไพธอน.ipynb_checkpoints/— การบันทึกอัตโนมัติของจูปีเตอร์.env— ข้อมูลลับและคีย์ส่วนติดต่อโปรแกรมประยุกต์ (ห้ามบันทึกสิ่งเหล่านี้ลงในคลังโครงการโดยเด็ดขาด!)
การเก็บโฟลเดอร์ว่างด้วย .gitkeep
กิตจะละเว้นไดเรกทอรีว่าง หากต้องการเก็บ data/raw/ ไว้ในโครงสร้างคลังโครงการขณะละเว้นเนื้อหาภายใน ให้เพิ่มไฟล์ว่าง .gitkeep และรูปแบบที่ยกเว้นการละเว้น
# .gitignore
data/raw/*
!data/raw/.gitkeepแนะนำ DVC
DVC (การควบคุมเวอร์ชันข้อมูล) ใช้ควบคุมรุ่นข้อมูลและแบบจำลองขนาดใหญ่ควบคู่กับกิต กิตติดตามไฟล์ตัวชี้ขนาดเล็กที่ลงท้ายด้วย .dvc ส่วนข้อมูลจริงอยู่ในพื้นที่จัดเก็บระยะไกล (เอสทรี, GCS และอื่น ๆ)
คุณจะได้รุ่นข้อมูลที่ทำซ้ำได้โดยไม่ทำให้คลังโครงการกิตมีขนาดใหญ่เกินไป
dvc init
เริ่มต้น DVC ภายในคลังกิตที่มีอยู่แล้ว คำสั่งนี้จะสร้างไดเรกทอรี .dvc/ และการกำหนดค่าที่คุณต้องบันทึกลงในกิต
# in your git repo
dvc init
git add .dvc .gitignore
git commit -m "Initialize DVC"dvc add — การติดตามข้อมูล
dvc add เริ่มติดตามไฟล์หรือโฟลเดอร์ DVC จะย้ายข้อมูลไปยังแคชและสร้างไฟล์ตัวชี้ .dvc ขนาดเล็ก คุณบันทึกตัวชี้ลงในกิต ไม่ใช่ข้อมูลจริง
dvc add data/raw/dataset.csv
# creates data/raw/dataset.csv.dvc
git add data/raw/dataset.csv.dvc data/raw/.gitignore
git commit -m "Track dataset with DVC"dvc push และ dvc pull
กำหนดค่าพื้นที่จัดเก็บระยะไกล จากนั้น dvc push จะอัปโหลดข้อมูลไปยังพื้นที่นั้น และ dvc pull จะดาวน์โหลดรุ่นที่ตรงกับการบันทึกการเปลี่ยนแปลงกิตปัจจุบัน วิธีนี้ทำให้เพื่อนร่วมทีมแบ่งปันข้อมูลกันได้
dvc remote add -d storage s3://my-bucket/dvcstore
dvc push # upload data to the remote
# teammate after git clone + git checkout:
dvc pull # fetch the matching data versionกระบวนการทำงานของทีม
วงจรกิต + DVC เชื่อมรุ่นของโค้ดและข้อมูลเข้าด้วยกัน:
git pullเพื่อรับโค้ดล่าสุดและตัวชี้.dvcdvc pullเพื่อดึงข้อมูลและแบบจำลองที่ตรงกัน- ทำงาน จากนั้นใช้
dvc add+git commit+dvc push
การย้อนโครงการไปยังการบันทึกการเปลี่ยนแปลงเก่าแล้วเรียกใช้ dvc pull จะสร้างสถานะเดิมนั้นได้อย่างแม่นยำ
ตรวจสอบอย่างรวดเร็ว: ไฟล์ขนาดใหญ่
โครงการของคุณมีชุดข้อมูลฝึกขนาด 1 GB และไฟล์แบบจำลองขนาด 300 MB
สรุปทบทวน: กิตสำหรับโครงการปัญญาประดิษฐ์
คุณได้เรียนรู้การควบคุมเวอร์ชันเฉพาะสำหรับปัญญาประดิษฐ์ดังนี้:
- กิตเหมาะสำหรับข้อความ (โค้ด ไฟล์กำหนดค่า และสมุดบันทึก) แต่ไม่เหมาะสำหรับไฟล์ไบนารีขนาดใหญ่
.gitignoreสำหรับ*.pkldata/raw/*__pycache__และ.env.gitkeepเพื่อรักษาโฟลเดอร์ว่าง- DVC:
dvc initdvc addและdvc push/pullเพื่อควบคุมรุ่นข้อมูลและแบบจำลอง - กระบวนการทำงานกิต + DVC ทำให้โค้ดและข้อมูลสอดคล้องกัน
ต่อไป: การทำให้การทดลองทำซ้ำได้
คำถามที่พบบ่อย
บทเรียน “Git สำหรับโครงการปัญญาประดิษฐ์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Git สำหรับโครงการปัญญาประดิษฐ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Git สำหรับโครงการปัญญาประดิษฐ์”
git init, .gitignore สำหรับข้อมูล/โมเดล การคอมมิตสมุดบันทึก และ DVC สำหรับกำหนดรุ่นข้อมูล คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “Git สำหรับโครงการปัญญาประดิษฐ์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างไดเรกทอรีโครงการปัญญาประดิษฐ์ระดับมืออาชีพ
- Git สำหรับโครงการปัญญาประดิษฐ์
- การทำซ้ำผลลัพธ์ได้: ค่าเริ่มต้น การตั้งค่า และสภาพแวดล้อม
- แนวทางปฏิบัติที่ดีสำหรับ Jupyter Notebooks