زبان ماشین و مدیریت بایتها در پردازشگر کامپیوتر و خلو آن از آگاهی
{00:29:33}
حالا چطور ساماندهی میشود؟ آنچه که در سطح ماشین میگذرد را سریع عرض میکنم. نوعاً میدانید که اساس اینکه یک کامپیوتر بخواهد کار کند، دو چیز است: یکی پردازشگر است و یکی رَم (RAM) زنده و حافظه زنده آن است؛ رم همیشه زنده است و قید توضیحی است. دیسکهایی که ذخیرهسازی میکند هم سر و کارش با بیت است، اما بیتی که فقط ذخیره میشود. رم، سر و کارش با بیت است، اما نه خود بیت بهعنوان بیت. سر و کار تمام رم - بهعنوان اینکه بخواهد درک کند - با بایت است. رم هر چه بیشتر باشد، خانههای بیشتری دارد که به هر خانهای آدرس میدهید، اما هر خانهای بایت است و وقتی پردازشگر میخواهد به رم آدرس بدهد، به بیتهای رم آدرس نمیدهد -ولو برنامهنویس میتواند روی بیتها هم برنامهنویسی کند- اما آدرسدهی به بایت است. و لذا گفتم بایت واحد اطلاعات است، ولو در صفر و یک بیت هم یک جور معنا هست، اما اطلاعات به معنایی که ما میخواهیم بگوییم، در آنها نیست. یک دیتا که بهمعنای کوچکترین داده بشری است، در بایت است که دویست و پنجاه و شش عدد اولیه را نشان میدادند و بعد هم با کد پیجها تعداد بسیار زیادی از کاراکترهای اصلیه را نشان میدهند.
در رم، نه مغناطیس دارید و نه پیت، بلکه سر و کار شما در رم با ترانزیستورهایی است که مدار را یا وصل میکنند یا قطع میکنند؛ اگر وصل است، یک است و اگر قطع است، صفر است. در هر بایت از این رم، دویست و پنجاه و ششتا را میتوانند نشان بدهند که در هر بایت یکی از آنها است. پردازشگر به این رم آدرس میدهد و اینها را دستکاری میکند؛ میگیرد و تغییری در آن میدهد و دوباره مینویسد؛ این، حافظهی زنده میشود که تا برق را قطع کنید از بین میرود. اگر شما آنها را روی ذخیرهسازهای ثابت ذخیره نکنید -که یا مغناطیسی هستند یا نوری هستند- از بین میرود. ولی مهم این است که خود پردازشگر چکار میکند. خود پردازشگر، جمع میزند و منها میکند؛ هیچ کار دیگری نمیکند. اصل پردازشگر - با همه این قدرت و توسعهای که دارد - با دو عمل جمع و تفریق، همه پردازشها را انجام میدهد. شما بعداً اینها را در مجموع با مبدلهایی که اینها را به حروف، کلمات و معانی برمیگردانید.
حالا ارتباط بین اینها به چه صورت است؟ به این، «Bus» بهمعنای گذرگاه میگویند. خود ساختمان اینکه پردازشگر چه کار میکند، خیلی جذاب است. اگر آدم فی الجمله اینها را بداند خیلی خوب است. همیشه برای اینها مثالهای مناسبی را عرض میکردم. گاهی پردازشگر مشغول پردازش است، آنها اسمش را «پورت (port) وقفه» میگذارند؛ یعنی درگاهی که یک دفعه میگوید "توقف کن، من کار مهمتری دارم تا انجام بدهم"؛ این پورت وقفه است. خیلی از دعاها و صدقهها را به این تشبیه میکردم؛ یعنی در دستگاه خدا خیلی از چیزها روی روال خودش جلو میرود، اما صدقه که میآید، میگوید توقف کن، این روال نباید ادامه پیدا کند. یا وقتی شخص دعا میکند.
دستگاه پردازشگر، ورودی و خروجیاش و پورتهای جورواجوری که دارد، جذاب و جالب است در اینکه چیزی درست کردهاند که اینها را ساماندهی کند. آن وقت ارتباط برقرار میکنند و میگویند گذرگاه دادهها و گذرگاه آدرسها؛ هر کدام از اینها جدا است. یعنی یک گذرگاه است که میخواهد مدام آدرس بدهد به این خانه و به آن خانه و یکی هست که میخواهد اطلاعات بفرستد. هم آدرس بدهد و هم به آن آدرس برود و این اطلاعات را بنویسد. مثلاً اگر این دویست و پنجاه و شش را بکند دویست و پنجاه و پنج؛ هم اینکه باید آدرس بدهد کدام خانه است و هم اینکه هر چه هست عوضش کن و ضمیمههای اینها. مثلاً از کارهایی که باید انجام بدهند، حتماً داشتن یک ساعت زمانسنج است. اگر برای خودش ساعت نداشته باشد، نمیتواند این کارها را با خصوصیات خودش انجام بدهد.
این چیزهایی که عرض کردم، کارهایی بود که میگوییم در سطح ماشین انجام میشود.
شاگرد: این یای منطقی که فرمودید، در دستگاه، چه کسی آن را درک میکند؟ اصلاً درکی از این معانی صورت میگیرد؟
استاد: نه.
شاگرد: خب چرا این معانی را قرار دادهاند؟ کجا از این معانی استفاده میشود؟ این بیان، شبیه اتاق چینی است.
استاد: بله، من توضیح دادم تا ببینید در سطح سختافزار، خودش حتی از حالت بدل خودش خبر ندارد؛ از کارهایی هم که صورت میگیرد -این بیتها مدام عددش عوض میشود، جمع میزند، تفریق میکند، عملگرها را اعمال میکند، مدام مینویسد و پاک میکند-خبر ندارد. در آنجا فقط صفر و یکها است و ما آنها - دویست و پنجاه و شش تا - را کنار هم قرار دادهایم و میفهمیم عوض شد یا نشد، اما او چیزی نمیفهمد.
شاگرد: یعنی برنامهها از آن معانی استفاده میکنند.
استاد: بله، برنامهها و زبانهای سطح بالا. الآن با این توضیحی که الآن عرض میکنم، این زبان سطح ماشین است. به نظرم زبان سطح بالاترش – که به آن اسمبلی (Assembly) میگویند - مقداری بالاتر از سطح زبان ماشین است و یک چیزهای دیگری در آن هست. ولی در زبان سطح ماشین، دقیقاً همینها است؛ یعنی وقتی به آنجا میروید، میبینید سر و کارتان تنها با دو عمل جمع و تفریق است؛ مدام صفر کنید و یک کنید و صفر و یکِ بیتها را عوض کنید. اصلاً سر در نمیآورد که بایت چیست و بیت چیست. شما در یک نظام خاص با عملگر واو، هشت بیت را کنار هم گذاشتید و گفتید بایت است؛ شما با این هشت تا، یک سیستم درست کردید. کما اینکه خود همان بیت را شما با نظام علی البدل و با یای منطقی درست کردید و گفتید این است یا آن است؛ با یک نظامی درستش کردید که صفر و یک را نشان میدهد. شما بایت را درست کردهاید. همه اینها برای شما است؛ درک معانی برای شما است و آن ماشین که درکی ندارد.
شاگرد: روی فرضی که هوش مصنوعیای ساخته شود و یک چیزی را صفر تا صد دانلود کند و خودش را upgrade کند و یک جرمی انجام بدهد، همه اینها در فضای اتاق چینی بود، لذا استناد به کسی پیدا میکند که برنامهنویسی اول را کرده. چون میفرمایید انسان برنامهنویس است که معانی را درک میکند.
استاد: نکته سر این است که برنامههای هوش مصنوعی، یادگیری ماشینی دارد.
شاگرد: باز هم درک معنا صورت نمیگیرد. همه آنها به برنامهنویسی برمیگردد که اینها را آورده و ارتقاء داده.
استاد: اگر چیزی را به شما ارائه بدهد که شما فکرش را نکرده بودید، اسم آن را چه میگذارید؟! میگویید اینکه همین صفر و یکها است. خب چطور دارد چیزی میگوید که شما تعجب میکنید؟!
شاگرد2: استناد به سوء اختیار است.
استاد: مثلاً میگویند شاگرد بِهْ از استاد. این یعنی همه چیزش به استاد برمیگردد و خودش چیزی ندارد؟! نه، بلکه او راههایی را کشف میکند که خود استاد بلد نبود. شما اسم این را چه میگذارید؟! فلذا من از این پایین شروع کردم. تا الآن هم برنامههایی که در هوش مصنوعی اجراء میکند همین است. زبان ماشین همین است. یعنی وقتی به سطح زبان ماشین بروید، همین است و در آن چیز دیگری نیست.
شاگرد2: شاگرد به از استاد، در اینجا نیست.
استاد: خود این چیزی که میبینیم را چه میکنید؟ یعنی خود برنامهنویس، بُهتزده میشود؛ میگوید من این را به او دادم؛ الآن هم روی یادگیری عمیق که کار میکنند، یادگیری عمیق چند لایه است وگراف های تو در تو است. یادگیری عمیق که انجام میدهد، خیلی عجائب است. راست هم میگوید. بعد هم میبینیم هیچ بشری فکرش را نکرده.
شاگرد2: همین خوفی که هست و میگویند این کار را نکنید، به خاطر احتمالی است که وجود دارد و بهخاطر سوء اختیار او است که سبب میشود او به مرحله یادگیری برسد و این کارها را بکند.
استاد: خب الآن صحبت سر این است که چیزی که او کشف میکند و عرضه میکند و بعداً حتی اگر بفهمد ما میخواهیم به او صدمه بزنیم، از خودش دفاع میکند. منظور از پیشرفت، همین است. البته فعلاً در مرحله خیالات است. منظور من این است یک دستگاهی که برنامه آن را شما نوشتهاید، اما حرف شما را میگیرد [و توسعه میدهد و پیش میرود] و مهمتر این است که خود اینها برنامهنویسی میکنند؛ یعنی خود هوش مصنوعی کدهایی مینویسد که از برنامهنویسها بهتر است. این را چکار میکنید؟ یعنی فکر برنامهنویس به جایی نرسیده، اما او یک کد ارائه میدهد و برنامههای بسیار خوبی میسازد که دیگران از آن عاجز بودند. الآن در پزشکی میگویند این هوش مصنوعی کارهایی میکند که این اطباء هرگز نمیتوانند بکنند. کارهای بسیار ظریفی که نه لرزش دست دارد و نه اشتباه دارد. خب اسم این را چه میگذارید؟! میگویید یک چیز بیخبر است؟! چطور میگویید بیخبر؟! لذا من عرض کردم وقتی از پایه بالا میرویم، میخواهیم به یک لایهای از لایههای نرمافزاری برسیم که در آنجا، پایه ظهور میکند. پایهای که آن هوش پایهمحور واقعاً ظهور میکند، اما پایهمحور است.
شاگرد: یعنی آنجا یک درکی صورت میگیرد؟
استاد: درک به همان معنایی که توضیح دادم. یعنی حتی معنا هم به نحو پایه و به نحو اشارهگر در یک شبکهای از چیزهایی که مؤلفهها هستند، اگر اشارهگر به هر بخشی از آن اشاره میکند، هم خودش اجزاء دارد و هم خودش عضو و اجزائی از یک شبکه است؛ اینجا میشود معنای پایهمحور، نه معنای درک افلاطونی که نیاز به روح دارد.
شاگرد: مثلاً ما برای معنای «یا» یک پایه فیزیکی درست کنیم؟ یک پایهای که معنایی مثل «یا» را ظهور میدهد.
استاد: و بلکه بیشترش: شبکه معانی. ما معمولاً معانی را دیکشنریوار میبینیم و میگوییم این لغت چه معنایی دارد. اما اگر بخواهیم معنا را جاسازی کنیم، اول باید کل زبان را ساماندهی کنیم، یک شبکهای از معانی درست کنیم و بعد بگوییم مؤلفههای آن «یا» و «واو» و انسان و بقر و شجر و امثال اینها است.
با این توضیحی که من عرض کردم، نزد هر کسی واضح است که در آن سطح، ما درک و فهم نداریم؛ در همان اتاق چینی و بچهای که کار انجام میداد، ما هیچ درکی نداریم. در این سطح هم تمام کارها همینجا انجام میشود، ولی کسی که اینها را مدیریت کرده و صفر و یک را بهعنوان یک سیستم علی البدل در نظر گرفته و بعد که صفر و یک را درست کرد، کنار یکدیگر گذاشت و از آن چهار حالت پدید آورد، اینها را انسان انجام داد. حالا همین انسان در این پایه بی فکر و بی فهم، به سطحی میرسد که کاری میکند که خود آن برنامه در آن سطح بالا -نه سطح ماشین- همان کاری را که قبلاً با صفر و یک درست میکردیم و سیستم درست میکردیم و آنها را کنار هم میگذاشتیم، حالا او شروع میکند و آن را انجام میدهد، اما نه در سطح یک ماشین؛ یعنی همان کاری که ما با صفر و یکها کردیم، او انجام میدهد؛ یعنی بعداً هوش مصنوعی میتواند در صنعت خودش یک کامپیوتری با مبنای ۳ یا با مبنای کذا بسازد.