شبکه عصبی YaLM 100B در عمل.

Программирование

در پایان ماه ژوئن، Yandex
یک شبکه عصبی با 100 میلیارد پارامتر به نام YaLM 100B را برای عموم منتشر کرد. این بزرگترین شبکه عصبی GPT مانند در حوزه عمومی است. این نشان می دهد که چگونه آنها آموزش داده اند، بهترین نمونه ها را نشان می دهند و نورون قادر به انجام چه کارهایی است. اما آیا در عمل بسیار خوب است و در خانه قابل اجرا است؟ مقاله در این مورد ساکت است، علاوه بر این، اجرا و بررسی آن چندان آسان نیست، زیرا تقریباً 200 گیگابایت رم GPU مورد نیاز است. این نظر در هابره
وضعیت را به درستی نشان می دهد
.

گفته می شود، در Yandex، همه چنین افراد باهوشی هستند، و آنها حتی یک راهنمای معمولی را ارسال نکرده اند. هیچ api برای یک مدل بزرگ وجود ندارد، هیچ مدل آماده و آماده‌ای برای افراد عادی وجود ندارد (در Google Colab). هیچ مثالی در مورد نحوه تنظیم مدل، نحوه تولید متن ارائه نشده است. فقط این مقاله چند نکته را برای نردها نشان می دهد و تمام. کافی است نگاه دقیق تری به نحوه انجام این کار توسط بانک با حرف “C” بیندازید و همین کار را انجام دهید. من این تصور را داشتم که این مدل فقط یکی از آزمایشات ناموفق است که حیف شد آن را به سطل زباله بیندازیم، بنابراین در متن باز پست شد تا نشان دهد که Yandex چه مدل های عالی ایجاد می کند و علاوه بر آن منبع باز است!

سوالات زیادی در اینترنت وجود دارد که چگونه می توان yalm را اجرا کرد یا حتی آنلاین را امتحان کرد، اما هیچ پاسخی برای این وجود ندارد. من جزو کاربرانی بودم که این سوالات را پرسیدم. و شروع به کشف آن کنید. از آنجایی که من واقعاً به راهی برای تولید متون برای روبات های مالی نیاز داشتم. تا بتوانند نه تنها مقادیر را پیش بینی کنند، بلکه بر اساس گزارش های مالی در مورد آن به صورت متنی نیز اظهار نظر کنند. در اصل، این همان کاری خواهد بود که تحلیلگران مالی تنها با استفاده از هوش مصنوعی انجام می دهند. دو راه برای اجرای زردچوبه وجود دارد.
اجاره سرور در فضای ابریبا 200+ گیگابایت رم GPU یا کد را نهایی کنید و با استفاده از بارگذاری عمقی صفر اجرا کنید (زمانی که GPU به طور متوالی بخشی از شبکه عصبی را پردازش می کند و بقیه در RAM CPU یا NVMe ذخیره می شود). اولین مورد بسیار گران است، حدود 2500 روبل در ساعت یا 1.7 میلیون در ماه. ناشناخته دوم، زیرا کد موجود در مخزن ارائه نشده است، فقط
نکاتی در مورد مخزن وجود دارد که انجام آن دشوار نیست. بیایید ساده شروع کنیم.

دستورالعمل های راه اندازی YaLM 100B

1. ما 200 گیگابایت رم GPU اجاره می کنیم، برای مثال اینجا .

شبکه عصبی YaLM 100B در عمل.

شما به حداقل 200 گیگابایت حافظه ویدئویی نیاز دارید. 8×40 = 320 گیگابایت. فقط این یکی مناسب است. کمتر از 200 غیر ممکن است، بیشتر ممکن است. فلش رم CPU را نشان می دهد، ما به آن نگاه نمی کنیم. او می تواند هر کسی باشد.

ما یک دیسک حدود 300 گیگابایت را نشان می دهیم، به طوری که با یک دیسک یدکی و ترجیحا یک دیسک سریع، زیرا. ده ها گیگابایت داده به آن و از آن منتقل می شود.

شبکه عصبی YaLM 100B در عمل.هنگام ایجاد در منابع، Ubuntu ML (Machine Learning) را انتخاب کنید. این اجباری است تا کارت‌های ویدئویی پیکربندی شوند و نیازی به نصب اضافی نباشد.

