অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B।

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

জুনের শেষে, ইয়ানডেক্স
জনসাধারণের কাছে YaLM 100B নামক 100 বিলিয়ন প্যারামিটার সহ একটি নিউরাল নেটওয়ার্ক প্রকাশ করেছে এটি পাবলিক ডোমেনে সবচেয়ে বড় GPT-এর মতো নিউরাল নেটওয়ার্ক। এটি তারা কীভাবে শিখিয়েছে, সেরা উদাহরণ দেখিয়েছে এবং নিউরন কী করতে সক্ষম তা সম্পর্কে বলে। কিন্তু এটা কি অনুশীলনে এত ভালো এবং বাড়িতে প্রযোজ্য? নিবন্ধটি এই সম্পর্কে নীরব, তদুপরি, এটি চালানো এবং পরীক্ষা করা এত সহজ নয়, যেহেতু প্রায় 200 গিগাবাইট জিপিইউ র‌্যাম প্রয়োজন। হাব্রে
সম্পর্কে এই মন্তব্যটি সবচেয়ে সঠিকভাবে পরিস্থিতি প্রকাশ করে

কথিত, ইয়ানডেক্সে, এই জাতীয় সমস্ত স্মার্ট ব্যক্তি এবং তারা এমনকি একটি সাধারণ কীভাবে-করতেও পোস্ট করেননি। একটি বড় মডেলের জন্য কোনো এপিআই নেই, সাধারণ মানুষের জন্য (গুগল কোলাবে) কোনো রেডিমেড স্ট্রিপড-ডাউন মিডিয়াম বা ছোট মডেল নেই। কিভাবে মডেল সেট আপ করতে হয়, কিভাবে টেক্সট তৈরি করতে হয় তার কোন উদাহরণ দেওয়া হয়নি। এটা ঠিক যে নিবন্ধটি nerds জন্য সূক্ষ্মতা একটি দম্পতি নির্দেশ করে এবং এটা. ব্যাঙ্কটি “সি” অক্ষর দিয়ে কীভাবে এটি করেছে তা ঘনিষ্ঠভাবে দেখার জন্য এবং একই কাজ করার জন্য এটি যথেষ্ট। আমি ধারণা পেয়েছি যে এই মডেলটি ব্যর্থ পরীক্ষাগুলির মধ্যে একটি যা ট্র্যাশে ফেলার জন্য দুঃখজনক ছিল, তাই ইয়ানডেক্স কী দুর্দান্ত মডেল তৈরি করে তা দেখানোর জন্য এটি ওপেন সোর্সে পোস্ট করা হয়েছিল, এবং উপরন্তু, এটি ওপেন সোর্স!

ইন্টারনেটে অনেক প্রশ্ন আছে কিভাবে ইয়ালম চালানো যায় বা এমনকি অনলাইনে চেষ্টা করা যায়, কিন্তু এর কোন উত্তর নেই। আমি এই প্রশ্ন জিজ্ঞাসা যারা ব্যবহারকারীদের মধ্যে ছিল. এবং এটা figuring সম্পর্কে সেট. যেহেতু আমার সত্যিই আর্থিক রোবটের জন্য পাঠ্য তৈরি করার একটি উপায় দরকার ছিল। যাতে তারা আর্থিক প্রতিবেদনের উপর ভিত্তি করে কেবলমাত্র মানগুলিই ভবিষ্যদ্বাণী করতে পারে না, তবে পাঠ্যে এটিতে মন্তব্যও করতে পারে। সারমর্মে, আর্থিক বিশ্লেষকরা যা করেন, শুধুমাত্র কৃত্রিম বুদ্ধিমত্তার ব্যবহারে এটি একই রকম হবে। ইয়ালম চালানোর দুটি উপায় আছে।
ক্লাউডে একটি সার্ভার ভাড়া নিন200+ Gb GPU RAM সহ বা কোডটি পরিবর্তন করুন এবং ডিপস্পিড জিরো অফলোড দিয়ে চালান (যখন GPU ক্রমানুসারে নিউরাল নেটওয়ার্কের কিছু অংশ প্রসেস করে এবং বাকিটা CPU RAM বা NVMe-এ সংরক্ষিত থাকে)। প্রথমটি খুব ব্যয়বহুল, প্রতি ঘন্টায় প্রায় 2500 রুবেল বা প্রতি মাসে 1.7 মিলিয়ন। দ্বিতীয় অজানা, কারণ সংগ্রহস্থলের কোড প্রদান করা হয় না, শুধুমাত্র
সংগ্রহস্থলের ইস্যুতে ইঙ্গিত দেয় , যা করা কঠিন নয়। এর সহজ শুরু করা যাক.

