এই বিভাগে প্রশিক্ষণ পাইপলাইন বিবরণ.
ইনপুট পাইপলাইন অপ্টিমাইজ করা
সারাংশ: ইনপুট-বাউন্ড পাইপলাইনগুলির কারণ এবং হস্তক্ষেপগুলি অত্যন্ত টাস্ক-নির্ভর। একটি প্রোফাইলার ব্যবহার করুন এবং সাধারণ সমস্যাগুলির জন্য দেখুন।
ইনপুট-বাউন্ড পাইপলাইন নির্ণয় করতে একটি উপযুক্ত প্রোফাইলার ব্যবহার করুন, যেমন নিম্নলিখিতগুলির মধ্যে একটি:
- JAX এর জন্য পারফেটো
- TensorFlow এর জন্য TensorFlow প্রোফাইলার ।
শেষ পর্যন্ত, নির্দিষ্ট কারণ এবং হস্তক্ষেপগুলি অত্যন্ত টাস্ক-নির্ভর। বৃহত্তর ইঞ্জিনিয়ারিং বিবেচনা (উদাহরণস্বরূপ, ডিস্কের ফুটপ্রিন্ট মিনিমাইজ করা) ইনপুট পাইপলাইনের কার্যকারিতাকে ক্ষতিগ্রস্ত করতে পারে।
নিম্নলিখিতগুলি ইনপুট-বাউন্ড পাইপলাইনের সাধারণ কারণ:
- প্রশিক্ষণ প্রক্রিয়ার সাথে ডেটা একত্রিত হয় না, যার ফলে I/O লেটেন্সি হয়। উদাহরণস্বরূপ, একটি নেটওয়ার্কে প্রশিক্ষণের ডেটা পড়ার ফলে I/O লেটেন্সি হতে পারে।
- ব্যয়বহুল অনলাইন ডেটা প্রিপ্রসেসিং। একবার অফলাইনে প্রিপ্রসেসিং এবং ফলাফলগুলি সংরক্ষণ করার কথা বিবেচনা করুন৷
- অনিচ্ছাকৃত সিঙ্ক্রোনাইজেশন বাধা যা ডেটা পাইপলাইন প্রিফেচিংয়ে হস্তক্ষেপ করে। উদাহরণস্বরূপ, CommonLoopUtils-এ ডিভাইস এবং হোস্টের মধ্যে মেট্রিক্স সিঙ্ক্রোনাইজ করার সময়।
আমরা ইনপুট-বাউন্ড পাইপলাইনগুলির জন্য নিম্নলিখিত হস্তক্ষেপের পরামর্শ দিই:
- উদাহরণ প্রিফেচ করার জন্য ইনস্ট্রুমেন্ট ইনপুট পাইপলাইন (উদাহরণস্বরূপ, tf.data.Dataset.prefetch )।
- যত তাড়াতাড়ি সম্ভব পাইপলাইনে প্রতিটি থেকে অব্যবহৃত বৈশিষ্ট্য এবং মেটাডেটা সরান।
- ইনপুট পাইপলাইনের জন্য উদাহরণ তৈরি করা কাজের সংখ্যার প্রতিলিপি বাড়ান, উদাহরণস্বরূপ, tf.data পরিষেবা ব্যবহার করে।
মডেল কর্মক্ষমতা মূল্যায়ন
সারাংশ: প্রশিক্ষণের চেয়ে বড় ব্যাচের আকারে মূল্যায়ন চালান। নিয়মিত ধাপ বিরতিতে মূল্যায়ন চালান, নিয়মিত সময়ের ব্যবধানে নয়।
মূল্যায়ন সেটিংস
আপনি আপনার মডেলের কর্মক্ষমতা মূল্যায়ন করতে নিম্নলিখিত সেটিংস ব্যবহার করতে পারেন:
- অনলাইন মূল্যায়ন : মডেলটি যখন উৎপাদন পরিবেশে ভবিষ্যদ্বাণী পরিবেশন করে তখন মেট্রিক্স সংগ্রহ করুন। অনলাইন মূল্যায়ন সাধারণত মডেল মানের সবচেয়ে বাস্তবসম্মত মূল্যায়ন প্রদান করে কারণ এটি মডেলটি যেভাবে ব্যবহার করা হবে তার সাথে মেলে।
- অফলাইন মূল্যায়ন : যখন মডেলটি অফলাইন প্রশিক্ষণ, বৈধতা, বা উৎপাদন পরিবেশের প্রতিনিধি পরীক্ষা সেটে চালানো হয় তখন মেট্রিক্স সংগ্রহ করুন। সমস্যার উপর নির্ভর করে, অফলাইন মূল্যায়ন মোটামুটি জড়িত এবং গণনাগতভাবে ব্যয়বহুল হতে পারে।
- পর্যায়ক্রমিক মূল্যায়ন : মডেল প্রশিক্ষণের সময় মেট্রিক্স সংগ্রহ করুন যা অফলাইন মূল্যায়নের জন্য একটি প্রক্সি হতে পারে এবং/অথবা অফলাইন মূল্যায়নে ব্যবহৃত ডেটার একটি উপসেটে। পর্যায়ক্রমিক মূল্যায়ন হল সবচেয়ে ব্যবহারিক এবং অর্থনৈতিক পছন্দ কিন্তু উৎপাদন পরিবেশকে সম্পূর্ণরূপে উপস্থাপন করতে পারে না। প্রশিক্ষণের সময় প্রাপ্ত সিগন্যালের নির্ভরযোগ্যতা ত্যাগ না করে অফলাইন মূল্যায়নের একটি সমীচীন প্রক্সি ব্যবহার করার লক্ষ্য রাখুন।
পর্যায়ক্রমিক মূল্যায়ন সেট আপ করা
আমরা নিম্নলিখিত কারণগুলির জন্য প্রশিক্ষণের সময় পর্যায়ক্রমিক মূল্যায়ন চালানোর পরামর্শ দিই:
- বাস্তব সময়ে প্রশিক্ষণের অগ্রগতি নিরীক্ষণ করা ।
- পূর্ববর্তী মডেল চেকপয়েন্ট নির্বাচনের সুবিধার্থে।
- প্রশিক্ষণ শেষে প্রশিক্ষণ বক্ররেখা পরীক্ষা করা .
সবচেয়ে সহজ কনফিগারেশন হল প্রশিক্ষণ এবং পর্যায়ক্রমিক মূল্যায়ন উভয়ই একই কম্পিউট উদাহরণের মধ্যে সম্পাদন করা, পর্যায়ক্রমে প্রশিক্ষণ এবং মূল্যায়নের মধ্যে পর্যায়ক্রমে। এই ক্ষেত্রে, মূল্যায়ন সঞ্চালনের জন্য ব্যবহৃত ব্যাচের আকারটি প্রশিক্ষণের জন্য ব্যবহৃত ব্যাচের আকারের মতো কমপক্ষে বড় হওয়া উচিত। এর কারণ মূল্যায়নের সময় আপনাকে মডেল অ্যাক্টিভেশন বজায় রাখতে হবে না, যা উদাহরণ প্রতি কম্পিউটেশনাল প্রয়োজনীয়তা কমিয়ে দেয়।
নিয়মিত ধাপের ব্যবধানে পর্যায়ক্রমিক মূল্যায়ন করুন, সময়ের ব্যবধানে নয়। সময়ের ব্যবধানের উপর ভিত্তি করে মূল্যায়ন করা প্রশিক্ষণের বক্ররেখাগুলিকে ব্যাখ্যা করা কঠিন করে তুলতে পারে, বিশেষ করে যখন প্রশিক্ষণ প্রশিক্ষণের কাজ, নেটওয়ার্ক লেটেন্সি সমস্যা ইত্যাদির কারণে ভুগতে পারে।
বৈধতা এবং পরীক্ষার মেট্রিক্সের পর্যায়ক্রমিকতা (যখন একটি এলোমেলো প্রশিক্ষণ সেট, বৈধতা সেট, পরীক্ষা সেট বিভক্ত ব্যবহার করা হয়) বাস্তবায়নের বাগগুলি নির্দেশ করতে পারে যেমন:
- প্রশিক্ষণ ডেটার সাথে ওভারল্যাপিং ডেটা পরীক্ষা করুন।
- প্রশিক্ষণের তথ্য সঠিকভাবে এলোমেলো হচ্ছে না।
নিয়মিত পদক্ষেপের ব্যবধানে মূল্যায়ন করা এই সমস্যাগুলিকে ধরা সহজ করে তুলতে পারে।
আংশিক ব্যাচ ঘটতে পারে যখন মূল্যায়ন সেটগুলি ব্যাচের আকার দ্বারা বিভাজ্য না হয়। নিশ্চিত করুন যে প্যাড করা উদাহরণগুলি সঠিকভাবে ওজন করা হয়েছে (যেমন ব্যাচের গড় ক্ষতি গণনা করার উদাহরণগুলির উপর ওজনযুক্ত গড় হিসাবে) যাতে ক্ষতির ফাংশনটি তাদের দ্বারা পক্ষপাতদুষ্ট হতে না পারে। প্রায়শই, আপনি এই প্যাডেড উদাহরণগুলিকে শূন্যের ওজন দিতে পারেন।
অফলাইন বিশ্লেষণ সমর্থন করার জন্য মূল্যায়ন প্রতি পর্যাপ্ত তথ্য সংরক্ষণ করুন. আদর্শভাবে, স্বতন্ত্র উদাহরণের একটি নির্বাচনের উপর পূর্বাভাস সংরক্ষণ করুন কারণ সেগুলি ডিবাগিংয়ের জন্য অমূল্য হতে পারে। SavedModels-এর মতো শিল্পকর্ম তৈরি করা মূল্যায়নের কাজ শেষ হওয়ার পরে অ্যাডহক মডেল পরিদর্শনকে সহজ করে।
পর্যায়ক্রমিক মূল্যায়নের জন্য একটি নমুনা নির্বাচন করা
পর্যায়ক্রমিক মূল্যায়নের কাজটি যুক্তিসঙ্গত সময়ের মধ্যে সম্পূর্ণ অফলাইন মূল্যায়নে মেট্রিক্স গণনা করার জন্য যথেষ্ট দ্রুত নাও হতে পারে। এই সমস্যাটি প্রায়ই পর্যায়ক্রমিক মূল্যায়নের জন্য নমুনা ডেটার প্রয়োজন হয়। একটি নমুনাযুক্ত ডেটাসেট তৈরি করার সময়, ভারসাম্যহীন ডেটাসেটের নমুনার আকার এবং বিশেষ উদ্বেগের সমস্যাগুলি বিবেচনা করুন।
নমুনা আকার
পর্যায়ক্রমিক কাজের দ্বারা ব্যবহৃত নমুনাকৃত ডেটাসেটে গণনা করা কর্মক্ষমতা পুরো অফলাইন মূল্যায়ন সেটের কর্মক্ষমতার সাথে মেলে তা পরীক্ষা করুন; অর্থাৎ, নিশ্চিত করুন যে নমুনাযুক্ত ডেটাসেট এবং সম্পূর্ণ ডেটাসেটের মধ্যে কোনও তির্যক নেই৷
পর্যায়ক্রমিক মূল্যায়নের জন্য আপনি যে ডেটাসেট ব্যবহার করেন তা নিম্নলিখিত দুটি হওয়া উচিত:
- সম্পূর্ণরূপে মডেলের ভবিষ্যদ্বাণী তৈরি করার জন্য যথেষ্ট ছোট।
- নিম্নলিখিত দুটি করার জন্য যথেষ্ট বড়:
- সঠিকভাবে মডেলের উন্নতি পরিমাপ; যে, পরিমাপ লেবেল শব্দ দ্বারা অভিভূত করা উচিত নয়.
- ক্রমানুসারে ট্রায়াল জুড়ে এই জাতীয় একাধিক মূল্যায়ন মিটমাট করুন এবং এখনও সঠিক অনুমান তৈরি করুন। অর্থাৎ, সময়ের সাথে সাথে সেট করা বৈধকরণের সাথে অভিযোজিতভাবে "ফিটিং" এড়ানোর জন্য যথেষ্ট বড় যা একটি অনুষ্ঠিত-আউট পরীক্ষার সেটে সাধারণীকরণ করে না। যাইহোক, এই বিবেচনা খুব কমই একটি ব্যবহারিক উদ্বেগ।
ভারসাম্যহীন ডেটাসেট
ভারসাম্যহীন ডেটাসেটের জন্য, বিরল সংখ্যালঘু শ্রেণীর কর্মক্ষমতা প্রায়শই শোরগোল হয়। শুধুমাত্র অল্প সংখ্যক সংখ্যালঘু উদাহরণ সহ ডেটাসেটের জন্য, নির্ভুলতার উন্নতিতে আরও অন্তর্দৃষ্টি পেতে সঠিকভাবে ভবিষ্যদ্বাণী করা উদাহরণগুলির সংখ্যা লগ করুন। উদাহরণস্বরূপ, .05 সংবেদনশীলতার উন্নতি উত্তেজনাপূর্ণ শোনাচ্ছে, কিন্তু উন্নতি কি কেবলমাত্র আরও একটি উদাহরণ সঠিক হওয়ার কারণে হয়েছে?
চেকপয়েন্ট সংরক্ষণ করা এবং পূর্ববর্তীভাবে সেরা চেকপয়েন্ট নির্বাচন করা
সারাংশ: একটি নির্দিষ্ট সংখ্যক পদক্ষেপের জন্য প্রশিক্ষণ চালান এবং পূর্ববর্তীভাবে দৌড় থেকে সেরা চেকপয়েন্টটি বেছে নিন।
বেশিরভাগ ডিপ লার্নিং ফ্রেমওয়ার্ক মডেল চেকপয়েন্টিং সমর্থন করে। অর্থাৎ, মডেলের বর্তমান অবস্থা পর্যায়ক্রমে ডিস্কে সংরক্ষণ করা হয়। চেকপয়েন্টিং প্রশিক্ষণের কাজকে উদাহরণ বাধাগুলি গণনা করার জন্য স্থিতিস্থাপক হতে দেয়। সর্বোত্তম চেকপয়েন্ট প্রায়শই শেষ চেকপয়েন্ট হয় না, বিশেষ করে যখন বৈধকরণ সেট কর্মক্ষমতা সময়ের সাথে সাথে বাড়তে থাকে না বরং একটি নির্দিষ্ট মান সম্পর্কে ওঠানামা করে।
প্রশিক্ষণের সময় এখন পর্যন্ত দেখা N সেরা চেকপয়েন্টগুলির ট্র্যাক রাখতে পাইপলাইন সেট আপ করুন৷ প্রশিক্ষণ শেষে, মডেল নির্বাচনের অর্থ হল সেরা চেকপয়েন্ট নির্বাচন করা। আমরা এই পদ্ধতিকে বলি রেট্রোস্পেকটিভ সর্বোত্তম চেকপয়েন্ট নির্বাচন । সম্ভাব্য প্রাথমিক স্টপিংকে সমর্থন করা সাধারণত প্রয়োজনীয় নয়, কারণ আপনি একটি ট্রায়াল বাজেট পূর্ব-নির্দিষ্ট করছেন এবং এখনও পর্যন্ত দেখা N সেরা চেকপয়েন্টগুলি সংরক্ষণ করছেন।
পরীক্ষা ট্র্যাকিং সেট আপ করা হচ্ছে
সারাংশ: বিভিন্ন পরীক্ষা-নিরীক্ষা ট্র্যাক করার সময়, অধ্যয়নের একটি চেকপয়েন্টের সর্বোত্তম কর্মক্ষমতা এবং অধ্যয়নের একটি সংক্ষিপ্ত বিবরণের মতো প্রয়োজনীয় কিছু ট্র্যাক করুন।
আমরা একটি স্প্রেডশীটে পরীক্ষার ফলাফল ট্র্যাক করার পরামর্শ দিই। আমাদের স্প্রেডশীটগুলিতে প্রায়ই নিম্নলিখিত কলাম থাকে:
- অধ্যয়নের নাম
- যেখানেই অধ্যয়নের জন্য কনফিগারেশন সংরক্ষণ করা হয় সেখানে একটি লিঙ্ক।
- নোট বা অধ্যয়নের একটি সংক্ষিপ্ত বিবরণ.
- ট্রায়াল চালানোর সংখ্যা
- গবেষণায় সেরা চেকপয়েন্টের বৈধতা সেটে পারফরম্যান্স।
- প্রশিক্ষণ চালু করার জন্য কী জমা না দেওয়া পরিবর্তনগুলি প্রয়োজনীয় ছিল সে সম্পর্কে নির্দিষ্ট প্রজনন আদেশ বা নোট।
একটি সুবিধাজনক ট্র্যাকিং সিস্টেম খুঁজুন যা উপরে তালিকাভুক্ত অন্তত তথ্য ক্যাপচার করে। আনট্র্যাক করা পরীক্ষাগুলিও বিদ্যমান নাও থাকতে পারে।
ব্যাচ স্বাভাবিকীকরণ বাস্তবায়ন বিবরণ
সারাংশ: আজকাল, আপনি প্রায়শই LayerNorm দিয়ে ব্যাচ স্বাভাবিককরণ প্রতিস্থাপন করতে পারেন, কিন্তু যে ক্ষেত্রে আপনি সেই প্রতিস্থাপন করতে পারবেন না, সেখানে ব্যাচের আকার বা হোস্টের সংখ্যা পরিবর্তন করার সময় জটিল বিবরণ রয়েছে।
ব্যাচ স্বাভাবিকীকরণ বর্তমান ব্যাচের উপর তাদের গড় এবং পার্থক্য ব্যবহার করে সক্রিয়করণকে স্বাভাবিক করে। যাইহোক, মাল্টি-ডিভাইস সেটিংসে, এই পরিসংখ্যানগুলি প্রতিটি ডিভাইসে আলাদা হয় যদি না স্পষ্টভাবে সিঙ্ক্রোনাইজ করা হয়। উপাখ্যানমূলক প্রতিবেদনগুলি (বেশিরভাগই ইমেজনেটে) নির্দেশ করে যে শুধুমাত্র ~64টি উদাহরণ ব্যবহার করে এই স্বাভাবিক পরিসংখ্যানগুলি গণনা করা আসলে অনুশীলনে আরও ভাল কাজ করে। (ঘোস্ট ব্যাচ নরমালাইজেশনের বিবরণ দেখুন ট্রেনে আর, আরও ভালোভাবে সাধারণীকরণ করুন: নিউরাল নেটওয়ার্কের বৃহৎ ব্যাচের প্রশিক্ষণে সাধারণীকরণ ব্যবধান বন্ধ করা ।) ব্যাচের সাধারণ পরিসংখ্যান গণনা করার জন্য ব্যাচের আদর্শ পরিসংখ্যান গণনার জন্য ব্যবহৃত উদাহরণের সংখ্যা ডিকপলিং করা বিশেষভাবে উপযোগী। তুলনা
ঘোস্ট ব্যাচ স্বাভাবিকীকরণ বাস্তবায়ন সবসময় সঠিকভাবে কেস পরিচালনা করে না যেখানে প্রতি-ডিভাইস ব্যাচের আকার ভার্চুয়াল ব্যাচের আকারের চেয়ে বেশি। এই ক্ষেত্রে, ব্যাচের আদর্শ পরিসংখ্যান উদাহরণগুলির সঠিক সংখ্যা পেতে আপনাকে প্রতিটি ডিভাইসে ব্যাচের সাবস্যাম্পল করতে হবে।
টেস্ট মোড ব্যাচ স্বাভাবিকীকরণে ব্যবহৃত এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) প্রশিক্ষণ পরিসংখ্যানের একটি রৈখিক সমন্বয় মাত্র। অতএব, চেকপয়েন্টে সেভ করার আগে আপনাকে শুধুমাত্র এই EMAগুলিকে সিঙ্ক্রোনাইজ করতে হবে। যাইহোক, ব্যাচ স্বাভাবিককরণের কিছু সাধারণ বাস্তবায়ন এই EMAগুলিকে সিঙ্ক্রোনাইজ করে না এবং শুধুমাত্র প্রথম ডিভাইস থেকে EMA সংরক্ষণ করে।
মাল্টি হোস্ট পাইপলাইন জন্য বিবেচনা
সারাংশ: লগিং, ইভাল, আরএনজি, চেকপয়েন্টিং এবং ডেটা শার্ডিংয়ের জন্য, মাল্টি-হোস্ট প্রশিক্ষণ বাগগুলি প্রবর্তন করা খুব সহজ করে তুলতে পারে!
মাল্টি-হোস্ট পাইপলাইনগুলির জন্য নিম্নলিখিতগুলি করুন:
- নিশ্চিত করুন যে পাইপলাইনটি শুধুমাত্র একটি হোস্টে লগিং এবং চেকপয়েন্টিং করছে।
- মূল্যায়ন বা চেকপয়েন্টিং করার আগে হোস্ট জুড়ে ব্যাচ স্বাভাবিককরণ পরিসংখ্যান সিঙ্ক্রোনাইজ করুন।
- হোস্ট জুড়ে শার্ড ডেটা ফাইলগুলি সাধারণত কর্মক্ষমতা উন্নত করে।
গুরুত্বপূর্ণ: নিশ্চিত করুন যে আপনার কাছে আরএনজি বীজ আছে যা হোস্ট জুড়ে একই (মডেল প্রাথমিককরণের জন্য), এবং বীজ যা হোস্ট জুড়ে আলাদা (ডেটা শাফলিং/প্রিপ্রসেসিংয়ের জন্য)। অতএব, তাদের যথাযথভাবে চিহ্নিত করা নিশ্চিত করুন।