এলএলএম ইনফারেন্স গাইড

LLM ইনফারেন্স API আপনাকে বৃহৎ ভাষা মডেলগুলি (LLMs) সম্পূর্ণরূপে অন-ডিভাইস চালাতে দেয়, যা আপনি পাঠ্য তৈরি করা, প্রাকৃতিক ভাষা আকারে তথ্য পুনরুদ্ধার করা এবং নথির সংক্ষিপ্তসারের মতো বিস্তৃত কাজ সম্পাদন করতে ব্যবহার করতে পারেন। টাস্কটি একাধিক টেক্সট-টু-টেক্সট বৃহৎ ভাষার মডেলের জন্য অন্তর্নির্মিত সমর্থন প্রদান করে, যাতে আপনি আপনার অ্যাপ এবং পণ্যগুলিতে সর্বশেষ অন-ডিভাইস জেনারেটিভ এআই মডেলগুলি প্রয়োগ করতে পারেন।

এটা চেষ্টা করুন!

কাজটি জেমার নিম্নলিখিত রূপগুলিকে সমর্থন করে: জেমা-2 2B, জেমা 2B, এবং জেমা 7B৷ Gemma হল হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবার যা জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি৷ এটি নিম্নলিখিত বাহ্যিক মডেলগুলিকেও সমর্থন করে: Phi-2 , Falcon-RW-1B এবং StableLM-3B

সমর্থিত মডেলগুলি ছাড়াও, আপনি PyTorch মডেলগুলিকে মাল্টি-সিগনেচার LiteRT ( tflite ) মডেলগুলিতে রপ্তানি করতে Google-এর AI এজ টর্চ ব্যবহার করতে পারেন, যা LLM ইনফারেন্স API-এর সাথে সামঞ্জস্যপূর্ণ টাস্ক বান্ডেলগুলি তৈরি করতে টোকেনাইজার পরামিতিগুলির সাথে একত্রিত হয়৷ AI এজ টর্চ দিয়ে রূপান্তরিত মডেলগুলি শুধুমাত্র CPU ব্যাকএন্ডে চলতে পারে এবং তাই Android এবং iOS-এ সীমাবদ্ধ।

শুরু করুন

আপনার লক্ষ্য প্ল্যাটফর্মের জন্য এই বাস্তবায়ন নির্দেশিকাগুলির একটি অনুসরণ করে এই কাজটি ব্যবহার করা শুরু করুন। এই প্ল্যাটফর্ম-নির্দিষ্ট গাইডগুলি আপনাকে এই টাস্কের একটি মৌলিক বাস্তবায়নের মাধ্যমে নিয়ে যায়, কোড উদাহরণ সহ যেগুলি উপলব্ধ মডেল এবং প্রস্তাবিত কনফিগারেশন বিকল্পগুলি ব্যবহার করে:

টাস্কের বিবরণ

এই বিভাগটি এই কাজের ক্ষমতা, ইনপুট, আউটপুট এবং কনফিগারেশন বিকল্পগুলি বর্ণনা করে।

বৈশিষ্ট্য

LLM ইনফারেন্স API-এ নিম্নলিখিত মূল বৈশিষ্ট্যগুলি রয়েছে:

  1. পাঠ্য থেকে পাঠ্য প্রজন্ম - একটি ইনপুট পাঠ্য প্রম্পটের উপর ভিত্তি করে পাঠ্য তৈরি করুন।
  2. LLM নির্বাচন - আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে অ্যাপটিকে সাজাতে একাধিক মডেল প্রয়োগ করুন। আপনি আবার প্রশিক্ষণ দিতে এবং মডেলে কাস্টমাইজড ওজন প্রয়োগ করতে পারেন।
  3. LoRA সমর্থন - আপনার সমস্ত ডেটাসেটে প্রশিক্ষণের মাধ্যমে, অথবা ওপেন-সোর্স সম্প্রদায় থেকে প্রস্তুত প্রি-বিল্ট LoRA মডেলগুলি নিয়ে (AI Edge Torch Generative API-এর সাথে রূপান্তরিত মডেলগুলির সাথে সামঞ্জস্যপূর্ণ নয়) LORA মডেলের সাথে LLM ক্ষমতা প্রসারিত এবং কাস্টমাইজ করুন।
