فایل‌های بزرگ باینری در گیت

سلام.


امروز توی کد یکی از همکارام که از مخزن گیت شرکت گرفته بودم، دیدم یه فایل بزرگ باینری اضافه شده. صحبت‌های خودم با اون فرد رو با شما هم به اشتراک می‌ذارم.


فایل‌های باینری رو عموما روی گیت نمی‌ذارن. به دو دلیل:


۱- این که گیت ذاتا نمی‌تونه بفهمه کجای فایل باینری تغییر کرده.


۲- مخزن سنگین میشه و برای هر بارعملیات clone و pull اینا گریه همه درمیاد که کلی حجم باید دانلود کنن.


خب پس چی کار می‌کنن تو اینجور مواقع؟


همونطوری که توی اکثر پروژه‌های یادگیری ماشین توی گیت‌هاب دیدید معمولا توی فایل README.md خود پروژه یه دستورالعمل می‌نویسن که:


اول پروژه رو کلون کنید که شامل سورس کد‌ها و غیره است.


بعد فلان دیتاست رو از بیسار لینک دریافت کنید. که بیسار می‌تونه یکی از جاهای زیر باشه Amazon S3، Dropbox ، Google Drive, Alibaba Cloud یا هرجای دیگه‌ای که به عنوان Storage آنلاین شناخته میشه می‌ذارن.میگن ازینجاها دانلود کنید دیتاست رو. قرار بدید توی این فولدر.اگر هم وزن‌ها رو برای Pre-train می‌خواید ازین یکی جاها دانلود کنید و بذارید توی این یکی پوشه.


بعدش چی؟ یه دستور برای train. یه دستور برای تست. یکی برای Evaluation.


این ساختاریه که تو اکثر جاها استفاده میشه که باعث میشه که کد شما قابل بازتولید کردن نتایج بشه و سطح استانداردتری رو تجربه کنه و به اصطلاح hard to follow نشه.