ایجاد منبع
آموزش پردازش زبان طبیعیآموزش‌های پیشرفته هوش مصنوعیپردازش زبان طبیعی

آموزش پردازش زبان طبیعی با اکوسیستم هاگینگ فیس؛ ایجاد منبع (قسمت سوم فصل چهارم)

0
زمان مطالعه: ۸ دقیقه

آسان‌ترین روش برای اشتراک‌گذاری مدل از پیش آموزش داده شده این است که از Hugging Face Hub استفاده کنید. ابزارها و امکانات موجود می‌تواند بستر مناسبی برای اشتراک‌گذاری و به‌روزرسانیِ مستقیم مدل‌ها در Hub فراهم کند. جزئیات آن در بخش‌های بعدی مقاله توضیح داده خواهد شد. مشوق‌های لازم در اختیار کاربران قرار می‌گیرد تا مدل‌ها را آموزش دهند. به این ترتیب، همه می‌توانند به این مدل‌ها دسترسی داشته باشند. مدل‌ها حتی اگر با دیتاست‌های ویژه‌ای آموزش داده شوند، نقش موثری در صرفه‌جویی در زمان خواهند داشت. همچنین، امکان محاسبه‌ی منابع و دسترسی به آرتیفکت‌های مفیدِ آموزش داده شده نیز فراهم می‌شود. پس کاربران می‌توانند از کارهای دیگران نیز سود ببرند. سه روش برای ایجاد منبع مدل جدید وجود دارد:

  • push_to_hubAPI
  • transformersCLI
  •  رابط کاربری وب

پس از ایجاد منبع، می‌توانید فایل‌ها را با git و git-lfs در آن بارگذاری کنید. در این مقاله، مراحل مختلفِ ساخت منبع مدل و بارگذاری فایل‌ها در آنها توضیح داده خواهد شد.

استفاده از push_to_hub با huggingface_hub

آسان‌ترین روش برای بارگذاری فایل‌ها در Hub، استفاده از روش push_to_hub است. در ادامه، باید یک توکن احراز هویت بسازید تا huggingface_hub API هویت‌تان را تشخیص دهد. باید در محیطی باشید که transformers در آن نصب شده باشد. باید دستور CLI login را اجرا کنید. توجه داشته باشید که این دستورها باید با کاراکتر !  همراه باشند، اگر با Google Colab کار می‌کنید.

اگر huggingface_hub را نصب کرده‌اید، به شیوه قبلی عمل کنید:

نام کاربری و گذرواژه همان مواردی هستند که برای ورود به Hub استفاده کرده‌اید. بسیار عالی! اکنون توکن احراز هویت‌تان در پوشه‌ی cache ذخیره شده است. حال، نوبت به ایجاد چند منبع رسیده است. دسترسی به Model Hub با روش push_to_hub امکان‌پذیر می‌شود. این روش در مدل‌ها، توکن‌کننده‌ها و اشیای پیکربندی موجود است. این روش نقش موثری در ایجاد منبع و انتقال مستقیم مدل و فایل‌های توکن‌کننده به داخل منبع دارد. برخلاف دو روشی که در زیر خواهید دید، نیازی به انجام دستیِ کارها نیست. برای اینکه با نحوه‌ی کارکرد آن آشنا شوید، ابتدا یک مدل و توکن‌کننده راه‌اندازی می‌کنیم:

می‌توانید هر کاری که دوست دارید با این روش انجام دهید؛ توکن‌ها را به توکن‌کننده اضافه کنید، مدل را آموزش دهید و به طور دقیق تنظیم‌اش کنید. پس از اینکه مدل‌ها، وزن‌ها و توکن‌کننده مطابق خواسته‌هایتان به دست آمدند، می‌توانید به طور مستقیم از روش push_to_hub استفاده کنید که در شیء model موجود است:

