paint-brush
মাত্র কয়েকটি লাইনের কোড দিয়ে যেকোনো এলএলএমকে আরও নির্ভুল কীভাবে করা যায়দ্বারা@FrederikBussler
7,015 পড়া
7,015 পড়া

মাত্র কয়েকটি লাইনের কোড দিয়ে যেকোনো এলএলএমকে আরও নির্ভুল কীভাবে করা যায়

দ্বারা Frederik Bussler5m2023/08/14
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

ChatGPT-এর মতো বড় ল্যাঙ্গুয়েজ মডেলের (LLM) উত্থানের সাথে AI বিপ্লব পরিবর্তিত হয়েছে, যা ডেটা জটিলতার উপর বিজয়ের ইঙ্গিত দেয়। এই এলএলএমগুলি বিশাল ডেটাসেট (একটি পেটাবাইট পর্যন্ত) এবং মানুষের ভাষার জটিল প্রকৃতির কারণে চ্যালেঞ্জের সম্মুখীন হয়। ক্লিনল্যাবের মতো ডেটা-কেন্দ্রিক সরঞ্জামগুলি এআই ডেটা হ্যান্ডলিং, স্বয়ংক্রিয় ডেটা উন্নতি প্রক্রিয়া এবং গণতান্ত্রিক অগ্রগতিতে বিপ্লব ঘটিয়েছে। রিয়েল-ওয়ার্ল্ড ডেটাসেটে টীকা ত্রুটির (7-50%) কারণে ডেটা-কেন্দ্রিক AI অপরিহার্য, প্রশিক্ষণ বাধাগ্রস্ত। ওপেনএআই এবং ক্লিনল্যাবের মতো সরঞ্জামগুলি ডেটার গুণমানকে অগ্রাধিকার দেয়, যা মডেলের নির্ভুলতায় উল্লেখযোগ্য উন্নতির অনুমতি দেয়। একটি পাইথন ডেমো দেখায় যে কীভাবে ক্লিনল্যাব লেবেল সমস্যাগুলি সনাক্ত করে, ডেটা ফিল্টার করে এবং মডেলগুলিকে পুনরায় প্রশিক্ষণ দেয়, যার ফলে একটি উল্লেখযোগ্য নির্ভুলতা 63% থেকে 66%-এর বেশি হয়৷ এই ডেটা-কেন্দ্রিক পদ্ধতিটি GPT-5 এর মতো ভবিষ্যতের এলএলএমগুলির জন্য প্রতিশ্রুতি রাখে।
featured image - মাত্র কয়েকটি লাইনের কোড দিয়ে যেকোনো এলএলএমকে আরও নির্ভুল কীভাবে করা যায়
Frederik Bussler HackerNoon profile picture
0-item
1-item
2-item

এআই বিপ্লব কয়েক দশক ধরে তৈরি হয়েছিল। এটি ছিল উত্তেজনায় ভরা একটি ক্ষেত্র, তবুও প্রায়শই হতাশা এবং " এআই শীত " দ্বারা বিরামচিহ্নিত। কিন্তু সম্প্রতি কিছু পরিবর্তন হয়েছে। ChatGPT, Claude এবং Bard এর মতো বড় ভাষার মডেল (LLMs) ল্যাবরেটরির কৌতূহল থেকে AI কে মূলধারায় নিয়ে গেছে।


এই পরিবর্তনটি শুধুমাত্র AI এর বিজয় ছিল না বরং বড় এবং অগোছালো ডেটার জটিলতার উপরও একটি বিজয় ছিল। কথায় আছে, "আবর্জনা ভিতরে, আবর্জনা আউট।" নতুন টুল আবির্ভূত হচ্ছে যা অন্তর্নিহিত ডেটার উন্নতিতে ফোকাস করে, তাই এলএলএম-এর উন্নতি।


এলএলএম এর ডাবল চ্যালেঞ্জ

"লার্জ ল্যাঙ্গুয়েজ মডেল" শব্দটি এর মধ্যে দুটি বড় চ্যালেঞ্জ রয়েছে। প্রথমত, ডেটার নিছক ভলিউম। আমরা GPT-4-এর জন্য একটি পেটাবাইট (এক মিলিয়ন গিগাবাইট) ডেটার উপরে কথা বলছি, লক্ষ লক্ষ বই, ব্লগ, সোশ্যাল মিডিয়া পোস্ট, ভিডিও ট্রান্সক্রিপ্ট এবং আরও অনেক কিছুকে অন্তর্ভুক্ত করে৷ এই বিশাল স্কেলটি বিশাল সম্ভাবনার প্রস্তাব দেয় তবে তা উল্লেখযোগ্য যৌক্তিক বিবেচনার বিষয়ও তুলে ধরে।