YaLM 100B লঞ্চের নির্দেশাবলী

1. আমরা 200 GB GPU RAM ভাড়া করি, উদাহরণস্বরূপ এখানে

অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B।

আপনার মোট ভিডিও মেমরির কমপক্ষে 200 GB প্রয়োজন৷ 8×40 = 320 GB। শুধুমাত্র এই এক মাপসই. 200 এর কম অসম্ভব, আরও বেশি সম্ভব। তীরটি সিপিইউ র‌্যাম নির্দেশ করে, আমরা এটির দিকে তাকাই না। সে যে কেউ হতে পারে।

আমরা প্রায় 300 গিগাবাইটের একটি ডিস্ক নির্দেশ করি, যাতে একটি অতিরিক্ত এবং বিশেষত একটি দ্রুত ডিস্কের সাথে, কারণ। এর থেকে দশ হাজার গিগাবাইট ডেটা স্থানান্তর করা হবে।

অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B। উত্সগুলিতে তৈরি করার সময়, উবুন্টু এমএল (মেশিন লার্নিং) নির্বাচন করুন। এটি বাধ্যতামূলক যাতে ভিডিও কার্ডগুলি কনফিগার করা হয় এবং অতিরিক্ত কিছু ইনস্টল করার দরকার নেই।

একটি সার্ভার তৈরি করার সময়, কোটাগুলির সাথে সূক্ষ্মতা রয়েছে, আপনি অনুভব করতে পারেন যে সরঞ্জামগুলি উপলব্ধ নয়, তবে আসলে আপনাকে সেটিংসে কোটা বাড়াতে হবে। সার্ভার সক্রিয় হওয়ার পরে (এটি 5-10 মিনিট সময় নিতে পারে), সার্ভারের সাথে ssh এর মাধ্যমে বা সরাসরি সার্ভার পৃষ্ঠায় ওয়েব কনসোলে সংযোগ করুন এবং কমান্ডটি চালান।

nvidia-smi

ফলাফল ভিডিও কার্ড, ড্রাইভার সংস্করণ এবং চুদা সহ একটি টেবিল হওয়া উচিত। প্রায় এই মত.
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B। ড্রাইভার সংস্করণ শিরোনাম এবং যেখানে. বাম দিকে ডিভাইস নম্বর আছে, মাঝখানে ডিভাইস মেমরির আকার আছে। যদি আপনার কাছে এই তথ্য না থাকে, তাহলে আপনি ভুল উৎস থেকে সার্ভার সংগ্রহ করেছেন। উপরে বর্ণিত হিসাবে উবুন্টু এমএল (মেশিন লার্নং) প্রয়োজন।

2. YaLM দিয়ে ভান্ডার ক্লোন করুন

সুডো গিট ক্লোন https://github.com/yandex/YaLM-100B/ ইয়ালম
সিডি ইয়ালম

আপনার হোম ফোল্ডারে ক্লোন করুন যাতে আপনাকে পরে ডকার কনফিগারেশন সম্পাদনা করতে হবে না। যদি অন্য কোথাও ক্লোন করা হয়, তাহলে
এখানে যান এবং যেখানে ক্লোন করা হয়েছে সেখানে পথ যোগ করুন।

