مجموعهدادهها و مدلها: نسخههایی که میشود اثباتشان کرد
یک پوشه از یک سطل را بهعنوان نسخهای از یک مجموعهداده یا مدل منجمد کنید. فایلهای دقیق با هشهایشان زیر یک ریشه، ماندگار وقتی سطل تغییر میکند، پیوندخورده به آنچه رویش آموزش دیدهاند، و بارگیری در تکههای بررسیشده که از همانجا که قطع شد ادامه مییابد.
یک مدل فقط به اندازهٔ دادهای که رویش آموزش دیده قابل اعتماد است. «مجموعهدادهِ فروردین» از لحظهای که کسی فایلی به پوشه اضافه کند دیگر معنایی ندارد. در Zaryn، **یک نسخهٔ مجموعهداده** فهرستی منجمد از فایلهاست، هر کدام با هش خودش، زیر یک ریشه. هرگز تغییر نمیکند، وقتی سطل تغییر کند هم قابل بارگیری میماند، و میگوید از چه ساخته شده است.
```diagram
type: flow
title: از یک سطل تا مدلی که ردش را میشود گرفت
---
بارگذاری | فایلها را در یک سطل بگذارید: aws-cli، rclone، اسکریپت آموزش شما | | 📦
~
منجمد کردن | zev data snapshot corpus: فایلهای دقیق و هشهایشان نسخهٔ ۱ میشوند | accent | ❄
~
آموزش | وزنهای مدل هم در یک سطل میروند | | 🧠
~
پیوند | zev data snapshot tiny --trained-on you/corpus@1 | | 🔗
~
بارگیری در هر جا | zev data pull you/tiny@1: هر تکه بررسی میشود، پس از قطع ادامه مییابد | good | ⬇
```
## یک مجموعهداده بسازید
یک مجموعهداده (یا مدل) پوشهای از یکی از [سطلهای S3](/docs/fa/s3-storage) شماست. فایلها را با هر ابزار S3 آنجا بگذارید، سپس:
```bash
zev data new corpus my-bucket/train -d "labelled support tickets"
zev data snapshot corpus -m "first 40k tickets"
```
```text
Version 1 of you/corpus: 40112 files, 2.1 GB (+40112 added, ~0 changed, -0 removed)
root 3f9c1a0e…
Anyone who can read it gets exactly these bytes: zev data pull you/corpus@1
```
پوشه را تغییر دهید (فایل اضافه کنید، برچسبها را درست کنید، ردیفهای بد را بردارید) و دوباره snapshot بگیرید. هر نسخه ثبت میکند چه اضافه، تغییر و حذف شد. اگر چیزی تغییر نکرده باشد، نسخهای ساخته نمیشود. مدل هم همینطور است، با `--model`:
```bash
zev data new tiny my-bucket/models/tiny --model
```
همهٔ اینها در [صفحهٔ ذخیرهسازی](/storage#datasets) هم هست: **مجموعهدادهها و مدلها ← بسازید**، سپس **منجمد کردن یک نسخه**.
## یک نسخه چیست
```diagram
type: cards
title: یک نسخه، هر کدام در یک خط
---
📄 | فایلها | هر فایل زیر آن پوشه در آن لحظه: مسیرش، هش BLAKE3 آن، اندازهاش | accent
🌳 | یک ریشه | یک ریشهٔ مرکل روی همان خطها. ریشهٔ یکسان، فایلهای یکسان، بایت به بایت |
🧊 | ماندگار | فایلی را در سطل پاک یا بازنویسی کنید: نسخه هنوز فایل قدیمی را دارد | good
🔗 | منابعش | روی کدام مجموعهدادهها، مدلها یا مخزنها آموزش، تنظیم یا ارزیابی شده |
```
ریشه، ریشهٔ مرکل [RFC 6962](https://www.rfc-editor.org/rfc/rfc6962) روی خطهای `path:blake3:size` است که بر اساس مسیر مرتب شدهاند. هر کسی میتواند آن را از روی فایلها دوباره حساب کند. آن را در یک مقاله یا کارت مدل بنویسید تا خواننده بتواند ثابت کند دقیقاً همان چیزی را دارد که شما رویش آموزش دادید.
فایلی که فقط نسخههای قدیمی هنوز لازمش دارند برایشان نگه داشته میشود و در [طرح ذخیرهسازی](/storage#plans) شما یک بار حساب میشود، هر چند نسخه هم که آن را داشته باشند. پاک کردن مجموعهداده آن را آزاد میکند.
## بارگیری: بررسیشده و ازسرگیریپذیر
```bash
zev data pull you/corpus@1
zev data pull you/corpus@1 data/ --root 3f9c1a0e…
```
اولی در `./corpus` میرود. دومی در `data/` میرود و هر نسخهای را که ریشهاش همانی نباشد که یادداشت کردهاید رد میکند.
```diagram
type: sequence
title: بارگیری چطور هر بایت را بررسی میکند
lanes: رایانهٔ شما | Zaryn
alt: zev فهرست فایلهای نسخه را میخواهد و ریشهاش را دوباره حساب میکند؛ سپس هر فایل را در تکههای ۱۶ مگابایتی میخواهد که هر کدام با گرههای درخت BLAKE3 اثباتکنندهاش میآید، و هر تکه را پیش از نوشتن با هش فایل بررسی میکند
---
رایانهٔ شما -> Zaryn : فهرست فایلهای نسخه
Zaryn --> رایانهٔ شما : مسیرها، هشها، اندازهها، ریشه
note رایانهٔ شما : ریشه را دوباره حساب کن: باید یکی باشد (و با --root هم) | accent
رایانهٔ شما -> Zaryn : یک تکه از یک فایل، هر بار ۱۶ مگابایت
Zaryn --> رایانهٔ شما : تکه + گرههای درخت BLAKE3 آن (bao)
note رایانهٔ شما : تکه را با هش فایل بررسی کن، بعد بنویس | good
```
- **هیچ چیز بررسینشدهای نوشته نمیشود.** هر تکه با بخشی از درخت BLAKE3 فایل میآید که آن را اثبات میکند (bao). یک بیت واژگون، روی دیسک سرور یا در راه، پیش از رسیدن به پوشهٔ شما رد میشود.
- **قطع شد؟ دوباره اجرا کنید.** بارگیری از آخرین تکهٔ بررسیشده ادامه مییابد. فایل نیمهکارهای که در این میان دستکاری شده باشد پیدا و دوباره گرفته میشود.
- **از قبل دارید؟** فایلهایی که با هش درست در پوشه هستند دوباره بارگیری نمیشوند.
- **سنجاقشده.** با `--root` هیچ چیز بارگیری نمیشود مگر ریشه یکی باشد.
## تبار: از کجا آمده
هنگام منجمد کردن بگویید نسخه از چه ساخته شده است:
```bash
zev data snapshot tiny -m "3 epochs" --trained-on you/corpus@2 --evaluated-on you/heldout@1
zev data snapshot corpus-clean --from you/corpus@2
zev data snapshot tiny --fine-tuned-from repo:you/base-model
```
| گزینه | یعنی |
|---|---|
| `--trained-on` | روی آن نسخهٔ مجموعهداده آموزش دیده |
| `--fine-tuned-from` | از آن مدل شروع شده |
| `--evaluated-on` | روی آن نسخهٔ مجموعهداده سنجیده شده |
| `--from` | از آن ساخته شده (پاکسازی، پالایش، تبدیل) |
| `--uses` | برای اجرا به آن نیاز دارد |
پیوند به یک نسخهٔ مجموعهداده (`owner/name@v`) یا یک [مخزن](/docs/fa/evals-and-lineage) (`repo:owner/name`) است. سپس تا بالا دنبالش کنید، یا ببینید چه چیزهایی از یک نسخه استفاده میکنند:
```bash
zev data lineage tiny
```
```text
you/tiny@1
<- trained_on you/corpus@2 (40310 files, 2.1 GB)
<- derived_from you/raw-tickets@5 (52000 files, 3.4 GB)
<- evaluated_on you/heldout@1 (2000 files, 90 MB)
```
`zev data show you/corpus@2` بخش **used by** را هم نشان میدهد. اگر منبعی بعداً پاک شود، پیوند میماند و با *deleted since* علامت میخورد.
## همرسانی
```bash
zev data public corpus on
```
یک مجموعهداده عمومی را هر کسی، واردشده یا نه، با همان بررسیها میتواند بارگیری کند. مجموعهداده خصوصی فقط مال شماست.
## مقایسهٔ نسخهها
```bash
zev data versions corpus
zev data diff corpus@1 @2
```
```text
~ labels.csv (1.2 MB -> 1.3 MB)
+ tickets/40113.json (2.1 KB)
- tickets/00017.json (1.9 KB)
you/corpus @1 -> @2: 198 added, 3 changed, 1 removed, +410.2 KB
```
## محدودیتها
| | |
|---|---|
| فایل در یک نسخه | ۲۰۰٬۰۰۰ (برای بیشتر، پوشهٔ باریکتری را snapshot بگیرید) |
| پیوند در هر نسخه | ۲۰ |
| سطلی که مجموعهداده دارد | تا مجموعهدادهها پاک نشوند پاک نمیشود |
مرتبط: [ذخیرهسازی سازگار با S3](/docs/fa/s3-storage)، [ارزیابیها و تبار](/docs/fa/evals-and-lineage)، [ذخیرهسازی راستیآزماییشده](/docs/fa/verified-storage).
یک مدل فقط به اندازهٔ دادهای که رویش آموزش دیده قابل اعتماد است. «مجموعهدادهِ فروردین» از لحظهای که کسی فایلی به پوشه اضافه کند دیگر معنایی ندارد. در Zaryn، یک نسخهٔ مجموعهداده فهرستی منجمد از فایلهاست، هر کدام با هش خودش، زیر یک ریشه. هرگز تغییر نمیکند، وقتی سطل تغییر کند هم قابل بارگیری میماند، و میگوید از چه ساخته شده است.
از یک سطل تا مدلی که ردش را میشود گرفت
📦
بارگذاری
فایلها را در یک سطل بگذارید: aws-cli، rclone، اسکریپت آموزش شما
❄
منجمد کردن
zev data snapshot corpus: فایلهای دقیق و هشهایشان نسخهٔ ۱ میشوند
🧠
آموزش
وزنهای مدل هم در یک سطل میروند
🔗
پیوند
zev data snapshot tiny --trained-on you/corpus@1
⬇
بارگیری در هر جا
zev data pull you/tiny@1: هر تکه بررسی میشود، پس از قطع ادامه مییابد
یک مجموعهداده (یا مدل) پوشهای از یکی از سطلهای S3 شماست. فایلها را با هر ابزار S3 آنجا بگذارید، سپس:
Terminal
zev data new corpus my-bucket/train -d "labelled support tickets"zev data snapshot corpus -m "first 40k tickets"
Text
Version 1 of you/corpus: 40112 files, 2.1 GB (+40112 added, ~0 changed, -0 removed)root 3f9c1a0e…Anyone who can read it gets exactly these bytes: zev data pull you/corpus@1
پوشه را تغییر دهید (فایل اضافه کنید، برچسبها را درست کنید، ردیفهای بد را بردارید) و دوباره snapshot بگیرید. هر نسخه ثبت میکند چه اضافه، تغییر و حذف شد. اگر چیزی تغییر نکرده باشد، نسخهای ساخته نمیشود. مدل هم همینطور است، با --model:
Terminal
zev data new tiny my-bucket/models/tiny --model
همهٔ اینها در صفحهٔ ذخیرهسازی هم هست: مجموعهدادهها و مدلها ← بسازید، سپس منجمد کردن یک نسخه.
هر فایل زیر آن پوشه در آن لحظه: مسیرش، هش BLAKE3 آن، اندازهاش
🌳
یک ریشه
یک ریشهٔ مرکل روی همان خطها. ریشهٔ یکسان، فایلهای یکسان، بایت به بایت
🧊
ماندگار
فایلی را در سطل پاک یا بازنویسی کنید: نسخه هنوز فایل قدیمی را دارد
🔗
منابعش
روی کدام مجموعهدادهها، مدلها یا مخزنها آموزش، تنظیم یا ارزیابی شده
ریشه، ریشهٔ مرکل RFC 6962 روی خطهای path:blake3:size است که بر اساس مسیر مرتب شدهاند. هر کسی میتواند آن را از روی فایلها دوباره حساب کند. آن را در یک مقاله یا کارت مدل بنویسید تا خواننده بتواند ثابت کند دقیقاً همان چیزی را دارد که شما رویش آموزش دادید.
فایلی که فقط نسخههای قدیمی هنوز لازمش دارند برایشان نگه داشته میشود و در طرح ذخیرهسازی شما یک بار حساب میشود، هر چند نسخه هم که آن را داشته باشند. پاک کردن مجموعهداده آن را آزاد میکند.
zev data pull you/corpus@1zev data pull you/corpus@1 data/ --root 3f9c1a0e…
اولی در ./corpus میرود. دومی در data/ میرود و هر نسخهای را که ریشهاش همانی نباشد که یادداشت کردهاید رد میکند.
بارگیری چطور هر بایت را بررسی میکند
رایانهٔ شما
Zaryn
فهرست فایلهای نسخه
مسیرها، هشها، اندازهها، ریشه
ریشه را دوباره حساب کن: باید یکی باشد (و با --root هم)
یک تکه از یک فایل، هر بار ۱۶ مگابایت
تکه + گرههای درخت BLAKE3 آن (bao)
تکه را با هش فایل بررسی کن، بعد بنویس
هیچ چیز بررسینشدهای نوشته نمیشود. هر تکه با بخشی از درخت BLAKE3 فایل میآید که آن را اثبات میکند (bao). یک بیت واژگون، روی دیسک سرور یا در راه، پیش از رسیدن به پوشهٔ شما رد میشود.
قطع شد؟ دوباره اجرا کنید. بارگیری از آخرین تکهٔ بررسیشده ادامه مییابد. فایل نیمهکارهای که در این میان دستکاری شده باشد پیدا و دوباره گرفته میشود.
از قبل دارید؟ فایلهایی که با هش درست در پوشه هستند دوباره بارگیری نمیشوند.
سنجاقشده. با --root هیچ چیز بارگیری نمیشود مگر ریشه یکی باشد.
zev data snapshot tiny -m "3 epochs" --trained-on you/corpus@2 --evaluated-on you/heldout@1zev data snapshot corpus-clean --from you/corpus@2zev data snapshot tiny --fine-tuned-from repo:you/base-model
گزینه
یعنی
--trained-on
روی آن نسخهٔ مجموعهداده آموزش دیده
--fine-tuned-from
از آن مدل شروع شده
--evaluated-on
روی آن نسخهٔ مجموعهداده سنجیده شده
--from
از آن ساخته شده (پاکسازی، پالایش، تبدیل)
--uses
برای اجرا به آن نیاز دارد
پیوند به یک نسخهٔ مجموعهداده (owner/name@v) یا یک مخزن (repo:owner/name) است. سپس تا بالا دنبالش کنید، یا ببینید چه چیزهایی از یک نسخه استفاده میکنند: