দৃশ্যের একটি দিক হচ্ছে একটি মেশিন লার্নিং মডেল তৈরি করা। এটি অবশ্যই বাস্তব জগতে ব্যবহারযোগ্য এবং ভোক্তা এবং বিকাশকারীদের জন্য উপলব্ধ হতে হবে।
মেশিন লার্নিং মডেলগুলি স্থাপন করার সবচেয়ে সহজ এবং জনপ্রিয় উপায় হল সেগুলিকে একটি REST API এ আবদ্ধ করা৷
FastAPI নামক একটি জনপ্রিয় লাইব্রেরির সাথে, আমরা আজকে ঠিক সেটাই করব।
কিন্তু, কি ফাস্টএপিআই?
ফাস্টএপিআই পাইথন ওয়েব ফ্রেমওয়ার্ক সমসাময়িক পাইথন ক্ষমতার সুবিধা নিতে গ্রাউন্ড আপ থেকে তৈরি করা হয়েছে।
ক্লায়েন্টদের সাথে অ্যাসিঙ্ক্রোনাস, একযোগে যোগাযোগের জন্য, এটি ASGI মান মেনে চলে, যখন এটি WSGI ব্যবহার করতেও সক্ষম।
এন্ডপয়েন্ট এবং রুট উভয়ই অ্যাসিঙ্ক ফাংশন নিয়োগ করতে পারে। উপরন্তু, FastAPI টাইপ-ইন্টেড, পরিষ্কার, সমসাময়িক পাইথন কোডে ওয়েব অ্যাপস তৈরি করতে সক্ষম করে।
ফাস্টএপিআই-এর প্রধান ব্যবহারের ক্ষেত্রে, নাম অনুসারে, এপিআই এন্ডপয়েন্ট তৈরি করা।
OpenAPI স্ট্যান্ডার্ড ব্যবহার করা, যার মধ্যে একটি ইন্টারেক্টিভ সোয়াগার UI রয়েছে, বা JSON হিসাবে পাইথন অভিধান ডেটা সরবরাহ করা উভয়ই এটি অর্জনের সহজ উপায়। যাইহোক, ফাস্টএপিআই শুধুমাত্র এপিআইগুলির জন্য নয়।
এটি জিঞ্জা 2 টেমপ্লেট ইঞ্জিন ব্যবহার করে স্ট্যান্ডার্ড ওয়েব পৃষ্ঠাগুলি অফার করতে এবং ওয়েবসকেটগুলি ব্যবহার করে অ্যাপগুলি পরিবেশন করতে ব্যবহার করা যেতে পারে, একটি ওয়েব ফ্রেমওয়ার্ক যা করতে পারে তার সাথে আরও অনেক কিছু।
এই নিবন্ধে, আমরা একটি সহজবোধ্য মেশিন লার্নিং মডেল তৈরি করব এবং তারপর এটি স্থাপন করতে FastAPI ব্যবহার করব। চল শুরু করি.
ফাস্টএপিআই ইনস্টল করা এবং প্রথম এপিআই তৈরি করা
লাইব্রেরি এবং একটি ASGI সার্ভার ইনস্টল করার জন্য প্রথমে প্রয়োজন; হয় Uvuicorn বা Hypercorn কাজ করবে। এটি টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করে কাজ করে:
এখন যেহেতু API তৈরি করা হয়েছে, আপনি আপনার পছন্দের কোড এডিটর ব্যবহার করতে পারেন এবং এর মাধ্যমে ব্রাউজ করতে পারেন। শুরু করতে ml_model.py নামে একটি পাইথন স্ক্রিপ্ট তৈরি করুন। আপনার একটি ভিন্ন নাম দিতে আপনাকে স্বাগত জানাই, কিন্তু এই পোস্টের জন্য, আমি এই ফাইলটিকে ml_model.py হিসাবে উল্লেখ করব৷
দুটি শেষ পয়েন্ট সহ একটি সরল API তৈরি করতে, আপনাকে অবশ্যই নিম্নলিখিত কাজগুলি সম্পূর্ণ করতে হবে:
- FastAPI এবং Uvicorn লাইব্রেরি আমদানি করুন।
- একটি ফাস্টএপিআই ক্লাস ইনস্ট্যান্স সেট আপ করুন।
- প্রথম রুট ঘোষণা করুন, যা, সূচী পৃষ্ঠায়, একটি সোজা JSON অবজেক্ট তৈরি করে।
- দ্বিতীয় রুট ঘোষণা করুন, যা একটি কাস্টমাইজড বার্তা সহ একটি সরল JSON অবজেক্ট প্রদান করে। নামের প্যারামিটারটি সরাসরি URL থেকে নেওয়া হয়েছে (উদাহরণস্বরূপ, https://127.0.0.1:8000/Jay)।
- API চালানোর জন্য Uvicorn ব্যবহার করুন।
এই পাঁচটি পর্যায় বাস্তবায়ন করা কোডের নিচের বিটে দেখানো হয়েছে অর্থাৎ। একটি সাধারণ API তৈরি করা
সব শেষ! চলুন অবিলম্বে আমাদের API চালু করা যাক। এটি সম্পন্ন করতে ml model.py ফাইলের পাশে একটি টার্মিনাল উইন্ডো খুলুন। পরবর্তী, নিম্নলিখিত লিখুন:
এন্টার কী। এগিয়ে যাওয়ার আগে, আসুন এই দাবীটিকে বাদ দেওয়া যাক। প্রথম অ্যাপটি এক্সটেনশন ছাড়াই একা পাইথন ফাইলের নাম ব্যবহার করে। দ্বিতীয় অ্যাপটির অবশ্যই আপনার ফাস্টএপিআই উদাহরণের মতোই নাম থাকতে হবে।
-রিলোড ব্যবহার করে, আপনি API-কে বলবেন যে আপনি স্ক্র্যাচ থেকে শুরু করার পরিবর্তে ফাইলটি সংরক্ষণ করার সময় এটি স্বয়ংক্রিয়ভাবে পুনরায় লোড করতে চান।
এখন একটি ব্রাউজার চালু করুন এবং নেভিগেট করুন https://127.0.0.1:8000; ফলাফল নিম্নলিখিত হিসাবে প্রদর্শিত হবে:
আপনি এখন বুঝতে পারছেন কিভাবে FastAPI ব্যবহার করে একটি সাধারণ API তৈরি করতে হয়।
মেশিন লার্নিং মডেল তৈরি ও প্রশিক্ষণ
কোনো তথ্য সংগ্রহ বা বিশ্লেষণ না করে, আমরা শুধু একটি সাধারণ মডেলকে প্রশিক্ষণ দেব। এগুলি মডেল স্থাপনের সাথে সম্পর্কিত নয় এবং হাতে থাকা বিষয়ের জন্য অপরিহার্য নয়।
আইরিস ডেটাসেটের উপর ভিত্তি করে একটি মডেল একই ব্যবহার করে ইনস্টল করা যেতে পারে স্নায়বিক নেটওয়ার্ক ইনস্টলেশন পদ্ধতি।
এবং আমরা শুধু তা করব: ডাউনলোড করুন আইরিস ডেটাসেট এবং মডেল প্রশিক্ষণ. এটা সহজ হবে না. শুরু করতে, jaysmlmodel.py নামে একটি ফাইল তৈরি করুন।
এটিতে, আপনি নিম্নলিখিতগুলি করবেন:
- আমদানি — আপনার প্রয়োজন হবে পান্ডা, স্কিট-র্যান্ডমফরকাস্ট ক্লাসিফায়ার, শিখার পাইডান্টিকের বেসমডেল (নিম্নলিখিত ধাপে আপনি কেন তা আবিষ্কার করবেন), এবং মডেল সংরক্ষণ ও লোড করার জন্য জবলিব।
- বেস মডেল থেকে উত্তরাধিকারসূত্রে পাওয়া একটি IrisSpecies ক্লাস ঘোষণা করুন। এই শ্রেণীতে শুধুমাত্র একটি ফুলের প্রজাতির পূর্বাভাস দেওয়ার জন্য প্রয়োজনীয় ক্ষেত্র রয়েছে (পরবর্তী বিভাগে এটি সম্পর্কে আরও)
- একটি ক্লাস তৈরি করুন। IrisModel হল একটি মডেল প্রশিক্ষণ এবং ভবিষ্যদ্বাণী টুল।
- IrisModel-এর মধ্যে _train মডেল নামে একটি পদ্ধতি ঘোষণা করুন। এটি র্যান্ডম ফরেস্ট কৌশল ব্যবহার করে মডেল প্রশিক্ষণের জন্য ব্যবহৃত হয়। প্রশিক্ষিত মডেল পদ্ধতি দ্বারা ফিরে হয়.
- IrisModel-এর ভিতরে একটি পূর্বাভাসিত প্রজাতি ফাংশন ঘোষণা করুন। এটি 4টি ইনপুট ফ্যাক্টর (ফুল পরিমাপ) এর উপর ভিত্তি করে পূর্বাভাসের জন্য ব্যবহার করা হয়। পূর্বাভাস (ফুল প্রজাতি) এবং পূর্বাভাস সম্ভাবনা উভয়ই অ্যালগরিদম দ্বারা ফিরে আসে।
- IrisModel-এ কনস্ট্রাক্টর পরিবর্তন করুন যাতে এটি Iris ডেটাসেট লোড করে এবং ফোল্ডার থেকে অনুপস্থিত থাকলে মডেলটিকে প্রশিক্ষণ দেয়। এটি বারবার নতুন মডেল প্রশিক্ষণের সমস্যার সমাধান করে। জবলিব লাইব্রেরি মডেল লোডিং এবং সংরক্ষণের জন্য ব্যবহার করা হয়।
এখানে পুরো কোড আছে:
আমি আশা করি উপরের তালিকা এবং মন্তব্যগুলি উপলব্ধি করা সহজ করেছে যদিও এটি তৈরি করার জন্য একটি বড় পরিমাণ কোড ছিল। এখন যেহেতু এই মডেলটি তৈরি করা হয়েছে, আসুন এর পূর্বাভাসের ক্ষমতা প্রকাশ করি বিশ্রাম এপিআই.
একটি সম্পূর্ণ REST API নির্মাণ করা হচ্ছে
ml_model.py ফাইলে ফিরে যান এবং সমস্ত ডেটা পরিষ্কার করুন। বয়লারপ্লেটটি মূলত আপনার আগের মতোই হবে, তবে আমাদের একটি ফাঁকা ফাইল দিয়ে শুরু করা উচিত।
আপনি এই সময় শুধুমাত্র একটি শেষ বিন্দু সংজ্ঞায়িত করবেন, যেটি ফুলের ধরন নির্ধারণ করতে ব্যবহৃত হয়। IrisModel.predict species(), যা পূর্ববর্তী বিভাগে ঘোষণা করা হয়েছিল, ভবিষ্যদ্বাণীটি সম্পাদন করার জন্য এই শেষ বিন্দু দ্বারা ডাকা হয়।
অনুরোধের ধরন হল অন্য বড় পরিবর্তন। ইউআরএলের পরিবর্তে JSON-এ প্যারামিটারগুলি প্রেরণ করার জন্য, এটি ব্যবহার করার সময় আপনি POST ব্যবহার করার পরামর্শ দেওয়া হচ্ছে মেশিন লার্নিং API গুলি।
উপরের বাক্যটি হয়ত বিদ্রুপের মত শোনাচ্ছে যদি আপনি একটি হন তথ্য বিজ্ঞানী, কিন্তু এটা ঠিক আছে। মডেলগুলি ডিজাইন এবং স্থাপন করার জন্য, একজনকে এইচটিটিপি অনুরোধ এবং REST API-এর বিশেষজ্ঞ হতে হবে না।
ml model.py-এর কাজগুলি কয়েকটি এবং সহজবোধ্য:
- আপনাকে পূর্বে তৈরি করা jaymlmodel.py ফাইল থেকে নিম্নলিখিতগুলি আমদানি করতে হবে: uvicorn, FastAPI, IrisModel, এবং IrisSpecies৷
- FastAPI এবং IrisModel এর উদাহরণ তৈরি করুন।
- ভবিষ্যদ্বাণী করতে https://127.0.0.1:8000/predict-এ একটি ফাংশন ঘোষণা করুন।
- IrisModel.predict species() পদ্ধতি IrisSpecies টাইপের একটি বস্তু গ্রহণ করে, এটিকে একটি অভিধানে রূপান্তরিত করে, এবং তারপরে এটি ফেরত দেয়। রিটার্ন হল প্রত্যাশিত শ্রেণী এবং পূর্বাভাসিত সম্ভাবনা।
- API চালানোর জন্য uvicorn ব্যবহার করুন।
এখনও আবার, এখানে সম্পূর্ণ ফাইলের কোডটি তার মন্তব্যের সাথে রয়েছে:
যে সব আপনি করতে হবে. পরবর্তী ধাপে, এর API পরীক্ষা করা যাক।
API পরীক্ষা করা হচ্ছে
API চালানোর জন্য টার্মিনালে নিম্নলিখিত লাইনটি পুনরায় প্রবেশ করুন: uvicorn ml_model:app -reload
ডকুমেন্টেশন পৃষ্ঠাটি এইভাবে প্রদর্শিত হবে:
তাই আজকের জন্য এটাই। এর পরের অংশে, শেষ করা যাক।
উপসংহার
আজ, আপনি একটি সাধারণ API উদাহরণ এবং একটি সাধারণ মেশিন লার্নিং উদাহরণ ব্যবহার করে FastAPI কী এবং কীভাবে এটি ব্যবহার করবেন তা শিখেছেন। আপনি কীভাবে API ডকুমেন্টেশন তৈরি এবং দেখতে হয়, সেইসাথে কীভাবে এটি পরীক্ষা করবেন তাও শিখেছেন।
এটি একটি একক অংশের জন্য অনেক কিছু, তাই সঠিকভাবে বুঝতে কয়েকটা পড়ার প্রয়োজন হলে অবাক হবেন না।
খুশি কোডিং.
নির্দেশিকা সমন্ধে মতামত দিন