প্রাকৃতিক ভাষা প্রক্রিয়াকরণে 2x প্রশিক্ষণের গতি বাড়ানোর জন্য প্যাকেড BERT প্রবর্তন

উত্স নোড: 1062065

প্রাকৃতিক ভাষা প্রক্রিয়াকরণে 2x প্রশিক্ষণের গতি বাড়ানোর জন্য প্যাকেড BERT প্রবর্তন

আরও দক্ষ প্রশিক্ষণের জন্য এই নতুন BERT প্যাকিং অ্যালগরিদমটি দেখুন।


By ডাঃ মারিও মাইকেল ক্রেল, গ্রাফকোরে প্রধান মেশিন লার্নিং লিড এবং মাতেজ কোসেক, গ্রাফকোরে এআই অ্যাপ্লিকেশন বিশেষজ্ঞ


শিরোনাম চিত্র
লেখকের ছবি।

 

একটি নতুন প্যাকিং অ্যালগরিদম ব্যবহার করে, আমরা BERT-Large প্রশিক্ষণের সময় প্রাকৃতিক ভাষা প্রক্রিয়াকরণ 2 গুণেরও বেশি গতি বাড়িয়েছি। আমাদের নতুন প্যাকিং কৌশল প্যাডিং অপসারণ করে, উল্লেখযোগ্যভাবে আরও দক্ষ গণনা সক্ষম করে।

আমরা সন্দেহ করি যে এটি জিনোমিক্স এবং প্রোটিন ফোল্ডিং মডেল এবং বিভিন্ন শিল্প এবং অ্যাপ্লিকেশনগুলিতে আরও বিস্তৃত প্রভাব ফেলতে তির্যক দৈর্ঘ্যের বিতরণ সহ অন্যান্য মডেলগুলিতে প্রয়োগ করা যেতে পারে।

আমরা Graphcore-এর অত্যন্ত দক্ষ নন-নেগেটিভ লেস্ট স্কোয়ার হিস্টোগ্রাম-প্যাকিং অ্যালগরিদম (বা NNLSHP) এবং সেইসাথে আমাদের BERT অ্যালগরিদম একটি নতুন কাগজে প্যাকড সিকোয়েন্সগুলিতে প্রয়োগ করেছি [1]।

সিকোয়েন্স প্যাডিংয়ের কারণে এনএলপিতে কম্পিউটেশনাল বর্জ্য

 
 
আমরা আমাদের সাম্প্রতিক বিষয়ে কাজ করার সময় BERT প্রশিক্ষণ অপ্টিমাইজ করার নতুন উপায় অনুসন্ধান করতে শুরু করেছি MLperf™ এ বেঞ্চমার্ক জমা. লক্ষ্যটি ছিল দরকারী অপ্টিমাইজেশনগুলি বিকাশ করা যা বাস্তব-বিশ্বের অ্যাপ্লিকেশনগুলিতে সহজেই গ্রহণ করা যেতে পারে। এই অপ্টিমাইজেশনগুলির জন্য ফোকাস করার জন্য মডেলগুলির মধ্যে একটি হিসাবে BERT একটি স্বাভাবিক পছন্দ ছিল, কারণ এটি শিল্পে এবং আমাদের অনেক গ্রাহকদের দ্বারা ব্যাপকভাবে ব্যবহৃত হয়।

এটা জেনে সত্যিই অবাক হয়েছি যে উইকিপিডিয়া ডেটাসেট ব্যবহার করে আমাদের নিজস্ব BERT-বড় প্রশিক্ষণ অ্যাপ্লিকেশনে, ডেটাসেটের 50% টোকেন প্যাডিং ছিল — ফলে প্রচুর গণনা নষ্ট হয়েছে।

তাদের সকলকে সমান দৈর্ঘ্যের সাথে সারিবদ্ধ করার জন্য প্যাডিং সিকোয়েন্সগুলি জিপিইউগুলির সাথে ব্যবহৃত একটি সাধারণ পদ্ধতি, তবে আমরা ভেবেছিলাম এটি একটি ভিন্ন পদ্ধতির চেষ্টা করা মূল্যবান হবে।

