জেনারেটিভ ডেটা ইন্টেলিজেন্স

গ্রেডিয়েন্ট AWS Inferentia-এর সাথে LLM বেঞ্চমার্কিংকে সাশ্রয়ী এবং সহজ করে তোলে | আমাজন ওয়েব সার্ভিসেস

তারিখ:

এটি গ্রেডিয়েন্টে মাইকেল ফিলের সাথে সহ-লেখা একটি অতিথি পোস্ট।

লার্জ ল্যাঙ্গুয়েজ মডেলের (LLMs) কার্যকারিতা মূল্যায়ন করা প্রি-ট্রেনিং এবং ফাইন-টিউনিং প্রক্রিয়ার একটি গুরুত্বপূর্ণ ধাপ। আপনি যত দ্রুত এবং আরও ঘন ঘন কর্মক্ষমতা যাচাই করতে সক্ষম হবেন, তত বেশি সম্ভাবনা আপনি মডেলের কর্মক্ষমতা উন্নত করতে সক্ষম হবেন।

At নতিমাত্রা, আমরা কাস্টম এলএলএম ডেভেলপমেন্টে কাজ করি, এবং সম্প্রতি আমাদের চালু করেছি এআই ডেভেলপমেন্ট ল্যাব, এন্টারপ্রাইজ সংস্থাগুলিকে ব্যক্তিগত, কাস্টম LLM এবং কৃত্রিম বুদ্ধিমত্তা (AI) সহ-পাইলট তৈরি করার জন্য একটি ব্যক্তিগতকৃত, এন্ড-টু-এন্ড ডেভেলপমেন্ট পরিষেবা প্রদান করে৷ এই প্রক্রিয়ার অংশ হিসাবে, আমরা নিয়মিতভাবে খোলা এবং মালিকানাধীন বেঞ্চমার্কের বিপরীতে আমাদের মডেলগুলির কার্যকারিতা (টিউন করা, প্রশিক্ষিত এবং খোলা) মূল্যায়ন করি। আমাদের মডেলগুলিকে প্রশিক্ষণ দেওয়ার জন্য AWS টিমের সাথে কাজ করার সময়৷ এডব্লিউএস ট্রেনিয়াম, আমরা বুঝতে পেরেছি যে আমরা VRAM এবং GPU দৃষ্টান্তের উপলব্ধতা উভয়ের মধ্যেই সীমাবদ্ধ ছিলাম যখন এটি এলএলএম মূল্যায়নের জন্য মূলধারার সরঞ্জামে আসে, lm-মূল্যায়ন-জোতা. এই ওপেন সোর্স ফ্রেমওয়ার্ক আপনাকে বিভিন্ন মূল্যায়ন কাজ এবং বেঞ্চমার্ক জুড়ে বিভিন্ন জেনারেটিভ ল্যাঙ্গুয়েজ মডেল স্কোর করতে দেয়। এটা যেমন লিডারবোর্ড দ্বারা ব্যবহৃত হয় আলিঙ্গন মুখ পাবলিক বেঞ্চমার্কিংয়ের জন্য।

এই চ্যালেঞ্জগুলি কাটিয়ে ওঠার জন্য, আমরা আমাদের সমাধান তৈরি এবং উন্মুক্ত করার সিদ্ধান্ত নিয়েছি—একীকরণ AWS নিউরন, পিছনে লাইব্রেরি এডাব্লুএস ইনফেরেন্টিয়া এবং Trainium, মধ্যে lm-evaluation-harness. এই একীকরণ বেঞ্চমার্ক করা সম্ভব করেছে ভি-আলফা-ট্রস, আমাদের অ্যালবাট্রস মডেলের একটি প্রাথমিক সংস্করণ, প্রশিক্ষণ প্রক্রিয়া চলাকালীন এবং পরে অন্যান্য পাবলিক মডেলের বিরুদ্ধে।

প্রেক্ষাপটের জন্য, এই ইন্টিগ্রেশনটি lm-evaluation-harness-এর মধ্যে একটি নতুন মডেল শ্রেণী হিসাবে চলে, টোকেনগুলির অনুমানকে বিমূর্ত করে এবং প্রকৃত মূল্যায়নের কাজকে প্রভাবিত না করেই অনুক্রমের লগ-সম্ভাব্যতা অনুমান। আমাদের অভ্যন্তরীণ পরীক্ষার পাইপলাইন সরানোর সিদ্ধান্ত অ্যামাজন ইলাস্টিক কম্পিউট ক্লাউড (আমাজন ইসি 2) Inf2 দৃষ্টান্ত (AWS Inferentia2 দ্বারা চালিত) আমাদের 384 GB পর্যন্ত শেয়ার্ড এক্সিলারেটর মেমরি অ্যাক্সেস করতে সক্ষম করেছে, অনায়াসে আমাদের সমস্ত বর্তমান পাবলিক আর্কিটেকচারের সাথে মানানসই। AWS স্পট ইন্সট্যান্স ব্যবহার করে, আমরা AWS ক্লাউডে অব্যবহৃত EC2 ক্ষমতার সুবিধা নিতে সক্ষম হয়েছি—অন-ডিমান্ড দাম থেকে 90% পর্যন্ত খরচ সাশ্রয় সক্ষম করে। এটি পরীক্ষার জন্য যে সময় নেয় তা কমিয়ে দেয় এবং আমাদের আরও ঘন ঘন পরীক্ষা করার অনুমতি দেয় কারণ আমরা সহজেই উপলব্ধ একাধিক দৃষ্টান্ত জুড়ে পরীক্ষা করতে সক্ষম হয়েছিলাম এবং আমরা শেষ হয়ে গেলে দৃষ্টান্তগুলি প্রকাশ করতে সক্ষম হয়েছি।

এই পোস্টে, আমরা আমাদের পরীক্ষাগুলির একটি বিশদ বিভাজন, আমরা যে চ্যালেঞ্জগুলির সম্মুখীন হয়েছি এবং AWS Inferentia-এ টেস্টিং হারনেস ব্যবহারের একটি উদাহরণ দিই।

AWS Inferentia2 এ বেঞ্চমার্কিং

এই প্রকল্পের লক্ষ্য ছিল অভিন্ন স্কোর তৈরি করা যেমন দেখানো হয়েছে এলএলএম লিডারবোর্ড খুলুন (Hugging Face-এ উপলব্ধ অনেক CausalLM মডেলের জন্য), ব্যক্তিগত বেঞ্চমার্কের বিরুদ্ধে এটি চালানোর নমনীয়তা বজায় রেখে। উপলব্ধ মডেলের আরো উদাহরণ দেখতে, দেখুন AWS Inferentia এবং Trainium আলিঙ্গন মুখে

হাগিং ফেস ট্রান্সফরমার থেকে হাগিং ফেস পর্যন্ত মডেলের উপর পোর্ট করার জন্য প্রয়োজনীয় কোড পরিবর্তন হয় সর্বোত্তম নিউরন পাইথন লাইব্রেরি বেশ কম ছিল। কারণ lm-মূল্যায়ন-হার্নেস ব্যবহার করে AutoModelForCausalLM, ব্যবহার করে প্রতিস্থাপন একটি ড্রপ আছে NeuronModelForCausalLM. একটি প্রি-কম্পাইল করা মডেল ব্যতীত, মডেলটি মুহূর্তের মধ্যে স্বয়ংক্রিয়ভাবে সংকলিত হয়, যা একটি কাজের জন্য 15-60 মিনিট যোগ করতে পারে। এটি আমাদের যেকোন AWS Inferentia2 উদাহরণ এবং সমর্থিত CausalLM মডেলের জন্য পরীক্ষা নিয়োজিত করার নমনীয়তা দিয়েছে।

ফলাফল

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

In lm-evaluation-harness, বিভিন্ন পরীক্ষা দ্বারা ব্যবহৃত দুটি প্রধান স্ট্রীম আছে: generate_until এবং loglikelihood. gsm8k পরীক্ষা প্রাথমিকভাবে ব্যবহার করে generate_until অনুমানের সময় ঠিক মত প্রতিক্রিয়া তৈরি করতে। Loglikelihood প্রধানত বেঞ্চমার্কিং এবং পরীক্ষায় ব্যবহৃত হয় এবং বিভিন্ন আউটপুট উত্পাদিত হওয়ার সম্ভাবনা পরীক্ষা করে। উভয়ই নিউরনে কাজ করে, কিন্তু loglikelihood SDK 2.16-এ পদ্ধতি সম্ভাব্যতা নির্ধারণ করতে অতিরিক্ত পদক্ষেপ ব্যবহার করে এবং অতিরিক্ত সময় নিতে পারে।

