paint-brush
স্থানীয়ভাবে একটি বড় ভাষার মডেল কীভাবে হোস্ট করবেন দ্বারা@thomascherickal
24,876 পড়া
24,876 পড়া

স্থানীয়ভাবে একটি বড় ভাষার মডেল কীভাবে হোস্ট করবেন

দ্বারা Thomas Cherickal
Thomas Cherickal HackerNoon profile picture

Thomas Cherickal

@thomascherickal

Evergreen Emerging Engineering Edutainment: Evergreen Content About Emerging Technology That...

6 মিনিট read2023/06/05
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript

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

লার্জ ল্যাঙ্গুয়েজ মডেল (LLMs) হল কৃত্রিম বুদ্ধিমত্তার (AI) একটি উপসেট যা প্রাকৃতিক ভাষা বোঝা এবং তৈরি করার জন্য ডিজাইন করা হয়েছে। LLM ব্যবহার করা হয়েছে চ্যাটবট থেকে শুরু করে ভাষা অনুবাদ পরিষেবা পর্যন্ত বিভিন্ন ধরনের অ্যাপ্লিকেশন তৈরি করতে। এই প্রবন্ধে, আমরা আলোচনা করব কিভাবে একটি একক কম্পিউটারে একটি এলএলএম তৈরি করা যায় এবং সোর্স কোডের উদাহরণ প্রদান করা যায়।
featured image - স্থানীয়ভাবে একটি বড় ভাষার মডেল কীভাবে হোস্ট করবেন
Thomas Cherickal HackerNoon profile picture
Thomas Cherickal

Thomas Cherickal

@thomascherickal

Evergreen Emerging Engineering Edutainment: Evergreen Content About Emerging Technology That Educates and Entertains!

0-item
1-item
2-item

STORY’S CREDIBILITY

DYOR

DYOR

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)

Code License

Code License

The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.

Guide

Guide

Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.


লার্জ ল্যাঙ্গুয়েজ মডেল (LLMs) হল কৃত্রিম বুদ্ধিমত্তার (AI) একটি উপসেট যা প্রাকৃতিক ভাষা বোঝা এবং তৈরি করার জন্য ডিজাইন করা হয়েছে। এই মডেলগুলি প্রচুর পরিমাণে পাঠ্য ডেটার উপর প্রশিক্ষিত হয় এবং ভাষার নিদর্শনগুলি শিখতে জটিল অ্যালগরিদম ব্যবহার করে। LLM ব্যবহার করা হয়েছে চ্যাটবট থেকে ভাষা অনুবাদ পরিষেবা পর্যন্ত বিভিন্ন ধরনের অ্যাপ্লিকেশন তৈরি করতে। এই নিবন্ধে, আমরা আলোচনা করব কিভাবে একটি একক কম্পিউটারে একটি এলএলএম তৈরি করা যায় এবং উত্স কোডের উদাহরণ প্রদান করা যায়।


পূর্বশর্ত

আমরা শুরু করার আগে, আপনার কম্পিউটার নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে তা নিশ্চিত করা অপরিহার্য:


  1. কমপক্ষে 16GB RAM এবং 1TB বিনামূল্যের সঞ্চয়স্থান সহ একটি শক্তিশালী কম্পিউটার৷
  2. একটি আধুনিক GPU, যেমন একটি NVIDIA GeForce বা AMD Radeon, কমপক্ষে 8GB ভিডিও মেমরি সহ
  3. একটি লিনাক্স অপারেটিং সিস্টেম, যেমন উবুন্টু বা CentOS
  4. কমান্ড লাইন ইন্টারফেস (CLI) এবং পাইথন প্রোগ্রামিং ভাষার প্রাথমিক জ্ঞান

ধাপ 1: Anaconda ইনস্টল করুন

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


  1. অফিসিয়াল ওয়েবসাইট থেকে অ্যানাকোন্ডা ইনস্টলার ডাউনলোড করুন: https://www.anaconda.com/products/individual

  2. টার্মিনাল খুলুন এবং ডিরেক্টরিতে নেভিগেট করুন যেখানে ইনস্টলারটি ডাউনলোড করা হয়েছিল

  3. নিম্নলিখিত কমান্ড টাইপ করে ইনস্টলার চালান: bash Anaconda3–2021.11-Linux-x86_ 64.sh

  4. ইনস্টলেশন সম্পূর্ণ করতে স্ক্রিনে নির্দেশাবলী অনুসরণ করুন


ধাপ 2: একটি পাইথন পরিবেশ তৈরি করুন

এলএলএম-এর জন্য প্রয়োজনীয় লাইব্রেরি এবং নির্ভরতা ইনস্টল করার জন্য আমরা পাইথন পরিবেশ তৈরি করব। একটি পরিবেশ তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:


  1. টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন: conda create — name lm python=3.8

  2. টাইপ করে পরিবেশ সক্রিয় করুন: conda activate lm