দুটি কারণে সিকোয়েন্সের দৈর্ঘ্যের একটি বড় তারতম্য রয়েছে:

  1. অন্তর্নিহিত উইকিপিডিয়া তথ্য নথির দৈর্ঘ্যের একটি বড় বৈচিত্র দেখায়
  2. বিইআরটি-প্রি-প্রসেসিং নিজেই এলোমেলোভাবে এক্সট্র্যাক্ট করা নথির আকার কমিয়ে দেয় যা একটি প্রশিক্ষণের ক্রম তৈরি করতে একত্রিত হয়

সর্বাধিক দৈর্ঘ্য 512 পর্যন্ত পূরণ করার ফলে সমস্ত টোকেনের 50% প্যাডিং টোকেন হয়। বাস্তব ডেটা দ্বারা 50% প্যাডিং প্রতিস্থাপনের ফলে একই গণনামূলক প্রচেষ্টার সাথে 50% বেশি ডেটা প্রক্রিয়া করা হতে পারে এবং এইভাবে সর্বোত্তম পরিস্থিতিতে 2x গতি বৃদ্ধি পায়।



চিত্র 1: উইকিপিডিয়া ডেটাসেট বিতরণ। লেখক দ্বারা ছবি.

 

এটি কি উইকিপিডিয়ার জন্য নির্দিষ্ট? না.

আচ্ছা, তাহলে এটা কি ভাষার জন্য নির্দিষ্ট? না.

প্রকৃতপক্ষে, তির্যক দৈর্ঘ্যের বন্টন সর্বত্র পাওয়া যায়: ভাষা, জিনোমিক্স এবং প্রোটিন ভাঁজ। চিত্র 2 এবং 3 SQuAD 1.1 ডেটাসেট এবং GLUE ডেটাসেটের জন্য বিতরণ দেখায়।



চিত্র 2: স্কোয়াড 1.1 BERT প্রাক-প্রশিক্ষণ ডেটাসেট সিকোয়েন্স দৈর্ঘ্য হিস্টোগ্রাম সর্বাধিক 384 ক্রম দৈর্ঘ্যের জন্য। লেখক দ্বারা চিত্র।

 


চিত্র 3: আঠালো ডেটাসেট সিকোয়েন্স দৈর্ঘ্য হিস্টোগ্রাম সর্বাধিক 128 ক্রম দৈর্ঘ্যের জন্য। লেখক দ্বারা চিত্র।

 

গণনামূলক বর্জ্য এড়ানোর সময় আমরা কীভাবে বিভিন্ন দৈর্ঘ্য পরিচালনা করতে পারি?

বর্তমান পন্থাগুলির জন্য বিভিন্ন দৈর্ঘ্যের জন্য বিভিন্ন কম্পিউটেশনাল কার্নেলের প্রয়োজন হয় বা প্রকৌশলীর জন্য প্রোগ্রাম্যাটিকভাবে প্যাডিংটি সরিয়ে ফেলার জন্য এবং তারপরে প্রতিটি মনোযোগ ব্লক এবং ক্ষতির গণনার জন্য এটি বারবার যোগ করুন। কোডটি উড়িয়ে দিয়ে এবং এটিকে আরও জটিল করে কম্পিউট সংরক্ষণ করা আকর্ষণীয় ছিল না, তাই আমরা আরও ভাল কিছু অনুসন্ধান করেছি। আমরা কি সর্বোচ্চ দৈর্ঘ্য সহ একটি প্যাকে একাধিক সিকোয়েন্স একসাথে রাখতে পারি না এবং এটি একসাথে প্রক্রিয়া করতে পারি না? দেখা যাচ্ছে, আমরা পারি!

এই পদ্ধতির তিনটি মূল উপাদান প্রয়োজন:

  1. একটি দক্ষ অ্যালগরিদম সিদ্ধান্ত নিতে যে কোন নমুনাগুলিকে যতটা সম্ভব কম অবশিষ্ট প্যাডিং রাখতে হবে
  2. সিকোয়েন্সের পরিবর্তে প্যাকগুলি প্রক্রিয়া করার জন্য BERT মডেলকে সামঞ্জস্য করা
  3. এবং হাইপারপ্যারামিটার সামঞ্জস্য করা

বোঁচকা

 
 
প্রথমে, এটা অসম্ভব বলে মনে হয়েছিল যে আপনি খুব দক্ষতার সাথে উইকিপিডিয়ার মতো একটি বড় ডেটাসেট প্যাক করতে সক্ষম হবেন। এই সমস্যাটি সাধারণত বিন-প্যাকিং নামে পরিচিত। এমনকি যখন প্যাকিং তিনটি সিকোয়েন্স বা তার চেয়ে কম সীমাবদ্ধ থাকে, ফলে সমস্যাটি এখনও দৃঢ়ভাবে এনপি-সম্পূর্ণ হবে, একটি দক্ষ অ্যালগরিদমিক সমাধানের অভাব রয়েছে। বিদ্যমান হিউরিস্টিক প্যাকিং অ্যালগরিদমগুলি প্রতিশ্রুতিশীল ছিল না কারণ তাদের কমপক্ষে জটিলতা ছিল O(n লগ(n)), কোথায় n হল সিকোয়েন্সের সংখ্যা (উইকিপিডিয়ার জন্য ~16M)। আমরা এমন পদ্ধতিতে আগ্রহী ছিলাম যা লক্ষ লক্ষ সিকোয়েন্সে ভালভাবে স্কেল করবে।

দুটি কৌশল আমাদের জটিলতা কমাতে সাহায্য করেছে:

  1. একটি প্যাকে সিকোয়েন্সের সংখ্যা তিনটিতে সীমাবদ্ধ করা (আমাদের প্রথম সমাধান পদ্ধতির জন্য)
  2. প্রতিটি ঘটমান দৈর্ঘ্যের জন্য একটি বিন সহ ক্রম দৈর্ঘ্যের হিস্টোগ্রামে সম্পূর্ণরূপে অপারেটিং

আমাদের সর্বাধিক অনুক্রমের দৈর্ঘ্য ছিল 512। তাই, হিস্টোগ্রামে যাওয়ার ফলে মাত্রা এবং জটিলতা 16 মিলিয়ন সিকোয়েন্স থেকে 512 দৈর্ঘ্যের সংখ্যা কমে গেছে। একটি প্যাকে সর্বাধিক তিনটি সিকোয়েন্সের অনুমতি দিলে অনুমোদিত দৈর্ঘ্যের সংমিশ্রণের সংখ্যা 22K-এ কমে যায়। প্যাকটিতে দৈর্ঘ্য অনুসারে সিকোয়েন্সগুলি সাজানোর জন্য এটি ইতিমধ্যেই কৌশলটি অন্তর্ভুক্ত করেছে। তাহলে কেন 4টি সিকোয়েন্স চেষ্টা করবেন না? এটি 22K থেকে 940K পর্যন্ত সংমিশ্রণের সংখ্যা বাড়িয়েছে, যা আমাদের প্রথম মডেলিং পদ্ধতির জন্য খুব বেশি ছিল। উপরন্তু, গভীরতা 3 ইতিমধ্যে অসাধারণভাবে উচ্চ প্যাকিং দক্ষতা অর্জন করেছে।

মূলত, আমরা ভেবেছিলাম যে একটি প্যাকে তিনটির বেশি সিকোয়েন্স ব্যবহার করলে কম্পিউটেশনাল ওভারহেড বাড়বে এবং প্রশিক্ষণের সময় কনভারজেন্স আচরণকে প্রভাবিত করবে। যাইহোক, অনুমানের মতো অ্যাপ্লিকেশনগুলিকে সমর্থন করার জন্য, যার জন্য আরও দ্রুত, রিয়েল-টাইম প্যাকিং প্রয়োজন, আমরা অত্যন্ত দক্ষ নন-নেগেটিভ লিস্ট স্কোয়ার হিস্টোগ্রাম-প্যাকিং (NNLSHP) অ্যালগরিদম তৈরি করেছি।

নন-নেগেটিভ লেস্ট স্কোয়ার হিস্টোগ্রাম-প্যাকিং (NNLSHP)

 
 
বিন প্যাকিং প্রায়শই গাণিতিক অপ্টিমাইজেশান সমস্যা হিসাবে তৈরি করা হয়। যাইহোক, 16 মিলিয়ন সিকোয়েন্সের সাথে (বা তার বেশি) এটি ব্যবহারিক নয়। সমস্যার ভেরিয়েবল একাই বেশিরভাগ মেশিনের মেমরিকে ছাড়িয়ে যাবে। হিস্টোগ্রাম-ভিত্তিক পদ্ধতির জন্য গাণিতিক প্রোগ্রামটি বেশ ঝরঝরে। সরলতার জন্য, আমরা একটি ন্যূনতম বর্গক্ষেত্র পদ্ধতির জন্য সিদ্ধান্ত নিয়েছি (কুড়াল = খ) হিস্টোগ্রাম ভেক্টর সহ b. আমরা কৌশল ভেক্টর অনুরোধ করে এটি প্রসারিত x অ-নেতিবাচক হতে হবে এবং ছোট প্যাডিংয়ের জন্য ওজন যোগ করতে হবে।