দ্বিতীয়ত, প্রাকৃতিক ভাষার জটিলতা। প্রসঙ্গ-নির্ভর, অস্পষ্ট, এবং বৈচিত্র্যময়, ভাষার ডেটা একটি বন্য জন্তু যা এমনকি সেরা অ্যালগরিদমগুলিও নিয়ন্ত্রণ করতে লড়াই করে। এই সমস্ত ডেটাকে সঠিকভাবে লেবেল করা অসম্ভব, যার অবশ্যম্ভাবী অর্থ হল এমনকি অত্যাধুনিক এলএলএমগুলিও ভুলভাবে লেবেল করা ডেটার উপর প্রশিক্ষিত।


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


এই সরঞ্জামগুলি কেবল ক্রমবর্ধমান উন্নতির প্রস্তাব দেয়নি; তারা মৌলিকভাবে এআই ডেটা হ্যান্ডলিং পদ্ধতির নতুন আকার দিয়েছে। তারা একটি ম্যানুয়াল, ত্রুটি-প্রবণ প্রক্রিয়া থেকে বৃহৎ মাপের ভাষা ডেটা পরিচালনা করার কাজটিকে একটি স্বয়ংক্রিয়, সুনির্দিষ্ট একটিতে রূপান্তরিত করেছে, ক্ষেত্রের গণতন্ত্রীকরণ এবং অভূতপূর্ব গতিতে অগ্রগতি সক্ষম করে।


কেন ডেটা-কেন্দ্রিক AI প্রয়োজন (একটি পাইথন ডেমো সহ)

AI-তে, বাস্তব-বিশ্বের ডেটাসেটে 7-50% পর্যন্ত টীকা সংক্রান্ত ত্রুটি রয়েছে। এই অপূর্ণতাগুলি উল্লেখযোগ্যভাবে প্রশিক্ষণ এবং মূল্যায়নকে বাধা দেয়। ডেটা-কেন্দ্রিক AI ডেটাসেটের গুণমান উন্নত করার উপর জোর দেয়।


উদাহরণস্বরূপ, OpenAI-এর কৌশল এই জোরকে চিত্রিত করে: “আমরা সমস্ত ভাল ডেটা ছেড়ে যাওয়ার চেয়ে সমস্ত খারাপ ডেটা ফিল্টার করাকে অগ্রাধিকার দিয়েছি। এর কারণ হল আমরা সবসময় আমাদের মডেলটিকে নতুন জিনিস শেখানোর জন্য পরবর্তীতে আরও ডেটা দিয়ে সূক্ষ্ম-টিউন করতে পারি, কিন্তু মডেলটিকে এমন কিছু ভুলে যাওয়া অনেক কঠিন যা এটি ইতিমধ্যেই শিখেছে।"


ম্যানুয়ালি ডেটা ফিল্টার করার একটি পদ্ধতি, তবে, সময়সাপেক্ষ এবং ব্যয়বহুল। Cleanlab প্যাকেজ একটি ওপেন-সোর্স ফ্রেমওয়ার্ক যা বর্তমানে ডেটা-কেন্দ্রিক AI অনুশীলনের জন্য জনপ্রিয়। এটি আপনাকে আপনার প্রশিক্ষিত এমএল মডেলের আউটপুটগুলিতে ডেটা মানের অ্যালগরিদম চালানোর অনুমতি দেয় যাতে লেবেল ত্রুটি, আউটলায়ার, ড্রিফট এবং আরও অনেক কিছুর মতো সাধারণ ডেটাসেট সমস্যাগুলি সনাক্ত করা যায়।


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


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


ডেটা-কেন্দ্রিক AI-এর শক্তি প্রদর্শনের জন্য Cleanlab প্যাকেজটি ব্যবহার করা যাক।


1. তথ্য প্রস্তুত করা এবং সূক্ষ্ম টিউনিং

আমরা স্ট্যানফোর্ড ভদ্রতা ডেটাসেট দিয়ে শুরু করি। নিশ্চিত করুন যে আপনি ট্রেন এবং পরীক্ষার সেট লোড করেছেন। এই ডেমোতে, আমরা প্রথমে ক্লিনল্যাব ছাড়াই 3-শ্রেণির শ্রেণীবিভাগের জন্য Davinci LLM-কে ফাইন-টিউন করব, এবং তারপর দেখব কীভাবে আমরা ডেটা-কেন্দ্রিকতার সাথে নির্ভুলতা উন্নত করতে পারি। আমরা একটি মডেল প্রশিক্ষণের জন্য একটি সাধারণ bash কমান্ড চালাতে পারি।