এলএম-মূল্যায়ন-হার্নেস ফলাফল
হার্ডওয়্যার কনফিগারেশন মূল সিস্টেম AWS Inferentia inf2.48xlarge
gsm1k-এ mistralai/Mistral-7B-Instruct-v0.1 মূল্যায়ন করার জন্য batch_size=8 এর সাথে সময় 103 মিনিট 32 মিনিট
gsm8k-এ স্কোর (উত্তর পান – std-এর সাথে সঠিক_মিল) 0.3813 - 0.3874 (± 0.0134) 0.3806 - 0.3844 (± 0.0134)

নিউরন এবং lm-evaluation-harness দিয়ে শুরু করুন

এই বিভাগের কোড আপনাকে ব্যবহার করতে সাহায্য করতে পারে lm-evaluation-harness এবং আলিঙ্গন মুখের সমর্থিত মডেলগুলির বিরুদ্ধে এটি চালান। কিছু উপলব্ধ মডেল দেখতে, দেখুন AWS Inferentia এবং Trainium আলিঙ্গন মুখে

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

নিম্নলিখিত ধাপগুলি আপনাকে দেখায় কিভাবে গ্রেডিয়েন্ট স্থাপন করতে হয় gradientai/v-alpha-tross আমরা পরীক্ষিত মডেল। আপনি যদি একটি ছোট উদাহরণে একটি ছোট উদাহরণ দিয়ে পরীক্ষা করতে চান তবে আপনি ব্যবহার করতে পারেন mistralai/Mistral-7B-v0.1 মডেল.

  1. অন-ডিমান্ড ইনস্ট্যান্স চালানোর জন্য ডিফল্ট কোটা হল 0, তাই আপনার পরিষেবা কোটার মাধ্যমে বৃদ্ধির অনুরোধ করা উচিত। সমস্ত Inf স্পট ইনস্ট্যান্স অনুরোধের জন্য আরেকটি অনুরোধ যোগ করুন যাতে আপনি স্পট ইনস্ট্যান্সের সাথে পরীক্ষা করতে পারেন। একটি inf192xlarge ইন্সট্যান্স ব্যবহার করে এই উদাহরণের জন্য আপনার 2.48 vCPU-এর একটি কোটা বা একটি বেসিক inf4.xlarge (যদি আপনি Mistral মডেলটি স্থাপন করছেন) জন্য 2টি vCPU-এর একটি কোটা প্রয়োজন। কোটা AWS অঞ্চল নির্দিষ্ট, তাই নিশ্চিত করুন যে আপনি অনুরোধ করেছেন us-east-1 or us-west-2.
  2. আপনার মডেলের উপর ভিত্তি করে আপনার উদাহরণের উপর সিদ্ধান্ত নিন। কারণ v-alpha-tross একটি 70B আর্কিটেকচার, আমরা একটি inf2.48xlarge উদাহরণ ব্যবহার করার সিদ্ধান্ত নিয়েছি। একটি inf2.xlarge স্থাপন করুন (7B মিস্ট্রাল মডেলের জন্য)। আপনি যদি একটি ভিন্ন মডেল পরীক্ষা করছেন, তাহলে আপনার মডেলের আকারের উপর নির্ভর করে আপনার উদাহরণ সামঞ্জস্য করতে হতে পারে।
  3. ব্যবহার করে উদাহরণ স্থাপন করুন আলিঙ্গন মুখ DLAMI সংস্করণ 20240123, যাতে সমস্ত প্রয়োজনীয় ড্রাইভার ইনস্টল করা হয়। (দেখানো মূল্যের মধ্যে উদাহরণ খরচ অন্তর্ভুক্ত রয়েছে এবং কোনও অতিরিক্ত সফ্টওয়্যার চার্জ নেই।)
  4. ড্রাইভের আকার 600 GB (Mistral 100B এর জন্য 7 GB) এ সামঞ্জস্য করুন।
  5. ক্লোন করুন এবং ইনস্টল করুন lm-evaluation-harness উদাহরণে আমরা একটি বিল্ড নির্দিষ্ট করি যাতে আমরা জানি যে কোনও পরিবর্তন মডেল পরিবর্তনের কারণে হয়েছে, পরীক্ষা বা কোড পরিবর্তন নয়।
