آمازون SageMaker یک سرویس کاملاً مدیریت شده است که به توسعه دهندگان و دانشمندان داده توانایی ساخت سریع، آموزش و استقرار مدل های یادگیری ماشین (ML) را می دهد. با SageMaker، می توانید مدل های ML خود را در نقاط پایانی میزبانی شده مستقر کنید و نتایج استنتاج را در زمان واقعی دریافت کنید. شما به راحتی می توانید معیارهای عملکرد را برای نقاط پایانی خود مشاهده کنید CloudWatch آمازون, مقیاس خودکار نقاط پایانی بر اساس ترافیک، و مدل های خود را در حال تولید بدون از دست دادن در دسترس بودن، به روز کنید. SageMaker بسته به مورد استفاده شما، گزینههای متنوعی را برای استقرار مدلهای ML برای استنتاج به یکی از روشهای زیر ارائه میدهد:
- برای پیشبینیهای همزمان که باید به ترتیب میلیثانیه ارائه شوند، از SageMaker استفاده کنید. استنتاج بلادرنگ
- برای بارهای کاری که دوره های بیکاری بین جهش های ترافیکی دارند و می توانند شروع سرد را تحمل کنند، استفاده کنید استنتاج بدون سرور
- برای درخواستهایی با حجم بار بزرگ تا 1 گیگابایت، زمان پردازش طولانی (تا 15 دقیقه) و الزامات تاخیر تقریباً واقعی (ثانیه تا دقیقه)، از SageMaker استفاده کنید. استنتاج ناهمزمان
- برای دریافت پیشبینی برای کل مجموعه داده، از SageMaker استفاده کنید تبدیل دسته ای
استنتاج بلادرنگ برای بارهای کاری استنتاج که در آن نیازهای زمان واقعی، تعاملی و تاخیر کم دارید ایده آل است. شما مدل خود را در سرویس های میزبانی SageMaker مستقر می کنید و یک نقطه پایانی دریافت می کنید که می تواند برای استنتاج استفاده شود. این نقاط پایانی توسط یک زیرساخت و پشتیبانی کاملاً مدیریت شده پشتیبانی می شوند مقیاس بندی خودکار. شما می توانید با استفاده از ترکیب چندین مدل در یک نقطه پایانی، کارایی و هزینه را افزایش دهید نقاط پایانی چند مدلی or نقاط پایانی چند کانتینری.
موارد استفاده خاصی وجود دارد که میخواهید چندین نوع از یک مدل را برای ارزیابی عملکرد آنها، اندازهگیری پیشرفتها یا اجرای تستهای A/B به تولید بفرستید. در چنین مواردی، نقاط پایانی چند متغیره SageMaker مفید هستند، زیرا به شما اجازه میدهند چندین نوع تولید یک مدل را در همان نقطه پایانی SageMaker مستقر کنید.
در این پست، نقاط پایانی چند متغیره SageMaker و بهترین روشها برای بهینهسازی را مورد بحث قرار میدهیم.
مقایسه گزینه های استنتاج بلادرنگ SageMaker
نمودار زیر یک نمای کلی سریع از گزینه های استنتاج بلادرنگ با SageMaker ارائه می دهد.
نقطه پایانی تک مدلی به شما امکان می دهد یک مدل را در یک کانتینر میزبانی شده در نمونه های اختصاصی یا بدون سرور برای تأخیر کم و توان عملیاتی بالا مستقر کنید. شما می توانید یک مدل ایجاد کنید و بازیابی a تصویر پشتیبانی شده از SageMaker برای فریمورک های محبوبی مانند TensorFlow، PyTorch، Scikit-learn و غیره. اگر با یک چارچوب سفارشی برای مدل خود کار می کنید، می توانید ظرف خود را بیاورید که وابستگی های شما را نصب می کند.
SageMaker همچنین از گزینه های پیشرفته تری مانند نقاط پایانی چند مدل (MME) و نقاط پایانی چند کانتینری (MCEs) پشتیبانی می کند. MME ها زمانی مفید هستند که با صدها تا ده ها هزار مدل سر و کار دارید و نیازی به استقرار هر مدل به عنوان نقطه پایانی جداگانه ندارید. MMEها به شما امکان می دهند چندین مدل را به شیوه ای مقرون به صرفه و مقیاس پذیر در یک نقطه پایانی با استفاده از یک کانتینر سرویس مشترک میزبانی شده روی یک نمونه میزبانی کنید. زیرساخت زیربنایی (کانتینر و نمونه) یکسان باقی میماند، اما مدلها با توجه به میزان استفاده و میزان حافظه موجود در نقطه پایانی، به صورت پویا از یک مکان مشترک S3 بارگیری و تخلیه میشوند. برنامه شما به سادگی باید یک فراخوانی API با مدل هدف را در این نقطه پایانی برای دستیابی به استنتاج با تأخیر کم و بازده بالا شامل شود. به جای پرداخت هزینه برای یک نقطه پایانی جداگانه برای هر مدل، می توانید مدل های زیادی را با قیمت یک نقطه پایانی واحد میزبانی کنید.
MCE ها شما را قادر می سازند تا 15 کانتینر ML مختلف را در یک نقطه پایانی واحد اجرا کنید و آنها را به طور مستقل فراخوانی کنید. میتوانید این ظروف ML را روی پشتههای سرویسدهی مختلف (مانند چارچوب ML، سرور مدل، و الگوریتم) بسازید تا برای صرفهجویی در هزینه در یک نقطه پایانی اجرا شوند. می توانید ظروف را به صورت یک دوخت به هم بدوزید خط لوله استنتاج سریالی یا به طور مستقل ظرف را فراخوانی کنید. این می تواند زمانی ایده آل باشد که چندین مدل ML مختلف دارید که دارای الگوهای ترافیکی متفاوت و نیازهای منابع مشابه هستند. نمونه هایی از زمان استفاده از MCE شامل موارد زیر است، اما محدود به آنها نیست:
- میزبانی مدلها در چارچوبهای مختلف (مانند TensorFlow، PyTorch، و Scikit-learn) که ترافیک کافی برای اشباع ظرفیت کامل یک نمونه ندارند.
- میزبانی مدلها از چارچوب یکسان با الگوریتمهای مختلف ML (مانند توصیهها، پیشبینی یا طبقهبندی) و توابع کنترلکننده
- مقایسه معماریهای مشابه در حال اجرا بر روی نسخههای چارچوب مختلف (مانند TensorFlow 1.x در مقابل TensorFlow 2.x) برای سناریوهایی مانند آزمایش A/B
نقاط پایانی چند متغیره SageMaker (MVEs) به شما این امکان را می دهد که چندین مدل یا نسخه مدل را در پشت نقطه پایانی مشابه با استفاده از انواع تولید آزمایش کنید. هر نوع تولیدی، یک مدل ML و منابعی را که برای میزبانی مدل مستقر شده است، مانند ظرف سرویس و نمونه، شناسایی می کند.
مروری بر نقاط پایانی چند متغیره SageMaker
در جریانهای کاری ML تولید، دانشمندان داده و مهندسان ML مدلها را از طریق روشهای مختلف، مانند بازآموزی بر اساس دادهها/مدل/مفهوم، تنظیم فراپارامتر، انتخاب ویژگی، انتخاب چارچوب و موارد دیگر، اصلاح میکنند. انجام تست A/B بین یک مدل جدید و یک مدل قدیمی با ترافیک تولید می تواند گام نهایی موثر در فرآیند اعتبارسنجی یک مدل جدید باشد. در تست A/B، شما انواع مختلف مدلهای خود را آزمایش میکنید و نحوه عملکرد هر یک از انواع را نسبت به یکدیگر مقایسه میکنید. سپس بهترین مدل را انتخاب می کنید تا مدل قبلی را با نسخه جدیدی جایگزین کنید که عملکرد بهتری نسبت به نسخه قبلی ارائه می دهد. با استفاده از انواع تولید، میتوانید این مدلهای ML و نسخههای مدلهای مختلف را در یک نقطه پایانی مشابه آزمایش کنید. شما می توانید این مدل های ML را با استفاده از مجموعه داده های مختلف، الگوریتم های مختلف و چارچوب های ML آموزش دهید. آنها را در انواع نمونه های مختلف مستقر کنید. یا هر ترکیبی از این گزینه ها متعادل کننده بار متصل به نقطه پایانی SageMaker توانایی توزیع درخواست های فراخوانی را در انواع مختلف تولید فراهم می کند. برای مثال، میتوانید با تعیین توزیع ترافیک برای هر نوع، ترافیک را بین انواع تولیدی توزیع کنید، یا میتوانید یک نوع خاص را مستقیماً برای هر درخواست فراخوانی کنید.
همچنین میتوانید خطمشی مقیاسبندی خودکار را به گونهای پیکربندی کنید که بهطور خودکار انواع خود را بر اساس معیارهایی مانند درخواستها در ثانیه مقیاسبندی کند.
نمودار زیر نحوه عملکرد MVE را با جزئیات بیشتری نشان می دهد.
استقرار MVE نیز بسیار ساده است. تنها کاری که باید انجام دهید این است که اشیاء مدل را با استفاده از تصویر و داده های مدل تعریف کنید create_model
از SageMaker Python SDK ساخته شده و تنظیمات نقطه پایانی را با استفاده از آن تعریف کنید production_variant
سازه هایی برای ایجاد انواع تولید، که هر کدام مدل و منابع مورد نیاز متفاوت خود را دارند (نوع نمونه و تعداد). این به شما امکان میدهد تا مدلها را بر روی انواع نمونههای مختلف نیز آزمایش کنید. برای استقرار، از endpoint_from_production_variant
ساختن برای ایجاد نقطه پایانی
در طول ایجاد نقطه پایانی، SageMaker نمونه میزبانی مشخص شده در تنظیمات نقطه پایانی را ارائه میکند و مدل و ظرف استنتاج مشخصشده توسط نوع تولید را در نمونه میزبان دانلود میکند. اگر پس از راهاندازی کانتینر و انجام بررسی سلامت با پینگ، یک پاسخ موفقیتآمیز برگردانده شود، پیامی مبنی بر تکمیل ایجاد نقطه پایانی برای کاربر ارسال میشود. کد زیر را ببینید:
در مثال قبلی، ما دو نوع ایجاد کردیم که هر کدام مدل متفاوت خود را دارند (اینها همچنین میتوانند انواع و تعداد نمونههای متفاوتی داشته باشند). یک را تنظیم کردیم initial_weight
از 1 برای هر دو نوع: این به این معنی است که 50٪ از درخواست های ما به Variant1
، و 50٪ باقی مانده به Variant2
. مجموع اوزان در هر دو نوع 2 است و هر نوع دارای انتساب وزن 1 است. این بدان معناست که هر نوع 50٪ از کل ترافیک را دریافت می کند.
فراخوانی نقطه پایانی مشابه ساختار متداول SageMaker است invoke_endpoint
; شما می توانید نقطه پایانی را مستقیماً با داده ها به عنوان بارگذاری فراخوانی کنید:
SageMaker معیارهایی مانند Latency
و Invocations
برای هر نوع در CloudWatch. برای فهرست کامل معیارهایی که SageMaker منتشر میکند، ببینید Amazon SageMaker را با Amazon CloudWatch مانیتور کنید. میتوانید از CloudWatch پرس و جو کنید تا تعداد فراخوانها را در هر گونه دریافت کنید تا ببینید چگونه فراخوانها بهطور پیشفرض در بین انواع مختلف تقسیم میشوند.
برای فراخوانی یک نسخه خاص از مدل، یک نوع را به عنوان مشخص کنید TargetVariant
در تماس به invoke_endpoint
:
شما می توانید عملکرد هر نوع تولید را با بررسی معیارهایی مانند دقت، دقت، یادآوری، امتیاز F1 و مشخصه/منطقه عملکرد گیرنده در زیر منحنی برای هر نوع با استفاده از بررسی کنید. مانیتور مدل آمازون SageMaker. سپس میتوانید با بهروزرسانی وزنهای تخصیص دادهشده به هر نوع با تماس، تصمیم بگیرید که ترافیک را به بهترین مدل افزایش دهید. UpdateEndpoint WeightsAndCapacities. این امر توزیع ترافیک را در انواع تولید شما بدون نیاز به بهروزرسانی نقطه پایانی شما تغییر میدهد. بنابراین به جای 50٪ از ترافیک از راه اندازی اولیه، ما 75٪ از ترافیک را منتقل می کنیم Variant2
با اختصاص وزن های جدید به هر نوع با استفاده از UpdateEndpointWeightsAndCapacities
. کد زیر را ببینید:
وقتی از عملکرد یک نوع راضی هستید، می توانید 100٪ ترافیک را به آن نوع هدایت کنید. به عنوان مثال، می توانید وزن را برای Variant1
به 0 و وزن برای Variant2
به 1. SageMaker سپس 100% از تمام درخواست های استنتاج را به Variant2
. سپس می توانید با خیال راحت نقطه پایان خود را به روز کرده و حذف کنید Variant1
از نقطه پایانی شما همچنین می توانید با افزودن انواع جدید به نقطه پایانی خود، به آزمایش مدل های جدید در تولید ادامه دهید. همچنین می توانید این نقاط پایانی را به گونه ای پیکربندی کنید که به طور خودکار بر اساس ترافیک دریافتی نقاط پایانی مقیاس شوند.
مزایای نقاط پایانی چند متغیره
SageMaker MVE به شما امکان می دهد کارهای زیر را انجام دهید:
- چندین گونه از یک مدل را با استفاده از همان نقطه پایانی SageMaker اجرا و آزمایش کنید. این برای آزمایش تغییرات یک مدل در تولید مفید است. به عنوان مثال، فرض کنید که یک مدل را در تولید قرار داده اید. میتوانید با هدایت مقدار کمی از ترافیک، مثلاً 5 درصد، تغییراتی از مدل را به مدل جدید آزمایش کنید.
- ارزیابی عملکرد مدل در تولید بدون وقفه در ترافیک با نظارت بر معیارهای عملیاتی برای هر نوع در CloudWatch.
- مدل های در حال تولید را بدون از دست دادن در دسترس بودن به روز کنید. میتوانید یک نقطه پایانی را بدون خارج کردن مدلهایی که قبلاً در مرحله تولید قرار گرفتهاند، تغییر دهید. برای مثال، میتوانید انواع مدلهای جدید اضافه کنید، پیکربندیهای نمونه محاسباتی ML انواع مدلهای موجود را بهروزرسانی کنید، یا توزیع ترافیک را بین انواع مدل تغییر دهید. برای اطلاعات بیشتر ببین UpdateEndpoint و UpdateEndpoint WeightsAndCapacities.
چالشها هنگام استفاده از نقاط پایانی چند متغیره
SageMaker MVE با چالش های زیر همراه است:
- تلاش تست بار - برای آزمایش و مقایسه ماتریس مدل برای هر نوع باید مقدار زیادی تلاش و منابع انجام دهید. برای اینکه یک آزمون A/B موفق در نظر گرفته شود، باید یک تحلیل آماری از معیارهای جمع آوری شده از آزمون انجام دهید تا مشخص شود آیا نتیجه ای از نظر آماری معنادار وجود دارد یا خیر. به حداقل رساندن کاوش انواع با عملکرد ضعیف می تواند چالش برانگیز باشد. شما به طور بالقوه می توانید استفاده کنید راهزن چند مسلح تکنیک بهینهسازی برای جلوگیری از ارسال ترافیک به آزمایشهایی که کار نمیکنند و عملکرد را در حین آزمایش بهینه میکند. برای تست بار نیز می توانید کاوش کنید توصیه کننده استنباط آمازون SageMaker برای انجام معیارهای گسترده بر اساس الزامات تولید برای تأخیر و توان عملیاتی، الگوهای ترافیک سفارشی، و نمونه هایی (تا 10) که انتخاب می کنید.
- اتصال محکم بین مدل مدل و نقطه پایانی - بسته به فرکانس استقرار مدل ممکن است مشکل باشد، زیرا ممکن است نقطه پایانی در نهایت به پایان برسد
updating
وضعیت برای هر نوع تولیدی که به روز می شود. SageMaker نیز پشتیبانی می کند نرده های استقرارکه با استفاده از آن می توانید به راحتی از مدل فعلی در حال تولید به مدل جدید به صورت کنترل شده تغییر دهید. این گزینه معرفی می کند قناری و خطی حالت های تغییر ترافیک به طوری که بتوانید در طول به روز رسانی، کنترل دقیقی بر تغییر ترافیک از مدل فعلی خود به مدل جدید داشته باشید. با محافظهای داخلی مانند بازگشت خودکار، میتوانید مشکلات را زودتر متوجه شوید و قبل از اینکه تأثیر قابلتوجهی در تولید ایجاد کنند، بهطور خودکار اقدامات اصلاحی انجام دهید.
بهترین روش ها برای نقاط پایانی چند متغیره
هنگام میزبانی مدل هایی با استفاده از SageMaker MVE، موارد زیر را در نظر بگیرید:
- SageMaker برای آزمایش مدل های جدید عالی است زیرا می توانید به راحتی آنها را در یک محیط تست A/B مستقر کنید و فقط برای آنچه استفاده می کنید هزینه می پردازید. شما به ازای هر نمونه-ساعت مصرف شده برای هر نمونه در زمانی که نقطه پایانی در حال اجرا است، هزینه دریافت می کنید. وقتی آزمایشات خود را تمام کردید و دیگر از نقطه پایانی یا انواع مختلف استفاده نمی کنید، برای صرفه جویی در هزینه باید آن را حذف کنید. شما همیشه می توانید آن را در صورت نیاز دوباره ایجاد کنید زیرا مدل در آن ذخیره شده است سرویس ذخیره سازی ساده آمازون (Amazon S3).
- برای استقرار مدل ها باید از بهینه ترین نوع و اندازه نمونه استفاده کنید. SageMaker در حال حاضر ارائه می دهد ML موارد را محاسبه می کند در مورد خانواده های مختلف یک نمونه نقطه پایانی همیشه در حال اجرا است (در حالی که نمونه در حال سرویس است). بنابراین، انتخاب نوع نمونه مناسب میتواند تاثیر قابلتوجهی بر هزینه کل و عملکرد مدلهای ML داشته باشد. تست بار بهترین روش برای تعیین نوع نمونه مناسب و اندازه ناوگان، با یا بدون مقیاس خودکار برای نقطه پایانی زنده شما است تا از تامین بیش از حد و پرداخت هزینه اضافی برای ظرفیتی که نیاز ندارید جلوگیری شود.
- می توانید عملکرد مدل و استفاده از منابع را در CloudWatch نظارت کنید. می توانید a را پیکربندی کنید
ProductionVariant
به استفاده از مقیاس خودکار برنامه. برای تعیین معیارها و مقادیر هدف برای یک خطمشی مقیاسبندی، یک خطمشی مقیاسبندی ردیابی هدف را پیکربندی میکنید. می توانید از یک متریک از پیش تعریف شده یا یک متریک سفارشی استفاده کنید. برای اطلاعات بیشتر در مورد نحو پیکربندی خط مشی، نگاه کنید TargetTrackingScalingPolicyConfiguration. برای اطلاعات در مورد پیکربندی مقیاس بندی خودکار، رجوع کنید به مقیاس خودکار Amazon SageMaker Models. برای تعریف سریع خطمشی مقیاسبندی ردیابی هدف برای یک نوع، میتوانید یک متریک خاص CloudWatch را انتخاب کنید و مقادیر آستانه را تنظیم کنید. به عنوان مثال، از متریک استفاده کنیدSageMakerVariantInvocationsPerInstance
برای نظارت بر میانگین تعداد دفعاتی که در هر دقیقه هر نمونه برای یک نوع فراخوانی میشود، یا استفاده از متریکCPUUtilization
برای نظارت بر مجموع کارهای انجام شده توسط یک CPU. مثال زیر ازSageMakerVariantInvocationsPerInstance
متریک از پیش تعریف شده برای تنظیم تعداد نمونه های مختلف به طوری که هر نمونه دارای یکInvocationsPerInstance
متریک 70:
- تغییر یا حذف مصنوعات مدل یا تغییر کد استنتاج پس از استقرار یک مدل نتایج غیرقابل پیش بینی ایجاد می کند. قبل از استقرار مدلها در تولید، این یک تمرین خوب است که بررسی کنید که آیا میزبانی مدل در حالت محلی پس از اشکالزدایی کافی قطعات کد استنتاج (مانند
model_fn
,input_fn
,predict_fn
وoutput_fn
) در محیط توسعه محلی مانند نمونه نوت بوک SageMaker یا سرور محلی. اگر نیاز به تغییر یا حذف مصنوعات مدل یا تغییر کد استنتاج دارید، با ارائه یک پیکربندی نقطه پایانی جدید، نقطه پایانی را تغییر دهید. پس از ارائه پیکربندی نقطه پایانی جدید، می توانید مصنوعات مدل مربوط به پیکربندی نقطه پایانی قدیمی را تغییر دهید یا حذف کنید. - می توانید از SageMaker استفاده کنید تبدیل دسته ای برای آزمایش انواع تولید تبدیل دسته ای برای بدست آوردن استنتاج از مجموعه داده های بزرگ ایده آل است. میتوانید برای هر مدل جدید یک کار تبدیل جداگانه ایجاد کنید و از مجموعه داده اعتبارسنجی برای آزمایش استفاده کنید. برای هر کار تبدیل، یک نام مدل و مکان منحصر به فرد را در آمازون S3 برای فایل خروجی مشخص کنید. برای تجزیه و تحلیل نتایج، استفاده کنید گزارشها و معیارهای خط لوله استنتاج.
نتیجه
SageMaker شما را قادر میسازد تا با اجرای چندین نوع تولید در یک نقطه پایانی، مدلهای A/B ML را در تولید به راحتی آزمایش کنید. میتوانید از قابلیتهای SageMaker برای آزمایش مدلهایی استفاده کنید که با استفاده از مجموعه دادههای آموزشی مختلف، فراپارامترها، الگوریتمها یا چارچوبهای ML آموزش دیدهاند. نحوه عملکرد آنها در انواع نمونه های مختلف؛ یا ترکیبی از تمام موارد بالا. شما می توانید توزیع ترافیک را بین انواع مختلف در یک نقطه پایانی ارائه دهید و SageMaker ترافیک استنتاج را بر اساس توزیع مشخص شده به انواع مختلف تقسیم می کند. متناوباً، اگر میخواهید مدلهایی را برای بخشهای خاص مشتری آزمایش کنید، میتوانید نوع دیگری را که باید درخواست استنتاج را با ارائه TargetVariant
هدر، و SageMaker درخواست را به گونه ای که شما مشخص کرده اید هدایت می کند. برای اطلاعات بیشتر در مورد تست A/B، نگاه کنید به روز رسانی ایمن مدل ها در تولید.
منابع
درباره نویسندگان
دیپلی راجال مدیر حساب فنی متخصص AI/ML در خدمات وب آمازون است. او با مشتریان سازمانی کار میکند و راهنماییهای فنی را برای اجرای راهحلهای یادگیری ماشین با بهترین شیوهها ارائه میکند. او در اوقات فراغت خود از پیاده روی، فیلم و معاشرت با خانواده و دوستان لذت می برد.
داوال پاتل یک معمار اصلی یادگیری ماشین در AWS است. او با سازمانهایی از شرکتهای بزرگ گرفته تا استارتآپهای متوسط در زمینه مشکلات مربوط به محاسبات توزیعشده و هوش مصنوعی کار کرده است. او بر روی یادگیری عمیق از جمله دامنه های NLP و Computer Vision تمرکز دارد. او به مشتریان کمک می کند تا به استنباط مدل با عملکرد بالا در SageMaker دست یابند.
ساوراب تریکاند مدیر محصول ارشد Amazon SageMaker Inference است. او مشتاق کار با مشتریان است و هدفش دموکراتیک کردن یادگیری ماشین است. او بر چالشهای اصلی مربوط به استقرار برنامههای کاربردی پیچیده ML، مدلهای ML چند مستاجر، بهینهسازی هزینهها و در دسترستر کردن استقرار مدلهای یادگیری عمیق تمرکز میکند. Saurabh در اوقات فراغت خود از پیاده روی، یادگیری در مورد فن آوری های نوآورانه، دنبال کردن TechCrunch و گذراندن وقت با خانواده خود لذت می برد.
- AI
- آی هنر
- مولد هنر ai
- ربات ai
- آمازون SageMaker
- هوش مصنوعی
- گواهی هوش مصنوعی
- هوش مصنوعی در بانکداری
- ربات هوش مصنوعی
- ربات های هوش مصنوعی
- نرم افزار هوش مصنوعی
- آموزش ماشین AWS
- بلاکچین
- کنفرانس بلاک چین ai
- coingenius
- هوش مصنوعی محاوره ای
- کنفرانس کریپتو ai
- دل-ه
- یادگیری عمیق
- گوگل ai
- فراگیری ماشین
- افلاطون
- افلاطون آی
- هوش داده افلاطون
- بازی افلاطون
- PlatoData
- بازی پلاتو
- مقیاس Ai
- نحو
- زفیرنت