LLM ইনফারেন্স API আপনাকে বৃহৎ ভাষা মডেলগুলি (LLMs) সম্পূর্ণরূপে অন-ডিভাইস চালাতে দেয়, যা আপনি পাঠ্য তৈরি করা, প্রাকৃতিক ভাষা আকারে তথ্য পুনরুদ্ধার করা এবং নথির সংক্ষিপ্তসারের মতো বিস্তৃত কাজ সম্পাদন করতে ব্যবহার করতে পারেন। টাস্কটি একাধিক টেক্সট-টু-টেক্সট বৃহৎ ভাষার মডেলের জন্য অন্তর্নির্মিত সমর্থন প্রদান করে, যাতে আপনি আপনার অ্যাপ এবং পণ্যগুলিতে সর্বশেষ অন-ডিভাইস জেনারেটিভ এআই মডেলগুলি প্রয়োগ করতে পারেন।
কাজটি বিভিন্ন ধরনের LLM-এর জন্য অন্তর্নির্মিত সমর্থন প্রদান করে। LiteRT কমিউনিটি পৃষ্ঠায় হোস্ট করা মডেলগুলি একটি MediaPipe-বন্ধুত্বপূর্ণ ফর্ম্যাটে উপলব্ধ এবং কোনো অ্যাডিশনাল রূপান্তর বা সংকলন পদক্ষেপের প্রয়োজন হয় না।
আপনি AI এজ টর্চ ব্যবহার করতে পারেন PyTorch মডেলগুলিকে মাল্টি-সিগনেচার LiteRT ( tflite
) মডেলগুলিতে রপ্তানি করতে, যেগুলি টাস্ক বান্ডেলগুলি তৈরি করতে টোকেনাইজার প্যারামিটারগুলির সাথে একত্রিত হয়৷ এআই এজ টর্চের সাথে রূপান্তরিত মডেলগুলি LLM ইনফারেন্স API-এর সাথে সামঞ্জস্যপূর্ণ এবং CPU ব্যাকএন্ডে চলতে পারে, এগুলিকে Android এবং iOS অ্যাপ্লিকেশনের জন্য উপযুক্ত করে তোলে।
শুরু করুন
আপনার লক্ষ্য প্ল্যাটফর্মের জন্য এই বাস্তবায়ন নির্দেশিকাগুলির একটি অনুসরণ করে এই কাজটি ব্যবহার করা শুরু করুন। এই প্ল্যাটফর্ম-নির্দিষ্ট গাইডগুলি আপনাকে এই টাস্কের একটি মৌলিক বাস্তবায়নের মাধ্যমে নিয়ে যায়, কোড উদাহরণ সহ যেগুলি উপলব্ধ মডেল এবং প্রস্তাবিত কনফিগারেশন বিকল্পগুলি ব্যবহার করে:
ওয়েব :
অ্যান্ড্রয়েড :
iOS
টাস্কের বিবরণ
এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।
বৈশিষ্ট্য
LLM ইনফারেন্স API-এ নিম্নলিখিত মূল বৈশিষ্ট্যগুলি রয়েছে:
- পাঠ্য থেকে পাঠ্য প্রজন্ম - একটি ইনপুট পাঠ্য প্রম্পটের উপর ভিত্তি করে পাঠ্য তৈরি করুন।
- LLM নির্বাচন - আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে অ্যাপটিকে সাজাতে একাধিক মডেল প্রয়োগ করুন। আপনি আবার প্রশিক্ষণ দিতে এবং মডেলে কাস্টমাইজড ওজন প্রয়োগ করতে পারেন।
- LoRA সমর্থন - আপনার সমস্ত ডেটাসেটে প্রশিক্ষণের মাধ্যমে, অথবা ওপেন-সোর্স সম্প্রদায় থেকে প্রস্তুত প্রি-বিল্ট LoRA মডেলগুলি নিয়ে (AI Edge Torch Generative API-এর সাথে রূপান্তরিত মডেলগুলির সাথে সামঞ্জস্যপূর্ণ নয়) LORA মডেলের সাথে LLM ক্ষমতা প্রসারিত এবং কাস্টমাইজ করুন।
টাস্ক ইনপুট | টাস্ক আউটপুট |
---|---|
LLM ইনফারেন্স API নিম্নলিখিত ইনপুটগুলি গ্রহণ করে:
| LLM ইনফারেন্স API নিম্নলিখিত ফলাফলগুলি আউটপুট করে:
|
কনফিগারেশন অপশন
এই কাজের নিম্নলিখিত কনফিগারেশন বিকল্প আছে:
বিকল্পের নাম | বর্ণনা | মান পরিসীমা | ডিফল্ট মান |
---|---|---|---|
modelPath | প্রজেক্ট ডিরেক্টরির মধ্যে মডেলটি যেখানে সংরক্ষণ করা হয় তার পথ। | PATH | N/A |
maxTokens | মডেলটি পরিচালনা করে সর্বাধিক সংখ্যক টোকেন (ইনপুট টোকেন + আউটপুট টোকেন)। | পূর্ণসংখ্যা | 512 |
topK | প্রজন্মের প্রতিটি ধাপে মডেলটি বিবেচনা করে টোকেনের সংখ্যা। পূর্বাভাসগুলিকে শীর্ষ k সর্বাধিক সম্ভাব্য টোকেনে সীমাবদ্ধ করে৷ | পূর্ণসংখ্যা | 40 |
temperature | প্রজন্মের সময় যে পরিমাণ এলোমেলোভাবে প্রবর্তিত হয়। একটি উচ্চ তাপমাত্রার ফলে উত্পন্ন পাঠে আরও সৃজনশীলতা আসে, যখন নিম্ন তাপমাত্রা আরও অনুমানযোগ্য প্রজন্ম তৈরি করে। | ভাসা | 0.8 |
randomSeed | টেক্সট তৈরির সময় ব্যবহৃত এলোমেলো বীজ। | পূর্ণসংখ্যা | 0 |
loraPath | ডিভাইসে স্থানীয়ভাবে LoRA মডেলের পরম পথ। দ্রষ্টব্য: এটি শুধুমাত্র GPU মডেলের সাথে সামঞ্জস্যপূর্ণ। | PATH | N/A |
resultListener | ফলাফল শ্রোতাকে অ্যাসিঙ্ক্রোনাসভাবে ফলাফল পেতে সেট করে। অ্যাসিঙ্ক জেনারেশন পদ্ধতি ব্যবহার করার সময় শুধুমাত্র প্রযোজ্য। | N/A | N/A |
errorListener | একটি ঐচ্ছিক ত্রুটি শ্রোতা সেট করে। | N/A | N/A |
মডেল
LLM ইনফারেন্স API অনেক টেক্সট-টু-টেক্সট বৃহৎ ভাষার মডেল সমর্থন করে, যার মধ্যে কয়েকটি মডেলের জন্য অন্তর্নির্মিত সমর্থন রয়েছে যা ব্রাউজার এবং মোবাইল ডিভাইসে চালানোর জন্য অপ্টিমাইজ করা হয়েছে। এই লাইটওয়েট মডেলগুলি সম্পূর্ণরূপে ডিভাইসে অনুমান চালানোর জন্য ব্যবহার করা যেতে পারে।
এলএলএম ইনফারেন্স এপিআই শুরু করার আগে, একটি মডেল ডাউনলোড করুন এবং ফাইলটি আপনার প্রকল্প ডিরেক্টরির মধ্যে সংরক্ষণ করুন। আপনি LiteRT Community HuggingFace সংগ্রহস্থল থেকে একটি পূর্ব-রূপান্তরিত মডেল ব্যবহার করতে পারেন, অথবা AI Edge Torch Generative Converter- এর সাথে একটি MediaPipe-সামঞ্জস্যপূর্ণ ফর্ম্যাটে রূপান্তর করতে পারেন৷
আপনার যদি LLM ইনফারেন্স API-এর সাথে ব্যবহার করার জন্য ইতিমধ্যে একটি LLM না থাকে তবে নিম্নলিখিত মডেলগুলির মধ্যে একটি দিয়ে শুরু করুন৷
Gemma-3 1B
Gemma-3 1B হল জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি লাইটওয়েট, অত্যাধুনিক ওপেন মডেলগুলির জেমা পরিবারের সর্বশেষ মডেল। মডেলটিতে 1B প্যারামিটার এবং খোলা ওজন রয়েছে। 1B ভেরিয়েন্ট হল জেমা পরিবারের সবচেয়ে হালকা মডেল, এটি ডিভাইসে ব্যবহারের অনেক ক্ষেত্রে আদর্শ করে তুলেছে।
HuggingFace থেকে Gemma-3 1B মডেলটি .task
ফরম্যাটে পাওয়া যায় এবং অ্যান্ড্রয়েড এবং ওয়েব অ্যাপ্লিকেশনের জন্য LLM ইনফারেন্স API-এর সাথে ব্যবহারের জন্য প্রস্তুত।
LLM ইনফারেন্স API এর সাথে Gemma-3 1B চালানোর সময়, সেই অনুযায়ী নিম্নলিখিত বিকল্পগুলি কনফিগার করুন:
-
preferredBackend
: একটিCPU
বাGPU
ব্যাকএন্ডের মধ্যে বেছে নিতে এই বিকল্পটি ব্যবহার করুন। এই বিকল্পটি শুধুমাত্র Android এর জন্য উপলব্ধ। -
supportedLoraRanks
: LLM ইনফারেন্স API কে Gemma-3 1B মডেলের সাথে নিম্ন-র্যাঙ্ক অ্যাডাপ্টেশন (LoRA) সমর্থন করার জন্য কনফিগার করা যাবে না।supportedLoraRanks
বাloraRanks
বিকল্পগুলি ব্যবহার করবেন না। -
maxTokens
:maxTokens
এর মান অবশ্যই মডেলের মধ্যে তৈরি প্রসঙ্গ আকারের সাথে মেলে। এটিকে কী-মান (KV) ক্যাশে বা প্রসঙ্গ দৈর্ঘ্য হিসাবেও উল্লেখ করা যেতে পারে। -
numResponses
: সর্বদা 1 হতে হবে। এই বিকল্পটি শুধুমাত্র ওয়েবের জন্য উপলব্ধ।
ওয়েব অ্যাপ্লিকেশানগুলিতে Gemma-3 1B চালানোর সময়, আরম্ভ বর্তমান থ্রেডে একটি দীর্ঘ ব্লক সৃষ্টি করতে পারে। যদি সম্ভব হয়, সর্বদা একটি কর্মী থ্রেড থেকে মডেল চালান।
Gemma-2 2B
Gemma-2 2B হল Gemma-2-এর একটি 2B রূপ, এবং সমস্ত প্ল্যাটফর্মে কাজ করে।
মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। Gemma-2 2B তার ক্লাসের মডেলদের জন্য অত্যাধুনিক যুক্তি দক্ষতার জন্য পরিচিত।
PyTorch মডেল রূপান্তর
পাইটর্চ জেনারেটিভ মডেলগুলিকে এআই এজ টর্চ জেনারেটিভ এপিআই- এর সাথে মিডিয়াপাইপ-সামঞ্জস্যপূর্ণ ফর্ম্যাটে রূপান্তর করা যেতে পারে। আপনি API ব্যবহার করতে পারেন PyTorch মডেলগুলিকে মাল্টি-সিগনেচার LiteRT (TensorFlow Lite) মডেলে রূপান্তর করতে। ম্যাপিং এবং মডেল রপ্তানি সম্পর্কে আরও বিশদ বিবরণের জন্য, এআই এজ টর্চ গিটহাব পৃষ্ঠাটি দেখুন।
এআই এজ টর্চ জেনারেটিভ এপিআই এর সাথে একটি পাইটর্চ মডেলকে রূপান্তর করার জন্য নিম্নলিখিত পদক্ষেপগুলি জড়িত:
- PyTorch মডেল চেকপয়েন্ট ডাউনলোড করুন.
- একটি MediaPipe-সামঞ্জস্যপূর্ণ ফাইল ফরম্যাটে (
.tflite
) মডেলটিকে লেখক, রূপান্তর এবং পরিমাপ করতে AI এজ টর্চ জেনারেটিভ API ব্যবহার করুন৷ - tflite ফাইল এবং মডেল টোকেনাইজার থেকে একটি টাস্ক বান্ডেল (
.task
) তৈরি করুন।
টর্চ জেনারেটিভ কনভার্টার শুধুমাত্র CPU-র জন্য রূপান্তরিত হয় এবং কমপক্ষে 64 GBs RAM সহ একটি Linux মেশিন প্রয়োজন।
একটি টাস্ক বান্ডেল তৈরি করতে, একটি টাস্ক বান্ডেল তৈরি করতে বান্ডলিং স্ক্রিপ্ট ব্যবহার করুন। এন্ড-টু-এন্ড ইনফারেন্স চালানোর জন্য প্রয়োজনীয় অতিরিক্ত মেটাডেটা (যেমন, টোকেনাইজার প্যারামিটার) দিয়ে বান্ডলিং প্রক্রিয়া ম্যাপ করা মডেলটিকে প্যাক করে।
মডেল বান্ডলিং প্রক্রিয়ার জন্য MediaPipe PyPI প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্ট 0.10.14
এর পরে সমস্ত MediaPipe প্যাকেজে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল এবং আমদানি করুন:
$ python3 -m pip install mediapipe
মডেল বান্ডিল করতে genai.bundler
লাইব্রেরি ব্যবহার করুন:
import mediapipe as mp
from mediapipe.tasks.python.genai import bundler
config = bundler.BundleConfig(
tflite_model=TFLITE_MODEL,
tokenizer_model=TOKENIZER_MODEL,
start_token=START_TOKEN,
stop_tokens=STOP_TOKENS,
output_filename=OUTPUT_FILENAME,
enable_bytes_to_unicode_mapping=ENABLE_BYTES_TO_UNICODE_MAPPING,
)
bundler.create_bundle(config)
প্যারামিটার | বর্ণনা | গৃহীত মান |
---|---|---|
tflite_model | AI এজ রপ্তানিকৃত TFLite মডেলের পথ। | PATH |
tokenizer_model | SentencePiece tokenizer মডেলের পথ। | PATH |
start_token | মডেল নির্দিষ্ট স্টার্ট টোকেন। প্রদত্ত টোকেনাইজার মডেলে স্টার্ট টোকেন অবশ্যই উপস্থিত থাকতে হবে। | STRING |
stop_tokens | মডেল নির্দিষ্ট স্টপ টোকেন. প্রদত্ত টোকেনাইজার মডেলে স্টপ টোকেন অবশ্যই উপস্থিত থাকতে হবে। | তালিকা[STRING] |
output_filename | আউটপুট টাস্ক বান্ডেল ফাইলের নাম। | PATH |
LoRA কাস্টমাইজেশন
মিডিয়াপাইপ এলএলএম ইনফারেন্স এপিআই বৃহৎ ভাষার মডেলের জন্য নিম্ন-র্যাঙ্ক অ্যাডাপ্টেশন (LoRA) সমর্থন করার জন্য কনফিগার করা যেতে পারে। সূক্ষ্ম-টিউনড LoRA মডেলগুলি ব্যবহার করে, বিকাশকারীরা একটি ব্যয়-কার্যকর প্রশিক্ষণ প্রক্রিয়ার মাধ্যমে LLM-এর আচরণ কাস্টমাইজ করতে পারে।LLM ইনফারেন্স API-এর LoRA সমর্থন সমস্ত Gemma ভেরিয়েন্ট এবং GPU ব্যাকএন্ডের জন্য Phi-2 মডেলের জন্য কাজ করে, LoRA ওজন শুধুমাত্র মনোযোগ স্তরগুলিতে প্রযোজ্য। এই প্রাথমিক বাস্তবায়ন ভবিষ্যতের উন্নয়নের জন্য একটি পরীক্ষামূলক API হিসাবে কাজ করে যাতে আগামী আপডেটগুলিতে আরও মডেল এবং বিভিন্ন ধরণের স্তর সমর্থন করার পরিকল্পনা রয়েছে।
LoRA মডেল প্রস্তুত করুন
আপনার নিজস্ব ডেটাসেটে সমর্থিত মডেলের ধরন, জেমা বা ফি-২ সহ একটি সূক্ষ্ম টিউন করা LoRA মডেল প্রশিক্ষণের জন্য HuggingFace-এর নির্দেশাবলী অনুসরণ করুন। Gemma-2 2B , Gemma 2B এবং Phi-2 মডেল দুটিই সেফটেনসর ফরম্যাটে HuggingFace-এ উপলব্ধ। যেহেতু LLM ইনফারেন্স API শুধুমাত্র মনোযোগের স্তরগুলিতে LoRA সমর্থন করে, তাই LoraConfig
তৈরি করার সময় নিম্নলিখিত হিসাবে শুধুমাত্র মনোযোগ স্তরগুলি নির্দিষ্ট করুন:
# For Gemma
from peft import LoraConfig
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
)
# For Phi-2
config = LoraConfig(
r=LORA_RANK,
target_modules=["q_proj", "v_proj", "k_proj", "dense"],
)
পরীক্ষার জন্য, সর্বজনীনভাবে অ্যাক্সেসযোগ্য ফাইন-টিউনড LoRA মডেল রয়েছে যা HuggingFace-এ উপলব্ধ LLM ইনফারেন্স API-এর সাথে মানানসই। উদাহরণস্বরূপ, Gemma-2B-এর জন্য monsterapi/gemma-2b-lora-maths-orca-200k এবং Phi-2-এর জন্য lole25/phi-2-sft-ultrachat-lora ।
প্রস্তুতকৃত ডেটাসেটের প্রশিক্ষণ এবং মডেলটি সংরক্ষণ করার পরে, আপনি একটি adapter_model.safetensors
ফাইল পাবেন যাতে সূক্ষ্ম-টিউন করা LoRA মডেলের ওজন রয়েছে। সেফটেনসর ফাইলটি মডেল রূপান্তরে ব্যবহৃত LoRA চেকপয়েন্ট।
পরবর্তী ধাপ হিসেবে, আপনাকে মিডিয়াপাইপ পাইথন প্যাকেজ ব্যবহার করে মডেলের ওজনকে টেনসরফ্লো লাইট ফ্ল্যাটবাফারে রূপান্তর করতে হবে। ConversionConfig
এ বেস মডেলের বিকল্পগুলির পাশাপাশি অতিরিক্ত LoRA বিকল্পগুলি উল্লেখ করা উচিত। লক্ষ্য করুন যে যেহেতু API শুধুমাত্র GPU এর সাথে LoRA অনুমান সমর্থন করে, তাই ব্যাকএন্ড অবশ্যই 'gpu'
তে সেট করতে হবে।
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
# Other params related to base model
...
# Must use gpu backend for LoRA conversion
backend='gpu',
# LoRA related params
lora_ckpt=LORA_CKPT,
lora_rank=LORA_RANK,
lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
রূপান্তরকারী দুটি TFLite ফ্ল্যাটবাফার ফাইল আউটপুট করবে, একটি বেস মডেলের জন্য এবং অন্যটি LoRA মডেলের জন্য।
LoRA মডেল অনুমান
ওয়েব, অ্যান্ড্রয়েড এবং আইওএস এলএলএম ইনফারেন্স API LoRA মডেল অনুমান সমর্থন করার জন্য আপডেট করা হয়েছে।
আরম্ভ করার সময় অ্যান্ড্রয়েড স্ট্যাটিক LoRA সমর্থন করে। একটি LoRA মডেল লোড করতে, ব্যবহারকারীরা LoRA মডেল পাথের পাশাপাশি বেস LLM নির্দিষ্ট করে।// Set the configuration options for the LLM Inference task
val options = LlmInferenceOptions.builder()
.setModelPath('<path to base model>')
.setMaxTokens(1000)
.setTopK(40)
.setTemperature(0.8)
.setRandomSeed(101)
.setLoraPath('<path to LoRA model>')
.build()
// Create an instance of the LLM Inference task
llmInference = LlmInference.createFromOptions(context, options)
LoRA এর সাথে LLM অনুমান চালানোর জন্য, বেস মডেল হিসাবে একই generateResponse()
বা generateResponseAsync()
পদ্ধতি ব্যবহার করুন।