به این ترتیب، منبع جدید dummy-model در پروفایل‌تان ایجاد خواهد شد. فایل‌های مدل‌تان در آن جای می‌گیرد. همین کار را با توکن‌کننده انجام دهید. بنابراین، همه فایل‌ها در این منبع جدید در دسترس قرار خواهند گرفت:

اگر در یک سازمان مشغول به کار هستید، آرگومان organization را به منظور بارگذاری در فضای نام آن سازمان ذکر کنید:

اگر قصد دارید از توکن Hugging Face خاصی استفاده کنید، باید آن را در روش push_to_hub ذکر کنید:

اکنون، سَری به Model Hub بزنید تا مدل تازه بارگذاری‌شده‌تان را پیدا کنید:

https://huggingface.co/user-or-organization/dummy-model

روی تب «فایل‌ها و نسخه‌ها» کلیک کنید. باید فایل‌ها در قالب اسکرین‌شات زیر نمایان باشند:

ایجاد منبع

مدل و توکن‌کننده‌ی مرتبط با چک‌پوینت bert-base-cased را برداشته و با استفاده از روش push_to_hub در فضای نام‌تان در منبع بارگذاری کنید. این نکته را حتماً بررسی کنید که منبع پیش از حذف کردن به درستی در صفحه قرار گرفته باشد. همان‌طور که پیشتر دیده‌اید، روش push_to_hub آرگومان‌های متعددی را می‌پذیرد؛ بنابراین، امکان بارگذاری منبعی خاص یا فضای نام سازمان یا استفاده از توکن API مختلفی نیز وجود دارد.

بسته پایتون huggingface_hub از روش push_to_hub  پشتیبانی می‌کند. این بسته یک API مستقیم برای Hugging Face Hub عرضه می‌کند و در ترنسفورمرز و چند کتابخانه یادگیری ماشین دیگر مثل allenlp قرار دارد. اگرچه عمده‌ تمرکزمان در فصل جاری روی یکپارچه‌سازیِ ? Transformers است، اما به‌کارگیری آن در کد یا کتابخانه خودتان هم کار چندان دشواری نیست. نحوه‌ی بارگذاری فایل‌ها در منبعِ تازه ایجاد شده در بخش آخر توضیح داده شده است.

استفاده از transformers CLI

بسته‌ی transformers  می‌تواند CLI بسیار ساده‌ای برای کارهای پیش پاافتاده‌ای نظیر گردآوری اطلاعات درباره محیط، افزودن معماری مدل جدید به کتابخانه و تبدیل مدل ارائه کند. این بسته دستور ساده‌ای هم برای ایجاد منبع جدید در فضای نام کاربران یا فضای نام سازمان در Hub دارد. CLI امکان ایجاد منبع جدید را برای کاربران فراهم می‌کند، اما فایل‌های متعددی را در آن بارگذاری نمی‌کند. در بخش حاضر، با نحوه‌ی استفاده از git برای بارگذاری فایل‌ها از خط دستور آشنا خواهید شد.

به طور مشابه، استفاده از huggingface_hub API نیازمند این است که توکن APIتان را در cache ذخیره کرده باشید. بنابراین، باید از دستور login در CLI استفاده کنید. این مورد در بخش قبلی نیز ذکر شد. توجه داشته باشید که این دستورها باید با کاراکتر !  همراه باشند، اگر با Google Colab کار می‌کنید.

اگر اقدام به نصب huggingface_hub کرده‌اید:

پس از اینکه این کار به پایان رسید، API می‌داند که به کدام فضاهای نام دسترسی دارید. پروفایل و سازمان‌تان بخشی از آن است. برای اینکه فهرست دستورهای موجود را ببینید، می‌توانید transformers-cli -h را اجرا کنید. احتمال دارد با خروجی زیر مواجه شوید:

به منظور بارگذاری مدل از پیش آموزش داده شده، از دستور repo create برای ساخت منبع استفاده کنید. جرئیات کار را در زیر می‌بینید:

