پایگاه داده MLDB ؛ رویای همه دانشمندان داده

در راه‌حل‌های یادگیری ماشین، به ندرت به مسئله مدل‌سازی و آزمایش مدل پرداخته می‌شود. مدیریت و خودکارسازیِ چرخه عمر مدل‌های یادگیری ماشین (از آموزش گرفته تا بهینه‌سازی) دشوارترین مسئله در حوزه یادگیری ماشین برشمرده می‌شود. دانشمندان داده به منظور کنترل چرخه حیات مدل باید قادر به بررسی وضعیت آن در مقیاس بزرگ باشند. تا زمانی که به این موضوع واقف نباشید که هر مدل یادگیری عمیق می‌تواند به طور میانگین دربرگیرندۀ صدها لایه پنهان و میلیون‌ها گره به‌هم پیوسته باشد، احتمال دارد این قضیه را ساده و پیش پا افتاده بپندارید! ذخیره‌سازی و دسترسی به گراف‌های بزرگ محاسبه از جمله کارهای چالش‌برانگیز است. تیم‌های علم داده اکثر مواقع مجبورند قبل از نتیجه‌گیری قطعی، زمان بسیاری برای تطابق پایگاه‌های داده NOSQL با مدل‌های یادگیری ماشین اختصاص دهند: راه‌حل‌های یادگیری ماشین مستلزم نوع جدیدی از پایگاه داده هستند.پایگاه داده MLDB برای عصر یادگیری ماشین طراحی شده است. این پلتفرم به منظورِ ذخیره‌سازی، تبدیل و هدایت گراف محاسبه‌ای که ساختار یادگیری ماشین (همانند شبکه عصبی عمیق) را به نمایش می‌گذارد، بهینه‌سازی شده است. ما می‌دانیم الان در ذهن‌تان چه می‌گذرد! پلتفرم‌های ابری یادگیری ماشین از قبیل AWS SageMaker یا Azure ML حاوی مدل‌های پایداری برای گراف‌های یادگیری ماشین هستند. پس چرا به راه‌حل دیگری نیاز داریم؟ شواهد و قرائن از این موضوع حکایت دارد که پایگاه‌های داده واقعی به ندرت به نفع راه‌حل‌های فعلی یادگیری ماشین عمل می‌کنند.پایگاه داده به پایگاه داده MLDB خوش آمدید.به MLDB یک پایگاه داده‌ متن باز برای ذخیره و جستجوی مدل یادگیری ماشین اطلاق می‌شود. این پلتفرم برای نخستین بار در Datacratic به کار گرفته شد. مرکز هوش مصنوعی Elementai به تازگی این پلتفرم را خریداری کرده است. MLDB در اَشکال مختلفی نظیر سرویس ابری، VirtualBox VM یا نمونه Docker قابل دسترس می‌باشد. در معماری MLDB، ویژگی‌های مختلفی در نظر گرفته شده است. این ویژگی‌ها در خلاصه‌سازیِ عناصر مختلف چرخه عمر راه‌حل یادگیری ماشین به ایفای نقش می‌پردازند. از دیدگاه فنی، می‌توان مدل MLDB را در شش مولفه ساده خلاصه کرد: فایل، دیتاست، راهکار، نقش، جستجو و API.پایگاه داده فایلدر مدل MLDB، امکان استفاده از فایل‌ها برای بارگذاری داده در مدل وجود دارد. MLDB می‌تواند زمینه را برای ادغام محلی با سیستم‌های فایل مشهور از قبیل HDFS و S3 فراهم کند.دیتاستدیتاست MLDB بر واحد داده اصلی تاکید دارد که مدل‌های یادگیری ماشین از آن استفاده می‌کنند. به لحاظ ساختاری، دیتاست‌ به مجموعه‌ای بدون طرح از نقاط داده‌ای می‌گویند که درون سلول‌ها جای گرفته‌اند. خودِ این سلول‌ها نیز از ردیف و ستون تشکیل یافته‌اند. نقاط داده‌ای از مقدار و نشانگر زمانی تشکیل یافته‌اند. بنابراین، هر نقطه داده می‌تواند به صورت چندتایی نشان داده شود (ردیف، ستون، مقدار، نشانگر زمانی). همچنین، می‌توان دیتاست‌ها را به عنوان متریک‌های پراکنده‎ی سه‌بعدی در نظر گرفت. داده‌ها از طریق REST API به دیتاست‌ها ضمیمه می‌شوند.راهکاراز راهکارها در MLDB برای اجرای جنبه‌های مختلف مدل یادگیری ماشین مثل آموزش یا تبدیل داده استفاده می‌شود. از دیدگاه فنی، راهکار به برنامه‌های نام‌داری با قابلیت استفاده مجدد اطلاق می‌شود که در اجرای عملیات دسته‌ای طولانی به کاربرد دارد. راهکارها عموماً در دیتاست‌ها به اجرا در می‎آیند و امکان پیکربندی آنها با عبارات SQL وجود دارد. خروجی راهکار یا Procedure عبارتست از دیتاست و فایل.نقشنقش یا Function در MLDB به خلاصه‌سازیِ فعالیت‌های روزمره محاسبه داده می‌پردازد. به عبارت دیگر، نقش به برنامه نام‌دار با قابلیت استفاده مجدد گفته می‌شود که در اجرای محاسبات اصلی نقش دارد. در این محاسبات، دریافت مقادیر ورودی و ارائه مقادیر خروجی در دستور کار قرار دارد.جستجویکی از مزایای اصلی MLDB این است که از SQL به عنوان سازوکاری برای جستجوی داده‌های ذخیره شده در پایگاه داده استفاده می‌کند. این پلتفرم از دستور زبان نسبتاً کاملی که حاوی ساخت‌های آشنایی مثل SELECT، WHERE، FROM، GROUP BY، ORDER BY و غیره است، پشتیبانی به عمل می‌آورد. برای نمونه، در MLDB می‌توان از جستجوی SQL برای آماده کردنِ دیتاست در مدل طبقه‌بندی تصاویر استفاده نمود:mldb.query("SELECT * FROM images LIMIT 3000")با APIs & Pymldbتمامی قابلیت‌های MLDB با REST API نشان داده می‌شود. این پلتفرم حاوی کتابخانه‌ای موسوم به pymldb است که قابلیت‌های API را به زبان ساده خلاصه می‌کند. شیوه استفاده از pymldb و جستجوی دیتاست در کد زیر نشان داده شده است.from pymldb import Connectionmldb = Connection("http://localhost")mldb.put( "/v1/datasets/demo", {"type":"sparse.mutable"})mldb.post("/v1/datasets/demo/rows", {"rowName": "first", "columns":[["a",۱,۰],["b",۲,۰]]})mldb.post("/v1/datasets/demo/rows", {"rowName": "second", "columns":[["a",۳,۰],["b",۴,۰]]})mldb.post("/v1/datasets/demo/commit")df = mldb.query("select * from demo")print type(df)پشتیبانی از الگوریتم‌های یادگیری ماشیندر واقع MLDB از تعداد زیادی الگوریتم پشتیبانی می‌کند. این پلتفرم از گراف محاسبه‌ی موتورهای یادگیری عمیق مختلف (مِن جمله تنسورفلو) پشتیبانی می‌کند.پایگاه داده حال بیایید یک چرخه کاری مشترک در راه‌حل‌های یادگیری ماشین (مثل آموزش و امتیازدهی به مدل) را بررسی کنیم؛ شکل زیر نحوه اجرای آن را در MLDB نشان می‌دهد:پایگاه داده ۱. این فرایند با فایلی مملو از داده‌های آموزشی آغاز می‌شود. این داده‌ها در دیتاست آموزش بارگذاری می‌شوند.۲. راهکار آموزش برای ایجاد فایل مدل به اجرا در می‌آید.۳. از مدل فایل برای تعیین پارامتر «امتیازدهی » استفاده می‌شود.۴. گزینه امتیازدهی از طریق REST Endpoint قابل دسترس است.۵. گزینه امتیازدهی از طریق SQL Query نیز قابل دسترس است.۶. در گزینه امتیازدهی دسته‌ای از SQL برای بکارگیری Scoring Function در دیتاست‌هایی که به آنها امتیاز داده نشده است، استفاده می‌شود.نتیجه‌گیریMLDB یکی از نخستین پایگاه‌های داده‌ای به شمار می‌رود که برای بررسی راه‌حل‌های یادگیری ماشین طراحی گردیده است. باید ارتقای این پلتفرم را در دستور کار قرار داد تا از روش‌های جدید یادگیری عمیق و یادگیری ماشین پشتیبانی نماید. این پلتفرم از انعطاف‌پذیری و توسعه‌پذیری برخوردار است.منبع: hooshio.com