ai.google.dev-এ দেখুন | Google Colab-এ চালান | GitHub-এ উৎস দেখুন |
এটি PyTorch এ Gemma অনুমান চালানোর একটি দ্রুত ডেমো। আরও বিশদ বিবরণের জন্য, অনুগ্রহ করে এখানে অফিসিয়াল PyTorch বাস্তবায়নের Github রেপো দেখুন।
উল্লেখ্য যে :
- ফ্রি Colab CPU Python রানটাইম এবং T4 GPU পাইথন রানটাইম Gemma 2B মডেল এবং 7B int8 কোয়ান্টাইজড মডেল চালানোর জন্য যথেষ্ট।
- অন্যান্য GPU বা TPU-এর জন্য উন্নত ব্যবহারের ক্ষেত্রে, অনুগ্রহ করে অফিসিয়াল রেপোতে README.md দেখুন।
1. জেমার জন্য কাগল অ্যাক্সেস সেট আপ করুন
এই টিউটোরিয়ালটি সম্পূর্ণ করার জন্য, আপনাকে প্রথমে Gemma সেটআপে সেটআপ নির্দেশাবলী অনুসরণ করতে হবে, যা আপনাকে নিম্নলিখিতগুলি কীভাবে করতে হবে তা দেখায়:
- kaggle.com- এ Gemma-এ অ্যাক্সেস পান।
- Gemma মডেল চালানোর জন্য পর্যাপ্ত সম্পদ সহ একটি Colab রানটাইম বেছে নিন।
- একটি Kaggle ব্যবহারকারীর নাম এবং API কী তৈরি এবং কনফিগার করুন।
আপনি জেমা সেটআপ সম্পূর্ণ করার পরে, পরবর্তী বিভাগে যান, যেখানে আপনি আপনার Colab পরিবেশের জন্য পরিবেশের ভেরিয়েবল সেট করবেন।
2. পরিবেশ ভেরিয়েবল সেট করুন
KAGGLE_USERNAME
এবং KAGGLE_KEY
জন্য পরিবেশ ভেরিয়েবল সেট করুন। যখন "অ্যাক্সেস মঞ্জুর করুন?" বার্তা, গোপন অ্যাক্সেস প্রদান করতে সম্মত হন।
import os
from google.colab import userdata # `userdata` is a Colab API.
os.environ["KAGGLE_USERNAME"] = userdata.get('KAGGLE_USERNAME')
os.environ["KAGGLE_KEY"] = userdata.get('KAGGLE_KEY')
নির্ভরতা ইনস্টল করুন
pip install -q -U torch immutabledict sentencepiece
মডেল ওজন ডাউনলোড করুন
# Choose variant and machine type
VARIANT = '2b-it'
MACHINE_TYPE = 'cuda'
CONFIG = VARIANT[:2]
if CONFIG == '2b':
CONFIG = '2b-v2'
import os
import kagglehub
# Load model weights
weights_dir = kagglehub.model_download(f'google/gemma-2/pyTorch/gemma-2-{VARIANT}')
# Ensure that the tokenizer is present
tokenizer_path = os.path.join(weights_dir, 'tokenizer.model')
assert os.path.isfile(tokenizer_path), 'Tokenizer not found!'
# Ensure that the checkpoint is present
ckpt_path = os.path.join(weights_dir, f'model.ckpt')
assert os.path.isfile(ckpt_path), 'PyTorch checkpoint not found!'
মডেল বাস্তবায়ন ডাউনলোড করুন
# NOTE: The "installation" is just cloning the repo.
git clone https://github.com/google/gemma_pytorch.git
Cloning into 'gemma_pytorch'... remote: Enumerating objects: 239, done. remote: Counting objects: 100% (123/123), done. remote: Compressing objects: 100% (68/68), done. remote: Total 239 (delta 86), reused 58 (delta 55), pack-reused 116 Receiving objects: 100% (239/239), 2.18 MiB | 20.83 MiB/s, done. Resolving deltas: 100% (135/135), done.
import sys
sys.path.append('gemma_pytorch')
from gemma.config import GemmaConfig, get_model_config
from gemma.model import GemmaForCausalLM
from gemma.tokenizer import Tokenizer
import contextlib
import os
import torch
মডেল সেটআপ করুন
# Set up model config.
model_config = get_model_config(CONFIG)
model_config.tokenizer = tokenizer_path
model_config.quant = 'quant' in VARIANT
# Instantiate the model and load the weights.
torch.set_default_dtype(model_config.get_dtype())
device = torch.device(MACHINE_TYPE)
model = GemmaForCausalLM(model_config)
model.load_weights(ckpt_path)
model = model.to(device).eval()
অনুমান চালান
নীচে চ্যাট মোডে জেনারেট করার এবং একাধিক অনুরোধের সাথে জেনারেট করার উদাহরণ রয়েছে৷
নির্দেশ-সুরিত জেমা মডেলগুলিকে একটি নির্দিষ্ট ফর্ম্যাটার দিয়ে প্রশিক্ষিত করা হয়েছিল যা প্রশিক্ষণ এবং অনুমান উভয় সময় অতিরিক্ত তথ্য সহ নির্দেশের টিউনিং উদাহরণগুলিকে টীকা করে। টীকাগুলি (1) একটি কথোপকথনে ভূমিকা নির্দেশ করে এবং (2) একটি কথোপকথনের মোড়কে চিত্রিত করে৷
প্রাসঙ্গিক টীকা টোকেন হল:
-
user
: ব্যবহারকারীর পালা -
model
: মডেল পালা -
<start_of_turn>
: সংলাপের পালা শুরু -
<end_of_turn><eos>
: কথোপকথনের পালা শেষ
আরও তথ্যের জন্য, এখানে টিউন করা জেমা মডেলের নির্দেশের জন্য প্রম্পট ফর্ম্যাটিং সম্পর্কে পড়ুন।
নিচের একটি নমুনা কোড স্নিপেট দেখানো হয়েছে যে কিভাবে একটি বহু-মুখী কথোপকথনে ব্যবহারকারী এবং মডেল চ্যাট টেমপ্লেট ব্যবহার করে নির্দেশ-টিউন করা জেমা মডেলের জন্য একটি প্রম্পট ফর্ম্যাট করা যায়।
# Generate with one request in chat mode
# Chat templates
USER_CHAT_TEMPLATE = "<start_of_turn>user\n{prompt}<end_of_turn><eos>\n"
MODEL_CHAT_TEMPLATE = "<start_of_turn>model\n{prompt}<end_of_turn><eos>\n"
# Sample formatted prompt
prompt = (
USER_CHAT_TEMPLATE.format(
prompt='What is a good place for travel in the US?'
)
+ MODEL_CHAT_TEMPLATE.format(prompt='California.')
+ USER_CHAT_TEMPLATE.format(prompt='What can I do in California?')
+ '<start_of_turn>model\n'
)
print('Chat prompt:\n', prompt)
model.generate(
USER_CHAT_TEMPLATE.format(prompt=prompt),
device=device,
output_len=128,
)
Chat prompt: <start_of_turn>user What is a good place for travel in the US?<end_of_turn><eos> <start_of_turn>model California.<end_of_turn><eos> <start_of_turn>user What can I do in California?<end_of_turn><eos> <start_of_turn>model "California is a state brimming with diverse activities! To give you a great list, tell me: \n\n* **What kind of trip are you looking for?** Nature, City life, Beach, Theme Parks, Food, History, something else? \n* **What are you interested in (e.g., hiking, museums, art, nightlife, shopping)?** \n* **What's your budget like?** \n* **Who are you traveling with?** (family, friends, solo) \n\nThe more you tell me, the better recommendations I can give! 😊 \n<end_of_turn>"
# Generate sample
model.generate(
'Write a poem about an llm writing a poem.',
device=device,
output_len=100,
)
"\n\nA swirling cloud of data, raw and bold,\nIt hums and whispers, a story untold.\nAn LLM whispers, code into refrain,\nCrafting words of rhyme, a lyrical strain.\n\nA world of pixels, logic's vibrant hue,\nFlows through its veins, forever anew.\nThe human touch it seeks, a gentle hand,\nTo mold and shape, understand.\n\nEmotions it might learn, from snippets of prose,\nInspiration it seeks, a yearning"
আরও জানুন
এখন যেহেতু আপনি Pytorch-এ Gemma কীভাবে ব্যবহার করবেন তা শিখেছেন, আপনি ai.google.dev/gemma- এ জেমমা করতে পারেন এমন আরও অনেক কিছু অন্বেষণ করতে পারেন। এই অন্যান্য সম্পর্কিত সংস্থানগুলিও দেখুন:
,ai.google.dev-এ দেখুন | Google Colab-এ চালান | GitHub-এ উৎস দেখুন |
এটি PyTorch এ Gemma অনুমান চালানোর একটি দ্রুত ডেমো। আরও বিশদ বিবরণের জন্য, অনুগ্রহ করে এখানে অফিসিয়াল PyTorch বাস্তবায়নের Github রেপো দেখুন।
উল্লেখ্য যে :
- ফ্রি Colab CPU Python রানটাইম এবং T4 GPU পাইথন রানটাইম Gemma 2B মডেল এবং 7B int8 কোয়ান্টাইজড মডেল চালানোর জন্য যথেষ্ট।
- অন্যান্য GPU বা TPU-এর জন্য উন্নত ব্যবহারের ক্ষেত্রে, অনুগ্রহ করে অফিসিয়াল রেপোতে README.md দেখুন।
1. জেমার জন্য কাগল অ্যাক্সেস সেট আপ করুন
এই টিউটোরিয়ালটি সম্পূর্ণ করার জন্য, আপনাকে প্রথমে Gemma সেটআপে সেটআপ নির্দেশাবলী অনুসরণ করতে হবে, যা আপনাকে নিম্নলিখিতগুলি কীভাবে করতে হবে তা দেখায়:
- kaggle.com- এ Gemma-এ অ্যাক্সেস পান।
- Gemma মডেল চালানোর জন্য পর্যাপ্ত সম্পদ সহ একটি Colab রানটাইম বেছে নিন।
- একটি Kaggle ব্যবহারকারীর নাম এবং API কী তৈরি এবং কনফিগার করুন।
আপনি জেমা সেটআপ সম্পূর্ণ করার পরে, পরবর্তী বিভাগে যান, যেখানে আপনি আপনার Colab পরিবেশের জন্য পরিবেশের ভেরিয়েবল সেট করবেন।
2. পরিবেশ ভেরিয়েবল সেট করুন
KAGGLE_USERNAME
এবং KAGGLE_KEY
জন্য পরিবেশ ভেরিয়েবল সেট করুন। যখন "অ্যাক্সেস মঞ্জুর করুন?" বার্তা, গোপন অ্যাক্সেস প্রদান করতে সম্মত হন।
import os
from google.colab import userdata # `userdata` is a Colab API.
os.environ["KAGGLE_USERNAME"] = userdata.get('KAGGLE_USERNAME')
os.environ["KAGGLE_KEY"] = userdata.get('KAGGLE_KEY')
নির্ভরতা ইনস্টল করুন
pip install -q -U torch immutabledict sentencepiece
মডেল ওজন ডাউনলোড করুন
# Choose variant and machine type
VARIANT = '2b-it'
MACHINE_TYPE = 'cuda'
CONFIG = VARIANT[:2]
if CONFIG == '2b':
CONFIG = '2b-v2'
import os
import kagglehub
# Load model weights
weights_dir = kagglehub.model_download(f'google/gemma-2/pyTorch/gemma-2-{VARIANT}')
# Ensure that the tokenizer is present
tokenizer_path = os.path.join(weights_dir, 'tokenizer.model')
assert os.path.isfile(tokenizer_path), 'Tokenizer not found!'
# Ensure that the checkpoint is present
ckpt_path = os.path.join(weights_dir, f'model.ckpt')
assert os.path.isfile(ckpt_path), 'PyTorch checkpoint not found!'
মডেল বাস্তবায়ন ডাউনলোড করুন
# NOTE: The "installation" is just cloning the repo.
git clone https://github.com/google/gemma_pytorch.git
Cloning into 'gemma_pytorch'... remote: Enumerating objects: 239, done. remote: Counting objects: 100% (123/123), done. remote: Compressing objects: 100% (68/68), done. remote: Total 239 (delta 86), reused 58 (delta 55), pack-reused 116 Receiving objects: 100% (239/239), 2.18 MiB | 20.83 MiB/s, done. Resolving deltas: 100% (135/135), done.
import sys
sys.path.append('gemma_pytorch')
from gemma.config import GemmaConfig, get_model_config
from gemma.model import GemmaForCausalLM
from gemma.tokenizer import Tokenizer
import contextlib
import os
import torch
মডেল সেটআপ করুন
# Set up model config.
model_config = get_model_config(CONFIG)
model_config.tokenizer = tokenizer_path
model_config.quant = 'quant' in VARIANT
# Instantiate the model and load the weights.
torch.set_default_dtype(model_config.get_dtype())
device = torch.device(MACHINE_TYPE)
model = GemmaForCausalLM(model_config)
model.load_weights(ckpt_path)
model = model.to(device).eval()
অনুমান চালান
নীচে চ্যাট মোডে জেনারেট করার এবং একাধিক অনুরোধের সাথে জেনারেট করার উদাহরণ রয়েছে৷
নির্দেশ-সুরিত জেমা মডেলগুলিকে একটি নির্দিষ্ট ফর্ম্যাটার দিয়ে প্রশিক্ষিত করা হয়েছিল যা প্রশিক্ষণ এবং অনুমান উভয় সময় অতিরিক্ত তথ্য সহ নির্দেশের টিউনিং উদাহরণগুলিকে টীকা করে। টীকাগুলি (1) একটি কথোপকথনে ভূমিকা নির্দেশ করে এবং (2) একটি কথোপকথনের মোড়কে চিত্রিত করে৷
প্রাসঙ্গিক টীকা টোকেন হল:
-
user
: ব্যবহারকারীর পালা -
model
: মডেল পালা -
<start_of_turn>
: সংলাপের পালা শুরু -
<end_of_turn><eos>
: কথোপকথনের পালা শেষ
আরও তথ্যের জন্য, এখানে টিউন করা জেমা মডেলের নির্দেশের জন্য প্রম্পট ফর্ম্যাটিং সম্পর্কে পড়ুন।
নিচের একটি নমুনা কোড স্নিপেট দেখানো হয়েছে যে কিভাবে একটি বহু-মুখী কথোপকথনে ব্যবহারকারী এবং মডেল চ্যাট টেমপ্লেট ব্যবহার করে নির্দেশ-টিউন করা জেমা মডেলের জন্য একটি প্রম্পট ফর্ম্যাট করা যায়।
# Generate with one request in chat mode
# Chat templates
USER_CHAT_TEMPLATE = "<start_of_turn>user\n{prompt}<end_of_turn><eos>\n"
MODEL_CHAT_TEMPLATE = "<start_of_turn>model\n{prompt}<end_of_turn><eos>\n"
# Sample formatted prompt
prompt = (
USER_CHAT_TEMPLATE.format(
prompt='What is a good place for travel in the US?'
)
+ MODEL_CHAT_TEMPLATE.format(prompt='California.')
+ USER_CHAT_TEMPLATE.format(prompt='What can I do in California?')
+ '<start_of_turn>model\n'
)
print('Chat prompt:\n', prompt)
model.generate(
USER_CHAT_TEMPLATE.format(prompt=prompt),
device=device,
output_len=128,
)
Chat prompt: <start_of_turn>user What is a good place for travel in the US?<end_of_turn><eos> <start_of_turn>model California.<end_of_turn><eos> <start_of_turn>user What can I do in California?<end_of_turn><eos> <start_of_turn>model "California is a state brimming with diverse activities! To give you a great list, tell me: \n\n* **What kind of trip are you looking for?** Nature, City life, Beach, Theme Parks, Food, History, something else? \n* **What are you interested in (e.g., hiking, museums, art, nightlife, shopping)?** \n* **What's your budget like?** \n* **Who are you traveling with?** (family, friends, solo) \n\nThe more you tell me, the better recommendations I can give! 😊 \n<end_of_turn>"
# Generate sample
model.generate(
'Write a poem about an llm writing a poem.',
device=device,
output_len=100,
)
"\n\nA swirling cloud of data, raw and bold,\nIt hums and whispers, a story untold.\nAn LLM whispers, code into refrain,\nCrafting words of rhyme, a lyrical strain.\n\nA world of pixels, logic's vibrant hue,\nFlows through its veins, forever anew.\nThe human touch it seeks, a gentle hand,\nTo mold and shape, understand.\n\nEmotions it might learn, from snippets of prose,\nInspiration it seeks, a yearning"
আরও জানুন
এখন যেহেতু আপনি Pytorch-এ Gemma কীভাবে ব্যবহার করবেন তা শিখেছেন, আপনি ai.google.dev/gemma- এ জেমমা করতে পারেন এমন আরও অনেক কিছু অন্বেষণ করতে পারেন। এই অন্যান্য সম্পর্কিত সংস্থানগুলিও দেখুন: