স্থাপত্য

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

মূল ধারণা

টেনসরফ্লো সার্ভিংয়ের আর্কিটেকচার বোঝার জন্য, আপনাকে নিম্নলিখিত মূল ধারণাগুলি বুঝতে হবে:

সেবাযোগ্য

Servables হল টেনসরফ্লো সার্ভিংয়ের কেন্দ্রীয় বিমূর্ততা। Servables হল অন্তর্নিহিত বস্তু যা ক্লায়েন্ট গণনা করার জন্য ব্যবহার করে (উদাহরণস্বরূপ, একটি সন্ধান বা অনুমান)।

একটি Servable এর আকার এবং গ্রানুলারিটি নমনীয়। একটি একক Servable একটি লুকআপ টেবিলের একক শার্ড থেকে একটি একক মডেল থেকে অনুমান মডেলের একটি টুপল পর্যন্ত কিছু অন্তর্ভুক্ত করতে পারে। পরিবেশনযোগ্য যেকোন ধরনের এবং ইন্টারফেস হতে পারে, নমনীয়তা সক্ষম করে এবং ভবিষ্যতের উন্নতি যেমন:

  • স্ট্রিমিং ফলাফল
  • পরীক্ষামূলক API
  • অপারেশনের অসিঙ্ক্রোনাস মোড

সেবাযোগ্যরা তাদের নিজস্ব জীবনচক্র পরিচালনা করে না।

সাধারণ servables নিম্নলিখিত অন্তর্ভুক্ত:

  • একটি টেনসরফ্লো সংরক্ষিত মডেলবান্ডেল ( tensorflow::Session )
  • এম্বেডিং বা শব্দভান্ডার সন্ধানের জন্য একটি সন্ধান টেবিল

পরিবেশনযোগ্য সংস্করণ

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

পরিবেশনযোগ্য প্রবাহ

একটি পরিবেশনযোগ্য স্ট্রিম হল একটি পরিবেশনযোগ্য সংস্করণের ক্রম, সংস্করণ সংখ্যা বৃদ্ধির মাধ্যমে সাজানো।

মডেল

টেনসরফ্লো সার্ভিং একটি মডেলকে এক বা একাধিক পরিবেশনযোগ্য হিসাবে উপস্থাপন করে। একটি মেশিন-শিক্ষিত মডেলে এক বা একাধিক অ্যালগরিদম (শেখার ওজন সহ) এবং লুকআপ বা এম্বেডিং টেবিল অন্তর্ভুক্ত থাকতে পারে।

আপনি নিম্নলিখিত যে কোনও একটি হিসাবে একটি যৌগিক মডেল উপস্থাপন করতে পারেন:

  • একাধিক স্বাধীন servables
  • একক যৌগিক পরিবেশনযোগ্য

একটি পরিবেশনযোগ্য একটি মডেলের ভগ্নাংশের সাথেও মিল থাকতে পারে। উদাহরণস্বরূপ, একটি বড় লুকআপ টেবিল অনেক টেনসরফ্লো সার্ভিং দৃষ্টান্ত জুড়ে শার্ড করা যেতে পারে।

লোডার

লোডার একটি সেবাযোগ্য এর জীবনচক্র পরিচালনা করে। লোডার এপিআই সাধারণ অবকাঠামোকে নির্দিষ্ট শিক্ষার অ্যালগরিদম, ডেটা বা পণ্য ব্যবহারের ক্ষেত্রে জড়িত থেকে স্বাধীন করে। বিশেষত, লোডাররা একটি পরিবেশনযোগ্য লোড এবং আনলোড করার জন্য API-কে মানসম্মত করে।

সূত্র

সোর্স হল প্লাগইন মডিউল যা সার্ভেবল খুঁজে পায় এবং প্রদান করে। প্রতিটি উৎস শূন্য বা অধিক পরিবেশনযোগ্য স্ট্রীম প্রদান করে। প্রতিটি পরিবেশনযোগ্য স্ট্রীমের জন্য, একটি উত্স প্রতিটি সংস্করণের জন্য একটি লোডার উদাহরণ সরবরাহ করে যা এটি লোড করার জন্য উপলব্ধ করে। (একটি উৎস আসলে শূন্য বা ততোধিক সোর্স অ্যাডাপ্টারের সাথে একত্রে চেইন করা হয় এবং চেইনের শেষ আইটেমটি লোডার নির্গত করে।)

উৎসের জন্য টেনসরফ্লো সার্ভিং এর ইন্টারফেস নির্বিচারে স্টোরেজ সিস্টেম থেকে সার্ভিং আবিষ্কার করতে পারে। TensorFlow সার্ভিং সাধারণ রেফারেন্স উৎস বাস্তবায়ন অন্তর্ভুক্ত. উদাহরণস্বরূপ, উত্সগুলি RPC-এর মতো প্রক্রিয়াগুলি অ্যাক্সেস করতে পারে এবং একটি ফাইল সিস্টেম পোল করতে পারে।

উত্সগুলি এমন অবস্থা বজায় রাখতে পারে যা একাধিক পরিবেশনযোগ্য বা সংস্করণে ভাগ করা হয়। এটি এমন সার্বেলগুলির জন্য দরকারী যেগুলি সংস্করণগুলির মধ্যে ডেল্টা (ডিফ) আপডেটগুলি ব্যবহার করে।

উচ্চাকাঙ্ক্ষী সংস্করণ

উচ্চাকাঙ্ক্ষী সংস্করণগুলি পরিবেশনযোগ্য সংস্করণগুলির সেট উপস্থাপন করে যা লোড এবং প্রস্তুত হওয়া উচিত। উত্সগুলি একবারে একটি একক পরিবেশনযোগ্য স্ট্রিমের জন্য পরিবেশনযোগ্য সংস্করণগুলির এই সেটটিকে যোগাযোগ করে৷ যখন একটি উৎস ম্যানেজারের কাছে উচ্চাকাঙ্খিত সংস্করণগুলির একটি নতুন তালিকা দেয়, তখন এটি সেই পরিবেশনযোগ্য স্ট্রিমের পূর্ববর্তী তালিকাটিকে ছাড়িয়ে যায়। ম্যানেজার পূর্বে লোড করা কোনো সংস্করণ আনলোড করে যা তালিকায় আর প্রদর্শিত হয় না।

সংস্করণ লোডিং অনুশীলনে কীভাবে কাজ করে তা দেখতে উন্নত টিউটোরিয়ালটি দেখুন।

ম্যানেজারদের

ম্যানেজাররা সার্ভেবলের সম্পূর্ণ জীবনচক্র পরিচালনা করে, যার মধ্যে রয়েছে:

  • পরিবেশনযোগ্য লোড হচ্ছে
  • পরিবেশনযোগ্য
  • আনলোড পরিবেশনযোগ্য

পরিচালকরা সোর্স শোনেন এবং সমস্ত সংস্করণ ট্র্যাক করেন। ম্যানেজার উত্সের অনুরোধগুলি পূরণ করার চেষ্টা করে, তবে প্রয়োজনীয় সংস্থানগুলি উপলব্ধ না হলে একটি উচ্চাকাঙ্খিত সংস্করণ লোড করতে অস্বীকার করতে পারে৷ পরিচালকরাও একটি "আনলোড" স্থগিত করতে পারে। উদাহরণস্বরূপ, একটি নতুন সংস্করণ লোড হওয়া শেষ না হওয়া পর্যন্ত একজন পরিচালক আনলোড করার জন্য অপেক্ষা করতে পারেন, একটি নীতির উপর ভিত্তি করে যে সর্বদা অন্তত একটি সংস্করণ লোড হয়।

টেনসরফ্লো সার্ভিং ম্যানেজাররা একটি সহজ, সংকীর্ণ ইন্টারফেস প্রদান করে -- GetServableHandle() -- ক্লায়েন্টদের লোড করা পরিবেশনযোগ্য দৃষ্টান্তগুলি অ্যাক্সেস করতে।

মূল

স্ট্যান্ডার্ড টেনসরফ্লো সার্ভিং APis ব্যবহার করে, টেনসরফ্লো সার্ভিং কোর সার্ভিং এর নিম্নলিখিত দিকগুলি পরিচালনা করে:

  • জীবনচক্র
  • মেট্রিক্স

টেনসরফ্লো সার্ভিং কোর পরিবেশনযোগ্য এবং লোডারকে অস্বচ্ছ বস্তু হিসাবে বিবেচনা করে।

একটি সেবাযোগ্য জীবন

