| | গুগল কোলাবে চালান | | | গিটহাবে উৎস দেখুন |
জেমা ওপেন মডেলের সাহায্যে টেক্সট তৈরি করা, সারসংক্ষেপ করা এবং বিষয়বস্তু বিশ্লেষণ করার মতো কাজগুলো করা যায়। এই টিউটোরিয়ালে দেখানো হয়েছে কীভাবে টেক্সট এবং ইমেজ উভয় ইনপুট ব্যবহার করে টেক্সট কন্টেন্ট তৈরি করার জন্য হাগিং ফেস ট্রান্সফর্মার্স-এর মাধ্যমে জেমা চালানো শুরু করতে হয়। ট্রান্সফর্মার্স পাইথন লাইব্রেরিটি জেমা সহ প্রি-ট্রেইনড জেনারেটিভ এআই মডেলগুলো অ্যাক্সেস করার জন্য একটি এপিআই প্রদান করে। আরও তথ্যের জন্য, ট্রান্সফর্মার্স ডকুমেন্টেশন দেখুন।
পাইথন প্যাকেজ ইনস্টল করুন
জেমা মডেল চালানো এবং অনুরোধ পাঠানোর জন্য প্রয়োজনীয় হাগিং ফেস লাইব্রেরিগুলো ইনস্টল করুন।
# Install Pytorch
%pip install torch
# Install a transformers
%pip install transformers
টেক্সট থেকে টেক্সট তৈরি করুন
টেক্সট প্রতিক্রিয়া পাওয়ার জন্য একটি জেমা মডেলকে টেক্সট দিয়ে প্রম্পট করা হলো জেমা ব্যবহারের সবচেয়ে সহজ উপায় এবং এটি প্রায় সব জেমা ভ্যারিয়েন্টের সাথেই কাজ করে। এই বিভাগে দেখানো হয়েছে কীভাবে টেক্সট-টু-টেক্সট জেনারেশনের জন্য হাগিং ফেস ট্রান্সফর্মার্স লাইব্রেরি ব্যবহার করে একটি জেমা মডেল লোড এবং কনফিগার করতে হয়।
লোড মডেল
জেমা (Gemma) ব্যবহার করে একটি মডেল এক্সিকিউশন pipeline ক্লাসের ইনস্ট্যান্স তৈরি করতে torch ) এবং transformers লাইব্রেরিগুলো ব্যবহার করুন। আউটপুট তৈরি করতে বা নির্দেশনা অনুসরণ করার জন্য যখন কোনো মডেল ব্যবহার করবেন, তখন একটি ইন্সট্রাকশন টিউনড (IT) মডেল নির্বাচন করুন, যেটির মডেল আইডি স্ট্রিং-এ সাধারণত it উল্লেখ থাকে। pipeline অবজেক্ট ব্যবহার করে, আপনি যে জেমা ভ্যারিয়েন্টটি ব্যবহার করতে চান এবং যে ধরনের টাস্ক সম্পাদন করতে চান, তা নির্দিষ্ট করে দেন; বিশেষত মাল্টিমোডাল জেনারেশনের জন্য "any-to-any" উল্লেখ করতে হয়, যেমনটি নিম্নলিখিত কোড উদাহরণে দেখানো হয়েছে:
from transformers import pipeline
MODEL_ID = "google/gemma-4-E2B-it"
pipe = pipeline(
task="any-to-any",
model=MODEL_ID,
device_map="auto",
dtype="auto"
)
config.json: 0.00B [00:00, ?B/s] model.safetensors: 0%| | 0.00/10.2G [00:00<?, ?B/s] Loading weights: 0%| | 0/2011 [00:00<?, ?it/s] generation_config.json: 0%| | 0.00/208 [00:00<?, ?B/s] processor_config.json: 0.00B [00:00, ?B/s] chat_template.jinja: 0.00B [00:00, ?B/s] tokenizer_config.json: 0.00B [00:00, ?B/s] tokenizer.json: 0%| | 0.00/32.2M [00:00<?, ?B/s]
জেমা জেনারেশনের জন্য শুধুমাত্র কয়েকটি task সেটিংস সমর্থন করে। উপলব্ধ task সেটিংস সম্পর্কে আরও তথ্যের জন্য, হাগিং ফেস পাইপলাইনস-এর task() ডকুমেন্টেশন দেখুন। Pipeline ক্লাস ব্যবহার সম্পর্কে আরও তথ্যের জন্য, হাগিং ফেস পাইপলাইনস-এর ডকুমেন্টেশন দেখুন।
টেক্সট জেনারেশন চালান
একবার আপনি একটি pipeline অবজেক্টে জেমা মডেলটি লোড এবং কনফিগার করে নিলে, আপনি মডেলটিতে প্রম্পট পাঠাতে পারবেন। নিম্নলিখিত উদাহরণ কোডটি text প্যারামিটার ব্যবহার করে একটি সাধারণ অনুরোধ প্রদর্শন করে:
pipe(text="<|turn>user\nroses are red<turn|>\n<|turn>model\n")
Both `max_new_tokens` (=256) and `max_length`(=20) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)
[{'input_text': '<|turn>user\nroses are red<turn|>\n<|turn>model\n',
'generated_text': '<|turn>user\nroses are red<turn|>\n<|turn>model\nThat\'s a classic phrase, often used to highlight a contrast or a truth.\n\n**"Roses are red"** is a very popular, simple, and sweet arrangement.\n\nWhat would you like to do with this phrase? Are you looking for:\n\n1. **More rhymes or phrases?**\n2. **A continuation of a thought?**\n3. **Just appreciating the simplicity?**'}]
একটি প্রম্পট টেমপ্লেট ব্যবহার করুন
আরও জটিল প্রম্পটিং সহ কন্টেন্ট তৈরি করার সময়, আপনার অনুরোধের কাঠামো তৈরি করতে একটি প্রম্পট টেমপ্লেট ব্যবহার করুন। একটি প্রম্পট টেমপ্লেট আপনাকে user বা model মতো নির্দিষ্ট ভূমিকা থেকে ইনপুট নির্দিষ্ট করার সুযোগ দেয় এবং জেমা মডেলের সাথে একাধিক ধাপের চ্যাট ইন্টারঅ্যাকশন পরিচালনার জন্য এটি একটি আবশ্যক ফরম্যাট। নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে জেমার জন্য একটি প্রম্পট টেমপ্লেট তৈরি করতে হয়:
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)
messages = [
{
"role": "system",
"content": [{"type": "text", "text": "You are a helpful assistant."}]
},
{
"role": "user",
"content": [{"type": "text", "text": "Roses are red..."}]
},
]
pipe(messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'system',
'content': [{'type': 'text', 'text': 'You are a helpful assistant.'}]},
{'role': 'user',
'content': [{'type': 'text', 'text': 'Roses are red...'}]}],
'generated_text': 'Roses are red,\nViolets are blue,\nHow lovely to see\nA beautiful view.'}]
ছবির ডেটা থেকে টেক্সট তৈরি করুন
জেমা ৩ থেকে শুরু করে, ৪বি এবং তার চেয়ে বড় মডেল সাইজগুলোর জন্য, আপনি আপনার প্রম্পটের অংশ হিসেবে ইমেজ ডেটা ব্যবহার করতে পারবেন। এই বিভাগে দেখানো হয়েছে কীভাবে ইমেজ ডেটা এবং টেক্সট ইনপুট ব্যবহার করে টেক্সট আউটপুট তৈরি করার জন্য একটি জেমা মডেল লোড ও কনফিগার করতে ট্রান্সফর্মার্স লাইব্রেরি ব্যবহার করতে হয়।
একটি প্রম্পট টেমপ্লেট ব্যবহার করুন
আরও জটিল প্রম্পটিং সহ কন্টেন্ট তৈরি করার সময়, আপনার অনুরোধের কাঠামো তৈরি করতে একটি প্রম্পট টেমপ্লেট ব্যবহার করুন। একটি প্রম্পট টেমপ্লেট আপনাকে user বা model মতো নির্দিষ্ট ভূমিকা থেকে ইনপুট নির্দিষ্ট করার সুযোগ দেয় এবং জেমা মডেলের সাথে একাধিক ধাপের চ্যাট ইন্টারঅ্যাকশন পরিচালনার জন্য এটি একটি আবশ্যক ফরম্যাট। নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে জেমার জন্য একটি প্রম্পট টেমপ্লেট তৈরি করতে হয়:
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg"},
{"type": "text", "text": "What is shown in this image?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "This image shows"},
],
},
]
pipe(text=messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'user',
'content': [{'type': 'image',
'url': 'https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg'},
{'type': 'text', 'text': 'What is shown in this image?'}]},
{'role': 'assistant',
'content': [{'type': 'text', 'text': 'This image shows'}]}],
'generated_text': " a platter of Indian food, likely a meal or an assortment of dishes.\n\nHere's a breakdown of what is visible:\n\n* **Flatbread:** There is a large, golden-brown flatbread (possibly naan or roti) dominating the center of the platter.\n* **Dips/Sides:** There are several small bowls containing various accompaniments:\n * A bowl of **yellow/mustard-colored dip** (perhaps a chutney or sauce).\n * A bowl of **white creamy dip** (like raita or yogurt sauce).\n * A portion of **white rice**.\n * Several bowls of **curries or sauces** in different colors:\n * An **orange/brown curry**.\n * A **deep yellow/orange sauce**.\n * A **green sauce** (likely a chutney).\n* **Garnish/Side Item:** In the upper right corner, there appears to be some darker, textured items, possibly fried pieces or spices.\n* **Platter:** The food is served on a metal platter.\n\nOverall, it looks like a traditional Indian meal setup featuring bread, rice, and various flavorful sauces/curries."}]
content লিস্টে অতিরিক্ত "type": "image", এন্ট্রি যোগ করে আপনি আপনার প্রম্পটে একাধিক ছবি অন্তর্ভুক্ত করতে পারেন।
অডিও ডেটা থেকে টেক্সট তৈরি করুন
Gemma 4 এবং Gemma 3n-এর সাহায্যে, আপনি আপনার প্রম্পটের অংশ হিসেবে অডিও ডেটা ব্যবহার করতে পারেন। এই বিভাগে দেখানো হয়েছে কীভাবে Transformers লাইব্রেরি ব্যবহার করে একটি Gemma মডেল লোড এবং কনফিগার করতে হয়, যাতে এটি অডিও ডেটা এবং টেক্সট ইনপুট ব্যবহার করে টেক্সট আউটপুট তৈরি করতে পারে।
একটি প্রম্পট টেমপ্লেট ব্যবহার করুন
অডিও সহ কন্টেন্ট তৈরি করার সময়, আপনার অনুরোধের কাঠামো তৈরি করতে একটি প্রম্পট টেমপ্লেট ব্যবহার করুন। একটি প্রম্পট টেমপ্লেট আপনাকে user বা model মতো নির্দিষ্ট ভূমিকা থেকে ইনপুট নির্দিষ্ট করার সুযোগ দেয় এবং জেমা মডেলের সাথে একাধিক ধাপের চ্যাট ইন্টারঅ্যাকশন পরিচালনার জন্য এটি একটি আবশ্যক ফরম্যাট। নিম্নলিখিত উদাহরণ কোডটি দেখায় কিভাবে অডিও ডেটা ইনপুট সহ জেমার জন্য একটি প্রম্পট টেমপ্লেট তৈরি করতে হয়:
from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "Transcribe the following speech segment in its original language. Follow these specific instructions for formatting the answer:\n* Only output the transcription, with no newlines.\n* When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three."},
{"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
]
}
]
pipe(text=messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'user',
'content': [{'type': 'text',
'text': 'Transcribe the following speech segment in its original language. Follow these specific instructions for formatting the answer:\n* Only output the transcription, with no newlines.\n* When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three.'},
{'type': 'audio',
'audio': 'https://ai.google.dev/gemma/docs/audio/roses-are.wav'}]}],
'generated_text': 'Roses are red, violets are blue.'}]
content লিস্টে অতিরিক্ত "type": "audio", এন্ট্রি যোগ করে আপনি আপনার প্রম্পটে একাধিক অডিও ফাইল অন্তর্ভুক্ত করতে পারেন।
পরবর্তী পদক্ষেপ
জেমা মডেলের সাহায্যে আরও নির্মাণ করুন ও অন্বেষণ করুন:
- হাগিং ফেস ট্রান্সফর্মার ব্যবহার করে টেক্সট টাস্কের জন্য জেমাকে সূক্ষ্মভাবে টিউন করুন
- হাগিং ফেস ট্রান্সফর্মার ব্যবহার করে দৃষ্টি সংক্রান্ত কাজের জন্য জেমাকে সূক্ষ্মভাবে সমন্বয় করুন
- জেমা মডেলগুলিতে ডিস্ট্রিবিউটেড ফাইন-টিউনিং এবং ইনফারেন্স সম্পাদন করুন
- Vertex AI-এর সাথে Gemma ওপেন মডেল ব্যবহার করুন
- Keras ব্যবহার করে Gemma-কে সূক্ষ্মভাবে সমন্বয় করুন এবং Vertex AI-তে স্থাপন করুন।
গুগল কোলাবে চালান
গিটহাবে উৎস দেখুন