জটিল অংশ ছিল কৌশল ম্যাট্রিক্স। প্রতিটি কলামে সর্বোচ্চ তিনটির যোগফল থাকে এবং এনকোড করে যে সিকোয়েন্সগুলি একসাথে প্যাক করা হয় যাতে কাঙ্ক্ষিত মোট দৈর্ঘ্যের সাথে হুবহু মেলে; আমাদের ক্ষেত্রে 512. একটি দৈর্ঘ্য মোট দৈর্ঘ্যে পৌঁছানোর জন্য সারিগুলি সম্ভাব্য সংমিশ্রণগুলির প্রতিটিকে এনকোড করে৷ কৌশল ভেক্টর x আমরা যা খুঁজছিলাম তা হল, যা বর্ণনা করে যে আমরা কত ঘন ঘন 20k সংমিশ্রণের যে কোনটি বেছে নিই। মজার বিষয় হল, শেষ পর্যন্ত মাত্র 600 টি সংমিশ্রণ নির্বাচন করা হয়েছিল। একটি সঠিক সমাধান পেতে, কৌশলটি গণনা করে x ধনাত্মক পূর্ণসংখ্যা হতে হবে, কিন্তু আমরা বুঝতে পেরেছি যে একটি আনুমানিক বৃত্তাকার সমাধান শুধুমাত্র অ-নেতিবাচক x যথেষ্ট ছিল। একটি আনুমানিক সমাধানের জন্য, 30 সেকেন্ডের মধ্যে ফলাফল পেতে একটি সাধারণ আউট-অফ-দ্য-বক্স সমাধানকারী ব্যবহার করা যেতে পারে।



চিত্র 4: ক্রম দৈর্ঘ্য 8 এবং প্যাকিং গভীরতা 3 এর জন্য একটি কৌশল ম্যাট্রিক্সের উদাহরণ। সারিগুলি 1-8 দৈর্ঘ্যের ক্রমগুলির জন্য দাঁড়ায় যা একসাথে প্যাক করা হয় এবং কলামগুলি কোনও নির্দিষ্ট ক্রম ছাড়াই একটি প্যাকের সমস্ত সম্ভাব্য দৈর্ঘ্যের সংমিশ্রণের জন্য দাঁড়ায়। লেখক দ্বারা ছবি.

 

শেষ পর্যন্ত, আমাদের কিছু নমুনা ঠিক করতে হয়েছিল যেগুলিকে একটি কৌশল বরাদ্দ করা হয়নি তবে সেগুলি ন্যূনতম ছিল। আমরা একটি বৈকল্পিক সমাধানকারীও তৈরি করেছি যা প্রয়োগ করে যে প্রতিটি সিকোয়েন্স প্যাডিং সহ প্যাক করা হয়, এবং প্যাডিংয়ের উপর নির্ভরশীল ওজন থাকে। এটি অনেক বেশি সময় নিয়েছিল, এবং সমাধানটি খুব ভাল ছিল না।

সংক্ষিপ্ত-প্যাক-প্রথম হিস্টোগ্রাম প্যাকিং

 
 
NNLSHP আমাদের জন্য পর্যাপ্ত প্যাকিং পদ্ধতি প্রদান করেছে। যাইহোক, আমরা ভাবছিলাম যে আমরা তাত্ত্বিকভাবে একটি দ্রুত অনলাইন সক্ষম পদ্ধতি পেতে পারি এবং শুধুমাত্র 3টি সিকোয়েন্স একসাথে রাখার সীমাবদ্ধতা দূর করতে পারি।

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

আমাদের প্রথম অ্যালগরিদমের জন্য চারটি উপাদান রয়েছে, শর্টেস্ট-প্যাক-ফার্স্ট হিস্টোগ্রাম-প্যাকিং (SPFHP):

  1. দীর্ঘতম ক্রম থেকে সংক্ষিপ্ততম পর্যন্ত হিস্টোগ্রামের গণনার উপর কাজ করুন
  2. যদি বর্তমান ক্রম দৈর্ঘ্য কোনো প্যাকের সাথে মাপসই না হয়, প্যাকগুলির একটি নতুন সেট শুরু করুন
  3. যদি একাধিক ফিট থাকে, প্যাকটি নিন যেখানে ক্রম দৈর্ঘ্যের যোগফল সবচেয়ে কম এবং যথাক্রমে গণনাগুলি পরিবর্তন করুন
  4. অবশিষ্ট গণনার ফিট জন্য আবার চেক করুন