git clone https://github.com/EleutherAI/lm-evaluation-harness
cd lm-evaluation-harness
# optional: pick specific revision from the main branch version to reproduce the exact results
git checkout 756eeb6f0aee59fc624c81dcb0e334c1263d80e3
# install the repository without overwriting the existing torch and torch-neuronx installation
pip install --no-deps -e . 
pip install peft evaluate jsonlines numexpr pybind11 pytablewriter rouge-score sacrebleu sqlitedict tqdm-multiprocess zstandard hf_transfer

  1. চালান lm_eval hf-নিউরন মডেল টাইপ সহ এবং নিশ্চিত করুন যে আপনার কাছে Hugging Face-এ মডেলে ফিরে যাওয়ার পথের একটি লিঙ্ক আছে:
# e.g use mistralai/Mistral-7B-v0.1 if you are on inf2.xlarge
MODEL_ID=gradientai/v-alpha-tross

python -m lm_eval --model "neuronx" --model_args "pretrained=$MODEL_ID,dtype=bfloat16" --batch_size 1 --tasks gsm8k

আপনি যদি মিস্ট্রালের সাথে পূর্বের উদাহরণটি চালান, তাহলে আপনার নিম্নলিখিত আউটপুট পাওয়া উচিত (ছোট inf2.xlarge-এ, এটি চালাতে 250 মিনিট সময় লাগতে পারে):

███████████████████████| 1319/1319 [32:52<00:00,  1.50s/it]
neuronx (pretrained=mistralai/Mistral-7B-v0.1,dtype=bfloat16), gen_kwargs: (None), limit: None, num_fewshot: None, batch_size: 1
|Tasks|Version|  Filter  |n-shot|  Metric   |Value |   |Stderr|
|-----|------:|----------|-----:|-----------|-----:|---|-----:|
|gsm8k|      2|get-answer|     5|exact_match|0.3806|±  |0.0134|

পরিষ্কার কর

আপনার হয়ে গেলে, Amazon EC2 কনসোলের মাধ্যমে EC2 দৃষ্টান্ত বন্ধ করতে ভুলবেন না।

উপসংহার

গ্রেডিয়েন্ট এবং নিউরন দলগুলি এই প্রকাশের সাথে LLM মূল্যায়নের বৃহত্তর গ্রহণ দেখে উত্তেজিত৷ এটি নিজে ব্যবহার করে দেখুন এবং AWS Inferentia2 দৃষ্টান্তে সবচেয়ে জনপ্রিয় মূল্যায়ন কাঠামো চালান। আপনি যখন ব্যবহার করছেন তখন আপনি এখন AWS Inferentia2 এর অন-ডিমান্ড প্রাপ্যতা থেকে উপকৃত হতে পারেন গ্রেডিয়েন্ট থেকে কাস্টম এলএলএম উন্নয়ন. এগুলো দিয়ে AWS Inferentia-এ হোস্টিং মডেল শুরু করুন টিউটোরিয়াল.


লেখক সম্পর্কে

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

জিম বার্টফ্ট AWS-এর একজন সিনিয়র স্টার্টআপ সলিউশন আর্কিটেক্ট এবং গ্রেডিয়েন্টের মতো স্টার্টআপের সাথে সরাসরি কাজ করে। জিম হল একজন CISSP, AWS AI/ML টেকনিক্যাল ফিল্ড কমিউনিটির অংশ, একজন নিউরন অ্যাম্বাসেডর, এবং Inferentia এবং Trainium-এর ব্যবহার সক্ষম করতে ওপেন সোর্স সম্প্রদায়ের সাথে কাজ করে। জিম কার্নেগি মেলন বিশ্ববিদ্যালয় থেকে গণিতে স্নাতক এবং ভার্জিনিয়া বিশ্ববিদ্যালয় থেকে অর্থনীতিতে স্নাতকোত্তর ডিগ্রি অর্জন করেছেন।

স্পট_আইএমজি

সর্বশেষ বুদ্ধিমত্তা

স্পট_আইএমজি