টাস্ক ইনপুট টাস্ক আউটপুট
LLM ইনফারেন্স API নিম্নলিখিত ইনপুটগুলি গ্রহণ করে:
  • টেক্সট প্রম্পট (যেমন, একটি প্রশ্ন, একটি ইমেল বিষয়, একটি নথি সংক্ষিপ্ত করা হবে)
LLM ইনফারেন্স API নিম্নলিখিত ফলাফলগুলি আউটপুট করে:
  • ইনপুট প্রম্পটের উপর ভিত্তি করে তৈরি করা পাঠ্য (যেমন, প্রশ্নের উত্তর, একটি ইমেল খসড়া, নথির সারাংশ)

কনফিগারেশন অপশন

এই কাজের নিম্নলিখিত কনফিগারেশন বিকল্প আছে:

বিকল্পের নাম বর্ণনা মান পরিসীমা ডিফল্ট মান
modelPath প্রজেক্ট ডিরেক্টরির মধ্যে মডেলটি যেখানে সংরক্ষণ করা হয় তার পথ। PATH N/A
maxTokens মডেলটি পরিচালনা করে সর্বাধিক সংখ্যক টোকেন (ইনপুট টোকেন + আউটপুট টোকেন)। পূর্ণসংখ্যা 512
topK প্রজন্মের প্রতিটি ধাপে মডেলটি বিবেচনা করে টোকেনের সংখ্যা। পূর্বাভাসগুলিকে শীর্ষ k সর্বাধিক সম্ভাব্য টোকেনে সীমাবদ্ধ করে৷ পূর্ণসংখ্যা 40
temperature প্রজন্মের সময় যে পরিমাণ এলোমেলোভাবে প্রবর্তিত হয়। একটি উচ্চ তাপমাত্রার ফলে উত্পন্ন পাঠে আরও সৃজনশীলতা আসে, যখন নিম্ন তাপমাত্রা আরও অনুমানযোগ্য প্রজন্ম তৈরি করে। ভাসা 0.8
randomSeed টেক্সট তৈরির সময় ব্যবহৃত এলোমেলো বীজ। পূর্ণসংখ্যা 0
loraPath ডিভাইসে স্থানীয়ভাবে LoRA মডেলের পরম পথ। দ্রষ্টব্য: এটি শুধুমাত্র GPU মডেলের সাথে সামঞ্জস্যপূর্ণ। PATH N/A
resultListener ফলাফল শ্রোতাকে অ্যাসিঙ্ক্রোনাসভাবে ফলাফল পেতে সেট করে। অ্যাসিঙ্ক জেনারেশন পদ্ধতি ব্যবহার করার সময় শুধুমাত্র প্রযোজ্য। N/A N/A
errorListener একটি ঐচ্ছিক ত্রুটি শ্রোতা সেট করে। N/A N/A

মডেল

LLM ইনফারেন্স API অনেক টেক্সট-টু-টেক্সট বৃহৎ ভাষার মডেল সমর্থন করে, যার মধ্যে কয়েকটি মডেলের জন্য অন্তর্নির্মিত সমর্থন রয়েছে যা ব্রাউজার এবং মোবাইল ডিভাইসে চালানোর জন্য অপ্টিমাইজ করা হয়েছে। এই লাইটওয়েট মডেলগুলি সম্পূর্ণরূপে ডিভাইসে অনুমান চালানোর জন্য ব্যবহার করা যেতে পারে।

এলএলএম ইনফারেন্স এপিআই শুরু করার আগে, একটি মডেল ডাউনলোড করুন এবং ফাইলটি আপনার প্রকল্প ডিরেক্টরির মধ্যে সংরক্ষণ করুন। আপনি একটি পূর্ব-রূপান্তরিত মডেল ব্যবহার করতে পারেন বা একটি মডেলকে মিডিয়াপিপ-সামঞ্জস্যপূর্ণ ফর্ম্যাটে রূপান্তর করতে পারেন৷

