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 তার ক্লাসের মডেলদের জন্য অত্যাধুনিক যুক্তি দক্ষতার জন্য পরিচিত।
Gemma-2 2B মডেলগুলি নিম্নলিখিত রূপগুলিতে উপলব্ধ:
- gemma2-2b-it-cpu-int8 : CPU সামঞ্জস্য সহ জেমমা-2 2B 8-বিট মডেল।
- gemma2-2b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা-2 2B 8-বিট মডেল।
আপনি মডেলটি টিউন করতে পারেন এবং অ্যাপে যোগ করার আগে নতুন ওজন যোগ করতে পারেন। Gemma টিউনিং এবং কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, Gemma টিউনিং দেখুন। Kaggle Models থেকে Gemma ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
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 টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
Gemma 7B
Gemma 7B হল 7B প্যারামিটার এবং খোলা ওজন সহ একটি বড় জেমা মডেল। প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য মডেলটি আরও শক্তিশালী। Gemma 7B শুধুমাত্র ওয়েবে সমর্থিত।
Gemma 7B মডেলটি একটি ভেরিয়েন্টে আসে:
- gemma-1.1-7b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 7B 8-বিট মডেল।
Kaggle Models থেকে Gemma ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe-এর সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
ফ্যালকন 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 তার ক্লাসের মডেলদের জন্য অত্যাধুনিক যুক্তি দক্ষতার জন্য পরিচিত।
Gemma-2 2B মডেলগুলি নিম্নলিখিত রূপগুলিতে উপলব্ধ:
- gemma2-2b-it-cpu-int8 : CPU সামঞ্জস্য সহ জেমমা-2 2B 8-বিট মডেল।
- gemma2-2b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা-2 2B 8-বিট মডেল।
আপনি মডেলটি টিউন করতে পারেন এবং অ্যাপে যোগ করার আগে নতুন ওজন যোগ করতে পারেন। Gemma টিউনিং এবং কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, Gemma টিউনিং দেখুন। Kaggle Models থেকে Gemma ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
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 টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
Gemma 7B
Gemma 7B হল 7B প্যারামিটার এবং খোলা ওজন সহ একটি বড় জেমা মডেল। প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য মডেলটি আরও শক্তিশালী। Gemma 7B শুধুমাত্র ওয়েবে সমর্থিত।
Gemma 7B মডেলটি একটি ভেরিয়েন্টে আসে:
- gemma-1.1-7b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 7B 8-বিট মডেল।
Kaggle Models থেকে Gemma ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe-এর সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷
ফ্যালকন 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 | একটি al চ্ছিক ত্রুটি শ্রোতা সেট করে। | N/A | N/A |
মডেল
এলএলএম ইনফারেন্স এপিআইতে ব্রাউজার এবং মোবাইল ডিভাইসগুলিতে চালানোর জন্য অনুকূলিত পৃথক পাঠ্য-থেকে-পাঠ্য বড় ভাষা মডেলগুলির জন্য অন্তর্নির্মিত সমর্থন রয়েছে। এই লাইটওয়েট মডেলগুলি সম্পূর্ণরূপে অন-ডিভাইস চালানোর জন্য ডাউনলোড করা যেতে পারে।
এলএলএম ইনফারেন্স এপিআই শুরু করার আগে, সমর্থিত একটি মডেল ডাউনলোড করুন এবং আপনার প্রকল্প ডিরেক্টরিতে ফাইলটি সংরক্ষণ করুন।
জেমমা -২ 2 বি
জেমমা -২ 2 বি হ'ল লাইটওয়েটের জেমমা পরিবারের সর্বশেষতম মডেল, জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে নির্মিত অত্যাধুনিক ওপেন মডেল। মডেলটিতে 2 বি পরামিতি এবং খোলা ওজন রয়েছে। জেমমা -২ 2 বি এর শ্রেণীর মডেলগুলির জন্য শিল্প যুক্তি দক্ষতার জন্য পরিচিত।
জেমমা -২ 2 বি মডেলগুলি নিম্নলিখিত রূপগুলিতে উপলব্ধ:
- জেমমা 2-2 বি-আইটি-সিপিইউ-ইন্ট 8 : সিপিইউ সামঞ্জস্যতার সাথে জেমমা -২ 2 বি 8-বিট মডেল।
- জেমমা 2-2 বি-ইটি-জিপিইউ-ইন্ট 8 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা -২ 2 বি 8-বিট মডেল।
আপনি অ্যাপ্লিকেশনটিতে এটি যুক্ত করার আগে মডেলটি টিউন করতে এবং নতুন ওজন যুক্ত করতে পারেন। টিউনিং এবং জেমমাকে কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, টিউনিং জেম্মাকে দেখুন। কেগল মডেলগুলি থেকে জেমমা ডাউনলোড করার পরে, মডেলটি ইতিমধ্যে মিডিয়াপাইপ টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে।
জেমমা 2 বি
জেমমা 2 বি জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে নির্মিত হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবারের একটি অংশ। মডেলটিতে 2 বি পরামিতি এবং খোলা ওজন রয়েছে। এই মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ বিভিন্ন পাঠ্য প্রজন্মের কাজের জন্য উপযুক্ত।
জেমমা 2 বি মডেলগুলি নিম্নলিখিত রূপগুলিতে উপলব্ধ:
- জেমমা -২ বি-ইট-সিপিইউ-ইনট 4 : সিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 4-বিট মডেল।
- জেমমা -২ বি-ইট-সিপিইউ-ইন্ট 8 : সিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 8-বিট মডেল।
- জেমমা -২ বি-ইটি-জিপিইউ-ইনট 4 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 4-বিট মডেল।
- জেমমা -২ বি-ইটি-জিপিইউ-ইন্ট 8 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 8-বিট মডেল।
আপনি অ্যাপ্লিকেশনটিতে এটি যুক্ত করার আগে মডেলটি টিউন করতে এবং নতুন ওজন যুক্ত করতে পারেন। টিউনিং এবং জেমমাকে কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, টিউনিং জেম্মাকে দেখুন। কেগল মডেলগুলি থেকে জেমমা ডাউনলোড করার পরে, মডেলটি ইতিমধ্যে মিডিয়াপাইপ টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে।
জেমমা 7 বি
জেমমা 7 বি 7 বি প্যারামিটার এবং খোলা ওজন সহ একটি বৃহত্তর জেমমা মডেল। মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ বিভিন্ন পাঠ্য প্রজন্মের কাজের জন্য আরও শক্তিশালী। জেমমা 7 বি কেবল ওয়েবে সমর্থিত।
জেমমা 7 বি মডেল একটি বৈকল্পিক আসে:
- জেমমা -1.1-7 বি-ইট-জিপিইউ-ইন্ট 8 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা 7 বি 8-বিট মডেল।
কাগল মডেলগুলি থেকে জেমমা ডাউনলোড করার পরে, মডেলটি ইতিমধ্যে মিডিয়াপাইপের সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে।
ফ্যালকন 1 বি
ফ্যালকন -1 বি হ'ল 1 বিলিয়ন প্যারামিটার কার্যকারণ ডিকোডার-কেবলমাত্র মডেল 350 বি টোকেন রিফাইনডওয়েবের উপর প্রশিক্ষিত।
এলএলএম ইনফারেন্স এপিআইয়ের জন্য নিম্নলিখিত ফাইলগুলি স্থানীয়ভাবে ডাউনলোড এবং সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
pytorch_model.bin
ফ্যালকন মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করতে প্রস্তুত। রূপান্তর মডেলটির পদক্ষেপগুলি মিডিয়াপাইপ ফর্ম্যাটে অনুসরণ করুন।
স্ট্যাবেলএম 3 বি
স্ট্যাবেলএম -3 বি একটি 3 বিলিয়ন প্যারামিটার ডিকোডার-কেবলমাত্র ভাষা মডেল যা 4 টি যুগের জন্য 1 ট্রিলিয়ন টোকেন বিভিন্ন ইংরেজি এবং কোড ডেটাসেটগুলিতে প্রাক প্রশিক্ষিত।
এলএলএম ইনফারেন্স এপিআইয়ের জন্য নিম্নলিখিত ফাইলগুলি স্থানীয়ভাবে ডাউনলোড এবং সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model.safetensors
স্ট্যাবেলএম মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তরিত হতে প্রস্তুত। রূপান্তর মডেলটির পদক্ষেপগুলি মিডিয়াপাইপ ফর্ম্যাটে অনুসরণ করুন।
ফি-2
পিএইচআই -2 একটি 2.7 বিলিয়ন প্যারামিটার ট্রান্সফর্মার মডেল। এটি বিভিন্ন এনএলপি সিন্থেটিক পাঠ্য এবং ফিল্টার করা ওয়েবসাইটগুলি ব্যবহার করে প্রশিক্ষণ দেওয়া হয়েছিল। মডেলটি প্রশ্ন-উত্তর, চ্যাট এবং কোড ফর্ম্যাট ব্যবহার করে অনুরোধগুলির জন্য সবচেয়ে উপযুক্ত।
এলএলএম ইনফারেন্স এপিআইয়ের জন্য নিম্নলিখিত ফাইলগুলি স্থানীয়ভাবে ডাউনলোড এবং সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
পিএইচআই -2 মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করতে প্রস্তুত। রূপান্তর মডেলটির পদক্ষেপগুলি মিডিয়াপাইপ ফর্ম্যাটে অনুসরণ করুন।
এআই এজ রফতানি মডেল
এআই এজ একটি গুগল অফার যা আপনাকে ব্যবহারকারী-মানচিত্রযুক্ত মডেলগুলিকে মাল্টি-সিগনচার টেনসরফ্লো লাইট মডেলগুলিতে রূপান্তর করতে দেয়। মডেলগুলি ম্যাপিং এবং রফতানি করার বিষয়ে আরও তথ্যের জন্য, এআই এজ টর্চ গিটহাব পৃষ্ঠাটি দেখুন।
মডেলটি টিএফএলাইট ফর্ম্যাটে রফতানি করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করতে প্রস্তুত। আরও তথ্যের জন্য, রূপান্তর মডেলটি মিডিয়াপাইপ ফর্ম্যাটে দেখুন।
মডেল রূপান্তর মিডিয়াপাইপ ফর্ম্যাটে
নেটিভ মডেল রূপান্তর
আপনি যদি কোনও বাহ্যিক এলএলএম (পিএইচআই -2, ফ্যালকন, বা স্ট্যাবলেলএম) বা জেমমার একটি নন-ক্যাগল সংস্করণ ব্যবহার করছেন, মিডিয়াপাইপের সাথে সামঞ্জস্যপূর্ণ হতে মডেলটি ফর্ম্যাট করতে আমাদের রূপান্তর স্ক্রিপ্টগুলি ব্যবহার করুন।
মডেল রূপান্তর প্রক্রিয়াটির জন্য মিডিয়াপাইপ পিওয়াইপিআই প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্টটি 0.10.11
পরে সমস্ত মিডিয়াপাইপ প্যাকেজগুলিতে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল করুন এবং আমদানি করুন:
$ 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)
লোরা মডেলকে রূপান্তর করতে, ConversionConfig
বেস মডেল বিকল্পগুলির পাশাপাশি অতিরিক্ত লোরা বিকল্পগুলি নির্দিষ্ট করা উচিত। লক্ষ্য করুন যেহেতু এপিআই কেবল জিপিইউর সাথে লোরা অনুমানকে সমর্থন করে, তাই ব্যাকএন্ডটি অবশ্যই '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)
রূপান্তরকারী দুটি টিফ্লাইট ফ্ল্যাটবফার ফাইলগুলি আউটপুট করবে, একটি বেস মডেলের জন্য এবং অন্যটি লোরা মডেলের জন্য।
প্যারামিটার | বর্ণনা | গৃহীত মান |
---|---|---|
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", "ফ্যালকন_আরডাব্লু_1 বি", "স্ট্যাবেলএম_4 ই 1 টি_3 বি", "জেমমা_2 বি"} |
backend | প্রসেসর (প্রতিনিধি) মডেলটি চালাত। | {"সিপিইউ", "জিপিইউ"} |
output_dir | আউটপুট ডিরেক্টরিতে পাথ যা প্রতি স্তর ওজন ফাইলগুলি হোস্ট করে। | PATH |
output_tflite_file | আউটপুট ফাইলের পথ। উদাহরণস্বরূপ, "মডেল_সিপিইউ.বিন" বা "মডেল_জিপিইউ.বিন"। এই ফাইলটি কেবল এলএলএম ইনফারেন্স এপিআইয়ের সাথে সামঞ্জস্যপূর্ণ এবং এটি সাধারণ `টিফ্লাইট` ফাইল হিসাবে ব্যবহার করা যাবে না। | PATH |
vocab_model_file | tokenizer.json এবং tokenizer_config.json ফাইলগুলি সঞ্চয় করে এমন ডিরেক্টরিটির পথ। জেমার জন্য, একক tokenizer.model ফাইলের দিকে নির্দেশ করুন। | PATH |
lora_ckpt | লোরা অ্যাডাপ্টারের ওজন সঞ্চয় করে এমন সেফটেনসর ফাইলের লোরা সিকিপিটি -র পথ। | PATH |
lora_rank | লোরা সিকিপিটি র্যাঙ্কের প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা। লোরার ওজন রূপান্তর করার জন্য প্রয়োজনীয়। যদি সরবরাহ না করা হয়, তবে রূপান্তরকারী ধরে নেয় যে কোনও লোরার ওজন নেই। দ্রষ্টব্য: কেবলমাত্র জিপিইউ ব্যাকএন্ড লোরাকে সমর্থন করে। | পূর্ণসংখ্যা |
lora_output_tflite_file | লোরার ওজনের জন্য আউটপুট টিফ্লাইট ফাইলের নাম। | PATH |
এআই এজ মডেল রূপান্তর
আপনি যদি এআই এজের মাধ্যমে টিএফএলআইটি মডেলটিতে ম্যাপ করা এলএলএম ব্যবহার করছেন তবে একটি টাস্ক বান্ডিল তৈরি করতে আমাদের বান্ডিলিং স্ক্রিপ্টটি ব্যবহার করুন। বান্ডিলিং প্রক্রিয়াটি ম্যাপযুক্ত মডেলটিকে অতিরিক্ত মেটাডেটা (যেমন, টোকেনাইজার প্যারামিটার) সহ শেষ থেকে শেষের অনুমানটি চালানোর জন্য প্রয়োজনীয় প্যাক করে।
মডেল বান্ডিলিং প্রক্রিয়াটির জন্য মিডিয়াপাইপ পিওয়াইপিআই প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্টটি 0.10.14
পরে সমস্ত মিডিয়াপাইপ প্যাকেজগুলিতে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল করুন এবং আমদানি করুন:
$ 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 | এআই প্রান্তের পথটি রফতানি টিফ্লাইট মডেল। | PATH |
tokenizer_model | বাক্যপিস টোকেনাইজার মডেলের পথ। | PATH |
start_token | মডেল নির্দিষ্ট শুরু টোকেন। প্রারম্ভিক টোকেন অবশ্যই সরবরাহ করা টোকেনাইজার মডেলটিতে উপস্থিত থাকতে হবে। | STRING |
stop_tokens | মডেল নির্দিষ্ট স্টপ টোকেন। স্টপ টোকেনগুলি অবশ্যই সরবরাহ করা টোকেনাইজার মডেলটিতে উপস্থিত থাকতে হবে। | তালিকা [স্ট্রিং] |
output_filename | আউটপুট টাস্ক বান্ডিল ফাইলের নাম। | PATH |
লোরা কাস্টমাইজেশন
মিডিয়াপাইপ এলএলএম ইনফারেন্স এপিআই বড় ভাষার মডেলগুলির জন্য লো-র্যাঙ্ক অভিযোজন (এলওআরএ) সমর্থন করার জন্য কনফিগার করা যেতে পারে। সূক্ষ্ম সুরযুক্ত লোরা মডেলগুলি ব্যবহার করে, বিকাশকারীরা ব্যয়বহুল প্রশিক্ষণ প্রক্রিয়াটির মাধ্যমে এলএলএমগুলির আচরণকে কাস্টমাইজ করতে পারে।এলএলএম ইনফারেন্স এপিআইয়ের এলওআরএ সমর্থন জেমমা -২ বি এবং জিপিইউ ব্যাকএন্ডের জন্য পিএইচআই -২ মডেলের জন্য কাজ করে, কেবলমাত্র মনোযোগ স্তরগুলির জন্য লোরার ওজন প্রযোজ্য। এই প্রাথমিক বাস্তবায়ন আগামী আপডেটে আরও মডেল এবং বিভিন্ন ধরণের স্তরকে সমর্থন করার পরিকল্পনা নিয়ে ভবিষ্যতের বিকাশের জন্য পরীক্ষামূলক এপিআই হিসাবে কাজ করে।
লোরা মডেল প্রস্তুত করুন
সমর্থিত মডেল প্রকারগুলি, জেমমা -২ বি বা পিএইচআই -২ এর সাথে আপনার নিজের ডেটাসেটে একটি সূক্ষ্ম সুরযুক্ত লোরা মডেল প্রশিক্ষণের জন্য হিউজিংফেসের নির্দেশাবলী অনুসরণ করুন। জেমমা -২ বি এবং পিএইচআই -২ মডেলগুলি উভয়ই সেফটেনসর ফর্ম্যাটে হিউজিংফেসে উপলব্ধ। যেহেতু এলএলএম ইনফারেন্স এপিআই কেবল মনোযোগ স্তরগুলিতে লোরাকে সমর্থন করে, কেবলমাত্র 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"],
)
পরীক্ষার জন্য, এখানে সর্বজনীনভাবে অ্যাক্সেসযোগ্য সূক্ষ্ম-সুরযুক্ত লোরা মডেল রয়েছে যা এলএলএম অনুমানের এপিআইয়ের সাথে হিউজিংফেসে উপলব্ধ। উদাহরণস্বরূপ, জেমমা -2 বি এর জন্য মনস্টারাপি/জেমমা -2 বি-লোরা-ম্যাথ-ওআরসিএ -200 কে এবং পিএইচআই -2 এর জন্য লোল 25/পিএইচআই -2-এসএফটি-উল্ট্রাচ্যাট-লোরা ।
প্রস্তুত ডেটাসেট সম্পর্কে প্রশিক্ষণ এবং মডেলটি সংরক্ষণ করার পরে, আপনি একটি adapter_model.safetensors
ফাইল পান যা সূক্ষ্ম সুরযুক্ত লোরা মডেলের ওজনযুক্ত। সেফটেনসর ফাইলটি হ'ল মডেল রূপান্তরটিতে ব্যবহৃত লোরা চেকপয়েন্ট।
পরবর্তী পদক্ষেপ হিসাবে, আপনার মিডিয়াপাইপ পাইথন প্যাকেজটি ব্যবহার করে মডেল ওজনকে একটি টেনসরফ্লো লাইট ফ্ল্যাটবফার রূপান্তর করতে হবে। ConversionConfig
বেস মডেল বিকল্পগুলির পাশাপাশি অতিরিক্ত লোরা বিকল্পগুলি নির্দিষ্ট করা উচিত। লক্ষ্য করুন যেহেতু এপিআই কেবল জিপিইউর সাথে লোরা অনুমানকে সমর্থন করে, তাই ব্যাকএন্ডটি অবশ্যই '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)
রূপান্তরকারী দুটি টিফ্লাইট ফ্ল্যাটবফার ফাইলগুলি আউটপুট করবে, একটি বেস মডেলের জন্য এবং অন্যটি লোরা মডেলের জন্য।
লোরা মডেল অনুমান
ওয়েব, অ্যান্ড্রয়েড এবং আইওএস এলএলএম ইনফারেন্স এপিআই লোরা মডেল অনুমানকে সমর্থন করার জন্য আপডেট করা হয়েছে। ওয়েব ডায়নামিক লোরা সমর্থন করে, যা রানটাইমের সময় বিভিন্ন লোরা মডেলগুলি স্যুইচ করতে পারে। অ্যান্ড্রয়েড এবং আইওএস স্ট্যাটিক লোরা সমর্থন করে, যা কার্যটির জীবদ্দশায় একই লোরা ওজন ব্যবহার করে।
অ্যান্ড্রয়েড সূচনা করার সময় স্ট্যাটিক লোরা সমর্থন করে। একটি লোরা মডেল লোড করতে, ব্যবহারকারীরা লোরা মডেল পাথের পাশাপাশি বেস এলএলএম নির্দিষ্ট করে।// 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)
লোরার সাথে এলএলএম অনুমান চালানোর জন্য, বেস মডেল হিসাবে একই generateResponse()
বা generateResponseAsync()
পদ্ধতিগুলি ব্যবহার করুন। ,
এলএলএম ইনফারেন্স এপিআই আপনাকে বৃহত্তর ভাষার মডেলগুলি (এলএলএম) পুরোপুরি অন-ডিভাইস চালাতে দেয়, যা আপনি পাঠ্য উত্পন্ন করা, প্রাকৃতিক ভাষার আকারে তথ্য পুনরুদ্ধার করা এবং নথিগুলির সংক্ষিপ্তসার হিসাবে বিস্তৃত কাজ সম্পাদন করতে ব্যবহার করতে পারেন। টাস্কটি একাধিক পাঠ্য-থেকে-পাঠ্য বৃহত ভাষার মডেলগুলির জন্য অন্তর্নির্মিত সমর্থন সরবরাহ করে, যাতে আপনি আপনার অ্যাপ্লিকেশন এবং পণ্যগুলিতে সর্বশেষতম অন-ডিভাইস জেনারেটর এআই মডেলগুলি প্রয়োগ করতে পারেন।
টাস্কটি জেমমার নিম্নলিখিত রূপগুলি সমর্থন করে: জেমমা -২ 2 বি, জেমমা 2 বি, এবং জেমমা 7 বি। জেমমা হ'ল লাইটওয়েটের একটি পরিবার, জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে নির্মিত অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবার। এটি নিম্নলিখিত বাহ্যিক মডেলগুলিকেও সমর্থন করে: পিএইচআই -2 , ফ্যালকন-আরডাব্লু -1 বি এবং স্ট্যাবেলএম -3 বি ।
স্থানীয়ভাবে সমর্থিত মডেলগুলি ছাড়াও, ব্যবহারকারীরা গুগলের এআই প্রান্তের অফারগুলি ( ম্যাপিং পাইটোর্চ মডেলগুলি সহ) ব্যবহার করে অন্যান্য মডেলগুলিকে মানচিত্র করতে পারেন। এটি ব্যবহারকারীদের মাল্টি-সিগনচার টেনসরফ্লো লাইট মডেলগুলিতে একটি ম্যাপযুক্ত মডেল রফতানি করতে দেয়, যা কোনও টাস্ক বান্ডিল তৈরি করতে টোকেনাইজার পরামিতিগুলির সাথে বান্ডিল করা হয়।
শুরু করুন
আপনার টার্গেট প্ল্যাটফর্মের জন্য এই বাস্তবায়ন গাইডগুলির মধ্যে একটি অনুসরণ করে এই টাস্কটি ব্যবহার শুরু করুন। এই প্ল্যাটফর্ম-নির্দিষ্ট গাইডগুলি আপনাকে এই টাস্কের একটি প্রাথমিক বাস্তবায়নের মধ্য দিয়ে হাঁটুন, কোড উদাহরণ সহ একটি উপলভ্য মডেল এবং প্রস্তাবিত কনফিগারেশন বিকল্পগুলি ব্যবহার করে:
ওয়েব :
অ্যান্ড্রয়েড :
iOS
টাস্কের বিবরণ
এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।
বৈশিষ্ট্য
এলএলএম ইনফারেন্স এপিআইতে নিম্নলিখিত মূল বৈশিষ্ট্যগুলি রয়েছে:
- পাঠ্য-থেকে-পাঠ্য প্রজন্ম -একটি ইনপুট পাঠ্য প্রম্পটের উপর ভিত্তি করে পাঠ্য তৈরি করুন।
- এলএলএম নির্বাচন - আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে অ্যাপ্লিকেশনটি টেইলার করতে একাধিক মডেল প্রয়োগ করুন। আপনি মডেলটিতে কাস্টমাইজড ওজন পুনরায় প্রশিক্ষণ এবং প্রয়োগ করতে পারেন।
- Lora সমর্থন - আপনার সমস্ত ডেটাসেটে প্রশিক্ষণ দিয়ে লোরা মডেলের সাথে এলএলএম সক্ষমতা প্রসারিত এবং কাস্টমাইজ করুন, বা ওপেন -সোর্স সম্প্রদায় (কেবলমাত্র দেশীয় মডেল) থেকে প্রস্তুত প্রিপিল্ট লোরা মডেলগুলি গ্রহণ করে।
টাস্ক ইনপুট | টাস্ক আউটপুট |
---|---|
এলএলএম ইনফারেন্স এপিআই নিম্নলিখিত ইনপুটগুলি গ্রহণ করে:
| এলএলএম অনুমান এপিআই নিম্নলিখিত ফলাফলগুলি আউটপুট করে:
|
কনফিগারেশন বিকল্প
এই কার্যটিতে নিম্নলিখিত কনফিগারেশন বিকল্প রয়েছে:
বিকল্পের নাম | বর্ণনা | মান পরিসীমা | ডিফল্ট মান |
---|---|---|---|
modelPath | প্রকল্প ডিরেক্টরিতে যেখানে মডেলটি সংরক্ষণ করা হয় তার পথ। | PATH | N/A |
maxTokens | মডেল হ্যান্ডলগুলি সর্বাধিক সংখ্যক টোকেন (ইনপুট টোকেন + আউটপুট টোকেন)। | পূর্ণসংখ্যা | 512 |
topK | মডেলটি প্রজন্মের প্রতিটি পদক্ষেপে টোকেন সংখ্যা বিবেচনা করে। পূর্বাভাসগুলিকে শীর্ষ k সর্বাধিক সম্ভাব্য টোকেনে সীমাবদ্ধ করে৷ | পূর্ণসংখ্যা | 40 |
temperature | প্রজন্মের সময় এলোমেলোভাবে প্রবর্তিত পরিমাণ। একটি উচ্চতর তাপমাত্রার ফলে উত্পন্ন পাঠ্যে আরও সৃজনশীলতার ফলাফল হয়, যখন একটি কম তাপমাত্রা আরও অনুমানযোগ্য প্রজন্ম উত্পাদন করে। | ভাসা | 0.8 |
randomSeed | পাঠ্য উত্পাদনের সময় ব্যবহৃত এলোমেলো বীজ। | পূর্ণসংখ্যা | 0 |
loraPath | ডিভাইসে স্থানীয়ভাবে লোরা মডেলের নিখুঁত পথ। দ্রষ্টব্য: এটি কেবল জিপিইউ মডেলের সাথে সামঞ্জস্যপূর্ণ। | PATH | N/A |
resultListener | ফলাফল শ্রোতাকে অ্যাসিঙ্ক্রোনালিভাবে ফলাফল পেতে সেট করে। অ্যাসিঙ্ক জেনারেশন পদ্ধতি ব্যবহার করার সময় শুধুমাত্র প্রযোজ্য। | N/A | N/A |
errorListener | একটি al চ্ছিক ত্রুটি শ্রোতা সেট করে। | N/A | N/A |
মডেল
এলএলএম ইনফারেন্স এপিআইতে ব্রাউজার এবং মোবাইল ডিভাইসগুলিতে চালানোর জন্য অনুকূলিত পৃথক পাঠ্য-থেকে-পাঠ্য বড় ভাষা মডেলগুলির জন্য অন্তর্নির্মিত সমর্থন রয়েছে। এই লাইটওয়েট মডেলগুলি সম্পূর্ণরূপে অন-ডিভাইস চালানোর জন্য ডাউনলোড করা যেতে পারে।
এলএলএম ইনফারেন্স এপিআই শুরু করার আগে, সমর্থিত একটি মডেল ডাউনলোড করুন এবং আপনার প্রকল্প ডিরেক্টরিতে ফাইলটি সংরক্ষণ করুন।
জেমমা -২ 2 বি
জেমমা -২ 2 বি হ'ল লাইটওয়েটের জেমমা পরিবারের সর্বশেষতম মডেল, জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে নির্মিত অত্যাধুনিক ওপেন মডেল। মডেলটিতে 2 বি পরামিতি এবং খোলা ওজন রয়েছে। জেমমা -২ 2 বি এর শ্রেণীর মডেলগুলির জন্য শিল্প যুক্তি দক্ষতার জন্য পরিচিত।
জেমমা -২ 2 বি মডেলগুলি নিম্নলিখিত রূপগুলিতে উপলব্ধ:
- জেমমা 2-2 বি-আইটি-সিপিইউ-ইন্ট 8 : সিপিইউ সামঞ্জস্যতার সাথে জেমমা -২ 2 বি 8-বিট মডেল।
- জেমমা 2-2 বি-ইটি-জিপিইউ-ইন্ট 8 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা -২ 2 বি 8-বিট মডেল।
আপনি অ্যাপ্লিকেশনটিতে এটি যুক্ত করার আগে মডেলটি টিউন করতে এবং নতুন ওজন যুক্ত করতে পারেন। টিউনিং এবং জেমমাকে কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, টিউনিং জেম্মাকে দেখুন। কেগল মডেলগুলি থেকে জেমমা ডাউনলোড করার পরে, মডেলটি ইতিমধ্যে মিডিয়াপাইপ টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে।
জেমমা 2 বি
জেমমা 2 বি জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে নির্মিত হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবারের একটি অংশ। মডেলটিতে 2 বি পরামিতি এবং খোলা ওজন রয়েছে। এই মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ বিভিন্ন পাঠ্য প্রজন্মের কাজের জন্য উপযুক্ত।
জেমমা 2 বি মডেলগুলি নিম্নলিখিত রূপগুলিতে উপলব্ধ:
- জেমমা -২ বি-ইট-সিপিইউ-ইনট 4 : সিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 4-বিট মডেল।
- জেমমা -২ বি-ইট-সিপিইউ-ইন্ট 8 : সিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 8-বিট মডেল।
- জেমমা -২ বি-ইটি-জিপিইউ-ইনট 4 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 4-বিট মডেল।
- জেমমা -২ বি-ইটি-জিপিইউ-ইন্ট 8 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা 2 বি 8-বিট মডেল।
আপনি অ্যাপ্লিকেশনটিতে এটি যুক্ত করার আগে মডেলটি টিউন করতে এবং নতুন ওজন যুক্ত করতে পারেন। টিউনিং এবং জেমমাকে কাস্টমাইজ করার বিষয়ে আরও তথ্যের জন্য, টিউনিং জেম্মাকে দেখুন। কেগল মডেলগুলি থেকে জেমমা ডাউনলোড করার পরে, মডেলটি ইতিমধ্যে মিডিয়াপাইপ টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে।
জেমমা 7 বি
জেমমা 7 বি 7 বি প্যারামিটার এবং খোলা ওজন সহ একটি বৃহত্তর জেমমা মডেল। মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ বিভিন্ন পাঠ্য প্রজন্মের কাজের জন্য আরও শক্তিশালী। জেমমা 7 বি কেবল ওয়েবে সমর্থিত।
জেমমা 7 বি মডেল একটি বৈকল্পিক আসে:
- জেমমা -1.1-7 বি-ইট-জিপিইউ-ইন্ট 8 : জিপিইউ সামঞ্জস্যতার সাথে জেমমা 7 বি 8-বিট মডেল।
কাগল মডেলগুলি থেকে জেমমা ডাউনলোড করার পরে, মডেলটি ইতিমধ্যে মিডিয়াপাইপের সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে।
ফ্যালকন 1 বি
ফ্যালকন -1 বি হ'ল 1 বিলিয়ন প্যারামিটার কার্যকারণ ডিকোডার-কেবলমাত্র মডেল 350 বি টোকেন রিফাইনডওয়েবের উপর প্রশিক্ষিত।
এলএলএম ইনফারেন্স এপিআইয়ের জন্য নিম্নলিখিত ফাইলগুলি স্থানীয়ভাবে ডাউনলোড এবং সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
pytorch_model.bin
ফ্যালকন মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করতে প্রস্তুত। রূপান্তর মডেলটির পদক্ষেপগুলি মিডিয়াপাইপ ফর্ম্যাটে অনুসরণ করুন।
স্ট্যাবেলএম 3 বি
স্ট্যাবেলএম -3 বি একটি 3 বিলিয়ন প্যারামিটার ডিকোডার-কেবলমাত্র ভাষা মডেল যা 4 টি যুগের জন্য 1 ট্রিলিয়ন টোকেন বিভিন্ন ইংরেজি এবং কোড ডেটাসেটগুলিতে প্রাক প্রশিক্ষিত।
এলএলএম ইনফারেন্স এপিআইয়ের জন্য নিম্নলিখিত ফাইলগুলি স্থানীয়ভাবে ডাউনলোড এবং সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model.safetensors
স্ট্যাবেলএম মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তরিত হতে প্রস্তুত। রূপান্তর মডেলটির পদক্ষেপগুলি মিডিয়াপাইপ ফর্ম্যাটে অনুসরণ করুন।
ফি-2
পিএইচআই -2 একটি 2.7 বিলিয়ন প্যারামিটার ট্রান্সফর্মার মডেল। এটি বিভিন্ন এনএলপি সিন্থেটিক পাঠ্য এবং ফিল্টার করা ওয়েবসাইটগুলি ব্যবহার করে প্রশিক্ষণ দেওয়া হয়েছিল। মডেলটি প্রশ্ন-উত্তর, চ্যাট এবং কোড ফর্ম্যাট ব্যবহার করে অনুরোধগুলির জন্য সবচেয়ে উপযুক্ত।
এলএলএম ইনফারেন্স এপিআইয়ের জন্য নিম্নলিখিত ফাইলগুলি স্থানীয়ভাবে ডাউনলোড এবং সংরক্ষণ করা প্রয়োজন:
-
tokenizer.json
-
tokenizer_config.json
-
model-00001-of-00002.safetensors
-
model-00002-of-00002.safetensors
পিএইচআই -2 মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করতে প্রস্তুত। রূপান্তর মডেলটির পদক্ষেপগুলি মিডিয়াপাইপ ফর্ম্যাটে অনুসরণ করুন।
এআই এজ রফতানি মডেল
এআই এজ একটি গুগল অফার যা আপনাকে ব্যবহারকারী-মানচিত্রযুক্ত মডেলগুলিকে মাল্টি-সিগনচার টেনসরফ্লো লাইট মডেলগুলিতে রূপান্তর করতে দেয়। মডেলগুলি ম্যাপিং এবং রফতানি করার বিষয়ে আরও তথ্যের জন্য, এআই এজ টর্চ গিটহাব পৃষ্ঠাটি দেখুন।
মডেলটি টিএফএলাইট ফর্ম্যাটে রফতানি করার পরে, মডেলটি মিডিয়াপাইপ ফর্ম্যাটে রূপান্তর করতে প্রস্তুত। আরও তথ্যের জন্য, রূপান্তর মডেলটি মিডিয়াপাইপ ফর্ম্যাটে দেখুন।
মডেল রূপান্তর মিডিয়াপাইপ ফর্ম্যাটে
নেটিভ মডেল রূপান্তর
আপনি যদি কোনও বাহ্যিক এলএলএম (পিএইচআই -2, ফ্যালকন, বা স্ট্যাবলেলএম) বা জেমমার একটি নন-ক্যাগল সংস্করণ ব্যবহার করছেন, মিডিয়াপাইপের সাথে সামঞ্জস্যপূর্ণ হতে মডেলটি ফর্ম্যাট করতে আমাদের রূপান্তর স্ক্রিপ্টগুলি ব্যবহার করুন।
মডেল রূপান্তর প্রক্রিয়াটির জন্য মিডিয়াপাইপ পিওয়াইপিআই প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্টটি 0.10.11
পরে সমস্ত মিডিয়াপাইপ প্যাকেজগুলিতে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল করুন এবং আমদানি করুন:
$ 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)
লোরা মডেলকে রূপান্তর করতে, ConversionConfig
বেস মডেল বিকল্পগুলির পাশাপাশি অতিরিক্ত লোরা বিকল্পগুলি নির্দিষ্ট করা উচিত। লক্ষ্য করুন যেহেতু এপিআই কেবল জিপিইউর সাথে লোরা অনুমানকে সমর্থন করে, তাই ব্যাকএন্ডটি অবশ্যই '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)
রূপান্তরকারী দুটি টিফ্লাইট ফ্ল্যাটবফার ফাইলগুলি আউটপুট করবে, একটি বেস মডেলের জন্য এবং অন্যটি লোরা মডেলের জন্য।
প্যারামিটার | বর্ণনা | গৃহীত মান |
---|---|---|
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", "ফ্যালকন_আরডাব্লু_1 বি", "স্ট্যাবেলএম_4 ই 1 টি_3 বি", "জেমমা_2 বি"} |
backend | প্রসেসর (প্রতিনিধি) মডেলটি চালাত। | {"সিপিইউ", "জিপিইউ"} |
output_dir | আউটপুট ডিরেক্টরিতে পাথ যা প্রতি স্তর ওজন ফাইলগুলি হোস্ট করে। | PATH |
output_tflite_file | আউটপুট ফাইলের পথ। উদাহরণস্বরূপ, "মডেল_সিপিইউ.বিন" বা "মডেল_জিপিইউ.বিন"। এই ফাইলটি কেবল এলএলএম ইনফারেন্স এপিআইয়ের সাথে সামঞ্জস্যপূর্ণ এবং এটি সাধারণ `টিফ্লাইট` ফাইল হিসাবে ব্যবহার করা যাবে না। | PATH |
vocab_model_file | tokenizer.json এবং tokenizer_config.json ফাইলগুলি সঞ্চয় করে এমন ডিরেক্টরিটির পথ। জেমার জন্য, একক tokenizer.model ফাইলের দিকে নির্দেশ করুন। | PATH |
lora_ckpt | লোরা অ্যাডাপ্টারের ওজন সঞ্চয় করে এমন সেফটেনসর ফাইলের লোরা সিকিপিটি -র পথ। | PATH |
lora_rank | লোরা সিকিপিটি র্যাঙ্কের প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা। লোরার ওজন রূপান্তর করার জন্য প্রয়োজনীয়। যদি সরবরাহ না করা হয়, তবে রূপান্তরকারী ধরে নেয় যে কোনও লোরার ওজন নেই। দ্রষ্টব্য: কেবলমাত্র জিপিইউ ব্যাকএন্ড লোরাকে সমর্থন করে। | পূর্ণসংখ্যা |
lora_output_tflite_file | লোরার ওজনের জন্য আউটপুট টিফ্লাইট ফাইলের নাম। | PATH |
এআই এজ মডেল রূপান্তর
আপনি যদি এআই এজের মাধ্যমে টিএফএলআইটি মডেলটিতে ম্যাপ করা এলএলএম ব্যবহার করছেন তবে একটি টাস্ক বান্ডিল তৈরি করতে আমাদের বান্ডিলিং স্ক্রিপ্টটি ব্যবহার করুন। বান্ডিলিং প্রক্রিয়াটি ম্যাপযুক্ত মডেলটিকে অতিরিক্ত মেটাডেটা (যেমন, টোকেনাইজার প্যারামিটার) সহ শেষ থেকে শেষের অনুমানটি চালানোর জন্য প্রয়োজনীয় প্যাক করে।
মডেল বান্ডিলিং প্রক্রিয়াটির জন্য মিডিয়াপাইপ পিওয়াইপিআই প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্টটি 0.10.14
পরে সমস্ত মিডিয়াপাইপ প্যাকেজগুলিতে উপলব্ধ।
নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল করুন এবং আমদানি করুন:
$ 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 | এআই প্রান্তের পথটি রফতানি টিফ্লাইট মডেল। | PATH |
tokenizer_model | বাক্যপিস টোকেনাইজার মডেলের পথ। | PATH |
start_token | মডেল নির্দিষ্ট শুরু টোকেন। প্রারম্ভিক টোকেন অবশ্যই সরবরাহ করা টোকেনাইজার মডেলটিতে উপস্থিত থাকতে হবে। | STRING |
stop_tokens | মডেল নির্দিষ্ট স্টপ টোকেন। স্টপ টোকেনগুলি অবশ্যই সরবরাহ করা টোকেনাইজার মডেলটিতে উপস্থিত থাকতে হবে। | তালিকা [স্ট্রিং] |
output_filename | আউটপুট টাস্ক বান্ডিল ফাইলের নাম। | PATH |
লোরা কাস্টমাইজেশন
মিডিয়াপাইপ এলএলএম ইনফারেন্স এপিআই বড় ভাষার মডেলগুলির জন্য লো-র্যাঙ্ক অভিযোজন (এলওআরএ) সমর্থন করার জন্য কনফিগার করা যেতে পারে। সূক্ষ্ম সুরযুক্ত লোরা মডেলগুলি ব্যবহার করে, বিকাশকারীরা ব্যয়বহুল প্রশিক্ষণ প্রক্রিয়াটির মাধ্যমে এলএলএমগুলির আচরণকে কাস্টমাইজ করতে পারে।এলএলএম ইনফারেন্স এপিআইয়ের এলওআরএ সমর্থন জেমমা -২ বি এবং জিপিইউ ব্যাকএন্ডের জন্য পিএইচআই -২ মডেলের জন্য কাজ করে, কেবলমাত্র মনোযোগ স্তরগুলির জন্য লোরার ওজন প্রযোজ্য। এই প্রাথমিক বাস্তবায়ন আগামী আপডেটে আরও মডেল এবং বিভিন্ন ধরণের স্তরকে সমর্থন করার পরিকল্পনা নিয়ে ভবিষ্যতের বিকাশের জন্য পরীক্ষামূলক এপিআই হিসাবে কাজ করে।
লোরা মডেল প্রস্তুত করুন
সমর্থিত মডেল প্রকারগুলি, জেমমা -২ বি বা পিএইচআই -২ এর সাথে আপনার নিজের ডেটাসেটে একটি সূক্ষ্ম সুরযুক্ত লোরা মডেল প্রশিক্ষণের জন্য হিউজিংফেসের নির্দেশাবলী অনুসরণ করুন। জেমমা -২ বি এবং পিএইচআই -২ মডেলগুলি উভয়ই সেফটেনসর ফর্ম্যাটে হিউজিংফেসে উপলব্ধ। যেহেতু এলএলএম ইনফারেন্স এপিআই কেবল মনোযোগ স্তরগুলিতে লোরাকে সমর্থন করে, কেবলমাত্র 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"],
)
পরীক্ষার জন্য, এখানে সর্বজনীনভাবে অ্যাক্সেসযোগ্য সূক্ষ্ম-সুরযুক্ত লোরা মডেল রয়েছে যা এলএলএম অনুমানের এপিআইয়ের সাথে হিউজিংফেসে উপলব্ধ। উদাহরণস্বরূপ, জেমমা -2 বি এর জন্য মনস্টারাপি/জেমমা -2 বি-লোরা-ম্যাথ-ওআরসিএ -200 কে এবং পিএইচআই -2 এর জন্য লোল 25/পিএইচআই -2-এসএফটি-উল্ট্রাচ্যাট-লোরা ।
প্রস্তুত ডেটাসেট সম্পর্কে প্রশিক্ষণ এবং মডেলটি সংরক্ষণ করার পরে, আপনি একটি adapter_model.safetensors
ফাইল পান যা সূক্ষ্ম সুরযুক্ত লোরা মডেলের ওজনযুক্ত। সেফটেনসর ফাইলটি হ'ল মডেল রূপান্তরটিতে ব্যবহৃত লোরা চেকপয়েন্ট।
পরবর্তী পদক্ষেপ হিসাবে, আপনার মিডিয়াপাইপ পাইথন প্যাকেজটি ব্যবহার করে মডেল ওজনকে একটি টেনসরফ্লো লাইট ফ্ল্যাটবফার রূপান্তর করতে হবে। ConversionConfig
বেস মডেল বিকল্পগুলির পাশাপাশি অতিরিক্ত লোরা বিকল্পগুলি নির্দিষ্ট করা উচিত। লক্ষ্য করুন যেহেতু এপিআই কেবল জিপিইউর সাথে লোরা অনুমানকে সমর্থন করে, তাই ব্যাকএন্ডটি অবশ্যই '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)
রূপান্তরকারী দুটি টিফ্লাইট ফ্ল্যাটবফার ফাইলগুলি আউটপুট করবে, একটি বেস মডেলের জন্য এবং অন্যটি লোরা মডেলের জন্য।
লোরা মডেল অনুমান
ওয়েব, অ্যান্ড্রয়েড এবং আইওএস এলএলএম ইনফারেন্স এপিআই লোরা মডেল অনুমানকে সমর্থন করার জন্য আপডেট করা হয়েছে। ওয়েব ডায়নামিক লোরা সমর্থন করে, যা রানটাইমের সময় বিভিন্ন লোরা মডেলগুলি স্যুইচ করতে পারে। অ্যান্ড্রয়েড এবং আইওএস স্ট্যাটিক লোরা সমর্থন করে, যা কার্যটির জীবদ্দশায় একই লোরা ওজন ব্যবহার করে।
অ্যান্ড্রয়েড সূচনা করার সময় স্ট্যাটিক লোরা সমর্থন করে। একটি লোরা মডেল লোড করতে, ব্যবহারকারীরা লোরা মডেল পাথের পাশাপাশি বেস এলএলএম নির্দিষ্ট করে।// 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)
লোরার সাথে এলএলএম অনুমান চালানোর জন্য, বেস মডেল হিসাবে একই generateResponse()
বা generateResponseAsync()
পদ্ধতিগুলি ব্যবহার করুন।