এই পদ্ধতিটি বাস্তবায়নের জন্য সবচেয়ে সহজ ছিল এবং মাত্র 0.02 সেকেন্ড সময় নেয়।

একটি বৈকল্পিক আরও নিখুঁত ফিট পেতে সংক্ষিপ্ততম এবং বিভক্ত গণনার পরিবর্তে ক্রম দৈর্ঘ্যের বৃহত্তম যোগফল নিতে হয়েছিল। সামগ্রিকভাবে, এটি দক্ষতার খুব বেশি পরিবর্তন করেনি তবে কোড জটিলতা অনেক বাড়িয়েছে।



কিভাবে সংক্ষিপ্ত-প্যাক-প্রথম হিস্টোগ্রাম প্যাকিং কাজ করে। লেখক দ্বারা অ্যানিমেশন.

 

উইকিপিডিয়া, Squad 1.1, GLUE প্যাকিং ফলাফল

 
 
সারণী 1, 2 এবং 3 আমাদের দুটি প্রস্তাবিত অ্যালগরিদমের প্যাকিং ফলাফল দেখায়। প্যাকিং গভীরতা প্যাক করা সিকোয়েন্সের সর্বাধিক সংখ্যা বর্ণনা করে। প্যাকিং গভীরতা 1 হল বেসলাইন BERT বাস্তবায়ন। সর্বাধিক ঘটমান প্যাকিং গভীরতা, কোন সীমা সেট করা হয় না একটি অতিরিক্ত "সর্বোচ্চ" দ্বারা চিহ্নিত করা হয়। দ্য প্যাক সংখ্যা নতুন প্যাক করা ডেটাসেটের দৈর্ঘ্য বর্ণনা করে। দক্ষতা প্যাক করা ডেটাসেটে প্রকৃত টোকেনের শতাংশ। দ্য প্যাকিং ফ্যাক্টর প্যাকিং গভীরতা 1 এর তুলনায় ফলাফল সম্ভাব্য গতি-আপ বর্ণনা করে।

আমাদের চারটি প্রধান পর্যবেক্ষণ ছিল:

  1. বিতরণ যত বেশি তির্যক, প্যাকিংয়ের সুবিধা তত বেশি।
  2. সমস্ত ডেটাসেট প্যাকিং থেকে উপকৃত হয়। কিছু এমনকি 2 এরও বেশি গুণনীয়ক দ্বারা।
  3. প্যাকিং গভীরতা সীমাবদ্ধ না হলে SPFHP আরও দক্ষ হয়।
  4. সর্বাধিক 3টি প্যাকড সিকোয়েন্সের জন্য, আরও জটিল NNLSHP, এটি তত বেশি দক্ষ (99.75 বনাম 89.44)।



সারণী 1: উইকিপিডিয়ায় প্রস্তাবিত প্যাকিং অ্যালগরিদম (SPFHP এবং NNLSHP) এর মূল কার্যক্ষমতা ফলাফল। লেখক দ্বারা ছবি.

 


সারণি 2: SQUaD 1.1 BERT প্রাক-প্রশিক্ষণের জন্য প্রস্তাবিত প্যাকিং অ্যালগরিদমগুলির কর্মক্ষমতা ফলাফল। লেখক দ্বারা ছবি.

 


সারণি 3: GLUE ডেটাসেটের জন্য প্রস্তাবিত প্যাকিং অ্যালগরিদমের কর্মক্ষমতা ফলাফল। প্যাকিং গভীরতা সীমাবদ্ধ না করে শুধুমাত্র বেসলাইন এবং SPFHP প্যাকিং ফলাফল প্রদর্শিত হয়। লেখক দ্বারা ছবি.

 

BERT প্রক্রিয়াকরণ সমন্বয়

 
 
BERT আর্কিটেকচার সম্পর্কে আকর্ষণীয় কিছু হল যে বেশিরভাগ প্রক্রিয়াকরণ একটি টোকেন স্তরে ঘটে, যার মানে এটি আমাদের প্যাকিংয়ে হস্তক্ষেপ করে না। শুধুমাত্র চারটি উপাদানের সমন্বয় প্রয়োজন: মনোযোগের মুখোশ, এমএলএম ক্ষতি, এনএসপি ক্ষতি এবং নির্ভুলতা।