پس از فعال شدن سرور (ممکن است 5-10 دقیقه طول بکشد)، از طریق ssh یا مستقیماً در کنسول وب در صفحه سرور به سرور متصل شده و دستور را اجرا کنید.

nvidia-smi

نتیجه باید یک جدول با کارت های ویدئویی، نسخه درایور و cuda باشد. تقریبا اینجوریه
شبکه عصبی YaLM 100B در عمل.در هدر نسخه درایور و کجا. در سمت چپ شماره های دستگاه، در مرکز اندازه حافظه دستگاه است. اگر این اطلاعات را ندارید، سرور را از منبع اشتباهی جمع آوری کرده اید. همانطور که در بالا توضیح داده شد، Ubuntu ML (Machine Learnong) مورد نیاز است.

2. مخزن را با YaLM کلون کنید

کلون sudo git https://github.com/yandex/YaLM-100B/ yalm
cd yalm

در پوشه اصلی خود کلون کنید تا دیگر مجبور نباشید پیکربندی docker را ویرایش کنید. اگر در جای دیگری شبیه سازی شده است،
به اینجا بروید و مسیر را به جایی که شبیه سازی شده است اضافه کنید.

3. دانلود چک پوینت ها (اطلاعات آموزشی مدل پایه)

sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh

این حدود یک ساعت طول خواهد کشید. برای اینکه زمان را بیهوده هدر ندهیم، یک اتصال ssh جدید ایجاد می کنیم و به موازات آن شروع به ساخت یک داکر کانتینر می کنیم.

4. nvidiadocker 2 را نصب کنید

داکر معمولی مناسب نیست،
nvidia-docker2 مورد نیاز است .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. ساخت کانتینر برای YaLM