টিএফ পরিবেশন করা আর্কিটেকচার ডায়াগ্রাম

বিস্তারিত বলতে গেলে:

  1. উৎসগুলি পরিবেশনযোগ্য সংস্করণগুলির জন্য লোডার তৈরি করে।
  2. লোডারগুলিকে ম্যানেজারের কাছে উচ্চাকাঙ্খিত সংস্করণ হিসাবে পাঠানো হয়, যা ক্লায়েন্টের অনুরোধে তাদের লোড করে এবং পরিবেশন করে।

আরো বিস্তারিত:

  1. একটি উত্স প্লাগইন একটি নির্দিষ্ট সংস্করণের জন্য একটি লোডার তৈরি করে। লোডারে সার্ভেবল লোড করার জন্য প্রয়োজনীয় মেটাডেটা থাকে।
  2. উত্সটি উচ্চাকাঙ্ক্ষী সংস্করণের পরিচালককে অবহিত করার জন্য একটি কলব্যাক ব্যবহার করে৷
  3. ম্যানেজার পরবর্তী পদক্ষেপ নির্ধারণ করতে কনফিগার করা সংস্করণ নীতি প্রয়োগ করে, যা পূর্বে লোড করা সংস্করণ আনলোড করা বা নতুন সংস্করণ লোড করা হতে পারে।
  4. যদি ম্যানেজার নির্ধারণ করে যে এটি নিরাপদ, তবে এটি লোডারকে প্রয়োজনীয় সংস্থান দেয় এবং লোডারকে নতুন সংস্করণ লোড করতে বলে।
  5. ক্লায়েন্টরা ম্যানেজারকে সার্ভেবলের জন্য জিজ্ঞাসা করে, হয় স্পষ্টভাবে একটি সংস্করণ উল্লেখ করে বা শুধুমাত্র সর্বশেষ সংস্করণের জন্য অনুরোধ করে। ম্যানেজার সার্ভেবলের জন্য একটি হ্যান্ডেল ফেরত দেয়।

উদাহরণস্বরূপ, বলুন একটি উত্স ঘন ঘন আপডেট হওয়া মডেলের ওজন সহ একটি টেনসরফ্লো গ্রাফ উপস্থাপন করে। ওজন ডিস্কের একটি ফাইলে সংরক্ষণ করা হয়।

  1. উত্সটি মডেল ওজনের একটি নতুন সংস্করণ সনাক্ত করে৷ এটি একটি লোডার তৈরি করে যাতে ডিস্কের মডেল ডেটার জন্য একটি পয়েন্টার থাকে।
  2. উত্সটি উচ্চাকাঙ্ক্ষী সংস্করণের ডায়নামিক ম্যানেজারকে অবহিত করে।
  3. ডায়নামিক ম্যানেজার সংস্করণ নীতি প্রয়োগ করে এবং নতুন সংস্করণ লোড করার সিদ্ধান্ত নেয়।
  4. ডায়নামিক ম্যানেজার লোডারকে বলে যে যথেষ্ট মেমরি আছে। লোডার নতুন ওজনের সাথে টেনসরফ্লো গ্রাফকে তাৎক্ষণিক করে।
  5. একটি ক্লায়েন্ট মডেলের সর্বশেষ সংস্করণে একটি হ্যান্ডেলের জন্য অনুরোধ করে এবং ডায়নামিক ম্যানেজার সার্ভেবলের নতুন সংস্করণে একটি হ্যান্ডেল ফেরত দেয়।

এক্সটেনসিবিলিটি

TensorFlow সার্ভিং বিভিন্ন এক্সটেনশন পয়েন্ট প্রদান করে যেখানে আপনি নতুন কার্যকারিতা যোগ করতে পারেন।

সংস্করণ নীতি

সংস্করণ নীতিগুলি একটি একক পরিবেশনযোগ্য স্ট্রিমের মধ্যে সংস্করণ লোড এবং আনলোড করার ক্রম নির্দিষ্ট করে৷