বিভিন্ন সংখ্যক সিকোয়েন্স পরিচালনার জন্য চারটি পদ্ধতির মূল চাবিকাঠি ছিল ভেক্টরাইজেশন এবং সর্বাধিক সংখ্যক সিকোয়েন্স ব্যবহার করা যা সংযুক্ত করা যেতে পারে। মনোযোগের জন্য, প্যাডিং মোকাবেলা করার জন্য আমাদের ইতিমধ্যে একটি মুখোশ ছিল। এটিকে একাধিক সিকোয়েন্সে প্রসারিত করা সহজ ছিল যেমনটি নিম্নলিখিত টেনসরফ্লো সিউডো কোডে দেখা যায়। ধারণাটি হল যে আমরা নিশ্চিত করেছি যে মনোযোগ পৃথক ক্রমগুলিতে সীমাবদ্ধ এবং এর বাইরে প্রসারিত করা যাবে না।

মনোযোগ মাস্ক কোড নমুনা.


 


চিত্র 5: শূন্য-এক মুখোশের উদাহরণ

 

ক্ষতির গণনার জন্য, নীতিগতভাবে আমরা ক্রমগুলি আনপ্যাক করি এবং পৃথক ক্ষতি গণনা করি, অবশেষে ক্রমগুলির (প্যাকের পরিবর্তে) ক্ষতির গড় অর্জন করি।

এমএলএম ক্ষতির জন্য, কোডটি এরকম দেখাচ্ছে:

ক্ষতি গণনা কোড নমুনা.


 

NSP ক্ষতি এবং নির্ভুলতার জন্য, নীতি একই। আমাদের সর্বজনীন উদাহরণগুলিতে, আপনি আমাদের ইন-হাউসের সাথে সংশ্লিষ্ট কোডটি খুঁজে পেতে পারেন PopART ফ্রেমওয়ার্ক.

উইকিপিডিয়া ওভারহেড এবং স্পিডআপ অনুমান

 
 
আমাদের BERT এর পরিবর্তনের সাথে, আমাদের দুটি প্রশ্ন ছিল:

  1. কতটা ওভারহেড এটা সঙ্গে নিয়ে আসে?
  2. একটি প্যাকে একসাথে রাখা সর্বাধিক সংখ্যক ক্রমগুলির উপর ওভারহেড কতটা নির্ভর করে?

যেহেতু BERT-এ ডেটা প্রস্তুতি কষ্টকর হতে পারে, তাই আমরা একটি শর্টকাট ব্যবহার করেছি এবং একাধিক ভিন্ন প্যাকিং গভীরতার জন্য কোড কম্পাইল করেছি এবং সংশ্লিষ্ট (মাপা) চক্রের তুলনা করেছি। ফলাফল সারণি 4 প্রদর্শিত হয়. সঙ্গে মাথার উপরে, আমরা প্যাকিং সক্ষম করার জন্য মডেলের পরিবর্তনের কারণে থ্রুপুটে শতাংশ হ্রাসকে নির্দেশ করি (যেমন মনোযোগের জন্য মাস্কিং স্কিম এবং পরিবর্তিত ক্ষতি গণনা)। দ্য গতি-আপ উপলব্ধি করা হয়েছে প্যাকিংয়ের কারণে গতি-আপের সংমিশ্রণ ( প্যাকিং ফ্যাক্টর) এবং থ্রুপুট হ্রাসের কারণে মাথার উপরে.



সারণি 4: উইকিপিডিয়ায় প্রস্তাবিত প্যাকিং অ্যালগরিদম (SPFHP এবং NNLSHP) এর আনুমানিক গতি-আপ তুলনা। লেখক দ্বারা ছবি.

 

ভেক্টরাইজেশন কৌশলের জন্য ধন্যবাদ, ওভারহেড আশ্চর্যজনকভাবে ছোট এবং অনেকগুলি সিকোয়েন্স একসাথে প্যাক করার কোন অসুবিধা নেই।

হাইপারপ্যারামিটার-সামঞ্জস্য

 
 
