LiteRT পরবর্তী ওভারভিউ

LiteRT নেক্সট হল API-এর একটি নতুন সেট যা LiteRT-এর উপর উন্নতি করে, বিশেষ করে অন-ডিভাইস ML এবং AI অ্যাপ্লিকেশনগুলির জন্য হার্ডওয়্যার ত্বরণ এবং কর্মক্ষমতার ক্ষেত্রে। এপিআই একটি আলফা রিলিজ এবং কোটলিন এবং সি++ এ উপলব্ধ।

LiteRT নেক্সট কম্পাইল করা মডেল এপিআই টেনসরফ্লো লাইট ইন্টারপ্রেটার এপিআই-তে তৈরি করে এবং ডিভাইসে মেশিন লার্নিংয়ের জন্য মডেল লোডিং এবং এক্সিকিউশন প্রক্রিয়া সহজ করে। নতুন এপিআইগুলি হার্ডওয়্যার ত্বরণ ব্যবহার করার জন্য একটি নতুন সুবিন্যস্ত উপায় প্রদান করে, মডেল ফ্ল্যাটবাফার, I/O বাফার ইন্টারঅপারেবিলিটি এবং প্রতিনিধিদের সাথে মোকাবিলা করার প্রয়োজনীয়তা দূর করে। LiteRT নেক্সট APIগুলি LiteRT APIগুলির সাথে সামঞ্জস্যপূর্ণ নয়৷ LiteRT নেক্সট থেকে বৈশিষ্ট্যগুলি ব্যবহার করার জন্য, শুরু করুন নির্দেশিকাটি দেখুন।

উদাহরণের জন্য LiteRT Next এর বাস্তবায়ন, নিম্নলিখিত ডেমো অ্যাপ্লিকেশনগুলি পড়ুন:

কুইকস্টার্ট

LiteRT নেক্সট API-এর সাথে অনুমান চালানোর জন্য নিম্নলিখিত মূল পদক্ষেপগুলি জড়িত:

  1. একটি সামঞ্জস্যপূর্ণ মডেল লোড করুন.
  2. ইনপুট এবং আউটপুট টেনসর বাফারগুলি বরাদ্দ করুন।
  3. সংকলিত মডেল আহ্বান করুন.
  4. একটি আউটপুট বাফার মধ্যে অনুমান পড়ুন.

নিম্নলিখিত কোড স্নিপেটগুলি Kotlin এবং C++-এ সম্পূর্ণ প্রক্রিয়ার একটি মৌলিক বাস্তবায়ন দেখায়।

সি++

// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(auto model, Model::CreateFromFile("mymodel.tflite"));
LITERT_ASSIGN_OR_RETURN(auto env, Environment::Create({}));
LITERT_ASSIGN_OR_RETURN(auto compiled_model,
    CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu));

// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers, compiled_model.CreateInputBuffers());
LITERT_ASSIGN_OR_RETURN(auto output_buffers, compiled_model.CreateOutputBuffers());

// Fill the first input
float input_values[] = { /* your data */ };
input_buffers[0].Write<float>(absl::MakeConstSpan(input_values, /*size*/));

// Invoke
compiled_model.Run(input_buffers, output_buffers);

// Read the output
std::vector<float> data(output_data_size);
output_buffers[0].Read<float>(absl::MakeSpan(data));

কোটলিন

// Load model and initialize runtime
val  model =
    CompiledModel.create(
        context.assets,
        "mymodel.tflite",
        CompiledModel.Options(Accelerator.CPU)
    )

// Preallocate input/output buffers
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()

// Fill the first input
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })

// Invoke
model.run(inputBuffers, outputBuffers)

// Read the output
val outputFloatArray = outputBuffers[0].readFloat()

আরও তথ্যের জন্য, কোটলিনের সাথে শুরু করুন এবং C++ নির্দেশিকা দিয়ে শুরু করুন

মূল বৈশিষ্ট্য

LiteRT Next-এ নিম্নলিখিত মূল সুবিধা এবং বৈশিষ্ট্য রয়েছে:

  • নতুন LiteRT API : স্বয়ংক্রিয় অ্যাক্সিলারেটর নির্বাচন, সত্যিকারের অ্যাসিঙ্ক এক্সিকিউশন এবং দক্ষ I/O বাফার হ্যান্ডলিং সহ স্ট্রীমলাইন ডেভেলপমেন্ট।
  • বেস্ট-ইন-ক্লাস GPU পারফরম্যান্স : অন-ডিভাইস ML-এর জন্য অত্যাধুনিক GPU ত্বরণ ব্যবহার করুন। নতুন বাফার আন্তঃঅপারেবিলিটি জিরো-কপি সক্ষম করে এবং বিভিন্ন GPU বাফারের ধরন জুড়ে লেটেন্সি কমিয়ে দেয়।
  • সুপিরিয়র জেনারেটিভ এআই ইনফারেন্স : GenAI মডেলগুলির জন্য সেরা পারফরম্যান্সের সাথে সহজতম ইন্টিগ্রেশন সক্ষম করুন।
  • ইউনিফাইড NPU ত্বরণ : একটি সামঞ্জস্যপূর্ণ বিকাশকারী অভিজ্ঞতার সাথে প্রধান চিপসেট প্রদানকারীদের থেকে NPU-তে বিরামহীন অ্যাক্সেস অফার করুন। LiteRT NPU ত্বরণ একটি প্রাথমিক অ্যাক্সেস প্রোগ্রামের মাধ্যমে উপলব্ধ।

মূল উন্নতি

LiteRT নেক্সট (কম্পাইল করা মডেল এপিআই) LiteRT (TFLite ইন্টারপ্রেটার এপিআই) এ নিম্নলিখিত কী উন্নতি ধারণ করে। LiteRT নেক্সট এর সাথে আপনার অ্যাপ্লিকেশন সেট আপ করার জন্য একটি বিস্তৃত গাইডের জন্য, শুরু করুন গাইডটি দেখুন।

  • এক্সিলারেটর ব্যবহার : LiteRT সহ GPU-তে মডেল চালানোর জন্য সুস্পষ্ট প্রতিনিধি তৈরি, ফাংশন কল এবং গ্রাফ পরিবর্তনের প্রয়োজন। LiteRT Next এর সাথে, শুধু এক্সেলারেটর নির্দিষ্ট করুন।
  • নেটিভ হার্ডওয়্যার বাফার ইন্টারঅপারেবিলিটি : LiteRT বাফারের বিকল্প প্রদান করে না এবং CPU মেমরির মাধ্যমে সমস্ত ডেটা জোর করে। LiteRT Next এর মাধ্যমে, আপনি Android Hardware Buffers (AHWB), OpenCL বাফার, OpenGL বাফার বা অন্যান্য বিশেষায়িত বাফারগুলিতে পাস করতে পারেন।
  • অ্যাসিঙ্ক এক্সিকিউশন : LiteRT নেক্সট একটি পুনঃডিজাইন করা async API সহ আসে, সিঙ্ক বেড়ার উপর ভিত্তি করে একটি সত্যিকারের অ্যাসিঙ্ক মেকানিজম প্রদান করে। এটি বিভিন্ন কাজের জন্য বিভিন্ন হার্ডওয়্যার - যেমন CPUs, GPUs, CPUs, এবং NPUs - ব্যবহারের মাধ্যমে দ্রুত সামগ্রিক কার্যকর করার সময় সক্ষম করে।
  • মডেল লোডিং : LiteRT নেক্সট একটি মডেল লোড করার সময় আলাদা বিল্ডার পদক্ষেপের প্রয়োজন হয় না।