টেনসরফ্লো সার্ভিং-এ দুটি নীতি রয়েছে যা সর্বাধিক পরিচিত ব্যবহারের ক্ষেত্রে মিটমাট করে। এগুলি হল উপলভ্যতা সংরক্ষণ নীতি (শূন্য সংস্করণ লোড করা এড়িয়ে চলুন; সাধারণত একটি পুরানোটি আনলোড করার আগে একটি নতুন সংস্করণ লোড করুন), এবং সম্পদ সংরক্ষণ নীতি (এক সাথে দুটি সংস্করণ লোড করা এড়িয়ে চলুন, এইভাবে দ্বিগুণ সংস্থান প্রয়োজন; লোড করার আগে একটি পুরানো সংস্করণ আনলোড করুন একটি নতুন). TensorFlow সার্ভিংয়ের সহজ ব্যবহারের জন্য যেখানে একটি মডেলের পরিবেশন প্রাপ্যতা গুরুত্বপূর্ণ এবং সম্পদের খরচ কম, উপলব্ধতা সংরক্ষণ নীতি নিশ্চিত করবে যে পুরানোটি আনলোড করার আগে নতুন সংস্করণটি লোড হয়েছে এবং প্রস্তুত রয়েছে৷ TensorFlow সার্ভিং এর পরিশীলিত ব্যবহারের জন্য, উদাহরণস্বরূপ একাধিক সার্ভার ইনস্ট্যান্স জুড়ে সংস্করণ পরিচালনা করার জন্য, রিসোর্স সংরক্ষণ নীতির জন্য সর্বনিম্ন সম্পদ প্রয়োজন (নতুন সংস্করণ লোড করার জন্য কোন অতিরিক্ত বাফার নেই)।

উৎস

নতুন উত্সগুলি নতুন ফাইল সিস্টেম, ক্লাউড অফার এবং অ্যালগরিদম ব্যাকএন্ড সমর্থন করতে পারে। TensorFlow সার্ভিং কিছু সাধারণ বিল্ডিং ব্লক প্রদান করে যাতে নতুন উৎস তৈরি করা সহজ এবং দ্রুত হয়। উদাহরণস্বরূপ, TensorFlow সার্ভিং একটি সাধারণ উৎসের চারপাশে পোলিং আচরণ মোড়ানোর জন্য একটি ইউটিলিটি অন্তর্ভুক্ত করে। উৎসগুলি নির্দিষ্ট অ্যালগরিদম এবং ডেটা হোস্টিং সার্বেলগুলির জন্য লোডারগুলির সাথে ঘনিষ্ঠভাবে সম্পর্কিত৷

কিভাবে একটি কাস্টম উৎস তৈরি করতে হয় সে সম্পর্কে আরও জানতে কাস্টম সোর্স ডকুমেন্ট দেখুন।

লোডার

লোডার হল অ্যালগরিদম এবং ডেটা ব্যাকএন্ড যোগ করার জন্য এক্সটেনশন পয়েন্ট। TensorFlow হল এরকম একটি অ্যালগরিদম ব্যাকএন্ড। উদাহরণ স্বরূপ, আপনি একটি নতুন লোডার প্রয়োগ করবেন যাতে একটি নতুন ধরনের পরিবেশনযোগ্য মেশিন লার্নিং মডেলের একটি উদাহরণ লোড, অ্যাক্সেস প্রদান এবং আনলোড করা যায়। আমরা লুকআপ টেবিল এবং অতিরিক্ত অ্যালগরিদমের জন্য লোডার তৈরির আশা করছি।

কাস্টম পরিবেশনযোগ্য নথিটি দেখুন কিভাবে একটি কাস্টম পরিবেশনযোগ্য তৈরি করতে হয়।

ব্যাচার

একক অনুরোধে একাধিক অনুরোধের ব্যাচিং উল্লেখযোগ্যভাবে অনুমান সম্পাদনের খরচ কমাতে পারে, বিশেষ করে GPU-এর মতো হার্ডওয়্যার এক্সিলারেটরের উপস্থিতিতে। টেনসরফ্লো সার্ভিং-এ একটি অনুরোধ ব্যাচিং উইজেট রয়েছে যা ক্লায়েন্টদের সহজেই তাদের টাইপ-নির্দিষ্ট অনুমানগুলিকে ব্যাচের অনুরোধগুলিতে ব্যাচ করতে দেয় যা অ্যালগরিদম সিস্টেমগুলি আরও দক্ষতার সাথে প্রক্রিয়া করতে পারে। আরও তথ্যের জন্য ব্যাচিং গাইড দেখুন।