প্যাকিংয়ের সাথে, আমরা কার্যকর ব্যাচের আকার দ্বিগুণ করছি (গড়ে)। এর মানে আমাদের প্রশিক্ষণের হাইপারপ্যারামিটার সামঞ্জস্য করতে হবে। একটি সহজ কৌশল হল প্রশিক্ষণের আগের মতো কার্যকর গড় ব্যাচের আকার রাখার জন্য গ্রেডিয়েন্ট জমার গণনাকে অর্ধেক করে ফেলা। পূর্বপ্রশিক্ষিত চেকপয়েন্টগুলির সাথে একটি বেঞ্চমার্ক সেটিং ব্যবহার করে, আমরা দেখতে পারি যে সঠিকতার বক্ররেখা পুরোপুরি মেলে।



চিত্র 6: প্যাকড এবং আনপ্যাকড প্রক্রিয়াকরণের জন্য শেখার বক্ররেখার তুলনা ব্যাচের আকার হ্রাস করা প্যাকড পদ্ধতির জন্য। লেখক দ্বারা ছবি.

 

যথার্থতা মেলে: MLM প্রশিক্ষণের ক্ষতি শুরুতে সামান্য ভিন্ন হতে পারে কিন্তু দ্রুত ধরা পড়ে। এই প্রাথমিক পার্থক্যটি মনোযোগের স্তরগুলির সামান্য সামঞ্জস্য থেকে আসতে পারে যা পূর্ববর্তী প্রশিক্ষণে সংক্ষিপ্ত ক্রমগুলির প্রতি পক্ষপাতদুষ্ট ছিল।

মন্থরতা এড়াতে, এটি কখনও কখনও মূল ব্যাচের আকার একই রাখতে এবং হাইপারপ্যারামিটারগুলিকে বর্ধিত কার্যকর ব্যাচের আকারে সামঞ্জস্য করতে সহায়তা করে (দ্বিগুণ)। বিটা প্যারামিটার এবং শেখার হার বিবেচনা করার জন্য প্রধান হাইপারপ্যারামিটার। একটি সাধারণ পদ্ধতি হল ব্যাচের আকার দ্বিগুণ করা, যা আমাদের ক্ষেত্রে কর্মক্ষমতা হ্রাস করে। LAMB অপ্টিমাইজারের পরিসংখ্যানের দিকে তাকালে, আমরা প্রমাণ করতে পারি যে প্যাকিং ফ্যাক্টরের শক্তিতে বিটা প্যারামিটার বৃদ্ধি করা ভরবেগ এবং বেগ তুলনীয় রাখার জন্য পরপর একাধিক ব্যাচ প্রশিক্ষণের সাথে মিলে যায়।



চিত্র 7: প্যাকড এবং আনপ্যাকড প্রক্রিয়াকরণের জন্য শেখার বক্ররেখার তুলনা ন্যায়শাস্ত্রগত আবিষ্কারবিদ্যা প্রয়োগ করা লেখক দ্বারা ছবি.

 

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

এখন প্রশ্ন হল বাস্তব দৃশ্যে, আমরা কি সত্যিই প্রত্যাশিত গতি পেতে পারি?



চিত্র 8: প্যাকড এবং আনপ্যাকড প্রক্রিয়াকরণের জন্য শেখার বক্ররেখার তুলনা অপ্টিমাইজ করা সেটআপ. লেখক দ্বারা ছবি.

 

হ্যা আমরা করি! আমরা একটি অতিরিক্ত গতি অর্জন করেছি কারণ আমরা ডেটা স্থানান্তর সংকুচিত করেছি।

উপসংহার

 
 
বাক্যগুলি একসাথে প্যাক করা গণনার প্রচেষ্টা এবং পরিবেশ সংরক্ষণ করতে পারে। এই কৌশলটি PyTorch এবং TensorFlow সহ যেকোনো কাঠামোতে প্রয়োগ করা যেতে পারে। আমরা একটি স্পষ্ট 2x গতি-আপ পেয়েছি এবং পথ ধরে, আমরা প্যাকিং অ্যালগরিদমগুলিতে শিল্পের অবস্থাকে প্রসারিত করেছি।

অন্যান্য অ্যাপ্লিকেশন যা আমরা জানতে আগ্রহী তা হল জিনোমিক্স এবং প্রোটিন ভাঁজ যেখানে অনুরূপ ডেটা বিতরণ লক্ষ্য করা যায়। ভিশন ট্রান্সফরমারগুলি ভিন্ন আকারের প্যাক করা ছবিগুলি প্রয়োগ করার জন্য একটি আকর্ষণীয় এলাকা হতে পারে। কোন অ্যাপ্লিকেশন ভাল কাজ করবে বলে আপনি মনে করেন? আমরা আপনার কাছ থেকে শুনতে চাই!