!openai api fine_tunes.create -t "train_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "baseline"


এটি হয়ে গেলে, পরীক্ষার নির্ভুলতা দেখতে আমরা একটি fine_tunes.results এন্ডপয়েন্ট জিজ্ঞাসা করতে পারি।


!openai api fine_tunes.results -i ft-9800F2gcVNzyMdTLKcMqAtJ5 > baseline.csv

`df = pd.read_csv('baseline.csv')

baseline_acc = df.iloc[-1]['classification/accuracy']`


আমরা 63% নির্ভুলতার ফলাফল পাই। দেখা যাক আমরা এই উন্নতি করতে পারি কিনা।


2. ভবিষ্যদ্বাণীকৃত শ্রেণীর সম্ভাব্যতা প্রাপ্ত করুন

এখন, এম্বেডিং গণনা করার জন্য ওপেনএআই-এর API ব্যবহার করা যাক এবং নমুনা বহির্ভূত পূর্বাভাসিত শ্রেণীর সম্ভাব্যতা পেতে একটি লজিস্টিক রিগ্রেশন মডেল ফিট করা যাক।


# Get embeddings from OpenAI. from openai.embeddings_utils import get_embedding

embedding_model = "text-similarity-davinci-001" train["embedding"] = train.prompt.apply(lambda x: get_embedding(x, engine=embedding_model)) embeddings = train["embedding"].values

# Get out-of-sample predicted class probabilities via cross-validation.

from sklearn.linear_model import LogisticRegression

model = LogisticRegression() labels = train["completion"].values pred_probs = cross_val_predict(estimator=model, X=embeddings, y=labels, cv=10, method="predict_proba")


কোডের মাত্র একটি লাইন দিয়ে, Cleanlab অনুমান করে যে কোন উদাহরণে আমাদের প্রশিক্ষণ ডেটাসেটে লেবেল সমস্যা আছে।


from cleanlab.filter import find_label_issues

এখন আমরা লেবেল সমস্যা আছে আনুমানিক উদাহরণ সূচক পেতে পারেন:


issue_idx = find_label_issues(labels, pred_probs, return_indices_ranked_by='self_confidence') # sort indices by likelihood of label error


3. ফিল্টার লেবেল সমস্যা এবং পুনরায় ট্রেন

এখন, আমরা স্বয়ংক্রিয়ভাবে সম্ভাব্য ভুল লেবেলযুক্ত উদাহরণগুলির সূচকগুলি বের করেছি, তাই আমরা সেগুলিকে সরাতে এবং একটি নতুন শ্রেণীবিভাগকে প্রশিক্ষণ দিতে পারি৷


# Remove the label errors

train_cl = train.drop(issue_idx).reset_index(drop=True) format_data(train_cl, "train_cl.jsonl")


এখন আরও ভাল ডেটা সহ আরও শক্তিশালী ক্লাসিফায়ারকে প্রশিক্ষণ দেওয়া যাক।


!openai api fine_tunes.create -t "train_cl_prepared.jsonl" -v "test_prepared.jsonl" --compute_classification_metrics --classification_n_classes 3 -m davinci --suffix "dropped"


# Evaluate model on test data

!openai api fine_tunes.results -i ft-InhTRQGu11gIDlVJUt0LYbEx > cleanlab.csv df = pd.read_csv('cleanlab.csv') dropped_acc = df.iloc[-1]['classification/accuracy']


আমরা একটি অত্যাধুনিক ফাইন-টিউনেবল মডেল (GPT-3, যেমন আপনি GPT-4 ঠিক করতে পারবেন না) উন্নত করে, শুধুমাত্র স্বয়ংক্রিয়ভাবে ডেটাসেটকে কোনো পরিবর্তন ছাড়াই উন্নত করার মাধ্যমে, আমরা 66% এর বেশি নির্ভুলতা পাই। মডেলের কাছে।


ক্লিনল্যাব স্টুডিওর সাহায্যে, ভুল লেবেলগুলিকে সরাসরি সরানোর পরিবর্তে স্বয়ংক্রিয়ভাবে ঠিক করাও সম্ভব, সঠিকতা আরও উন্নত করা। ক্লিনল্যাবের একটি গাইড দেখায় যে এটি 77% পর্যন্ত নির্ভুলতা নেয়।


Takeaways

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


এই নির্দেশিকায় বর্ণিত পদ্ধতিটি AI মডেলগুলিতে আরও বেশি নির্ভুলতা এবং দৃঢ়তা আনলক করার চাবিকাঠি হতে পারে, এমনকি GPT-5 এর মতো ভবিষ্যতের উন্নত এলএলএমগুলির সাথেও।