cd yalm
sudo chmod +x ./docker/*
sudo bash ./docker/build.sh

همچنین حدود یک ساعت است.

هک زندگی شما می توانید چک پوینت ها را دانلود کنید، داکر را نصب کنید و با یک کارت گرافیک روی یک سرور ارزان یک کانتینر بسازید. به مرور زمان همین خواهد بود، بنابراین می توانید کمی صرفه جویی کنید. پس از مونتاژ بر روی یک سرور ارزان، آن را حذف می کنیم و با استفاده از یک دیسک از یک سرور ارزان، یک سرور رزمی ایجاد می کنیم. سپس زمان انتظار برای مونتاژ و پمپاژ پست های بازرسی را بیش از حد پرداخت نخواهید کرد.

6. محتوا را آماده کنید

6.1 ایست های بازرسی

پس از پایان بارگیری چک پوینت ها، باید آنها را در تنظیمات قرار دهید. دو راه وجود دارد، پارامترهای صحیح یا نقاط بازرسی انتقال. در همه جا انتظار می رود که چک پوینت ها به ترتیب در دایرکتوری اصلی پروژه باشند، آنچه دانلود می شود باید از پوشه دانلود بالا منتقل شود. بودن در پوشه yalm اجرا کنید

mv ./download/yalm100b_checkpoint ./

یا مسیرهای فایل‌های موجود در فایل‌های نمونه را تغییر دهید
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L

6.2 کارت گرافیک

ما بررسی می کنیم که کارت های ویدئویی به درستی تنظیم شده باشند. اگر هشت کارت گرافیک دارید، هیچ چیز نیاز به تغییر ندارد. اگر عدد متفاوت است، این خطوط را تغییر می دهیم
شبکه عصبی YaLM 100B در عمل.در خط دوم، شماره دستگاه های مورد استفاده (شما می توانید آنها را در nvidia-smi که قبلاً راه اندازی کرده اید نگاه کنید). در چهارم، تعداد آنها.

7. محفظه docker را اجرا کنید

با قرار گرفتن در پوشه yalm، دستور را اجرا کنید

sudo bash ./docker/run.sh

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

سی دی ~/آلم

8. مثال را از YaLM 100B اجرا کنید

ما آماده راه اندازی یکی از نمونه ها هستیم. آنها در
اینجا شرح داده شده اند.

chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh

صبور باشید، باید 10-15 دقیقه دیگر صبر کنید تا مدل GPT2 ایجاد شود و وزنه های ایست های بازرسی بارگیری شوند.
شبکه عصبی YaLM 100B در عمل.

هنگامی که ساخت به پایان رسید، MegatronML از شما می خواهد که متنی را برای تولید متن وارد کنید. هنگام تایپ مراقب باشید. تحت شرایط خاص، خطایی رخ می دهد، برنامه از کار می افتد و باید مونتاژ را دوباره شروع کنید. بنابراین بهتر است از مثال هایی استفاده کنید که متنی را از یک فایل می گیرند.

9. نتایج کار

شبکه عصبی YaLM 100B در عمل.
شبکه عصبی YaLM 100B در عمل.جالب به نظر می رسد. البته اینها فقط نمونه های خوبی هستند. من آزمایش را روی نمونه های مختلف انجام دادم. همانطور که انتظار می رود، هرچه زمینه بهتر باشد، متن معنادارتری تولید خواهد شد. مجموعه کامل نسل های آزمایشی را می توانید در لینک های زیر مشاهده کنید:

برای قیمت، برای اجاره سرورهایی با ظرفیت های مختلف از آموزش و از آماده سازی به نسل دیگر، حدود 9 هزار روبل برای من هزینه داشت. یک ناامیدی خاص این بود که شما نمی توانید فوراً همه چیز را تولید کنید. زمان زیادی طول می کشد تا شروع شود و با توجه به هزینه سرور در هر ساعت، متن به همان سرعتی که ما می خواهیم تولید نمی شود.
شبکه عصبی YaLM 100B در عمل. 

چگونه YaLM را بدون 200 گیگابایت رم GPU اجرا کنیم؟

شما باید سرعت تخلیه صفر را به پیکربندی اضافه کنید. برای کسانی که می دانند در مورد چه چیزی صحبت می کنیم، انجام آن بسیار آسان خواهد بود. برای دیگران، این کار اصلاً پیش پا افتاده نیست. مهم است که بدانید تخلیه بار می تواند در رم CPU یا NVMe باشد. در حال حاضر می توانید NVMe را فراموش کنید، زیرا. حجم بسیار زیادی از داده ها در حال پردازش است و دیسک نمی تواند با آن مقابله کند. CPU تخلیه صفر واقعی تر است. درست است، برای این کار باید 200+ گیگابایت رم CPU در انبار داشته باشید، که همچنین ارزان نیست. و یک متن برای حدود 20-40 دقیقه تولید می شود، زیرا هنوز امکان موازی سازی آن در دو کارت گرافیک وجود ندارد. همانطور که در تصویر زیر می بینید، تنها یک کارت گرافیک در تولید و سپس تنها برای یک چهارم حافظه درگیر بود. باید دید چرا تمام 24 گیگابایت استفاده نمی شود.
شبکه عصبی YaLM 100B در عمل.خوب، در پایان، من می گویم که حتی روی یک RTX 3070 TI هم می توان اجرا کرد. اما هیچ معنای خاصی در این وجود ندارد، زیرا. NVMe به شما اجازه نمی دهد که به سرعت 150 گیگابایت داده را در سوآپ پردازش کنید که در ضمیمه 96 گیگابایت رم قرار دارند.
شبکه عصبی YaLM 100B در عمل.

جمع بندی

البته من همچنان سعی می کنم مسیرهای پرتاب بهینه را پیدا کنم. اما تاکنون به این نتیجه رسیده ام که YaLM 100b برای کارهای من بسیار گران است / خیلی کند است. با همین پول، مردم خیلی بیشتر و خیلی بهتر خواهند نوشت. اما فکر می کنم موقتی است، خواهیم دید. اگر برای راه‌اندازی، راه‌اندازی yalm به کمک نیاز دارید یا می‌خواهید نتایج را در نمونه‌های زمینه خود ببینید، به ایمیل یا تلگرام بنویسید.

pskucherov
Rate author
Add a comment

  1. Olha

    Статья на Мега актуальную тему! Спасибо.

    Reply
  2. Данила

    Крутая статья! Спасибо автору!

    Reply
  3. Дмитрий

    СПАСИБО !!!
    три дня эту информацию искал
    нет подобного о RuGPT3 и Порфириче?

    Reply