কাগজ পড়ুন

GitHub-এ কোড অ্যাক্সেস করুন

ধন্যবাদ

 
 
Graphcore-এর অ্যাপ্লিকেশন ইঞ্জিনিয়ারিং টিমের আমাদের সহকর্মীদের, Sheng Fu এবং মৃণাল আইয়ারকে ধন্যবাদ, এই কাজে তাদের অবদানের জন্য এবং Graphcore-এর গবেষণা দল থেকে Douglas Orr-কে তার মূল্যবান প্রতিক্রিয়ার জন্য ধন্যবাদ৷

তথ্যসূত্র

 
 
[১] এম. কোসেক, এস. ফু, এম. এম. ক্রেল, প্যাকিং: 2x NLP BERT ত্বরণের দিকে (2021), arXiv

 
ডাঃ মারিও মাইকেল ক্রেল Graphcore এ একজন প্রধান মেশিন লার্নিং লিড। মারিও 12 বছরেরও বেশি সময় ধরে মেশিন লার্নিং অ্যালগরিদম নিয়ে গবেষণা এবং বিকাশ করছে, রোবোটিক্স, স্বয়ংচালিত, টেলিযোগাযোগ এবং স্বাস্থ্যসেবার মতো বৈচিত্র্যময় শিল্পের জন্য সফ্টওয়্যার তৈরি করছে। Graphcore এ, তিনি আমাদের চিত্তাকর্ষক অবদান MLPerf জমা এবং পরিসংখ্যানগত COVID-19 ডেটা বিশ্লেষণের জন্য আনুমানিক বায়েসিয়ান গণনার মতো অভিনব অ-মানক মডেলগুলিকে ত্বরান্বিত করার আবেগ রয়েছে।

মাতেজ কোসেক পালো অল্টোর গ্রাফকোরে একজন এআই অ্যাপ্লিকেশন বিশেষজ্ঞ। তিনি এর আগে সান জোসে NIO-তে স্বায়ত্তশাসিত ড্রাইভিং-এ এআই বিজ্ঞানী হিসেবে কাজ করেছেন এবং স্ট্যানফোর্ড বিশ্ববিদ্যালয় থেকে অ্যারোনটিক্স এবং অ্যাস্ট্রোনটিক্সে স্নাতকোত্তর ডিগ্রি অর্জন করেছেন।

মূল। অনুমতি নিয়ে পোস্ট করা।

সম্পর্কিত:



শীর্ষ গল্পগুলি গত 30 দিন
সবচেয়ে জনপ্রিয়
  1. ডেটা বিজ্ঞানী এবং এমএল ইঞ্জিনিয়ারদের মধ্যে পার্থক্য
  2. নিউরাল নেটওয়ার্কের পরিবর্তে আপনার লিনিয়ার রিগ্রেশন মডেল ব্যবহার করার 3 টি কারণ
  3. সর্বাধিক প্রচলিত ডেটা সায়েন্স ইন্টারভিউ প্রশ্ন এবং উত্তর
  4. গিটহাব কপিলট ওপেন সোর্স বিকল্প
  5. গুগলের গবেষণা পরিচালক থেকে ডেটা সায়েন্স শেখার পরামর্শ
সর্বাধিক ভাগ করা
  1. ডেটা বিজ্ঞানী এবং এমএল ইঞ্জিনিয়ারদের মধ্যে পার্থক্য
  2. আপনার পান্ডা ডেটাফ্রেম কিভাবে জিজ্ঞাসা করবেন
  3. কেন এবং কীভাবে আপনার "উত্পাদনশীল ডেটা সায়েন্স" শিখতে হবে?
  4. শুধু গভীর শিক্ষার জন্য নয়: কিভাবে GPUs ডেটা সায়েন্স এবং ডেটা অ্যানালিটিক্সকে ত্বরান্বিত করে
  5. রে দিয়ে আপনার প্রথম বিতরণ করা পাইথন অ্যাপ্লিকেশন লিখছি

সূত্র: https://www.kdnuggets.com/2021/08/packed-bert-training-speed-up-natural-language-processing.html

সময় স্ট্যাম্প:

থেকে আরো কেডনুগেটস