3. চেকপয়েন্ট ডাউনলোড করুন (প্রাথমিক মডেল প্রশিক্ষণ তথ্য)

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

এটি প্রায় এক ঘন্টা সময় লাগবে। নিরর্থক সময় নষ্ট না করার জন্য, আমরা একটি নতুন ssh সংযোগ তৈরি করি এবং সমান্তরালে আমরা একটি ডকার কন্টেইনার তৈরি করা শুরু করি।

4. এনভিডিয়া ইনস্টল করুন – ডকার 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 ফোল্ডারে হচ্ছে execute

mv ./download/yalm100b_checkpoint ./

অথবা উদাহরণ ফাইলগুলিতে ফাইলগুলির পাথগুলি পরিবর্তন করুন
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L

6.2 ভিডিও কার্ড

আমরা পরীক্ষা করি যে ভিডিও কার্ডগুলি সঠিকভাবে সেট করা আছে। আপনার যদি আটটি ভিডিও কার্ড থাকে তবে কিছুই পরিবর্তন করার দরকার নেই। যদি সংখ্যাটি ভিন্ন হয়, তবে আমরা এই লাইনগুলি পরিবর্তন করি
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B। দ্বিতীয় লাইনে, ব্যবহৃত ডিভাইসগুলির সংখ্যা (আপনি সেগুলিকে এনভিডিয়া-এসএমআইতে দেখতে পারেন, যা আপনি ইতিমধ্যে চালু করেছেন)। চতুর্থ, তাদের সংখ্যা।

7. ডকার কন্টেইনার চালান

ইয়ালম ফোল্ডারে থাকা, কমান্ডটি চালান

sudo bash ./docker/run.sh

যদি সবকিছু ঠিক থাকে, তাহলে আপনাকে একটি পাত্রে নিয়ে যাওয়া হবে যেখানে আপনাকে আপনার হোম ডিরেক্টরির yalm ফোল্ডারে যেতে হবে।

cd ~/yalm

8. YaLM 100B থেকে উদাহরণটি চালান

আমরা উদাহরণগুলির একটি চালু করতে প্রস্তুত। সেগুলো এখানে বর্ণনা
করা হয়েছে ।

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

ধৈর্য ধরুন, জিপিটি মডেল তৈরি না হওয়া পর্যন্ত এবং চেকপয়েন্টগুলি থেকে ওজন লোড না হওয়া পর্যন্ত আরও 10-15 মিনিট অপেক্ষা করতে হবে।
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B।

বিল্ড শেষ হলে, মেগাট্রনএমএল আপনাকে টেক্সট তৈরি করতে একটি প্রসঙ্গ প্রবেশ করতে বলবে। টাইপ করার সময় সতর্ক থাকুন। নির্দিষ্ট পরিস্থিতিতে, একটি ত্রুটি ঘটে, প্রোগ্রামটি ক্র্যাশ হয় এবং আপনাকে আবার সমাবেশ শুরু করতে হবে। অতএব, ফাইল থেকে পাঠ্য নেওয়া উদাহরণগুলি ব্যবহার করা ভাল।

9. কাজের ফলাফল

অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B।
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B। বেশ মজার তো. অবশ্যই, এগুলি কেবল ভাল উদাহরণ। আমি বিভিন্ন নমুনা পরীক্ষা চালানো. প্রত্যাশিত হিসাবে, প্রসঙ্গ যত ভাল, তত বেশি অর্থপূর্ণ পাঠ্য তৈরি হবে। পরীক্ষামূলক প্রজন্মের সম্পূর্ণ সেট লিঙ্কে দেখা যেতে পারে:

মূল্যের জন্য, প্রশিক্ষণ এবং প্রস্তুতি থেকে প্রজন্ম পর্যন্ত বিভিন্ন ক্ষমতার সার্ভার ভাড়া নেওয়ার জন্য আমার প্রায় 9 হাজার রুবেল খরচ হয়েছে। একটি বিশেষ হতাশা ছিল যে আপনি তাত্ক্ষণিকভাবে সবকিছু তৈরি করতে পারবেন না। এটি শুরু হতে অনেক বেশি সময় নেয় এবং প্রতি ঘন্টায় সার্ভারের খরচের পরিপ্রেক্ষিতে পাঠ্যটি যত তাড়াতাড়ি আমরা চাই তত তাড়াতাড়ি তৈরি হয় না।
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B।  

কিভাবে 200Gb GPU RAM ছাড়া YaLM চালাবেন?

কনফিগারেশনে আপনাকে ডিপস্পিড জিরো অফলোড যোগ করতে হবে। যারা জানেন যে আমরা কী সম্পর্কে কথা বলছি, তাদের জন্য এটি করা খুব সহজ হবে। অন্যদের জন্য, এটি মোটেই তুচ্ছ কাজ নয়। এটা জানা গুরুত্বপূর্ণ যে অফলোড হয় CPU RAM বা NVMe-এ হতে পারে। আপনি এই মুহূর্তে NVMe সম্পর্কে ভুলে যেতে পারেন, কারণ. একটি খুব বড় পরিমাণ ডেটা প্রক্রিয়া করা হচ্ছে এবং ডিস্ক এটির সাথে মানিয়ে নিতে পারে না। জিরো অফলোড সিপিইউ আরও বাস্তব। সত্য, এর জন্য আপনার স্টকে 200+ Gb CPU RAM থাকতে হবে, যা সস্তাও নয়। এবং একটি পাঠ্য প্রায় 20-40 মিনিটের জন্য তৈরি হবে, যেহেতু এটি দুটি ভিডিও কার্ডে সমান্তরাল করা এখনও সম্ভব হয়নি। আপনি নীচের স্ক্রিনশট দেখতে পারেন, শুধুমাত্র একটি ভিডিও কার্ড প্রজন্মের সাথে জড়িত ছিল, এবং তারপর শুধুমাত্র মেমরির এক চতুর্থাংশের জন্য। কেন সব 24 গিগাবাইট ব্যবহার করা হয় না তা দেখা বাকি আছে,
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B। ঠিক আছে, উপসংহারে, আমি বলব যে এমনকি একটি RTX 3070 TI তেও চালানো সম্ভব। কিন্তু এর কোনো বিশেষ অর্থ নেই, কারণ। NVMe আপনাকে দ্রুত 150 গিগাবাইট ডেটা অদলবদলে প্রক্রিয়া করার অনুমতি দেবে না, যা 96 গিগাবাইট র‍্যামের পরিশিষ্টে রয়েছে।
অনুশীলনে নিউরাল নেটওয়ার্ক YaLM 100B।

সাতরে যাও

অবশ্যই, আমি এখনও সর্বোত্তম লঞ্চ পাথ খুঁজে বের করার চেষ্টা করব। কিন্তু এখন পর্যন্ত আমি এই সিদ্ধান্তে পৌঁছেছি যে YaLM 100b আমার কাজের জন্য খুব ব্যয়বহুল / খুব ধীর। একই অর্থের জন্য, লোকেরা আরও অনেক এবং অনেক ভাল লিখবে। কিন্তু আমি মনে করি এটা সাময়িক, আমরা দেখব। আপনার যদি লঞ্চ করা, ইয়ালম সেট আপ করার জন্য সাহায্যের প্রয়োজন হয় বা আপনার প্রসঙ্গ উদাহরণগুলিতে ফলাফল দেখতে চান তবে মেল বা টেলিগ্রামে লিখুন।

pskucherov
Rate author
Add a comment

  1. Olha

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

    Reply
  2. Данила

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

    Reply
  3. Дмитрий

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

    Reply