LLM ইনফারেন্স API দুটি বিভাগের ধরণের মডেলের সাথে সামঞ্জস্যপূর্ণ, যার মধ্যে কিছু মডেল রূপান্তর প্রয়োজন। আপনার মডেলের জন্য প্রয়োজনীয় পদক্ষেপ পদ্ধতি সনাক্ত করতে টেবিলটি ব্যবহার করুন।

মডেল রূপান্তর পদ্ধতি সামঞ্জস্যপূর্ণ প্ল্যাটফর্ম ফাইলের ধরন
সমর্থিত মডেল Gemma 2B, Gemma 7B, Gemma-2 2B, Phi-2, StableLM, Falcon মিডিয়াপাইপ অ্যান্ড্রয়েড, আইওএস, ওয়েব .বিন
অন্যান্য PyTorch মডেল সমস্ত PyTorch LLM মডেল এআই এজ টর্চ জেনারেটিভ লাইব্রেরি অ্যান্ড্রয়েড, আইওএস .টাস্ক

আমরা Kaggle-এ Gemma 2B, Gemma 7B, এবং Gemma-2 2B-এর জন্য রূপান্তরিত .bin ফাইলগুলি হোস্ট করছি। এই মডেলগুলি সরাসরি আমাদের LLM ইনফারেন্স API ব্যবহার করে স্থাপন করা যেতে পারে। আপনি কীভাবে অন্যান্য মডেলগুলিকে রূপান্তর করতে পারেন তা জানতে, মডেল রূপান্তর বিভাগটি দেখুন৷

Gemma-2 2B

Gemma-2 2B হল জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি লাইটওয়েট, অত্যাধুনিক ওপেন মডেলগুলির জেমা পরিবারের সর্বশেষ মডেল। মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। Gemma-2 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-2 2B ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷

Gemma 2B

জেমিনি মডেলগুলি তৈরি করতে ব্যবহৃত একই গবেষণা এবং প্রযুক্তি থেকে তৈরি হালকা ওজনের, অত্যাধুনিক ওপেন মডেলগুলির একটি পরিবারের একটি অংশ হল জেমা 2বি ৷ মডেলটিতে 2B প্যারামিটার এবং খোলা ওজন রয়েছে। এই মডেলটি প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য উপযুক্ত।

Gemma 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 2B ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe টাস্কগুলির সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷

Gemma 7B

Gemma 7B হল 7B প্যারামিটার এবং খোলা ওজন সহ একটি বড় জেমা মডেল। প্রশ্নের উত্তর, সংক্ষিপ্তকরণ এবং যুক্তি সহ পাঠ্য তৈরির বিভিন্ন কাজের জন্য মডেলটি আরও শক্তিশালী। Gemma 7B শুধুমাত্র ওয়েবে সমর্থিত।

Gemma 7B ডাউনলোড করুন

Gemma 7B মডেলটি একটি ভেরিয়েন্টে আসে:

  • gemma-1.1-7b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 7B 8-বিট মডেল।

Kaggle Models থেকে Gemma 7B ডাউনলোড করার পরে, মডেলটি ইতিমধ্যেই MediaPipe-এর সাথে ব্যবহারের জন্য উপযুক্ত ফর্ম্যাটে রয়েছে৷

ফ্যালকন 1 বি

Falcon-1B হল একটি 1 বিলিয়ন প্যারামিটার কার্যকারণ ডিকোডার-শুধুমাত্র মডেল যা RefinedWeb- এর 350B টোকেনগুলিতে প্রশিক্ষিত।

Falcon 1B ডাউনলোড করুন

LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:

  • tokenizer.json
  • tokenizer_config.json
  • pytorch_model.bin

ফ্যালকন মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি একটি রূপান্তর স্ক্রিপ্ট সহ MediaPipe ফর্ম্যাটে রূপান্তরিত হওয়ার জন্য প্রস্তুত৷ সমর্থিত মডেল বিভাগের জন্য রূপান্তর স্ক্রিপ্টের ধাপগুলি অনুসরণ করুন৷

StableLM 3B

StableLM-3B হল একটি 3 বিলিয়ন প্যারামিটার ডিকোডার-শুধুমাত্র ভাষার মডেল যা 1 ট্রিলিয়ন টোকেন বৈচিত্র্যময় ইংরেজি এবং 4টি যুগের জন্য কোড ডেটাসেটের উপর প্রি-প্রশিক্ষিত।

StableLM 3B ডাউনলোড করুন

LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:

  • tokenizer.json
  • tokenizer_config.json
  • model.safetensors

StableLM মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি একটি রূপান্তর স্ক্রিপ্ট সহ MediaPipe ফর্ম্যাটে রূপান্তরিত হওয়ার জন্য প্রস্তুত৷ সমর্থিত মডেল বিভাগের জন্য রূপান্তর স্ক্রিপ্টের ধাপগুলি অনুসরণ করুন৷

ফি-2

Phi-2 একটি 2.7 বিলিয়ন প্যারামিটার ট্রান্সফরমার মডেল। এটি বিভিন্ন এনএলপি সিন্থেটিক পাঠ্য এবং ফিল্টার করা ওয়েবসাইট ব্যবহার করে প্রশিক্ষিত হয়েছিল। প্রশ্ন-উত্তর, চ্যাট এবং কোড বিন্যাস ব্যবহার করে প্রম্পটের জন্য মডেলটি সবচেয়ে উপযুক্ত।

Phi-2 ডাউনলোড করুন

LLM ইনফারেন্স API-এর জন্য নিম্নলিখিত ফাইলগুলি ডাউনলোড এবং স্থানীয়ভাবে সংরক্ষণ করা প্রয়োজন:

  • tokenizer.json
  • tokenizer_config.json
  • model-00001-of-00002.safetensors
  • model-00002-of-00002.safetensors

Phi-2 মডেল ফাইলগুলি ডাউনলোড করার পরে, মডেলটি একটি রূপান্তর স্ক্রিপ্ট সহ MediaPipe ফরম্যাটে রূপান্তর করার জন্য প্রস্তুত। সমর্থিত মডেল বিভাগের জন্য রূপান্তর স্ক্রিপ্টের ধাপগুলি অনুসরণ করুন৷

জেনারেটিভ পাইটর্চ মডেল

পাইটর্চ জেনারেটিভ মডেলগুলিকে এআই এজ টর্চ জেনারেটিভ এপিআই-এর সাথে মিডিয়াপাইপ-সামঞ্জস্যপূর্ণ ফর্ম্যাটে রূপান্তর করা যেতে পারে। আপনি API ব্যবহার করতে পারেন PyTorch মডেলগুলিকে মাল্টি-সিগনেচার LiteRT (TensorFlow Lite) মডেলে রূপান্তর করতে। ম্যাপিং এবং মডেল রপ্তানি সম্পর্কে আরও বিশদ বিবরণের জন্য, এআই এজ টর্চ গিটহাব পৃষ্ঠাটি দেখুন।

আপনি যদি একটি PyTorch মডেল রূপান্তর করতে AI Edge Torch Generative API ব্যবহার করতে চান, তাহলে PyTorch মডেল বিভাগে টর্চ জেনারেটিভ কনভার্টারের ধাপগুলি অনুসরণ করুন৷

মডেল রূপান্তর

MediaPipe LLM ইনফারেন্স API আপনাকে ডিভাইসে বিভিন্ন ধরণের বড় ভাষার মডেল চালাতে দেয়। এর মধ্যে এমন মডেল রয়েছে যেগুলিকে মিডিয়াপাইপ-সামঞ্জস্যপূর্ণ ফর্ম্যাটে পূর্বে রূপান্তর করা হয়েছে, সেইসাথে অন্যান্য মডেলগুলি যা রূপান্তর স্ক্রিপ্ট বা AI এজ টর্চ লাইব্রেরির মাধ্যমে রূপান্তরিত করা যেতে পারে৷

LLM ইনফারেন্স API .bin এবং .task ফাইল ফরম্যাটে মডেল গ্রহণ করে। রূপান্তর স্ক্রিপ্টের সাথে রূপান্তরিত পূর্ব-রূপান্তরিত মডেল এবং মডেলগুলি হবে .bin ফাইল, যখন AI এজ টর্চ লাইব্রেরির সাথে রূপান্তরিত মডেলগুলি হবে .task ফাইল৷ আপনার রূপান্তরিত মডেলের ফাইল বিন্যাস ম্যানুয়ালি পরিবর্তন করবেন না।

LLM ইনফারেন্স API-এ তিনটি মডেল রূপান্তর পাথ রয়েছে:

প্রাক-রূপান্তরিত মডেল

Gemma-2 2B, Gemma 2B এবং Gemma 7B মডেলগুলি মিডিয়াপাইপ ফর্ম্যাটে পূর্বে রূপান্তরিত মডেল হিসাবে উপলব্ধ। এই মডেলগুলিতে ব্যবহারকারীর কাছ থেকে কোনও অতিরিক্ত রূপান্তর পদক্ষেপের প্রয়োজন হয় না এবং LLM ইনফারেন্স API-এর সাথে যেমন-ই চালানো যেতে পারে।

আপনি Kaggle মডেল থেকে Gemma-2 2B ডাউনলোড করতে পারেন:

  • gemma2-2b-it-cpu-int8 : CPU সামঞ্জস্য সহ জেমমা-2 2B 8-বিট মডেল।
  • gemma2-2b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা-2 2B 8-বিট মডেল।

আপনি Kaggle মডেল থেকে 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-বিট মডেল।

আপনি Kaggle মডেল থেকে Gemma 7B ডাউনলোড করতে পারেন:

  • gemma-1.1-7b-it-gpu-int8 : জিপিইউ সামঞ্জস্য সহ জেমমা 7B 8-বিট মডেল।

জেমা মডেল সম্পর্কে আরও তথ্যের জন্য, জেমমা-2 2বি , জেমমা 2বি এবং জেমা 7বি- এর ডকুমেন্টেশন দেখুন।

সমর্থিত মডেলের জন্য রূপান্তর স্ক্রিপ্ট

MediaPipe প্যাকেজ নিম্নলিখিত বাহ্যিক মডেলগুলিকে একটি MediaPipe-সামঞ্জস্যপূর্ণ বিন্যাসে রূপান্তর করতে একটি রূপান্তর স্ক্রিপ্ট অফার করে:

সমর্থিত বাহ্যিক মডেল সম্পর্কে আরও তথ্যের জন্য, Falcon 1B , StableLM 3B , এবং Phi-2 এর ডকুমেন্টেশন দেখুন।

মডেল রূপান্তর প্রক্রিয়ার জন্য 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

PyTorch মডেলের জন্য টর্চ জেনারেটিভ কনভার্টার

পাইটর্চ জেনারেটিভ মডেলগুলিকে এআই এজ টর্চ জেনারেটিভ এপিআই-এর সাথে মিডিয়াপাইপ-সামঞ্জস্যপূর্ণ ফর্ম্যাটে রূপান্তর করা যেতে পারে। আপনি LLM ইনফারেন্স API-এর সাথে ব্যবহার করতে PyTorch LLM-এর লেখক, রূপান্তর এবং পরিমাপ করতে API ব্যবহার করতে পারেন। টর্চ জেনারেটিভ কনভার্টার শুধুমাত্র CPU-র জন্য রূপান্তরিত হয় এবং কমপক্ষে 64 GBs RAM সহ একটি Linux মেশিন প্রয়োজন।

এআই এজ টর্চ জেনারেটিভ এপিআই এর সাথে একটি পাইটর্চ মডেলকে রূপান্তর করার জন্য নিম্নলিখিতগুলি জড়িত:

  1. PyTorch মডেল চেকপয়েন্ট ডাউনলোড করুন
  2. একটি MediaPipe-সামঞ্জস্যপূর্ণ ফাইল ফরম্যাটে ( .tflite ) মডেলটিকে লেখক, রূপান্তর এবং পরিমাপ করতে AI এজ টর্চ জেনারেটিভ API ব্যবহার করুন৷
  3. tflite ফাইল এবং মডেল টোকেনাইজার থেকে একটি টাস্ক বান্ডেল ( .task ) তৈরি করুন।

একটি টাস্ক বান্ডেল তৈরি করতে, একটি টাস্ক বান্ডেল তৈরি করতে বান্ডলিং স্ক্রিপ্ট ব্যবহার করুন। এন্ড-টু-এন্ড ইনফারেন্স চালানোর জন্য প্রয়োজনীয় অতিরিক্ত মেটাডেটা (যেমন, টোকেনাইজার প্যারামিটার) দিয়ে বান্ডলিং প্রক্রিয়া ম্যাপ করা মডেলটিকে প্যাক করে।

মডেল বান্ডলিং প্রক্রিয়ার জন্য MediaPipe PyPI প্যাকেজ প্রয়োজন। রূপান্তর স্ক্রিপ্ট 0.10.14 পরে সমস্ত MediaPipe প্যাকেজে উপলব্ধ।

নিম্নলিখিতগুলির সাথে নির্ভরতাগুলি ইনস্টল এবং আমদানি করুন:

$ python3 -m pip install mediapipe

মডেল বান্ডিল করতে genai.bundler লাইব্রেরি ব্যবহার করুন:

import mediapipe as mp
from mediapipe.tasks.python.genai import bundler

config = bundler.BundleConfig(
    tflite_model=TFLITE_MODEL,
    tokenizer_model=TOKENIZER_MODEL,
    start_token=START_TOKEN,
    stop_tokens=STOP_TOKENS,
    output_filename=OUTPUT_FILENAME,
    enable_bytes_to_unicode_mapping=ENABLE_BYTES_TO_UNICODE_MAPPING,
)
bundler.create_bundle(config)
প্যারামিটার বর্ণনা গৃহীত মান
tflite_model AI এজ রপ্তানিকৃত TFLite মডেলের পথ। PATH
tokenizer_model SentencePiece tokenizer মডেলের পথ। PATH
start_token মডেল নির্দিষ্ট স্টার্ট টোকেন। প্রদত্ত টোকেনাইজার মডেলে স্টার্ট টোকেন অবশ্যই উপস্থিত থাকতে হবে। STRING
stop_tokens মডেল নির্দিষ্ট স্টপ টোকেন. প্রদত্ত টোকেনাইজার মডেলে স্টপ টোকেন অবশ্যই উপস্থিত থাকতে হবে। তালিকা[STRING]
output_filename আউটপুট টাস্ক বান্ডেল ফাইলের নাম। PATH

LoRA কাস্টমাইজেশন

মিডিয়াপাইপ এলএলএম ইনফারেন্স এপিআই বৃহৎ ভাষার মডেলের জন্য নিম্ন-র্যাঙ্ক অ্যাডাপ্টেশন (LoRA) সমর্থন করার জন্য কনফিগার করা যেতে পারে। সূক্ষ্ম-টিউনড LoRA মডেলগুলি ব্যবহার করে, বিকাশকারীরা একটি ব্যয়-কার্যকর প্রশিক্ষণ প্রক্রিয়ার মাধ্যমে LLM-এর আচরণ কাস্টমাইজ করতে পারে।

LLM ইনফারেন্স API-এর LoRA সমর্থন সমস্ত Gemma ভেরিয়েন্ট এবং GPU ব্যাকএন্ডের জন্য Phi-2 মডেলের জন্য কাজ করে, LoRA ওজন শুধুমাত্র মনোযোগ স্তরগুলিতে প্রযোজ্য। এই প্রাথমিক বাস্তবায়ন ভবিষ্যতের উন্নয়নের জন্য একটি পরীক্ষামূলক API হিসাবে কাজ করে যাতে আগামী আপডেটগুলিতে আরও মডেল এবং বিভিন্ন ধরণের স্তর সমর্থন করার পরিকল্পনা রয়েছে।

LoRA মডেল প্রস্তুত করুন

আপনার নিজস্ব ডেটাসেটে সমর্থিত মডেলের ধরন, জেমা বা ফি-২ সহ একটি সূক্ষ্ম টিউন করা LoRA মডেল প্রশিক্ষণের জন্য HuggingFace-এর নির্দেশাবলী অনুসরণ করুন। Gemma-2 2B , Gemma 2B এবং Phi-2 মডেল দুটিই সেফটেনসর ফরম্যাটে HuggingFace-এ উপলব্ধ। যেহেতু LLM ইনফারেন্স API শুধুমাত্র মনোযোগের স্তরগুলিতে LoRA সমর্থন করে, তাই LoraConfig তৈরি করার সময় নিম্নলিখিত হিসাবে শুধুমাত্র মনোযোগ স্তরগুলি নির্দিষ্ট করুন:

# For Gemma
from peft import LoraConfig
config = LoraConfig(
    r=LORA_RANK,
    target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
)

# For Phi-2
config = LoraConfig(
    r=LORA_RANK,
    target_modules=["q_proj", "v_proj", "k_proj", "dense"],
)

পরীক্ষার জন্য, সর্বজনীনভাবে অ্যাক্সেসযোগ্য ফাইন-টিউনড LoRA মডেল রয়েছে যা HuggingFace-এ উপলব্ধ LLM ইনফারেন্স API-এর সাথে মানানসই। উদাহরণস্বরূপ, Gemma-2B-এর জন্য monsterapi/gemma-2b-lora-maths-orca-200k এবং Phi-2-এর জন্য lole25/phi-2-sft-ultrachat-lora

প্রস্তুতকৃত ডেটাসেটের প্রশিক্ষণ এবং মডেলটি সংরক্ষণ করার পরে, আপনি একটি adapter_model.safetensors ফাইল পাবেন যাতে সূক্ষ্ম-টিউন করা LoRA মডেলের ওজন রয়েছে। সেফটেনসর ফাইলটি মডেল রূপান্তরে ব্যবহৃত LoRA চেকপয়েন্ট।

পরবর্তী ধাপ হিসেবে, আপনাকে মিডিয়াপাইপ পাইথন প্যাকেজ ব্যবহার করে মডেলের ওজনকে টেনসরফ্লো লাইট ফ্ল্যাটবাফারে রূপান্তর করতে হবে। ConversionConfig এ বেস মডেলের বিকল্পগুলির পাশাপাশি অতিরিক্ত LoRA বিকল্পগুলি উল্লেখ করা উচিত। লক্ষ্য করুন যে যেহেতু API শুধুমাত্র GPU এর সাথে LoRA অনুমান সমর্থন করে, তাই ব্যাকএন্ড অবশ্যই 'gpu' তে সেট করতে হবে।

import mediapipe as mp
from mediapipe.tasks.python.genai import converter

config = converter.ConversionConfig(
  # Other params related to base model
  ...
  # Must use gpu backend for LoRA conversion
  backend='gpu',
  # LoRA related params
  lora_ckpt=LORA_CKPT,
  lora_rank=LORA_RANK,
  lora_output_tflite_file=LORA_OUTPUT_TFLITE_FILE,
)

converter.convert_checkpoint(config)

রূপান্তরকারী দুটি TFLite ফ্ল্যাটবাফার ফাইল আউটপুট করবে, একটি বেস মডেলের জন্য এবং অন্যটি LoRA মডেলের জন্য।

LoRA মডেল অনুমান

ওয়েব, অ্যান্ড্রয়েড এবং আইওএস এলএলএম ইনফারেন্স API LoRA মডেল অনুমান সমর্থন করার জন্য আপডেট করা হয়েছে।

আরম্ভ করার সময় অ্যান্ড্রয়েড স্ট্যাটিক LoRA সমর্থন করে। একটি LoRA মডেল লোড করতে, ব্যবহারকারীরা LoRA মডেল পাথের পাশাপাশি বেস LLM নির্দিষ্ট করে।

// Set the configuration options for the LLM Inference task
val options = LlmInferenceOptions.builder()
        .setModelPath('<path to base model>')
        .setMaxTokens(1000)
        .setTopK(40)
        .setTemperature(0.8)
        .setRandomSeed(101)
        .setLoraPath('<path to LoRA model>')
        .build()

// Create an instance of the LLM Inference task
llmInference = LlmInference.createFromOptions(context, options)

LoRA এর সাথে LLM অনুমান চালানোর জন্য, বেস মডেল হিসাবে একই generateResponse() বা generateResponseAsync() পদ্ধতি ব্যবহার করুন।