توسعه واسط های وب برای تعامل با مدل یادگیری ماشین (ML) یک کار خسته کننده است. با Streamlit، توسعه برنامه های آزمایشی برای راه حل ML شما آسان است. Streamlit یک کتابخانه منبع باز پایتون است که ایجاد و اشتراک گذاری برنامه های وب برای ML و علم داده را آسان می کند. به عنوان یک دانشمند داده، ممکن است بخواهید یافته های خود را برای یک مجموعه داده به نمایش بگذارید یا یک مدل آموزش دیده را به کار بگیرید. برنامه های Streamlit برای ارائه پیشرفت پروژه به تیم شما، به دست آوردن و به اشتراک گذاری بینش با مدیران و حتی دریافت بازخورد از مشتریان مفید هستند.
با محیط توسعه یکپارچه (IDE) از Amazon SageMaker Studio با آزمایشگاه ژوپیتر 3، میتوانیم برنامههای وب Streamlit را از داخل همان محیط برای اهداف توسعه بسازیم، اجرا کنیم و ارائه کنیم. این پست نحوه ساخت و میزبانی برنامه های Streamlit را در استودیو به روشی ایمن و قابل تکرار بدون هیچ گونه توسعه front-end وقت گیر توضیح می دهد. به عنوان مثال، ما از یک سفارشی استفاده می کنیم شناسایی آمازون نسخه ی نمایشی، که یک تصویر آپلود شده را حاشیه نویسی و برچسب گذاری می کند. این به عنوان یک نقطه شروع عمل می کند و می توان آن را برای نمایش هر مدل ML سفارشی تعمیم داد. کد این وبلاگ را می توانید در این مطلب پیدا کنید مخزن GitHub.
بررسی اجمالی راه حل
در زیر نمودار معماری راه حل ما است.
یک کاربر ابتدا از طریق مرورگر به استودیو دسترسی پیدا می کند. سرور Jupyter مرتبط با نمایه کاربر در داخل استودیو Amazon Elastic Compute Cloud (Amazon EC2) اجرا می شود. در داخل نمونه Studio EC2، کد نمونه و لیست وابستگی ها وجود دارد. کاربر می تواند برنامه Streamlit، app.py را در ترمینال سیستم اجرا کند. استودیو JupyterLab UI را در سرور Jupyter اجرا می کند که از هسته های نوت بوک جدا شده است. سرور Jupyter دارای یک پروکسی است و به ما امکان می دهد به برنامه Streamlit خود دسترسی پیدا کنیم. پس از اجرای برنامه، کاربر می تواند با تنظیم URL، یک جلسه جداگانه از طریق پراکسی AWS Jupyter آغاز کند.
از جنبه امنیتی، پروکسی AWS Jupyter توسط احراز هویت AWS گسترش یافته است. تا زمانی که کاربر به حساب AWS، شناسه دامنه استودیو و نمایه کاربر دسترسی داشته باشد، می تواند به پیوند دسترسی داشته باشد.
با استفاده از JupyterLab 3.0 استودیو ایجاد کنید
استودیو با JupyterLab 3 باید نصب شود تا این راه حل کار کند. نسخههای قدیمیتر ممکن است از ویژگیهای ذکر شده در این پست پشتیبانی نکنند. برای اطلاعات بیشتر مراجعه کنید Amazon SageMaker Studio و SageMaker Notebook Instance اکنون با نوت بوک JupyterLab 3 برای افزایش بهره وری توسعه دهندگان عرضه می شوند.. بهطور پیشفرض، استودیو با JupyterLab 3 ارائه میشود. اگر نسخه قدیمیتری دارید، باید نسخه را بررسی کنید و آن را تغییر دهید. برای اطلاعات بیشتر مراجعه کنید نسخه JupyterLab.
می توانید استودیو را با استفاده از کیت توسعه ابری AWS (AWS CDK)؛ برای اطلاعات بیشتر مراجعه کنید Amazon SageMaker Studio را با Jupyter Lab 3 با استفاده از AWS CDK راه اندازی کنید. همچنین، میتوانید از کنسول SageMaker برای تغییر تنظیمات دامنه استفاده کنید. مراحل زیر را کامل کنید:
- در کنسول SageMaker، را انتخاب کنید دامنه در صفحه ناوبری
- دامنه خود را انتخاب کنید و انتخاب کنید ویرایش.
- برای نسخه پیش فرض Jupyter Lab، مطمئن شوید که نسخه تنظیم شده است آزمایشگاه ژوپیتر 3.0.
(اختیاری) یک فضای مشترک ایجاد کنید
ما میتوانیم از کنسول SageMaker یا AWS CLI برای افزودن پشتیبانی از فضاهای اشتراکگذاری شده به دامنه موجود با دنبال کردن مراحل موجود در اسناد یا این وبلاگ استفاده کنیم. ایجاد یک فضای مشترک در AWS دارای مزایای زیر است:
- همکاری: یک فضای مشترک به چندین کاربر یا تیم اجازه می دهد تا در یک پروژه یا مجموعه ای از منابع، بدون نیاز به تکرار داده ها یا زیرساخت ها، با یکدیگر همکاری کنند.
- صرفه جویی در هزینه: به جای اینکه هر کاربر یا تیم منابع خود را ایجاد و مدیریت کند، یک فضای مشترک می تواند مقرون به صرفه تر باشد، زیرا می توان منابع را در بین چندین کاربر جمع و به اشتراک گذاشت.
- مدیریت ساده شده: با یک فضای مشترک، مدیران می توانند منابع را به صورت متمرکز مدیریت کنند، نه اینکه مجبور باشند چندین نمونه از منابع یکسان را برای هر کاربر یا تیم مدیریت کنند.
- مقیاسپذیری بهبود یافته: یک فضای مشترک را میتوان برای برآورده کردن تقاضاهای در حال تغییر آسانتر یا کوچکتر کرد، زیرا منابع را میتوان به صورت پویا برای رفع نیازهای کاربران یا تیمهای مختلف تخصیص داد.
- امنیت پیشرفته: با متمرکز کردن منابع در یک فضای مشترک، امنیت را می توان بهبود بخشید، زیرا کنترل های دسترسی و نظارت را می توان آسان تر و به طور مداوم اعمال کرد.
وابستگی ها را نصب کنید و نمونه را در استودیو کلون کنید
سپس استودیو را راه اندازی کرده و ترمینال سیستم را باز می کنیم. ما از SageMaker IDE برای شبیه سازی مثال خود و ترمینال سیستم برای راه اندازی برنامه خود استفاده می کنیم. کد این وبلاگ را می توانید در اینجا پیدا کنید مخزن GitHub. ما با شبیه سازی مخزن شروع می کنیم:
بعد، ترمینال سیستم را باز می کنیم.
پس از شبیه سازی، در ترمینال سیستم، وابستگی ها را نصب کنید تا کد نمونه ما را با اجرای دستور زیر اجرا کنید. این ابتدا وابستگی ها را با اجرای پیپ نصب می کند pip install --no-cache-dir -r requirements.txt
. no-cache-dir
flag کش را غیرفعال می کند. ذخیره سازی به ذخیره فایل های نصب کمک می کند (.whl
) از ماژول هایی که از طریق pip نصب می کنید. همچنین فایل های منبع (.tar.gz
) برای جلوگیری از دانلود مجدد زمانی که آنها منقضی نشده اند. اگر روی هارد دیسک ما فضایی وجود ندارد یا اگر میخواهیم یک تصویر Docker را تا حد امکان کوچک نگه داریم، میتوانیم از این پرچم استفاده کنیم تا دستور با حداقل مصرف حافظه اجرا شود. سپس اسکریپت بسته ها را نصب می کند iproute
و jq
، که در مرحله زیر استفاده خواهد شد.sh setup.sh
نسخه ی نمایشی Streamlit را اجرا کنید و پیوند اشتراکی ایجاد کنید
برای تأیید اینکه همه وابستگی ها با موفقیت نصب شده اند و برای مشاهده دمو آمازون Rekognition، دستور زیر را اجرا کنید:
شماره پورت میزبان برنامه نمایش داده می شود.
توجه داشته باشید که در حین توسعه، اجرای مجدد خودکار اسکریپت در زمان ممکن مفید باشد app.py
روی دیسک اصلاح شده است. برای انجام، بنابراین ما می توانیم runOnSave را تغییر دهیم گزینه پیکربندی با افزودن --server.runOnSave true
پرچم به فرمان ما:
تصویر زیر نمونه ای از آنچه باید در ترمینال نمایش داده شود را نشان می دهد.
از مثال بالا، شماره پورت، شناسه دامنه و URL استودیویی را که برنامه خود را روی آن اجرا می کنیم، مشاهده می کنیم. در نهایت، میتوانیم URL مورد نیاز برای دسترسی به برنامه ساده خود را مشاهده کنیم. این اسکریپت در حال تغییر URL استودیو و جایگزینی آن است lab?
با proxy/[PORT NUMBER]/
. همانطور که در تصویر زیر نشان داده شده است، نسخه ی نمایشی تشخیص اشیاء شناسایی نمایش داده می شود.
اکنون که برنامه Streamlit در حال کار است، میتوانیم این URL را با هر کسی که به شناسه دامنه و نمایه کاربری استودیو دسترسی دارد به اشتراک بگذاریم. برای سهولت اشتراکگذاری این دموها، میتوانیم وضعیت را بررسی کرده و با اجرای دستور زیر، همه برنامههای در حال اجرا را فهرست کنیم: sh status.sh
ما می توانیم از اسکریپت های چرخه حیات یا فضاهای مشترک برای گسترش این کار استفاده کنیم. به جای اجرای دستی اسکریپت های پوسته و نصب وابستگی ها، استفاده کنید اسکریپت های چرخه حیات برای ساده کردن این فرآیند برای توسعه و گسترش این برنامه با یک تیم و به اشتراک گذاری داشبورد با همتایان، استفاده کنید فضاهای مشترک. با ایجاد فضاهای مشترک در استودیو، کاربران می توانند در فضای مشترک برای توسعه یک برنامه Streamlit در زمان واقعی همکاری کنند. تمام منابع موجود در یک فضای اشتراکی فیلتر و برچسب گذاری می شوند و تمرکز بر پروژه های ML و مدیریت هزینه ها را آسان تر می کند. برای ساخت اپلیکیشن های خود در استودیو به کد زیر مراجعه کنید.
پاک کردن
پس از اتمام استفاده از برنامه، می خواهیم پورت های گوش دادن را آزاد کنیم. برای اینکه همه فرآیندها به صورت ساده اجرا شوند و آنها را برای استفاده آزاد کنیم، می توانیم اسکریپت پاکسازی خود را اجرا کنیم: sh cleanup.sh
نتیجه
در این پست، نمونهای از میزبانی یک دمو Streamlit برای یک کار تشخیص شی با استفاده از شناسایی آمازون را نشان دادیم. انگیزههای ساخت برنامههای کاربردی وب سریع، ملاحظات امنیتی و تنظیمات مورد نیاز برای اجرای برنامه Streamlit خودمان را در استودیو شرح دادیم. در نهایت، الگوی URL را در مرورگر وب خود تغییر دادیم تا یک جلسه جداگانه از طریق AWS Jupyter Proxy آغاز شود.
این نسخه ی نمایشی به شما امکان می دهد هر تصویری را آپلود کنید و خروجی های آمازون Rekognition را تجسم کنید. نتایج نیز پردازش میشوند و میتوانید یک فایل CSV با تمام کادرهای محدود را از طریق برنامه دانلود کنید. می توانید این کار را برای حاشیه نویسی و برچسب گذاری مجموعه داده های خود گسترش دهید، یا کد را تغییر دهید تا مدل سفارشی خود را به نمایش بگذارد!
درباره نویسنده
دیپیکا خولار مهندس ML در آزمایشگاه راه حل های آمازون ام ال. او به مشتریان کمک می کند تا راه حل های ML را برای حل مشکلات تجاری خود ادغام کنند. اخیراً، او خطوط لوله آموزشی و استنباط را برای مشتریان رسانه ای و مدل های پیش بینی کننده برای بازاریابی ایجاد کرده است.
مارسلو آبرله مهندس ML در سازمان AWS AI است. او رهبری تلاشهای MLOps را بر عهده دارد آزمایشگاه راه حل های آمازون ام ال، به مشتریان در طراحی و پیاده سازی سیستم های مقیاس پذیر ML کمک می کند. ماموریت او هدایت مشتریان در سفر ML سازمانی و تسریع در مسیر ML آنها به سمت تولید است.
یاش شاه مدیر علوم در آزمایشگاه راه حل های آمازون ام ال. او و تیمش از دانشمندان کاربردی و مهندسان ML روی طیف وسیعی از موارد استفاده از ML از مراقبتهای بهداشتی، ورزشی، خودروسازی و تولید کار میکنند.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- پلاتوبلاک چین. Web3 Metaverse Intelligence. دانش تقویت شده دسترسی به اینجا.
- منبع: https://aws.amazon.com/blogs/machine-learning/build-streamlit-apps-in-amazon-sagemaker-studio/
- :است
- $UP
- 100
- 7
- a
- بالاتر
- شتاب دادن
- دسترسی
- حساب
- در میان
- مدیران
- AI
- معرفی
- اختصاص داده شده است
- اجازه می دهد تا
- آمازون
- آمازون EC2
- شناسایی آمازون
- آمازون SageMaker
- Amazon SageMaker Studio
- و
- هر کس
- نرم افزار
- برنامه های کاربردی
- اعمال می شود
- برنامه های
- معماری
- هستند
- AS
- ظاهر
- مرتبط است
- At
- تصدیق
- بطور خودکار
- خودرو
- AWS
- BE
- مزایای
- بلاگ
- بالا بردن
- جعبه
- مرورگر
- ساختن
- بنا
- ساخته
- کسب و کار
- by
- مخزن
- CAN
- موارد
- تغییر دادن
- متغیر
- بررسی
- را انتخاب کنید
- ابر
- رمز
- همکاری
- بیا
- کامل
- اتمام
- محاسبه
- ملاحظات
- کنسول
- گروه شاهد
- مقرون به صرفه
- هزینه
- ایجاد
- ایجاد
- سفارشی
- مشتریان
- داده ها
- علم اطلاعات
- دانشمند داده
- به طور پیش فرض
- خواسته
- توده مردم
- گسترش
- طرح
- دقیق
- کشف
- توسعه
- توسعه دهنده
- در حال توسعه
- پروژه
- مختلف
- کارگر بارانداز
- دامنه
- پایین
- دانلود
- راندن
- بطور پویا
- هر
- آسان تر
- به آسانی
- تلاش
- پشت سر هم
- مهندس
- مورد تأیید
- سرمایه گذاری
- محیط
- حتی
- مثال
- موجود
- وجود دارد
- گسترش
- امکانات
- باز خورد
- پرونده
- فایل ها
- سرانجام
- نام خانوادگی
- تمرکز
- پیروی
- برای
- یافت
- رایگان
- از جانب
- به دست آوردن
- دریافت کنید
- گرفتن
- راهنمایی
- سخت
- هارد دیسک
- آیا
- داشتن
- بهداشت و درمان
- مفید
- کمک
- کمک می کند
- میزبان
- میزبانی وب
- چگونه
- چگونه
- HTML
- HTTPS
- ID
- تصویر
- انجام
- بهبود یافته
- in
- اطلاعات
- شالوده
- وارد کردن
- بینش
- نصب
- نصب شده
- نصب کردن
- نمونه
- در عوض
- ادغام
- یکپارچه
- تعامل
- رابط
- IT
- سفر
- JPG
- نگاه داشتن
- آزمایشگاه
- برچسب
- راه اندازی
- برجسته
- یادگیری
- کتابخانه
- wifecycwe
- ارتباط دادن
- فهرست
- استماع
- طولانی
- دستگاه
- فراگیری ماشین
- ساخت
- باعث می شود
- ساخت
- مدیریت
- مدیریت
- مدیر
- مدیران
- مدیریت
- روش
- دستی
- تولید
- بازار یابی (Marketing)
- ممکن است..
- رسانه ها
- دیدار
- حافظه
- قدرت
- حداقل
- ماموریت
- ML
- MLO ها
- مدل
- مدل
- اصلاح شده
- تغییر
- ماژول ها
- نظارت بر
- بیش
- اکثر
- انگیزه
- چندگانه
- جهت یابی
- نیاز
- نیازهای
- بعد
- دفتر یادداشت
- عدد
- هدف
- تشخیص شی
- of
- on
- باز کن
- منبع باز
- کدام سازمان ها
- مشخص شده
- نمای کلی
- خود
- بسته
- قطعه
- مسیر
- الگو
- افلاطون
- هوش داده افلاطون
- PlatoData
- نقطه
- ممکن
- پست
- مشکلات
- روند
- فرآوری شده
- فرآیندهای
- تولید
- مشخصات
- پیشرفت
- پروژه
- پروژه ها
- پروکسی
- اهداف
- پــایتــون
- سریع
- محدوده
- نسبتا
- واقعی
- زمان واقعی
- تازه
- مخزن
- ضروری
- مورد نیاز
- منابع
- نتایج
- دویدن
- در حال اجرا
- حکیم ساز
- همان
- پس انداز
- مقیاس پذیری
- مقیاس پذیر
- علم
- دانشمند
- دانشمندان
- اسکریپت
- امن
- تیم امنیت لاتاری
- جداگانه
- خدمت
- جلسه
- تنظیم
- تنظیمات
- برپایی
- اشتراک گذاری
- به اشتراک گذاشته شده
- اشتراک
- صدف
- باید
- نمایشگاه
- نشان داده شده
- نشان می دهد
- کوچک
- So
- راه حل
- مزایا
- حل
- منبع
- فضا
- فضاها
- ورزش ها
- شروع
- راه افتادن
- وضعیت
- گام
- مراحل
- opbevare
- پرده
- ساده کردن
- استودیو
- موفقیت
- پشتیبانی
- سیستم
- سیستم های
- کار
- تیم
- تیم ها
- پایانه
- که
- La
- منبع
- شان
- آنها
- اینها
- از طریق
- زمان
- زمان بر
- به
- آموزش دیده
- آموزش
- ui
- آپلود شده
- URL
- us
- استفاده
- استفاده کنید
- کاربر
- کاربران
- بررسی
- نسخه
- چشم انداز
- وب
- برنامه های وب
- مرورگر وب
- چی
- که
- در حین
- WHO
- اراده
- با
- در داخل
- بدون
- مهاجرت کاری
- کارگر
- شما
- شما
- زفیرنت