ধাপ 3: TensorFlow ইনস্টল করুন

TensorFlow মেশিন লার্নিং মডেল তৈরি এবং প্রশিক্ষণের জন্য একটি ওপেন সোর্স প্ল্যাটফর্ম। এলএলএম তৈরি করতে আমরা টেনসরফ্লো ব্যবহার করব। TensorFlow ইনস্টল করতে, এই পদক্ষেপগুলি অনুসরণ করুন:


  1. টার্মিনালে নিম্নলিখিত কমান্ডটি টাইপ করুন: pip install tensorflow

  2. পাইথনে আমদানি করে TensorFlow ইনস্টল করা আছে কিনা তা যাচাই করুন: tf হিসেবে tensorflow আমদানি করুন


ধাপ 4: একটি প্রাক-প্রশিক্ষিত এলএলএম ডাউনলোড করুন

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


  1. টার্মিনাল খুলুন এবং নিম্নলিখিত কমান্ডটি টাইপ করুন: git ক্লোন https://github.com/openai/gpt-2.git

  2. টাইপ করে gpt-2 ডিরেক্টরিতে নেভিগেট করুন: cd gpt-2

  3. টাইপ করে প্রাক-প্রশিক্ষিত মডেলটি ডাউনলোড করুন: python download_ model.py 117M


ধাপ 5: প্রাক-প্রশিক্ষিত এলএলএম সূক্ষ্ম সুর করুন

একটি প্রাক-প্রশিক্ষিত এলএলএম ফাইন-টিউনিং একটি নির্দিষ্ট কাজের জন্য একটি নির্দিষ্ট ডেটাসেটে মডেলকে প্রশিক্ষণ দেয়। আমাদের উদাহরণে, আমরা একটি টেক্সট জেনারেশন টাস্কে প্রাক-প্রশিক্ষিত GPT-2 মডেলটিকে সূক্ষ্ম-টিউন করব। মডেলটি সূক্ষ্ম-টিউন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:


  1. টাইপ করে ফাইন-টিউনড মডেলের জন্য একটি নতুন ডিরেক্টরি তৈরি করুন: mkdir my_model
  2. টাইপ করে my_model ডিরেক্টরিতে নেভিগেট করুন: cd my_model
  3. টাইপ করে একটি নতুন পাইথন ফাইল তৈরি করুন: touch train.py
  4. একটি পাঠ্য সম্পাদকে train.py ফাইলটি খুলুন এবং নিম্নলিখিত কোডটি পেস্ট করুন:
 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 মডেলটি লোড করি এবং ডেটাসেটের জন্য ইনপুট ফাংশন সংজ্ঞায়িত করি। অবশেষে, আমরা প্রশিক্ষণ ফাংশন সংজ্ঞায়িত করি এবং প্রশিক্ষণ শুরু করি।


ধাপ 6: সূক্ষ্ম সুর করা এলএলএম ব্যবহার করে পাঠ্য তৈরি করুন

একবার এলএলএম ঠিকঠাক হয়ে গেলে, আমরা পাঠ্য তৈরি করতে এটি ব্যবহার করতে পারি। পাঠ্য তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:


  1. টার্মিনাল খুলুন এবং টাইপ করে my_model ডিরেক্টরিতে নেভিগেট করুন: cd my_model
  2. টাইপ করে একটি নতুন পাইথন ফাইল তৈরি করুন: generate.py স্পর্শ করুন
  3. একটি টেক্সট এডিটরে generate.py ফাইলটি খুলুন এবং নিম্নলিখিত কোডটি পেস্ট করুন:


 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 তৈরি করতে পারেন এবং ভাষা অনুবাদ, চ্যাটবট এবং বিষয়বস্তু তৈরির মতো বিভিন্ন কাজের জন্য পাঠ্য তৈরি করতে পারেন।


পরবর্তি প্রজন্ম?

পরবর্তি প্রজন্ম?


তথ্যসূত্র

  1. Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I. (2019)। ভাষার মডেলগুলি তত্ত্বাবধানহীন মাল্টিটাস্ক লার্নার্স। OpenAI ব্লগ, 1(8), 9.
  2. OpenAI। (2019)। GPT-2: ভাষার মডেলগুলি তত্ত্বাবধানহীন মাল্টিটাস্ক লার্নার্স। গিথুব। https://github.com/openai/gpt-2 থেকে সংগৃহীত।
  3. টেনসরফ্লো। (2021)। TensorFlow: প্রত্যেকের জন্য একটি ওপেন সোর্স মেশিন লার্নিং ফ্রেমওয়ার্ক। https://www.tensorflow.org/ থেকে সংগৃহীত।
  4. Brown, TB, Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., … & Amodei, D. (2020)। ভাষার মডেল অল্প-শট লার্নার্স। arXiv প্রিপ্রিন্ট arXiv:2005.14165।


এছাড়াওএখানে প্রকাশিত.

X REMOVE AD