LLM ইনফারেন্স API আপনাকে বৃহৎ ভাষা মডেলগুলি (LLMs) সম্পূর্ণরূপে অন-ডিভাইস চালাতে দেয়, যা আপনি পাঠ্য তৈরি করা, প্রাকৃতিক ভাষা আকারে তথ্য পুনরুদ্ধার করা এবং নথির সংক্ষিপ্তসারের মতো বিস্তৃত কাজ সম্পাদন করতে ব্যবহার করতে পারেন। টাস্কটি একাধিক টেক্সট-টু-টেক্সট বৃহৎ ভাষার মডেলের জন্য অন্তর্নির্মিত সমর্থন প্রদান করে, যাতে আপনি আপনার অ্যাপ এবং পণ্যগুলিতে সর্বশেষ অন-ডিভাইস জেনারেটিভ এআই মডেলগুলি প্রয়োগ করতে পারেন।
কাজটি জেমার নিম্নলিখিত রূপগুলিকে সমর্থন করে: জেমা-2 2B, জেমা 2B, এবং জেমা 7B৷ Gemma হল হালকা ওজনের, অত্যাধুনিক ওপেন মডেলের একটি পরিবার যা জেমিনি মডেল তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি। এটি নিম্নলিখিত বাহ্যিক মডেলগুলিকেও সমর্থন করে: Phi-2 , Falcon-RW-1B এবং StableLM-3B ৷
স্থানীয়ভাবে সমর্থিত মডেলগুলি ছাড়াও, ব্যবহারকারীরা Google-এর AI এজ অফারিং ( PyTorch মডেলের ম্যাপিং সহ) ব্যবহার করে অন্যান্য মডেলগুলিকে ম্যাপ করতে পারে৷ এটি ব্যবহারকারীদের মাল্টি-সিগনেচার টেনসরফ্লো লাইট মডেলগুলিতে একটি ম্যাপ করা মডেল রপ্তানি করতে দেয়, যা একটি টাস্ক বান্ডেল তৈরি করতে টোকেনাইজার প্যারামিটারের সাথে একত্রিত হয়।
শুরু করুন
আপনার লক্ষ্য প্ল্যাটফর্মের জন্য এই বাস্তবায়ন নির্দেশিকাগুলির একটি অনুসরণ করে এই কাজটি ব্যবহার করা শুরু করুন। এই প্ল্যাটফর্ম-নির্দিষ্ট গাইডগুলি আপনাকে এই টাস্কের একটি মৌলিক বাস্তবায়নের মাধ্যমে নিয়ে যায়, কোড উদাহরণ সহ যেগুলি উপলব্ধ মডেল এবং প্রস্তাবিত কনফিগারেশন বিকল্পগুলি ব্যবহার করে:
ওয়েব :
অ্যান্ড্রয়েড :
iOS
টাস্কের বিবরণ
এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।
বৈশিষ্ট্য
LLM ইনফারেন্স API-এ নিম্নলিখিত মূল বৈশিষ্ট্যগুলি রয়েছে:
- পাঠ্য থেকে পাঠ্য প্রজন্ম - একটি ইনপুট পাঠ্য প্রম্পটের উপর ভিত্তি করে পাঠ্য তৈরি করুন।
- LLM নির্বাচন - আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে অ্যাপটিকে সাজাতে একাধিক মডেল প্রয়োগ করুন। আপনি আবার প্রশিক্ষণ দিতে এবং মডেলে কাস্টমাইজড ওজন প্রয়োগ করতে পারেন।
- LoRA সমর্থন - আপনার সমস্ত ডেটাসেটের প্রশিক্ষণের মাধ্যমে, অথবা ওপেন-সোর্স সম্প্রদায় (শুধুমাত্র নেটিভ মডেল) থেকে প্রস্তুত প্রি-বিল্ট LoRA মডেলগুলি নিয়ে 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-এ বিল্ট-ইন সমর্থন রয়েছে বিচ্ছিন্ন পাঠ্য থেকে পাঠ্য বড় ভাষা মডেলগুলির জন্য যা ব্রাউজার এবং মোবাইল ডিভাইসগুলিতে চালানোর জন্য অপ্টিমাইজ করা হয়েছে। এই লাইটওয়েট মডেলগুলি সম্পূর্ণরূপে ডিভাইসে অনুমান চালানোর জন্য ডাউনলোড করা যেতে পারে।
LLM ইনফারেন্স API শুরু করার আগে, সমর্থিত মডেলগুলির একটি ডাউনলোড করুন এবং আপনার প্রকল্প ডিরেক্টরির মধ্যে ফাইলটি সংরক্ষণ করুন।
Gemma-2 2B
Gemma-2 2B হল জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি লাইটওয়েট, অত্যাধুনিক ওপেন মডেলগুলির জেমা পরিবারের সর্বশেষ মডেল। মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। Gemma-2 2B তার ক্লাসের মডেলদের জন্য অত্যাধুনিক যুক্তি দক্ষতার জন্য পরিচিত।
আপনি যদি Kaggle থেকে Gemma-2 2B ডাউনলোড করেন, তাহলে আপনাকে অবশ্যই মডেলটিকে একটি MediaPipe-বান্ধব বিন্যাসে রূপান্তর করতে হবে। LLM ইনফারেন্স API-এর মডেলটিকে রূপান্তর এবং চালানোর জন্য নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:
- Kaggle থেকে
model.ckpt
PyTorch চেকপয়েন্ট ডাউনলোড করুন - মডেলটিকে টিএফ লাইট ফরম্যাটে তৈরি এবং রূপান্তর করতে AI এজ টর্চের টুলিং ব্যবহার করুন।
- TFLite ফাইল এবং Gemma tokenizer থেকে টাস্ক বান্ডেল তৈরি করুন। জেমা মডেলের জন্য, প্রস্তাবিত start_token হল
<bos>
এবং stop_tokens হল<eos>
এবং<end_of_turn>
চ্যাট অ্যাপ্লিকেশনের জন্য।
ফলস্বরূপ task
ফাইলটি LLM ইনফারেন্স API এর সাথে অনুমানের জন্য ব্যবহার করা যেতে পারে
Gemma 2B
জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবারের একটি অংশ হল জেমা 2বি৷ মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। এই মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য উপযুক্ত।
Gemma 2B মডেল চারটি ভেরিয়েন্টে আসে:
- gemma-2b-it-cpu-int4 : CPU সামঞ্জস্য সহ জেমমা 2B 4-বিট মডেল।
- gemma-2b-it-cpu-int8 : CPU সামঞ্জস্য সহ জেমমা 2B 8-বিট মডেল।
- gemma-2b-it-gpu-int4 : জিপিইউ সামঞ্জস্য সহ জেমমা 2B 4-বিট মডেল।
- gemma-2b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 2B 8-বিট মডেল।
আপনি মডেলটি টিউন করতে পারেন এবং অ্যাপে যোগ করার আগে নতুন ওজন যোগ করতে পারেন। Gemma টিউনিং এবং কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, Gemma টিউনিং দেখুন। Kaggle Models থেকে Gemma ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe-এর সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
আপনি যদি Hugging Face থেকে Gemma 2B ডাউনলোড করেন, তাহলে আপনাকে অবশ্যই মডেলটিকে একটি MediaPipe-বন্ধুত্বপূর্ণ ফর্ম্যাটে রূপান্তর করতে হবে। LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং রূপান্তর করা প্রয়োজন:
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
-
tokenizer.json
-
tokenizer_config.json
Gemma 7B
Gemma 7B হল 7B প্যারামিটার এবং খোলা ওজন সহ একটি বড় জেমা মডেল। প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য মডেলটি আরও শক্তিশালী। Gemma 7B শুধুমাত্র ওয়েবে সমর্থিত।
Gemma 7B মডেলটি একটি ভেরিয়েন্টে আসে:
- gemma-1.1-7b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 7B 8-বিট মডেল।
আপনি যদি Hugging Face থেকে Gemma 7B ডাউনলোড করেন, তাহলে আপনাকে অবশ্যই মডেলটিকে একটি MediaPipe-বন্ধুত্বপূর্ণ ফর্ম্যাটে রূপান্তর করতে হবে। LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং রূপান্তর করা প্রয়োজন:
-
model-00001-of-00004.safetensors
-
model-00002-of-00004.safetensors
-
model-00003-of-00004.safetensors
-
model-00004-of-00004.safetensors
-
tokenizer.json
-
tokenizer_config.json
ফ্যালকন 1 বি
Falcon-1B হল একটি 1 বিলিয়ন প্যারামিটার কার্যকারণ ডিকোডার-শুধুমাত্র মডেল যা RefinedWeb- এর 350B টোকেনগুলিতে প্রশিক্ষিত।
LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
pytorch_model.bin
ফ্যালকন মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করার জন্য প্রস্তুত। মিডিয়াপাইপ ফরম্যাটে রূপান্তর মডেলের ধাপগুলি অনুসরণ করুন।
StableLM 3B
StableLM-3B হল একটি 3 বিলিয়ন প্যারামিটার ডিকোডার-শুধুমাত্র ভাষার মডেল যা 1 ট্রিলিয়ন টোকেন বৈচিত্র্যময় ইংরেজি এবং 4টি যুগের জন্য কোড ডেটাসেটের উপর প্রি-প্রশিক্ষিত।
LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model.safetensors
StableLM মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি MediaPipe ফর্ম্যাটে রূপান্তরিত হওয়ার জন্য প্রস্তুত৷ মিডিয়াপাইপ ফরম্যাটে রূপান্তর মডেলের ধাপগুলি অনুসরণ করুন।
ফি-2
Phi-2 একটি 2.7 বিলিয়ন প্যারামিটার ট্রান্সফরমার মডেল। এটি বিভিন্ন এনএলপি সিন্থেটিক পাঠ্য এবং ফিল্টার করা ওয়েবসাইট ব্যবহার করে প্রশিক্ষিত হয়েছিল। প্রশ্ন-উত্তর, চ্যাট এবং কোড বিন্যাস ব্যবহার করে প্রম্পটের জন্য মডেলটি সবচেয়ে উপযুক্ত।
LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
Phi-2 মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি MediaPipe ফরম্যাটে রূপান্তর করার জন্য প্রস্তুত। মিডিয়াপাইপ ফরম্যাটে রূপান্তর মডেলের ধাপগুলি অনুসরণ করুন।
এআই এজ এক্সপোর্টেড মডেল
AI Edge হল একটি Google অফার যা আপনাকে ব্যবহারকারী-ম্যাপ করা মডেলগুলিকে বহু-স্বাক্ষর TensorFlow Lite মডেলগুলিতে রূপান্তর করতে দেয়৷ ম্যাপিং এবং মডেল রপ্তানি সম্পর্কে আরও বিশদ বিবরণের জন্য, এআই এজ টর্চ গিটহাব পৃষ্ঠাটি দেখুন।
মডেলটিকে TFLite ফরম্যাটে রপ্তানি করার পর, মডেলটি মিডিয়াপাইপ ফরম্যাটে রূপান্তরিত হওয়ার জন্য প্রস্তুত। আরও তথ্যের জন্য, মডেলটিকে মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করুন দেখুন।
মিডিয়াপাইপ ফর্ম্যাটে মডেল রূপান্তর করুন
নেটিভ মডেল রূপান্তর
আপনি যদি একটি বাহ্যিক LLM (Phi-2, Falcon, or StableLM) অথবা Gemma-এর একটি নন-কাগল সংস্করণ ব্যবহার করেন, তাহলে MediaPipe-এর সাথে সামঞ্জস্যপূর্ণ হতে মডেলটিকে ফর্ম্যাট করতে আমাদের রূপান্তর স্ক্রিপ্টগুলি ব্যবহার করুন৷
মডেল রূপান্তর প্রক্রিয়ার জন্য MediaPipe PyPI প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্ট 0.10.11
এর পরে সমস্ত MediaPipe প্যাকেজে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল এবং আমদানি করুন:
$ python3 -m pip install mediapipe
মডেল রূপান্তর করতে genai.converter
লাইব্রেরি ব্যবহার করুন:
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
input_ckpt=INPUT_CKPT,
ckpt_format=CKPT_FORMAT,
model_type=MODEL_TYPE,
backend=BACKEND,
output_dir=OUTPUT_DIR,
combine_file_only=False,
vocab_model_file=VOCAB_MODEL_FILE,
output_tflite_file=OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
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 মডেলের জন্য।
প্যারামিটার | বর্ণনা | গৃহীত মান |
---|---|---|
input_ckpt | model.safetensors বা pytorch.bin ফাইলের পথ। মনে রাখবেন যে কখনও কখনও মডেল সেফটেনসর ফরম্যাট একাধিক ফাইলে শার্ড করা হয়, যেমন model-00001-of-00003.safetensors , model-00001-of-00003.safetensors । আপনি একটি ফাইল প্যাটার্ন নির্দিষ্ট করতে পারেন, যেমন model*.safetensors । | PATH |
ckpt_format | মডেল ফাইল বিন্যাস. | {"সেফটেনসর", "পাইটোর্চ"} |
model_type | এলএলএম রূপান্তরিত হচ্ছে। | {"PHI_2", "FALCON_RW_1B", "STABLELM_4E1T_3B", "GEMMA_2B"} |
backend | প্রসেসর (প্রতিনিধি) মডেলটি চালানোর জন্য ব্যবহৃত হয়। | {"cpu", "gpu"} |
output_dir | আউটপুট ডিরেক্টরির পথ যা প্রতি-স্তর ওজন ফাইলগুলিকে হোস্ট করে। | PATH |
output_tflite_file | আউটপুট ফাইলের পথ। উদাহরণস্বরূপ, "model_cpu.bin" বা "model_gpu.bin"। এই ফাইলটি শুধুমাত্র LLM ইনফারেন্স API এর সাথে সামঞ্জস্যপূর্ণ, এবং একটি সাধারণ `tflite` ফাইল হিসাবে ব্যবহার করা যাবে না। | PATH |
vocab_model_file | ডিরেক্টরির পথ যা tokenizer.json এবং tokenizer_config.json ফাইল সংরক্ষণ করে। জেমার জন্য, একক tokenizer.model ফাইলে নির্দেশ করুন। | PATH |
lora_ckpt | সেফটেনসর ফাইলের LoRA ckpt-এর পথ যা LoRA অ্যাডাপ্টারের ওজন সঞ্চয় করে। | PATH |
lora_rank | একটি পূর্ণসংখ্যা যা LoRA ckpt-এর পদমর্যাদার প্রতিনিধিত্ব করে। লোরা ওজন রূপান্তর করার জন্য প্রয়োজন. যদি প্রদান না করা হয়, তাহলে রূপান্তরকারী অনুমান করে যে কোন LoRA ওজন নেই। দ্রষ্টব্য: শুধুমাত্র GPU ব্যাকএন্ড LoRA সমর্থন করে। | পূর্ণসংখ্যা |
lora_output_tflite_file | LoRA ওজনের জন্য আউটপুট tflite ফাইলের নাম। | PATH |
এআই এজ মডেল রূপান্তর
আপনি যদি AI Edge এর মাধ্যমে একটি TFLite মডেলে ম্যাপ করা LLM ব্যবহার করেন, তাহলে একটি টাস্ক বান্ডেল তৈরি করতে আমাদের বান্ডলিং স্ক্রিপ্ট ব্যবহার করুন। এন্ড-টু-এন্ড ইনফারেন্স চালানোর জন্য প্রয়োজনীয় অতিরিক্ত মেটাডেটা (যেমন, টোকেনাইজার প্যারামিটার) দিয়ে বান্ডলিং প্রক্রিয়া ম্যাপ করা মডেলটিকে প্যাক করে।
মডেল বান্ডলিং প্রক্রিয়ার জন্য 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 সমর্থন GPU ব্যাকএন্ডের জন্য Gemma-2B এবং Phi-2 মডেলের জন্য কাজ করে, LoRA ওজন শুধুমাত্র মনোযোগ স্তরগুলির জন্য প্রযোজ্য। এই প্রাথমিক বাস্তবায়ন ভবিষ্যতের উন্নয়নের জন্য একটি পরীক্ষামূলক API হিসাবে কাজ করে যাতে আগামী আপডেটগুলিতে আরও মডেল এবং বিভিন্ন ধরণের স্তর সমর্থন করার পরিকল্পনা রয়েছে।
LoRA মডেল প্রস্তুত করুন
আপনার নিজস্ব ডেটাসেটে সমর্থিত মডেলের ধরন, Gemma-2B বা Phi-2 সহ একটি সূক্ষ্ম টিউন করা LoRA মডেল প্রশিক্ষণের জন্য HuggingFace-এর নির্দেশাবলী অনুসরণ করুন। Gemma-2B এবং Phi-2 মডেল দুটিই সেফটেনসর ফরম্যাটে HuggingFace-এ উপলব্ধ। যেহেতু LLM ইনফারেন্স API শুধুমাত্র মনোযোগের স্তরগুলিতে LoRA সমর্থন করে, তাই LoraConfig
তৈরি করার সময় নিম্নলিখিত হিসাবে শুধুমাত্র মনোযোগ স্তরগুলি নির্দিষ্ট করুন:
# For Gemma-2B
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 সমর্থন করে, যা টাস্কের জীবদ্দশায় একই 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()
পদ্ধতি ব্যবহার করুন। ,
LLM ইনফারেন্স API আপনাকে বৃহৎ ভাষা মডেলগুলি (LLMs) সম্পূর্ণরূপে অন-ডিভাইস চালাতে দেয়, যা আপনি পাঠ্য তৈরি করা, প্রাকৃতিক ভাষা আকারে তথ্য পুনরুদ্ধার করা এবং নথির সংক্ষিপ্তসারের মতো বিস্তৃত কাজ সম্পাদন করতে ব্যবহার করতে পারেন। টাস্কটি একাধিক টেক্সট-টু-টেক্সট বৃহৎ ভাষার মডেলের জন্য অন্তর্নির্মিত সমর্থন প্রদান করে, যাতে আপনি আপনার অ্যাপ এবং পণ্যগুলিতে সর্বশেষ অন-ডিভাইস জেনারেটিভ এআই মডেলগুলি প্রয়োগ করতে পারেন।
কাজটি জেমার নিম্নলিখিত রূপগুলিকে সমর্থন করে: জেমা-2 2B, জেমা 2B, এবং জেমা 7B৷ Gemma হল হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবার যা জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি৷ এটি নিম্নলিখিত বাহ্যিক মডেলগুলিকেও সমর্থন করে: Phi-2 , Falcon-RW-1B এবং StableLM-3B ৷
স্থানীয়ভাবে সমর্থিত মডেলগুলি ছাড়াও, ব্যবহারকারীরা Google-এর AI এজ অফারিং ( PyTorch মডেলের ম্যাপিং সহ) ব্যবহার করে অন্যান্য মডেলগুলিকে ম্যাপ করতে পারে৷ এটি ব্যবহারকারীদের মাল্টি-সিগনেচার টেনসরফ্লো লাইট মডেলগুলিতে একটি ম্যাপ করা মডেল রপ্তানি করতে দেয়, যা একটি টাস্ক বান্ডেল তৈরি করতে টোকেনাইজার প্যারামিটারের সাথে একত্রিত হয়।
শুরু করুন
আপনার লক্ষ্য প্ল্যাটফর্মের জন্য এই বাস্তবায়ন নির্দেশিকাগুলির একটি অনুসরণ করে এই কাজটি ব্যবহার করা শুরু করুন। এই প্ল্যাটফর্ম-নির্দিষ্ট গাইডগুলি আপনাকে এই টাস্কের একটি মৌলিক বাস্তবায়নের মাধ্যমে নিয়ে যায়, কোড উদাহরণ সহ যেগুলি উপলব্ধ মডেল এবং প্রস্তাবিত কনফিগারেশন বিকল্পগুলি ব্যবহার করে:
ওয়েব :
অ্যান্ড্রয়েড :
iOS
টাস্কের বিবরণ
এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।
বৈশিষ্ট্য
LLM ইনফারেন্স API-এ নিম্নলিখিত মূল বৈশিষ্ট্যগুলি রয়েছে:
- পাঠ্য থেকে পাঠ্য প্রজন্ম - একটি ইনপুট পাঠ্য প্রম্পটের উপর ভিত্তি করে পাঠ্য তৈরি করুন।
- LLM নির্বাচন - আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে অ্যাপটিকে সাজাতে একাধিক মডেল প্রয়োগ করুন। আপনি আবার প্রশিক্ষণ দিতে এবং মডেলে কাস্টমাইজড ওজন প্রয়োগ করতে পারেন।
- LoRA সমর্থন - আপনার সমস্ত ডেটাসেটের প্রশিক্ষণের মাধ্যমে, অথবা ওপেন-সোর্স সম্প্রদায় (শুধুমাত্র নেটিভ মডেল) থেকে প্রস্তুত প্রি-বিল্ট LoRA মডেলগুলি নিয়ে 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-এ বিল্ট-ইন সমর্থন রয়েছে বিচ্ছিন্ন পাঠ্য থেকে পাঠ্য বড় ভাষা মডেলগুলির জন্য যা ব্রাউজার এবং মোবাইল ডিভাইসগুলিতে চালানোর জন্য অপ্টিমাইজ করা হয়েছে। এই লাইটওয়েট মডেলগুলি সম্পূর্ণরূপে ডিভাইসে অনুমান চালানোর জন্য ডাউনলোড করা যেতে পারে।
LLM ইনফারেন্স API শুরু করার আগে, সমর্থিত মডেলগুলির একটি ডাউনলোড করুন এবং আপনার প্রকল্প ডিরেক্টরির মধ্যে ফাইলটি সংরক্ষণ করুন।
Gemma-2 2B
Gemma-2 2B হল জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি লাইটওয়েট, অত্যাধুনিক ওপেন মডেলগুলির জেমা পরিবারের সর্বশেষ মডেল। মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। Gemma-2 2B তার ক্লাসের মডেলদের জন্য অত্যাধুনিক যুক্তি দক্ষতার জন্য পরিচিত।
আপনি যদি Kaggle থেকে Gemma-2 2B ডাউনলোড করেন, তাহলে আপনাকে অবশ্যই মডেলটিকে একটি MediaPipe-বান্ধব বিন্যাসে রূপান্তর করতে হবে। LLM ইনফারেন্স API-এর মডেলটিকে রূপান্তর এবং চালানোর জন্য নিম্নলিখিত পদক্ষেপগুলি প্রয়োজন:
- Kaggle থেকে
model.ckpt
PyTorch চেকপয়েন্ট ডাউনলোড করুন - মডেলটিকে টিএফ লাইট ফরম্যাটে তৈরি এবং রূপান্তর করতে AI এজ টর্চের টুলিং ব্যবহার করুন।
- TFLite ফাইল এবং Gemma tokenizer থেকে টাস্ক বান্ডেল তৈরি করুন। জেমা মডেলের জন্য, প্রস্তাবিত start_token হল
<bos>
এবং stop_tokens হল<eos>
এবং<end_of_turn>
চ্যাট অ্যাপ্লিকেশনের জন্য।
ফলস্বরূপ task
ফাইলটি LLM ইনফারেন্স API এর সাথে অনুমানের জন্য ব্যবহার করা যেতে পারে
Gemma 2B
জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবারের একটি অংশ হল জেমা 2বি৷ মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। এই মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য উপযুক্ত।
Gemma 2B মডেল চারটি ভেরিয়েন্টে আসে:
- gemma-2b-it-cpu-int4 : CPU সামঞ্জস্য সহ জেমমা 2B 4-বিট মডেল।
- gemma-2b-it-cpu-int8 : CPU সামঞ্জস্য সহ জেমমা 2B 8-বিট মডেল।
- gemma-2b-it-gpu-int4 : জিপিইউ সামঞ্জস্য সহ জেমমা 2B 4-বিট মডেল।
- gemma-2b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 2B 8-বিট মডেল।
আপনি মডেলটি টিউন করতে পারেন এবং অ্যাপে যোগ করার আগে নতুন ওজন যোগ করতে পারেন। Gemma টিউনিং এবং কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, Gemma টিউনিং দেখুন। Kaggle Models থেকে Gemma ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe-এর সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
আপনি যদি Hugging Face থেকে Gemma 2B ডাউনলোড করেন, তাহলে আপনাকে অবশ্যই মডেলটিকে একটি MediaPipe-বন্ধুত্বপূর্ণ ফর্ম্যাটে রূপান্তর করতে হবে। LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং রূপান্তর করা প্রয়োজন:
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
-
tokenizer.json
-
tokenizer_config.json
Gemma 7B
Gemma 7B হল 7B প্যারামিটার এবং খোলা ওজন সহ একটি বড় জেমা মডেল। প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য মডেলটি আরও শক্তিশালী। Gemma 7B শুধুমাত্র ওয়েবে সমর্থিত।
Gemma 7B মডেলটি একটি ভেরিয়েন্টে আসে:
- gemma-1.1-7b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 7B 8-বিট মডেল।
আপনি যদি Hugging Face থেকে Gemma 7B ডাউনলোড করেন, তাহলে আপনাকে অবশ্যই মডেলটিকে একটি MediaPipe-বন্ধুত্বপূর্ণ ফর্ম্যাটে রূপান্তর করতে হবে। LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং রূপান্তর করা প্রয়োজন:
-
model-00001-of-00004.safetensors
-
model-00002-of-00004.safetensors
-
model-00003-of-00004.safetensors
-
model-00004-of-00004.safetensors
-
tokenizer.json
-
tokenizer_config.json
ফ্যালকন 1 বি
Falcon-1B হল একটি 1 বিলিয়ন প্যারামিটার কার্যকারণ ডিকোডার-শুধুমাত্র মডেল যা RefinedWeb- এর 350B টোকেনগুলিতে প্রশিক্ষিত।
LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
pytorch_model.bin
ফ্যালকন মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করার জন্য প্রস্তুত। মিডিয়াপাইপ ফরম্যাটে রূপান্তর মডেলের ধাপগুলি অনুসরণ করুন।
StableLM 3B
StableLM-3B হল একটি 3 বিলিয়ন প্যারামিটার ডিকোডার-শুধুমাত্র ভাষার মডেল যা 1 ট্রিলিয়ন টোকেন বৈচিত্র্যময় ইংরেজি এবং 4টি যুগের জন্য কোড ডেটাসেটের উপর প্রি-প্রশিক্ষিত।
LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model.safetensors
StableLM মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি MediaPipe ফর্ম্যাটে রূপান্তরিত হওয়ার জন্য প্রস্তুত৷ মিডিয়াপাইপ ফরম্যাটে রূপান্তর মডেলের ধাপগুলি অনুসরণ করুন।
ফি-2
Phi-2 একটি 2.7 বিলিয়ন প্যারামিটার ট্রান্সফরমার মডেল। এটি বিভিন্ন এনএলপি সিন্থেটিক পাঠ্য এবং ফিল্টার করা ওয়েবসাইট ব্যবহার করে প্রশিক্ষিত হয়েছিল। প্রশ্ন-উত্তর, চ্যাট এবং কোড বিন্যাস ব্যবহার করে প্রম্পটের জন্য মডেলটি সবচেয়ে উপযুক্ত।
LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
Phi-2 মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি MediaPipe ফরম্যাটে রূপান্তর করার জন্য প্রস্তুত। মিডিয়াপাইপ ফরম্যাটে রূপান্তর মডেলের ধাপগুলি অনুসরণ করুন।
এআই এজ এক্সপোর্টেড মডেল
AI Edge হল একটি Google অফার যা আপনাকে ব্যবহারকারী-ম্যাপ করা মডেলগুলিকে বহু-স্বাক্ষর TensorFlow Lite মডেলগুলিতে রূপান্তর করতে দেয়৷ ম্যাপিং এবং মডেল রপ্তানি সম্পর্কে আরও বিশদ বিবরণের জন্য, এআই এজ টর্চ গিটহাব পৃষ্ঠাটি দেখুন।
মডেলটিকে TFLite ফরম্যাটে রপ্তানি করার পর, মডেলটি মিডিয়াপাইপ ফরম্যাটে রূপান্তরিত হওয়ার জন্য প্রস্তুত। আরও তথ্যের জন্য, মডেলটিকে মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করুন দেখুন।
মিডিয়াপাইপ ফর্ম্যাটে মডেল রূপান্তর করুন
নেটিভ মডেল রূপান্তর
আপনি যদি একটি বাহ্যিক LLM (Phi-2, Falcon, or StableLM) অথবা Gemma-এর একটি নন-কাগল সংস্করণ ব্যবহার করেন, তাহলে MediaPipe-এর সাথে সামঞ্জস্যপূর্ণ হতে মডেলটিকে ফর্ম্যাট করতে আমাদের রূপান্তর স্ক্রিপ্টগুলি ব্যবহার করুন৷
মডেল রূপান্তর প্রক্রিয়ার জন্য MediaPipe PyPI প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্ট 0.10.11
এর পরে সমস্ত MediaPipe প্যাকেজে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল এবং আমদানি করুন:
$ python3 -m pip install mediapipe
মডেল রূপান্তর করতে genai.converter
লাইব্রেরি ব্যবহার করুন:
import mediapipe as mp
from mediapipe.tasks.python.genai import converter
config = converter.ConversionConfig(
input_ckpt=INPUT_CKPT,
ckpt_format=CKPT_FORMAT,
model_type=MODEL_TYPE,
backend=BACKEND,
output_dir=OUTPUT_DIR,
combine_file_only=False,
vocab_model_file=VOCAB_MODEL_FILE,
output_tflite_file=OUTPUT_TFLITE_FILE,
)
converter.convert_checkpoint(config)
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 মডেলের জন্য।
প্যারামিটার | বর্ণনা | গৃহীত মান |
---|---|---|
input_ckpt | model.safetensors বা pytorch.bin ফাইলের পথ। মনে রাখবেন যে কখনও কখনও মডেল সেফটেনসর ফরম্যাট একাধিক ফাইলে শার্ড করা হয়, যেমন model-00001-of-00003.safetensors , model-00001-of-00003.safetensors । আপনি একটি ফাইল প্যাটার্ন নির্দিষ্ট করতে পারেন, যেমন model*.safetensors । | PATH |
ckpt_format | মডেল ফাইল বিন্যাস. | {"সেফটেনসর", "পাইটোর্চ"} |
model_type | এলএলএম রূপান্তরিত হচ্ছে। | {"PHI_2", "FALCON_RW_1B", "STABLELM_4E1T_3B", "GEMMA_2B"} |
backend | প্রসেসর (প্রতিনিধি) মডেলটি চালানোর জন্য ব্যবহৃত হয়। | {"cpu", "gpu"} |
output_dir | আউটপুট ডিরেক্টরির পথ যা প্রতি-স্তর ওজন ফাইলগুলিকে হোস্ট করে। | PATH |
output_tflite_file | আউটপুট ফাইলের পথ। উদাহরণস্বরূপ, "model_cpu.bin" বা "model_gpu.bin"। এই ফাইলটি শুধুমাত্র LLM ইনফারেন্স API এর সাথে সামঞ্জস্যপূর্ণ, এবং একটি সাধারণ `tflite` ফাইল হিসাবে ব্যবহার করা যাবে না। | PATH |
vocab_model_file | ডিরেক্টরির পথ যা tokenizer.json এবং tokenizer_config.json ফাইল সংরক্ষণ করে। জেমার জন্য, একক tokenizer.model ফাইলে নির্দেশ করুন। | PATH |
lora_ckpt | সেফটেনসর ফাইলের LoRA ckpt-এর পথ যা LoRA অ্যাডাপ্টারের ওজন সঞ্চয় করে। | PATH |
lora_rank | একটি পূর্ণসংখ্যা যা LoRA ckpt-এর পদমর্যাদার প্রতিনিধিত্ব করে। লোরা ওজন রূপান্তর করার জন্য প্রয়োজন. যদি প্রদান না করা হয়, তাহলে রূপান্তরকারী অনুমান করে যে কোন LoRA ওজন নেই। দ্রষ্টব্য: শুধুমাত্র GPU ব্যাকএন্ড LoRA সমর্থন করে। | পূর্ণসংখ্যা |
lora_output_tflite_file | LoRA ওজনের জন্য আউটপুট tflite ফাইলের নাম। | PATH |
এআই এজ মডেল রূপান্তর
আপনি যদি AI Edge এর মাধ্যমে একটি TFLite মডেলে ম্যাপ করা LLM ব্যবহার করেন, তাহলে একটি টাস্ক বান্ডেল তৈরি করতে আমাদের বান্ডলিং স্ক্রিপ্ট ব্যবহার করুন। এন্ড-টু-এন্ড ইনফারেন্স চালানোর জন্য প্রয়োজনীয় অতিরিক্ত মেটাডেটা (যেমন, টোকেনাইজার প্যারামিটার) দিয়ে বান্ডলিং প্রক্রিয়া ম্যাপ করা মডেলটিকে প্যাক করে।
মডেল বান্ডলিং প্রক্রিয়ার জন্য 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 সমর্থন GPU ব্যাকএন্ডের জন্য Gemma-2B এবং Phi-2 মডেলের জন্য কাজ করে, LoRA ওজন শুধুমাত্র মনোযোগ স্তরগুলির জন্য প্রযোজ্য। এই প্রাথমিক বাস্তবায়ন ভবিষ্যতের উন্নয়নের জন্য একটি পরীক্ষামূলক API হিসাবে কাজ করে যাতে আগামী আপডেটগুলিতে আরও মডেল এবং বিভিন্ন ধরণের স্তর সমর্থন করার পরিকল্পনা রয়েছে।
LoRA মডেল প্রস্তুত করুন
আপনার নিজস্ব ডেটাসেটে সমর্থিত মডেলের ধরন, Gemma-2B বা Phi-2 সহ একটি সূক্ষ্ম টিউন করা LoRA মডেল প্রশিক্ষণের জন্য HuggingFace-এর নির্দেশাবলী অনুসরণ করুন। Gemma-2B এবং Phi-2 মডেল দুটিই সেফটেনসর ফরম্যাটে HuggingFace-এ উপলব্ধ। যেহেতু LLM ইনফারেন্স API শুধুমাত্র মনোযোগের স্তরগুলিতে LoRA সমর্থন করে, তাই LoraConfig
তৈরি করার সময় নিম্নলিখিত হিসাবে শুধুমাত্র মনোযোগ স্তরগুলি নির্দিষ্ট করুন:
# For Gemma-2B
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 সমর্থন করে, যা টাস্কের জীবদ্দশায় একই 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()
পদ্ধতি ব্যবহার করুন।