بنابراین، منبع dummy-model در فضای نام به دست خواهد آمد. اگر مایل بودید، می‌توانید با استفاده از –organization  مشخص کنید که منبع باید به کدام سازمان تعلق داشته باشد.

لذا، dummy-model در فضای نام huggingface شکل خواهد گرفت؛ با فرض اینکه به آن سازمان تعلق دارید. در بخش آخر این بخش، خواهید دید که فایل‌ها چگونه در  منبع تازه ایجاد شده بارگذاری می‌شوند.

استفاده از رابط کاربری وب

رابط کاربری وب ابزارهایی برای مدیریت مستقیم منابع در Hub ارائه می‌کند. با استفاده از این رابط کاربری، ساخت منابع، افزودن فایل‌ها (حتی فایل‌های بزرگتر)، بررسی مدل‌ها، ارائه‌ی بصری تفاوت‌ها و بسیاری دیگر از کارها آسان‌تر می‌شود. برای اینکه منبع تازه‌ای بسازید، به این لینک مراجعه کنید.

در ابتدا، مالک منبع را مشخص کنید. مالک می‌تواند خود شما یا سازمان متبوع باشد. اگر سازمانی را انتخاب کنید، مدل در صفحه‌ی سازمان پوشش داده خواهد شد و تمامی اعضای سازمان این فرصت را خواهند داشت تا در راستای ارتقای آن تلاش کنند. در وهله بعدی، نام مدل‌تان را وارد کنید و این نام منبع نیز خواهد بود. در نهایت، می‌توانید مشخص کنید که آیا مدل عمومی باشد یا خصوصی. مدل‌های خصوصی مستلزم این است که حساب کاربری پولی در هاگینگ فیس داشته باشید. بنابراین، مدل‌هایی خواهید داشت که از دید عموم کاربران پنهان است.

ایجاد منبع

پس از ساخت منبع مدل، با صفحه‌ای نظیر این روبرو می‌شوید:

ایجاد منبع

میزبانی از مدل شما در این محیط رخ خواهد داد. می‌توانید فایل README را به طور مستقیم از رابط کاربری وب اضافه کنید تا عمل تکثیر آغاز شود. فایل README با نام Markdown شناخته می‌شود. بخش سومِ این فصل به ساخت کارت مدل اختصاص دارد. این مراحل نقش بسیار پررنگی در ارزش‌آفرینی برای مدل‌تان دارد.

ایجاد منبع

اگر به تب «فایل‌ها و نسخه‌ها» نگاه کنید، می‌بینید که هنوز فایل‌های زیادی در آنجا نیست. فقط README.md که خودتان ساختید و فایل .gitattributes که فایل‌های بزرگ را زیر نظر دارد، در آن بخش قابل دسترس می‌باشند.

ایجاد منبع در پردازش زبان طبیعی

در گام بعدی، به بررسی نحوه‌ی افزودن برخی فایل‌های جدید خواهیم پرداخت.

بارگذاری فایل‌های مدل

سیستم مدیریتِ فایل‌ها در Hugging Face Hub بر پایه‌ی git  قرار دارد و git-lfs  که خلاصه‌شده‌ی عبارت Git Large File Storage  است، مخصوص فایل‌های بزرگتر می‌باشد. پیش از ادامه‌ی کار، از این مسئله مطمئن شوید که git  و git-lfs  را روی سیستم‌تان نصب کرده‌اید. پس از اینکه این ابزارها را دانلود و نصب کردید، git lfs install  را برای راه‌اندازیِ git-lfs  اجرا کنید:

در گام بعدی، به بررسی نحوه‌ی افزودن برخی فایل‌های جدید خواهیم پرداخت.

بارگذاری فایل‌های مدل

سیستم مدیریتِ فایل‌ها در Hugging Face Hub بر پایه‌ی git قرار دارد و git-lfs که خلاصه‌شده‌ی عبارت Git Large File Storage  است، مخصوص فایل‌های بزرگتر می‌باشد. پیش از ادامه‌ی کار، از این مسئله مطمئن شوید که git  و git-lfs را روی سیستم‌تان نصب کرده‌اید. پس از اینکه این ابزارها را دانلود و نصب کردید، git lfs install را برای راه‌اندازیِ git-lfs اجرا کنید:

گام بعدی این است که منبع مدل‌تان را کلون کنید:

نام کاربری من lysandre  است و از نام مدل dummy استفاده کرده‌ام. پس، دستور برای من به شکل زیر خواهد بود:

اکنون، پوشه‌ای به نام dummy  در دایرکتوری دارم. بگذارید نگاهی به محتوا بیندازیم:

اگر منبع‌تان را با استفاده از push_to_hub یا transformers CLI ساختید، این پوشه باید خالی باشد. اگر از دستورالعمل‌های بخش قبلی برای ساخت منبع با استفاده از رابط کاربری وب پیروی کردید، پوشه باید حاوی یک فایل README.md باشد که در زیر می‌بینید.

افزودن فایلی با حجم معمولی (مثل فایل پیکربندی، فایل واژگان یا هر فایلی که چند مگابایت حجم داشته باشد) به همان شیوه‌ای انجام می‌شود که در سیستم مبتنی بر git  عمل شده است. با این حال، فایل‌های بزرگتر باید از git-lfs عبور کنند تا به huggingface.co برسند.

حال، بگذارید سری به پایتون بزنیم تا مدل و توکن‌کننده‌ای ایجاد کنیم که به منبع DUMMY متعهد باشد.

حال که چند آرتیفکت مدل و توکن‌کننده ذخیره کرده‌ایم، یک نگاه دیگر به پوشه dummy می‌اندازیم:

اگر به حجم فایل نگاه کنید، می‌بینید که فایل t5_model.h5 فقط داده‌پرت است و بیش از ۴۰۰ مگابایت حجم دارد.

هنگام ساخت منبع (Repository) از رابط کاربری وب، فایل *.gitattributes* به طور خودکار نصب می‌شود تا فایل‌های معینی را زیر نظر بگیرد مثل *.bin* و *.h5*. همچنین، git-lfs آنها را بررسی و ردیابی خواهد کرد. اینک، می‌توان با روال پیشین به انجام مراحل دیگر پرداخت. می‌توان همه فایل‌ها را با استفاده از دستور git add به محیط Git اضافه کرد:

پس می‌توان فایل‌ها را نیز در این مرحله بررسی کرد:

به طور مشابه، با استفاده از دستور status باید اطمینان حاصل کنید که git-lfs فایل‌های درست را بررسی و ردیابی می‌کند:

می‌بینید که همه فایل‌ها دارای Git هستند، به جز t5_model.h5 که از LFS بهره می‌برد.

نوبت به انجام مراحل آخر رسیده است:

بسته به سرعت اینترنت و حجم فایل‌ها، این مراحل می‌تواند قدری زمان‌بر باشد:

اگر پس از اتمام این مرحله به منبع مدل نگاه کنید، کلیه فایل‌هایِ تازه اضافه شده را می‌بینید:

آموزش پردازش زبان طبیعی

با UI این فرصت را دارید که فایل‌های مدل را بررسی کنید و متوجهِ تفاوت‌های ایجاد شده شوید:

هاگینگ فیس

برای دسترسی به دیگر فصل‌ها و قسمت‌های دوره آموزشی پردازش زبان طبیعی با اکوسیستم هاگینگ فیس از لینک زیر استفاده کنید:

آموزش پردازش زبان طبیعی

این مطلب چه میزان برای شما مفید بوده است؟
[کل: ۰ میانگین: ۰]

تکامل هوش مصنوعی به شیوه فرگشت موجودات زنده

مقاله قبلی

هوشمندسازی کد پستی در شرکت ملی پست

مقاله بعدی

شما همچنین ممکن است دوست داشته باشید

نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.