روابط عمومی شرکت ایدکو (توزیعکنندهی محصولات کسپرسکی در ایران)؛ کسپرسکی اخیراً اعلام کرده که دارد روی شرکتMotive NT که کارش توسعهی پردازنده عصبی[1] درونخانگی[2] به نام Altai است سرمایهگذاری میکند. در این مقاله توضیح دادهایم پردازندههای عصبی چه هستند، فرقشان با پردازندههای قدیمی چیست و چرا به نظر میرسد این حوزه از حیث پیشرفت فناوری کامپیوتر بسیار نویدبخش و امیدوارکننده است. با ما همراه باشید.
مغز کامپیوتر
یک کامپیوتر مدرن، تبلت، اسمارتفون، دستگاه شبکه یا پلیر دیجیتال واحد پردازش مرکزی به نام سیپییو دارد- دستگاه مدارالکتریکی همهمنظوره برای اجرای کد کامپیوتر. اصول عملکرد پردازشگر سنتی در دهه 40 میلادی پیریزی شد و شاید جالب باشد به شما بگوییم از آن زمان به این طرف این اصول تغییر چندانی نکردهاند: سیپییوها فرمانها را خوانده و آنها را به صورت متوالی اجرا میکنند. در سطح CPU هر برنامه به تسکهای بسیار ساده تقسیم میشود. اینها فرمانهایی مانند read from memory، write to memory، add two numbers، multiply، divide و غیره هستد. تفاوتهای ظریف بسیاری بین عملکرد سیپییوها وجود دارد اما نقداً در این مقاله میخواهیم به چیزی مهمتر بپردازیم: یادآوری اینکه سیپییوها برای مدتی طولانی فقط میتوانند در هر چرخه یک عملیات را انجام دهند. این چرخهها میتوانند متعدد باشند: در ابتدا صداها هزار، بعد میلیونها و امروزه میلیاردها چرخه در یک ثانیه.
با این وجود تا همین اواخر (اواسط دهه 2000) یک کامپیوتر یا لپتاپ معمولی فقط یک پردازشگر داشت. مولتیتسکینک (چندکارهبودن) یا توانایی در اجرای چند برنامه به صورت همزمان روی یک سیپییو از طریق تخصیص منبع بدست آمد: چندین چرخه ساعت به یک برنامه داده میشود، بعد منابع به یکدیگر محول شده، سپس به سومی و الیاخر. وقتی پردازگرهای چندهستهای مقرون به صرفه وارد بازار شد منابع حتی به طور مؤثرتری میتوانند تخصیص شوند. سپس این امکان بوجود آمد که تنه تنها بشود چندین برنامه را روی هستههای مختلف اجرا کرد که همچنین بشود یک برنامه را همزمان روی چند هسته اجرا نمود. ابتدا این کار آسانی نبود: بسیاری از برنامهها و گیمها تا مدتی برای پردازشگر چند هستهای یا سیستمهای چند پردازشگر بهینهسازی نشده بودند.
سیپییوهای امروزی که توسط کاربران خانگی انتخاب میشوند میتوانند 16 یا حتی 32 هسته داشته باشند. این رقم قابلملاحظهای است اما از این بیشتر هم میتوانند باشند- حتی برای فناوری مصرفکننده معمولی. برای مثال کارت ویدیویی Nvidia GeForce 3080Ti تعداد 10240 هسته دارد! چرا این تفاوت باید چنین فاحش باشد؟ زیرا سیپییوهای سنتی بسیار پیچیدهتر از هستههای پردازندهای هستند که در کارتهای ویدیویی یافت میشوند. سیپییوهای معمولی مجموعه محدودی از کارکردهای ساده را اجرا میکنند اما واحدهای پردازشیِ گرافیکی تخصصی در کارتهای ویدیویی (جیپییوها) حتی بدویتر نیز هستند: اینها فقط میتوانند عملیاتهای پایه را انجام دهند اما همین چند عملیات را با سرعت خوبی پیش میبرند (این میتواند وقتی نیاز دارید میلیاردها عملیات این چنینی را در ثانیه انجام دهید به کارتان آید). برای مثال گیمهای کامپیوتری؛ جایی که فرضاً برای محاسبه نور یک صحنه کلی رایانش نسبتاً ساده برای هر نقطه در عکس لازم است.
علیرغم این ریزهکاریها، هستههای پردازندهی سیپییوها و کارتهای ویدیویی قدیمی چندان فرق بزرگی با هم ندارند. با این وجود پردازندههای عصبی زمین تا آسمان با دو مورد قبلی فرق دارد. پردازندههای عصبی تلاش ندارند مجموعهای از عناصر اجرای عملیاتهای محسابهای را چه به صورت توالی یا موازی پیادهسازی کنند. در عوض هدف آنها بازتولید ساختار مغز انسان است! در علم رایانش کوچکترین واحد، ترانزیتور پایینرده است: چندین میلیارد از این عناصر میکروسکوپی در یک سیپییوی معمولی در هر کامپیوتر یا اسمارتفونی وجود دارد. در مغز انسان معادل همین پایهترین المان، نورون (عصب) یا سلول عصبی است. نورونها با سیناپسها بهم همدیگر متصل میشوند. مغز انسان از دهها میلیارد نورون تشکیل شده است که سیستمی را درست میکند به شدت پیچیده و خودآموز[3]. برای دهها سال این قاعده به نام مهندسی نورومورفیک[4] شناخته شده و تمرکزش بازتولید (دست کم تا حدی) ساختار مغز انسان د قالب مدارهای الکتریکی است. پردازشگر Altai که با این رویکرد توسعه داده شده است سختافزاری است با بافت مغزی- با کلی نورون و سیناپس.
پردازندههای عصبی و شبکههای عصبی
اما بیایید آنقدرها هم به دلمان صابون نزنیم؛ گرچه محققین در بازتولید برخی عناصر ساختار مغزی با استفاده از نیمه هادیها موفقیت شدند اما این بدان معنا نیست که به این زودیها قرار است شاهد کپیهای دیجیتالی انسانها باشیم. در این بین، پردازشگرهای عصبی – نسخههای نیمه هادی ساختار مغز ما - کاربردهای نسبتاً عملی دارند. dآنها برای پیاده سازی سیستمهای یادگیری ماشین و شبکههای عصبی که زیربنای آنها هستند مورد نیاز هستند. یک شبکه عصبی یا به طور دقیقتر، یک شبکه عصبی مصنوعی (برخلاف شبکه طبیعی درون مغز ما) از مجموعهای از سلولها تشکیل شده است که قادر به پردازش و ذخیره اطلاعات هستند. مدل کلاسیک یک شبکه عصبی، پرسپترون، در دهه 1960 توسعه یافت.
این مجموعه از سلولها را میتوان با ماتریس دوربین مقایسه کرد، اما همچنین میتواند یاد بگیرد، تصویر حاصل را تفسیر کند و الگوهایی را در آن بیابد. ارتباطات ویژه بین سلولها و انواع مختلف سلولها، اطلاعات را پردازش میکنند تا مثلاً بین کارتهای الفبای نگهداشته شده در جلوی لنز تمایز قائل شوند. اما این 60 سال پیش بود. از آن زمان، به ویژه در دهه گذشته، یادگیری ماشین و شبکه های عصبی در بسیاری از کارهای روزمره رایج شده است. آنها برای پیادهسازی سیستمهای یادگیری ماشین و شبکه های عصبی که زیربنای آنها هستند مورد نیاز هستند.
مشکل تشخیص حروف الفبا مدتهاست حل شده است. همانطور که موتورسواران به خوبی میدانند، دوربینهای سرعت میتوانند پلاک خودروی خود را از هر زاویهای، در روز یا شب، حتی اگر پوشیده از گل و لای باشند، تشخیص دهند. یک کار معمولی برای یک شبکه عصبی گرفتن عکس (مثلاً از یک استادیوم از بالا) و شمارش تعداد افراد است. این وظایف یک وجه مشترک دارند: ورودیها همیشه کمی متفاوت هستند. یک برنامه معمولی و قدیمی احتمالاً می تواند پلاکی را که از جلو عکس گرفته شده است، تشخیص دهد، اما نه در زاویه. در این مورد، برای آموزش یک شبکه عصبی، عکسهای بیشماری از پلاکهای خودرو (یا چیز دیگری) را تغذیه میکنیم، و یاد میگیرد حروف و اعدادی را که از آن تشکیل شده است (یا سایر ویژگیهایی که ورودی دارد) تشخیص دهد. و گاهی آنقدر متخصص میشود که مثلاً در زمینه پزشکی میتواند تشخیص را بهتر - یا زودتر - از یک پزشک انجام دهد.
اما برگردیم به موضوع پیادهسازی شبکههای عصبی: رایانشهای لازم برای اجرای یک الگوریتم عصبی شبکه ساده است اما چندین عملیات این چنینی وجود دارد. این کار سیپیسوی قدیمی نیست؛ بلکه مناسب کارت ویدیویی است با هزاران، یا دهها هزار ماژول رایانشی. همچنین این امکان نیز وجود دارد که بشود سیپییوی تخصصیتری ساخت که مجموعهای از رایانشهای لازم برای برخی الگوریتمهای خاص یادگیری را اجرا کند. این هم ارزانتر در خواهد آمد هم مؤثرتر خواهد بود. اما همه این دستگاهها هنوز شبکه عصبی (مجموعه نودهای سلولی که اطلاعات را درک کرده و پردازش میکنند و با چندین لینک به همدیگر اتصالشان شکل میگیرد) در سطح نرمافزاری میسازند. این درحالیست که یک پردازنده عصبی نقشه شبکه عصبی را در سطح سختافزاری پیاده میکند. این پیادهسازی سختافزاری بسیار کارامد است. پردازنده عصبی Loihi ساخت شرکت اینتل از 131072 نورون مصنوعی تشکیل شده است که توسط بیش از 130 میلیون سیناپس به هم وصلند. مزیت مهم این طرح، مصرف کمِی انرژی در حالت بیکاریاش است، در حالی که GPUهای معمولی حتی زمانی که کار نمیکنند تشنه انرژی هستند. این، به علاوه عملکرد تئوری بالاتر در وظایف آموزش شبکه عصبی، مصرف انرژی بسیار کمتری را ارائه میدهد. به عنوان مثال، نسل اول پردازنده Altai، هزار برابر کمتر از یک GPU مشابه، انرژی مصرف میکند.
شبکههای عصبی و امنیت
130 هزار نورون به مراتب از دهها میلیارد نورون در مغز انسان کمتر است. تحقیق در مورد آن ما را به درک جامعتری از ساز و کار مغز انسان رساند (بدینترتیب سیستمهای خودآموز را میشود به شکل مؤثرتی ساخت) و این تازه اول راهمان است. مهمتر اینکه پردازندههای عصبی از همین الان مورد تقاضا هستند زیرا به لحاظ تئوری آنها به ما اجازه میدهند بهتر مشکلات موجود را حل کنیم. یکی از نمونههایش میتواند تشخیصدهنده الگو تعبیهشده در اسمارتفون شما باشد که میتواند فرضاً فرق بین انواع مختلف بریهایی را که انتخاب میکنید بداند. از همین الان سیپییوهای تخصصی برای پردازش ویدیو و تسکهای مشابه در اسمارتفونها و لپتاپهای ما به صورت ابنوه جاگذاری شده است. پردازندههای عصبی ایده یادگیری ماشین را برداشته و آن را بسط داده است از این رو راهکار مؤثرتری است.
اما چرا این به حوزه علاقه کسپرسکی تبدیل شده است؟ ابتدا باید بگوییم محصولات ما تا همین الان نیز از مزایای شبکههای عصبی بهره میبرده است؛ همینطور به طور کلی از فناوریهای یادیر ماشین از جمله فناوریهایی برای پردازش مقادیر زیادی اطلاعات در مورد عملکرد شبکه سازمانی: بعنوان مثال نظارت داده اشتراکگذاشتهشده توسط نودها با هدیگر یا با جهان بیرون. فناوریهای یادگیری ماشین به ما اجازه میدهند در جریان ترافیک، ناهنجاریها را شناسایی کرده و فعالیت نامعمول ناشی از یک حمله یا اقدامات مخرب از سوی نفوذی را رصد کنیم.
دوم اینکه کسپرسکی در حال توسعه سیستمعامل انحصاری خودش به نام KasperskyOS است که اجرای امن تسکهای محولشده به دستگاهها را تضمین میدهد. یکپارچه کردن شبکههای عصبی سختافزاری در دستگاههای مبتنی بر سیستمعامل کسپرسکی بسیار امیدوارکننده به نظر میرسند. در پایان همه این پیشرفتها ظهور یک هوش مصنوعی واقعی را خواهیم داشت- ماشینی که نه تنها تسکهای ما را انجام میدهد که تسکهای خودش را نیز میچیند و کاملاً خودمختار و خوآموز است. این شاید با مسائل اخلاقی مغایرت داشته باشد و قطعاً درکش برای افراد سخت خواهد بود (دستگاهی که میتواند گوی سبقت را از سازنده خود برباید!).
با این حال، خیلی مانده تا به آنجا برسیم. حدود پنج سال پیش، همه مطمئن بودند که خودروهای خودران به معنای واقعی کلمه در گوشه و کنار هستند اما هنوز چنین چیزی تماماً محقق نشده است. چنین سیستمهایی نیز ارتباط نزدیکی با یادگیری ماشین دارند و در سال 2022 فرصتها در این زمینه هنوز نتوانستند کاملا محقق شوند. حتی یک رانندگی ساده ماشین - که انسان ها به خوبی از پس آن برآمدهاند - هنوز نمیتواند به طور کامل به دست یک ربات سپرده شود. به همین دلیل است که پیشرفتهای جدید در این زمینه از اهمیت بالایی برخوردار است - هم در سطح نرمافزار و ایده و هم در سطح سختافزار. با درنظر گرفتن همه این موارد شاید رباتهای هوشمندی را مانند آنچه در فیلمها یا کتابهای علمی تخیلی خواندیم و دیدیم شاهد نباشیم اما این اتفاق به طور حتم زندگی ما انسانها را آسانتر و امنتر خواهد کرد.
[1] neuroprocessor
[2] in-house
[3] self-learning
[4] neuromorphic engineering
منبع: کسپرسکی آنلاین (ایدکو)
کسپرسکی اسم یکی از بزرگترین شرکتهای امنیتی و سازنده آنتی ویروس است که برخی از کاربران اشتباهاً این شرکت و محصولات آنتی ویروس آن را با عناوینی نظیر کسپرسکای،کاسپرسکی، کسپراسکای، کسپراسکای، و یا کاسپراسکای نیز میشناسد. همچنین لازم به ذکر است مدیرعامل این شرکت نیز یوجین کسپرسکی نام دارد.