Evergreen Emerging Engineering Edutainment: Evergreen Content About Emerging Technology That Educates and Entertains!
The writer is smart, but don't just like, take their word for it. #DoYourOwnResearch before making any investment decisions or decisions regarding you health or security. (Do not regard any of this content as professional investment advice, or health advice)
The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.
Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.
লার্জ ল্যাঙ্গুয়েজ মডেল (LLMs) হল কৃত্রিম বুদ্ধিমত্তার (AI) একটি উপসেট যা প্রাকৃতিক ভাষা বোঝা এবং তৈরি করার জন্য ডিজাইন করা হয়েছে। এই মডেলগুলি প্রচুর পরিমাণে পাঠ্য ডেটার উপর প্রশিক্ষিত হয় এবং ভাষার নিদর্শনগুলি শিখতে জটিল অ্যালগরিদম ব্যবহার করে। LLM ব্যবহার করা হয়েছে চ্যাটবট থেকে ভাষা অনুবাদ পরিষেবা পর্যন্ত বিভিন্ন ধরনের অ্যাপ্লিকেশন তৈরি করতে। এই নিবন্ধে, আমরা আলোচনা করব কিভাবে একটি একক কম্পিউটারে একটি এলএলএম তৈরি করা যায় এবং উত্স কোডের উদাহরণ প্রদান করা যায়।
আমরা শুরু করার আগে, আপনার কম্পিউটার নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করা অপরিহার্য:
Anaconda ডেটা সায়েন্স এবং মেশিন লার্নিংয়ের জন্য একটি জনপ্রিয় ওপেন সোর্স প্ল্যাটফর্ম। এটিতে বিভিন্ন সরঞ্জাম এবং লাইব্রেরি রয়েছে যা আমরা একটি LLM তৈরি করতে ব্যবহার করব। Anaconda ইনস্টল করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
অফিসিয়াল ওয়েবসাইট থেকে অ্যানাকোন্ডা ইনস্টলার ডাউনলোড করুন: https://www.anaconda.com/products/individual
টার্মিনাল খুলুন এবং ডিরেক্টরিতে নেভিগেট করুন যেখানে ইনস্টলারটি ডাউনলোড করা হয়েছিল
নিম্নলিখিত কমান্ড টাইপ করে ইনস্টলার চালান: bash Anaconda3–2021.11-Linux-x86_ 64.sh
ইনস্টলেশন সম্পূর্ণ করতে স্ক্রিনে নির্দেশাবলী অনুসরণ করুন
এলএলএম-এর জন্য প্রয়োজনীয় লাইব্রেরি এবং নির্ভরতা ইনস্টল করার জন্য আমরা পাইথন পরিবেশ তৈরি করব। একটি পরিবেশ তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন: conda create — name lm python=3.8
টাইপ করে পরিবেশ সক্রিয় করুন: conda activate lm
TensorFlow মেশিন লার্নিং মডেল তৈরি এবং প্রশিক্ষণের জন্য একটি ওপেন সোর্স প্ল্যাটফর্ম। এলএলএম তৈরি করতে আমরা টেনসরফ্লো ব্যবহার করব। TensorFlow ইনস্টল করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন: pip install tensorflow
পাইথনে আমদানি করে TensorFlow ইনস্টল করা আছে কিনা তা যাচাই করুন: tf হিসেবে tensorflow আমদানি করুন
স্ক্র্যাচ থেকে একটি LLM প্রশিক্ষণের জন্য প্রচুর পরিমাণে গণনাগত শক্তি এবং সময় প্রয়োজন। সৌভাগ্যবশত, প্রাক-প্রশিক্ষিত মডেল পাওয়া যায় যা আমরা আমাদের নির্দিষ্ট ব্যবহারের ক্ষেত্রে সূক্ষ্ম-টিউন করতে পারি। সবচেয়ে জনপ্রিয় প্রাক-প্রশিক্ষিত এলএলএমগুলির মধ্যে একটি হল GPT-2 (জেনারেটিভ প্রি-ট্রেনড ট্রান্সফরমার 2)। প্রাক-প্রশিক্ষিত GPT-2 মডেল ডাউনলোড করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন: git ক্লোন https://github.com/openai/gpt-2.git
টাইপ করে gpt-2 ডিরেক্টরিতে নেভিগেট করুন: cd gpt-2
টাইপ করে প্রাক-প্রশিক্ষিত মডেলটি ডাউনলোড করুন: python download_ model.py 117M
একটি প্রাক-প্রশিক্ষিত এলএলএম ফাইন-টিউনিং একটি নির্দিষ্ট কাজের জন্য একটি নির্দিষ্ট ডেটাসেটে মডেলকে প্রশিক্ষণ দেয়। আমাদের উদাহরণে, আমরা একটি টেক্সট জেনারেশন টাস্কে প্রাক-প্রশিক্ষিত GPT-2 মডেলটিকে সূক্ষ্ম-টিউন করব। মডেলটি সূক্ষ্ম-টিউন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
import tensorflow as tf import numpy as np import os import json import random import time import argparse # Define the command-line arguments parser = argparse.ArgumentParser() parser.add_argument("--dataset_path", type=str, required=True, help="Path to the dataset") parser.add_argument("--model_path", type=str, required=True, help="Path to the pre-trained model") parser.add_argument("--output_path", type=str, required=True, help="Path to save the fine-tuned model") parser.add_argument("--batch_size", type=int, default=16, help="Batch size for training") parser.add_argument("--epochs", type=int, default=1, help="Number of epochs to train for") args = parser.parse_args() # Load the pre-trained GPT-2 model with open(os.path.join(args.model_path, "hparams.json"), "r") as f: hparams = json.load(f) model = tf.compat.v1.estimator.Estimator( model_fn=model_fn, model_dir=args.output_path, params=hparams, config=tf.compat.v1.estimator.RunConfig( save_checkpoints_steps=5000, keep_checkpoint_max=10, save_summary_steps=5000 ) ) # Define the input function for the dataset def input_fn(mode): dataset = tf.data.TextLineDataset(args.dataset_path) dataset = dataset.repeat() dataset = dataset.shuffle(buffer_size=10000) dataset = dataset.batch(args.batch_size) dataset = dataset.map(lambda x: tf.strings.substr(x, 0, hparams["n_ctx"])) iterator = dataset.make_one_shot_iterator() return iterator.get_next() # Define the training function def train(): for epoch in range(args.epochs): model.train(input_fn=lambda: input_fn(tf.estimator.ModeKeys.TRAIN)) print(f"Epoch {epoch+1} completed.") # Start the training train()
উপরের কোডে, আমরা ডেটাসেট পাথ, প্রাক-প্রশিক্ষিত মডেল পাথ, আউটপুট পাথ, ব্যাচের আকার এবং প্রশিক্ষণের জন্য যুগের সংখ্যার জন্য কমান্ড-লাইন আর্গুমেন্টগুলি সংজ্ঞায়িত করি। তারপরে আমরা প্রাক-প্রশিক্ষিত GPT-2 মডেলটি লোড করি এবং ডেটাসেটের জন্য ইনপুট ফাংশন সংজ্ঞায়িত করি। অবশেষে, আমরা প্রশিক্ষণ ফাংশন সংজ্ঞায়িত করি এবং প্রশিক্ষণ শুরু করি।
একবার এলএলএম ঠিকঠাক হয়ে গেলে, আমরা পাঠ্য তৈরি করতে এটি ব্যবহার করতে পারি। পাঠ্য তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
import tensorflow as tf import numpy as np import os import json import random import time import argparse # Define the command-line arguments parser = argparse.ArgumentParser() parser.add_argument("--model_path", type=str, required=True, help="Path to the fine-tuned model") parser.add_argument("--length", type=int, default=100, help="Length of the generated text") parser.add_argument("--temperature", type=float, default=0.7, help="Temperature for text generation") args = parser.parse_args() # Load the fine-tuned model with open(os.path.join(args.model_path, "hparams.json"), "r") as f: hparams = json.load(f) model_fn = model_fn(hparams, tf.estimator.ModeKeys.PREDICT) model = tf.compat.v1.estimator.Estimator( model_fn=model_fn, model_dir=args.model_path, params=hparams ) # Define the generation function def generate_text(length, temperature): start_token = "<|startoftext|>" tokens = tokenizer.convert_tokens_to_ids([start_token]) token_length = len(tokens) while token_length < length: prediction_input = np.array(tokens[-hparams["n_ctx"]:]) output = list(model.predict(input_fn=lambda: [[prediction_input]]))[0]["logits"] logits = output[-1] / temperature logits = logits - np.max(logits) probs = np.exp(logits) / np.sum(np.exp(logits)) token = np.random.choice(range(hparams["n_vocab"]), p=probs) tokens.append(token) token_length += 1 output_text = tokenizer.convert_ids_to_tokens(tokens) output_text = "".join(output_text).replace("▁", " ") output_text = output_text.replace(start_token, "") return output_text # Generate text text = generate_text(args.length, args.temperature) print(text)
উপরের কোডে, আমরা ফাইন-টিউনড মডেল পাথ, জেনারেট করা টেক্সটের দৈর্ঘ্য এবং টেক্সট জেনারেশনের জন্য তাপমাত্রার জন্য কমান্ড-লাইন আর্গুমেন্টগুলি সংজ্ঞায়িত করি। তারপর আমরা সূক্ষ্ম-টিউন করা মডেলটি লোড করি এবং প্রজন্মের ফাংশনটি সংজ্ঞায়িত করি। অবশেষে, আমরা generate_text ফাংশন ব্যবহার করে টেক্সট তৈরি করি এবং আউটপুট প্রিন্ট করি এবং আমাদের কাজ শেষ!
এই প্রবন্ধে, আমরা শিখেছি কিভাবে TensorFlow এবং GPT-2 আর্কিটেকচার ব্যবহার করে একটি কম্পিউটারে একটি বড় ভাষা মডেল (LLM) তৈরি করা যায়। আমরা টেনসরফ্লো ইনস্টল করে ওপেনএআই গিটহাব রিপোজিটরি থেকে GPT-2 কোড ডাউনলোড করে শুরু করেছি। তারপরে আমরা একটি ডেটাসেটে একটি GPT-2 মডেলকে প্রশিক্ষিত করেছি এবং একই ডেটাসেট ব্যবহার করে প্রাক-প্রশিক্ষিত GPT-2 মডেলটিকে সূক্ষ্ম-টিউন করেছি। অবশেষে, আমরা সূক্ষ্ম-টিউনড এলএলএম ব্যবহার করে পাঠ্য তৈরি করেছি।
এই নিবন্ধের ধাপগুলি অনুসরণ করে, আপনি নিজের LLM তৈরি করতে পারেন এবং ভাষা অনুবাদ, চ্যাটবট এবং বিষয়বস্তু তৈরির মতো বিভিন্ন কাজের জন্য পাঠ্য তৈরি করতে পারেন।
এছাড়াওএখানে প্রকাশিত.
স্থানীয়ভাবে একটি বড় ভাষার মডেল কীভাবে হোস্ট করবেন | HackerNoon