🟢چرا از اوبونتو (Ubuntu) به مانجارو (Manjaro) مهاجرت کردم؟🟢
دلایل اصلی من برای استفاده از لینوکس نسبت به ویندوز بسیار زیاد است اما می توان به موارد زیر خلاصه کرد:
۱- تقریبا تمام جامعه یادگیری ماشین از لینوکس به عنوان سیستم عامل اولیه استفاده می کنند، بیشتر کتابخانه ها و چارچوب ها اول برای لینوکس توسعه داده می شوند.
۲- استفاده از لینوکس برای یادگیری ماشین به مراتب ساده تر است چون تکنولوژی های یادگیری ماشین همگی بر اساس لینوکس هستند.
۳- لینوکس سریع تر و مدیریت کردن آن ساده تر است. این تقریبا برای هر نوع برنامه نویسی ای صادق است و به همین خاطر به یادگیری ماشین هم قابل تعمیم است.
شاید به عنوان یه کاربر نهایی که بیشتر زمانم به کدنویسی برای یادگیری ماشین و علوم داده سپری میشود انتخاب توزیع (distro) لینوکس اهمیت چندانی نداشته باشد چون به ندرت امکانات خاص یک توزیع لینوکس برای من قابل استفاده می شود. اما اخیرا متوجه شدم که اشتباه می کنم. استفاده از توزیع مانجارو به دلایل بسیار زیادی برای من که در مجموع حدود شاید ده برنامه دسکتاپ نیاز دارم بسیار بهتر است. از اول شروع میکنم
۱- نصب مانجارو بسیار بسیار ساده و سریع است. بعد از دانلود فایل iso و لود کردن آن بر روی یک یو اس بی در کمتر از ده دقیقه (با هارد ssd) سیستم عامل شما نصب شده است. یکی از دلایل سرعت بالا این است که مانجارو که یک نسخه از arch است بر اساس فلسفه ی مینیمالیزم است به این معنی که حداقل چیزها را بر روی سیستم شما نصب می کند. این برخلاف اوبونتو هست که برنامه های زیادی مانند Librioffice که عملا برای بیشتر کابران بی استفاده است را همراه خود سیستم عامل نصب می کند.
۲- سیستم package manager و نصب برنامه مانجاور در برابر آشوب اوبونتو شبیه به یک معجزه است. سیستم یکپارچه نرم افزارهای مانجارو که بسیار بزرگ است به شما امکان می دهد هر نرم افزاری را در داخل خود سیستم بدون جستجو و دانلود در وب نصب کنید. این برای نرم افزارهای غیر رسمی AUR هم صادق است. مثال ساده آن نصب گوگل کروم است که بسیار ساده تر و بدون دردسر است. از طرفی حمایت مانجارو از snap این امکان را می دهد که بقیه نرم افزار ها هم به سادگی نصب شوند. در مقابل سیستم ppa در اوبونتو دارای مشکلات زیادی ست مثلا بعد از مدتی که یک برنامه منقضی می شود باید ppa آن آپدیت شود یا پکیج هایی که رها شده یا دیگر توسعه داده نمی شوند حذف شده و به طور کلی مدیریت آن بسیار دشوار است.
۳- سیستم مرکزی تشخیص سخت افزار مانجارو (Manjaro HardWare Detection ) یک روش بسیار هوشمندانه برای شناسایی سخت افزار سیستم شما و نصب درایورهای متناسب با آن است. چنین چیزی عملا همان هدفی است که ویندوز به دنبال ان بود و شکست خورد. به عنوان یک تجربه نصب درایور کارت گرافیک Nvidia به علاوه cuda و cudnn که عملا یک پروژه چند روزه بر روی اوبونتو یا ویندوز است در مانجارو به سادگی وارد کردن دو دستور در خط فرمان است!!
نصب درایور:
sudo mhwd -a pci nonfree 0300
نصب cuda , cudnn:
sudo pacman -S cuda cudnn
تفاوت پیچیدگی این انجام این کار با اوبونتو تقریبا شبیه یک شوخی است!
۴- سرعت بالاتر: یکی از دلایل سرعت بالاتر مانجارو تعداد کمتر سرویس هایی است که به صورت عادی بر روی سیستم درحال اجراست. از طرفی مانجارو (مانند arch) بر اساس فلسفه آخرین آپدیت (Rolling release model) قرار گرفته است بنابراین شما همیشه آخرین نسخه ی نرم افزارها رو استفاده می کنید و نیازی به بروز رسانی دستی آن ها نیست. این البته با یک مشکل هم مواجه است که ممکن است آخرین نرم افزار ها لزوما پایدارترین نسخه ها نباشند. هر چند مانجارو به شما امکان می دهد که هسته لینوکس را خودتان انتخاب کنید.
۵- بومی سازی و ظاهر: از لحاظ میزان شخصی سازی برگ برنده باز هم در دست مانجارو است. مانجارو بدون دستکاری خاصی با سه نوع مختلف محیط دسکتاپ KDE, GNOME and XFCE می آید در حالی که اوبونتو تنها با GNOME می آید. هرچند همچنان قابلیت بومی سازی در اوبونتو وجود دارد اما این کار با تغییرات زیادی همراه است که منجر به ناپایداری سیستم می شود و ارزش تغییر ظاهر را ندارد. در حالی که مانجارو بر روی KDE به صورت پیش فرض یک محیط دسکتاپ بسیار زیبا و مدرن را ارایه می کند و ابزار های داخلی خود آن برای نصب تم بسیار ساده و سریع هستند و به شما امکان انتخاب هزاران تم از ظاهر اولیه تا شکل و اندازه آیکون ها را می دهد. این شاید مزیت مهمی نباشد اما از لحاظ زیبایی شناختی قطعا مانجارو برنده است.
دلایل اصلی من برای استفاده از لینوکس نسبت به ویندوز بسیار زیاد است اما می توان به موارد زیر خلاصه کرد:
۱- تقریبا تمام جامعه یادگیری ماشین از لینوکس به عنوان سیستم عامل اولیه استفاده می کنند، بیشتر کتابخانه ها و چارچوب ها اول برای لینوکس توسعه داده می شوند.
۲- استفاده از لینوکس برای یادگیری ماشین به مراتب ساده تر است چون تکنولوژی های یادگیری ماشین همگی بر اساس لینوکس هستند.
۳- لینوکس سریع تر و مدیریت کردن آن ساده تر است. این تقریبا برای هر نوع برنامه نویسی ای صادق است و به همین خاطر به یادگیری ماشین هم قابل تعمیم است.
شاید به عنوان یه کاربر نهایی که بیشتر زمانم به کدنویسی برای یادگیری ماشین و علوم داده سپری میشود انتخاب توزیع (distro) لینوکس اهمیت چندانی نداشته باشد چون به ندرت امکانات خاص یک توزیع لینوکس برای من قابل استفاده می شود. اما اخیرا متوجه شدم که اشتباه می کنم. استفاده از توزیع مانجارو به دلایل بسیار زیادی برای من که در مجموع حدود شاید ده برنامه دسکتاپ نیاز دارم بسیار بهتر است. از اول شروع میکنم
۱- نصب مانجارو بسیار بسیار ساده و سریع است. بعد از دانلود فایل iso و لود کردن آن بر روی یک یو اس بی در کمتر از ده دقیقه (با هارد ssd) سیستم عامل شما نصب شده است. یکی از دلایل سرعت بالا این است که مانجارو که یک نسخه از arch است بر اساس فلسفه ی مینیمالیزم است به این معنی که حداقل چیزها را بر روی سیستم شما نصب می کند. این برخلاف اوبونتو هست که برنامه های زیادی مانند Librioffice که عملا برای بیشتر کابران بی استفاده است را همراه خود سیستم عامل نصب می کند.
۲- سیستم package manager و نصب برنامه مانجاور در برابر آشوب اوبونتو شبیه به یک معجزه است. سیستم یکپارچه نرم افزارهای مانجارو که بسیار بزرگ است به شما امکان می دهد هر نرم افزاری را در داخل خود سیستم بدون جستجو و دانلود در وب نصب کنید. این برای نرم افزارهای غیر رسمی AUR هم صادق است. مثال ساده آن نصب گوگل کروم است که بسیار ساده تر و بدون دردسر است. از طرفی حمایت مانجارو از snap این امکان را می دهد که بقیه نرم افزار ها هم به سادگی نصب شوند. در مقابل سیستم ppa در اوبونتو دارای مشکلات زیادی ست مثلا بعد از مدتی که یک برنامه منقضی می شود باید ppa آن آپدیت شود یا پکیج هایی که رها شده یا دیگر توسعه داده نمی شوند حذف شده و به طور کلی مدیریت آن بسیار دشوار است.
۳- سیستم مرکزی تشخیص سخت افزار مانجارو (Manjaro HardWare Detection ) یک روش بسیار هوشمندانه برای شناسایی سخت افزار سیستم شما و نصب درایورهای متناسب با آن است. چنین چیزی عملا همان هدفی است که ویندوز به دنبال ان بود و شکست خورد. به عنوان یک تجربه نصب درایور کارت گرافیک Nvidia به علاوه cuda و cudnn که عملا یک پروژه چند روزه بر روی اوبونتو یا ویندوز است در مانجارو به سادگی وارد کردن دو دستور در خط فرمان است!!
نصب درایور:
sudo mhwd -a pci nonfree 0300
نصب cuda , cudnn:
sudo pacman -S cuda cudnn
تفاوت پیچیدگی این انجام این کار با اوبونتو تقریبا شبیه یک شوخی است!
۴- سرعت بالاتر: یکی از دلایل سرعت بالاتر مانجارو تعداد کمتر سرویس هایی است که به صورت عادی بر روی سیستم درحال اجراست. از طرفی مانجارو (مانند arch) بر اساس فلسفه آخرین آپدیت (Rolling release model) قرار گرفته است بنابراین شما همیشه آخرین نسخه ی نرم افزارها رو استفاده می کنید و نیازی به بروز رسانی دستی آن ها نیست. این البته با یک مشکل هم مواجه است که ممکن است آخرین نرم افزار ها لزوما پایدارترین نسخه ها نباشند. هر چند مانجارو به شما امکان می دهد که هسته لینوکس را خودتان انتخاب کنید.
۵- بومی سازی و ظاهر: از لحاظ میزان شخصی سازی برگ برنده باز هم در دست مانجارو است. مانجارو بدون دستکاری خاصی با سه نوع مختلف محیط دسکتاپ KDE, GNOME and XFCE می آید در حالی که اوبونتو تنها با GNOME می آید. هرچند همچنان قابلیت بومی سازی در اوبونتو وجود دارد اما این کار با تغییرات زیادی همراه است که منجر به ناپایداری سیستم می شود و ارزش تغییر ظاهر را ندارد. در حالی که مانجارو بر روی KDE به صورت پیش فرض یک محیط دسکتاپ بسیار زیبا و مدرن را ارایه می کند و ابزار های داخلی خود آن برای نصب تم بسیار ساده و سریع هستند و به شما امکان انتخاب هزاران تم از ظاهر اولیه تا شکل و اندازه آیکون ها را می دهد. این شاید مزیت مهمی نباشد اما از لحاظ زیبایی شناختی قطعا مانجارو برنده است.
در نهایت اینکه اوبونتو یک توزیع بسیار عالی ست و من همچنان به کسی که تازه وارد دنیای لینوکس شده است آن را پیشنهاد می کنم اما بعد از مدتی کار کردن با آن و یاد گرفتن اصول اولیه حرکت به صورت توزیع های کمتر شناخته شده اما با کیفیت تری مانند manjaro یا mint منطقی تر است. از طرفی اوبونتو با اینکه تصمیمات اشتباه زیادی در چندین سال اخیر گرفته که منجر به مهاجرت کاربرانش شده است همچنان بزرگترین جامعه کاربری را دارد و بنابراین پیدا کردن جواب برای مشکلاتتان در وب ساده تر است. البته مانجارو هم از این لحاظ در جایگاه دوم قرار می گیرد.
This media is not supported in your browser
VIEW IN TELEGRAM
بزرگترین باگ کامپیوتری تاریخ
در چهارم ژوئن ۱۹۹۶ راکت آریان ۵ از ایستگاه فضایی اروپا به فضا پرتاب شد اما ۳۷ ثانیه بعد فضاپیما نود درجه چرخید و در نهایت در کمتر از دو ثانیه در ارتفاع چهار کیلومتری زمین منفجر شد و ۳۷۰ میلیون دلار تجهیزات در مقابل چشمان جهانیان دود شد و به هوا رفت!! مشکل کجا بود؟
بررسی دقیق بعد از حادثه مشخص کرد یک باگ ساده کامپیوتری باعث این موضوع شده بود. باگ در سیستم محاسبه مرجع لخت راکت بود. در قسمتی از کد برنامه (که به زبان Ada نوشته شده بود) عدد اعشاری ۶۴ بیتی(floating point) به عدد ۱۶ بیتی صحیح تبدیل که منجر به یک خطای سخت افزاری (hardware exception) شده بود. این خطا به صورت آبشاری منجر به خطاهای دیگر در سیستم و در نهایت انفجار راکت شد!
این باگ به عنوان گران ترین اشتباه نرم افزاری تاریخ شناخته می شود و اهمیت بررسی های دقیق نرم افزاری مانند تست و formal verification را برای متخصصان، مردم رسانه ها و سیاستمداران روشن کرد!
در چهارم ژوئن ۱۹۹۶ راکت آریان ۵ از ایستگاه فضایی اروپا به فضا پرتاب شد اما ۳۷ ثانیه بعد فضاپیما نود درجه چرخید و در نهایت در کمتر از دو ثانیه در ارتفاع چهار کیلومتری زمین منفجر شد و ۳۷۰ میلیون دلار تجهیزات در مقابل چشمان جهانیان دود شد و به هوا رفت!! مشکل کجا بود؟
بررسی دقیق بعد از حادثه مشخص کرد یک باگ ساده کامپیوتری باعث این موضوع شده بود. باگ در سیستم محاسبه مرجع لخت راکت بود. در قسمتی از کد برنامه (که به زبان Ada نوشته شده بود) عدد اعشاری ۶۴ بیتی(floating point) به عدد ۱۶ بیتی صحیح تبدیل که منجر به یک خطای سخت افزاری (hardware exception) شده بود. این خطا به صورت آبشاری منجر به خطاهای دیگر در سیستم و در نهایت انفجار راکت شد!
این باگ به عنوان گران ترین اشتباه نرم افزاری تاریخ شناخته می شود و اهمیت بررسی های دقیق نرم افزاری مانند تست و formal verification را برای متخصصان، مردم رسانه ها و سیاستمداران روشن کرد!
This media is not supported in your browser
VIEW IN TELEGRAM
مانند بقیه مدیران سخنران خوبی نیست. لباس های معمولی می پوشد اما نه برای شوآف. دغدغه اش از جنس چیزی است که همه درک می کنند و او هم آن را زندگی می کند. شعارهای قشنگ اما تو خالی نمی دهد. می توانست ثروتمند ترین مرد جهان باشد. بسیار ثروتمند تر از جف بزوس. اما به کشورهای توسعه نیافته سفر می کند و به دنبال گسترش چیزی ست که ساخته است. او تیم برنرز لی (Tim berners-lee) است. بله او را نمی شناسید چون او بیزینس منی نیست که آیفون را به جهانیان معرفی کرد و چه اختراع بزرگی (!!) که زندگی بشر را متحول کرد! خیر او سازنده چیزی بسیار اساسی تر است: شبکه جهانی وب یا اینترنت. اما تصمیم گرفت که آن را رایگان در اختیار مردم قرار دهد. حرکتی که در جهان ورشکسته ی اخلاقی امروز قابل درک نیست. جنجال های اخیر در مورد مشکلات انحصار در اینترنت من را به یاد این مرد انداخت و دیدگاه او که به طرز بی رحمانه ای توسط رسانه ها پوشش داده نمی شود. او قهرمان واقعی ست که مردم باید بشناسند و بدانند چرا اینترنت باید آزاد، غیر متمرکز و رایگان باشد. تنها هدف این نوشته هم آشنا کردن هر کسی بود که با اون آشنا نیست.
بازسازی چهره سلاطین روم باستان با استفاده از GAN
برای این کار از عکس های مجسمه های بازمانده از آن ها استفاده شده است.
برای اینکار صد البته چندین منبع اطلاعاتی اضافه وارد شده است. سعی شده است تا نژاد و رنگ مو و چشم بر اساس محل تولد وارد شود. سن بر اساس سال مرگ انتخاب شده است. در انتخاب مجسمه ها هم سعی شده است زشت ترین آن ها انتخاب شود چون این احتمال وجود دارد که مجسمه سازان قدری در ویژگی های زیبایی برای چاپلوسی اغراق کرده باشند.
صفحه پروژه
برای این کار از عکس های مجسمه های بازمانده از آن ها استفاده شده است.
برای اینکار صد البته چندین منبع اطلاعاتی اضافه وارد شده است. سعی شده است تا نژاد و رنگ مو و چشم بر اساس محل تولد وارد شود. سن بر اساس سال مرگ انتخاب شده است. در انتخاب مجسمه ها هم سعی شده است زشت ترین آن ها انتخاب شود چون این احتمال وجود دارد که مجسمه سازان قدری در ویژگی های زیبایی برای چاپلوسی اغراق کرده باشند.
صفحه پروژه
برنامه نویسی سرویس گرا در پایتون
یکی از مشکلاتی که برای سیستم های یادگیری ماشین در فاز deployment رخ می دهد مدیریت منابع در زمانی است که تعداد کاربران زیاد می شوند. همه می دانیم که سیستم های یادگیری ماشین به طور معمول از لحاظ مصرف منابع بسیار حریص هستند و اگر برای هر کاربری که از سیستم استفاده می کند یکبار چنین مدل هایی را بارگذاری کنیم بعد از مدت بسیار کوتاهی و فقط با چند کاربر تمامی منابع سیستم (پردازنده حافظه و GPU) تمام خواهد شد. صد البته چنین مشکلی چیز جدید نیست و انواع و اقسام متد های deployment برای آن اندیشیده شده است. اما اگر از سرویس های ابری خاصی استفاده نمی کنید و به دنبال راه حل سریع و کارآمدی هستید که بتوانید خودتان و به طور کامل در پایتون استفاده کنید استفاده از xmlrpc توصیه می شود.
از آنجایی که من منبع کاملی بر روی اینترنت پیدا نکردم خودم دست به کار شدم و آن را ساختم. ایده اصلی این کار این است که به جای بارگذاری مدل ها برای هر کاربری که به سیستم وارد می شود مدل یک بار در ابتدا بارگذاری می شود و سپس به صورت یک سرویس به سرور وبی شما (مثلا flask یا django) پاسخ می دهد. این روش ساده می تواند بسیار در مصرف حافظه صرفه جویی کند اما این راه حل هم برای هزاران کاربر قابل مقیاس (scale) نیست چرا که حتی با وجود سرویس ها براحتی می توان آن ها را overload کرد. در آن مرحله باید به فکر ابزارهایی مانند celery یا چیزهای مشابه باشید.(احتمالا در آینده اضافه خواهم کرد) این کد همچنین آموزش می دهد که چطور می توان یک برنامه نویسی service oriented را در پایتون انجام داد.
https://github.com/roholazandie/service_oriented_py
یکی از مشکلاتی که برای سیستم های یادگیری ماشین در فاز deployment رخ می دهد مدیریت منابع در زمانی است که تعداد کاربران زیاد می شوند. همه می دانیم که سیستم های یادگیری ماشین به طور معمول از لحاظ مصرف منابع بسیار حریص هستند و اگر برای هر کاربری که از سیستم استفاده می کند یکبار چنین مدل هایی را بارگذاری کنیم بعد از مدت بسیار کوتاهی و فقط با چند کاربر تمامی منابع سیستم (پردازنده حافظه و GPU) تمام خواهد شد. صد البته چنین مشکلی چیز جدید نیست و انواع و اقسام متد های deployment برای آن اندیشیده شده است. اما اگر از سرویس های ابری خاصی استفاده نمی کنید و به دنبال راه حل سریع و کارآمدی هستید که بتوانید خودتان و به طور کامل در پایتون استفاده کنید استفاده از xmlrpc توصیه می شود.
از آنجایی که من منبع کاملی بر روی اینترنت پیدا نکردم خودم دست به کار شدم و آن را ساختم. ایده اصلی این کار این است که به جای بارگذاری مدل ها برای هر کاربری که به سیستم وارد می شود مدل یک بار در ابتدا بارگذاری می شود و سپس به صورت یک سرویس به سرور وبی شما (مثلا flask یا django) پاسخ می دهد. این روش ساده می تواند بسیار در مصرف حافظه صرفه جویی کند اما این راه حل هم برای هزاران کاربر قابل مقیاس (scale) نیست چرا که حتی با وجود سرویس ها براحتی می توان آن ها را overload کرد. در آن مرحله باید به فکر ابزارهایی مانند celery یا چیزهای مشابه باشید.(احتمالا در آینده اضافه خواهم کرد) این کد همچنین آموزش می دهد که چطور می توان یک برنامه نویسی service oriented را در پایتون انجام داد.
https://github.com/roholazandie/service_oriented_py
GitHub
roholazandie/service_oriented_py
Contribute to roholazandie/service_oriented_py development by creating an account on GitHub.
و انسان تنها نشسته بود، غرق در اندوهی فراوان. همه حيوانات دور او جمع شدند و گفتند: "ما دوست نداريم تو را اينگونه غمگين ببينيم. هر آرزویی داری بگو تا ما برآورده کنیم."
انسان گفت: "ميخواهم قدرت بینایی قوی داشته باشم."
كركس جواب داد: "بينايي من مال تو."
انسان گفت: "ميخواهم نیرومند باشم."
پلنگ گفت: "مانند من قدرتمند خواهي شد."
انسان گفت: "ميخواهم اسرار زمين را بدانم."
مار گفت: "نشانت خواهم داد."
و سپس تمام حيوانات هرچه داشتند به او دادند. وقتي انسان همه ی این هدایا را گرفت و رفت، جغد به بقيه حیوانات گفت: "انسان دیگر خيلي چيزها ميداند و قادر است كارهاي زيادي انجام دهد. من ميترسم!"
گوزن گفت: "ولي انسان به هرآنچه میخواست رسید، ديگر غمگین نخواهد بود."
اما جغد جواب داد: "نه. حفرهاي درون انسان ديدم. اشتیاق و حرصی عميق كه كسي را ياراي پر كردن آن نيست. اين همان چيزي است كه او را غمگين ميكند و مجبورش ميكند بخواهد. او آنقدر به خواستن ادامه ميدهد تا روزي هستي ميگويد: من تمام شدهام و ديگر چيزي ندارم پيشكشت كنم!"
آخرالزمان (Apocalypto) - مل گيبسون
انسان گفت: "ميخواهم قدرت بینایی قوی داشته باشم."
كركس جواب داد: "بينايي من مال تو."
انسان گفت: "ميخواهم نیرومند باشم."
پلنگ گفت: "مانند من قدرتمند خواهي شد."
انسان گفت: "ميخواهم اسرار زمين را بدانم."
مار گفت: "نشانت خواهم داد."
و سپس تمام حيوانات هرچه داشتند به او دادند. وقتي انسان همه ی این هدایا را گرفت و رفت، جغد به بقيه حیوانات گفت: "انسان دیگر خيلي چيزها ميداند و قادر است كارهاي زيادي انجام دهد. من ميترسم!"
گوزن گفت: "ولي انسان به هرآنچه میخواست رسید، ديگر غمگین نخواهد بود."
اما جغد جواب داد: "نه. حفرهاي درون انسان ديدم. اشتیاق و حرصی عميق كه كسي را ياراي پر كردن آن نيست. اين همان چيزي است كه او را غمگين ميكند و مجبورش ميكند بخواهد. او آنقدر به خواستن ادامه ميدهد تا روزي هستي ميگويد: من تمام شدهام و ديگر چيزي ندارم پيشكشت كنم!"
آخرالزمان (Apocalypto) - مل گيبسون
مدل های زبانی و آینده برنامه نویسی🧩
مدل زبانی GPT3 بر روی تمامی کدهای گیت هاب آموزش داده شده و همانطور که انتظار می رود قدرت بسیار عجیبی در کامل کردن کد شما دارد. معمولا ما زمانی که برنامه نویسی می کنیم سعی میکنیم که سرچ کنیم و از کدهایی که بر روی سایت های مختلف مانند stackoverflow هست استفاده کنیم. منابع آنقدر زیاد است که مثلا لازم نیست پیدا کردن تمام فایلهای داخل یک دایرکتوری را خودتان از صفر بنویسید قبلا این سوال جواب داده شده است. چنین چیزی یکی از اساسی ترین ویژگی های برنامه نویسی مدرن امروز است. اما GPT3 حتی یک قدم فراتر می گذارد. در ویدیوی زیر میبینید که این مدل می تواند تابع شما را فقط با اسمی که برای آن انتخاب می کنید کامل کند! این شامل حالتی می شود که بسیار خاص برنامه شما است و کدهای آن بر روی هیچ سایتی نیست! حتی اسم متغیر ها از بخش های دیگر کد شما گرفته می شود و شما عملا هیچ کاری لازم نیست بکنید! یا باید بکنید؟
این قدم بسیار بزرگ است اما هنوز نمی تواند به طور کامل جایگزین انسان شود چون این کدها ۱۰۰ درصد درست نیستند. نیاز است که شما وارد عمل شوید و بخش هایی از آن را اصلاح کنید. از طرفی اگرچه ممکن است این مدل قادر باشد یک تابع حتی نسبتا پیچیده را پیاده سازی کند اما هنوز آنقدر پیچیده نیست که کل برنامه شما را که شامل بسیاری از توابع مختلف است را کامل کند. به عبارتی ساختار ماکرو آن هنوز منطقی دارد که مدلهای زبانی در درک آن مشکل دارند.
در این عصر جدید هوش مصنوعی دیگر برنامه نویسی یک کار ایزوله نیست که فقط انسان در ان دخیل باشد بلکه ترکیبی است از همکاری انسان و ماشین. به عصر سایبورگ خوش آمدید! در فیلم های علمی تخیلی همواره میبینیم که یک موجود قدرتمند هست که نیمی انسان و نیمی ماشین است و ما در عمل می بینیم چنین چیزی در سطح همکاری فکری ماشین و انسان برای ساخت یک برنامه به تحقق پیوسته است.
ابزارهایی مانند kite یا ninetab هم قدم های اولیه برای ادیتورهای هوشمند را برداشته اند. ویدیوی زیر بیشتر در این مورد توضیح می دهد
https://www.youtube.com/watch?v=utuz7wBGjKM&feature=youtu.be
مدل زبانی GPT3 بر روی تمامی کدهای گیت هاب آموزش داده شده و همانطور که انتظار می رود قدرت بسیار عجیبی در کامل کردن کد شما دارد. معمولا ما زمانی که برنامه نویسی می کنیم سعی میکنیم که سرچ کنیم و از کدهایی که بر روی سایت های مختلف مانند stackoverflow هست استفاده کنیم. منابع آنقدر زیاد است که مثلا لازم نیست پیدا کردن تمام فایلهای داخل یک دایرکتوری را خودتان از صفر بنویسید قبلا این سوال جواب داده شده است. چنین چیزی یکی از اساسی ترین ویژگی های برنامه نویسی مدرن امروز است. اما GPT3 حتی یک قدم فراتر می گذارد. در ویدیوی زیر میبینید که این مدل می تواند تابع شما را فقط با اسمی که برای آن انتخاب می کنید کامل کند! این شامل حالتی می شود که بسیار خاص برنامه شما است و کدهای آن بر روی هیچ سایتی نیست! حتی اسم متغیر ها از بخش های دیگر کد شما گرفته می شود و شما عملا هیچ کاری لازم نیست بکنید! یا باید بکنید؟
این قدم بسیار بزرگ است اما هنوز نمی تواند به طور کامل جایگزین انسان شود چون این کدها ۱۰۰ درصد درست نیستند. نیاز است که شما وارد عمل شوید و بخش هایی از آن را اصلاح کنید. از طرفی اگرچه ممکن است این مدل قادر باشد یک تابع حتی نسبتا پیچیده را پیاده سازی کند اما هنوز آنقدر پیچیده نیست که کل برنامه شما را که شامل بسیاری از توابع مختلف است را کامل کند. به عبارتی ساختار ماکرو آن هنوز منطقی دارد که مدلهای زبانی در درک آن مشکل دارند.
در این عصر جدید هوش مصنوعی دیگر برنامه نویسی یک کار ایزوله نیست که فقط انسان در ان دخیل باشد بلکه ترکیبی است از همکاری انسان و ماشین. به عصر سایبورگ خوش آمدید! در فیلم های علمی تخیلی همواره میبینیم که یک موجود قدرتمند هست که نیمی انسان و نیمی ماشین است و ما در عمل می بینیم چنین چیزی در سطح همکاری فکری ماشین و انسان برای ساخت یک برنامه به تحقق پیوسته است.
ابزارهایی مانند kite یا ninetab هم قدم های اولیه برای ادیتورهای هوشمند را برداشته اند. ویدیوی زیر بیشتر در این مورد توضیح می دهد
https://www.youtube.com/watch?v=utuz7wBGjKM&feature=youtu.be
Code Faster with Kite
Kite is saying farewell
From 2014 to 2021, Kite was a startup using AI to help developers write code. We have stopped working on Kite, and are no longer supporting the Kite software. Thank you to everyone who used our product, and thank you to our team members and investors who…
سوزن بوفون: از احتمال به هندسه (پیاده سازی پایتون + متلب)
فرض کنید یک صفحه ی راه راه به شکل بالا دارید و یک سوزن بر روی صفحه می اندازید احتمال اینکه سوزن بر روی خط ها بیفتد چقدر است؟ ساده ترین راه این است که مانند هر محاسبه احتمال دیگر مثلا چندین (هر چه بیشتر بهتر) سوزن بندازیم و از میان همه آنها تعدادی که بر روی خط ها میفتند را بشماریم و تقسیم بر تعداد کل کنیم.
اگر محاسبه را دقیق تر انجام دهید متوجه می شوید که میزان دقیق این احتمال اگر طول سوزن l و فاصله ی خط ها از هم t باشد برابر است با p=2*l/pi*t بله عدد پی اینجا ظاهر می شود!! یعنی اگر فاصله خط ها از هم دو برابر طول سوزن باشد این احتمال دقیقا برابر با یک بر روی عدد پی است!
اما از من میپرسید: یک لحظه صبر کن پی از کجا آمد؟ مگر پی نسبت محیط به قطر دایره نبود؟ اصلا پی مربوط به هندسه و دایره و این چیزهاست چطور سر از این مساله ی عجیب در می آورد؟
ادامه
پیاده سازی در پایتون و متلب
فرض کنید یک صفحه ی راه راه به شکل بالا دارید و یک سوزن بر روی صفحه می اندازید احتمال اینکه سوزن بر روی خط ها بیفتد چقدر است؟ ساده ترین راه این است که مانند هر محاسبه احتمال دیگر مثلا چندین (هر چه بیشتر بهتر) سوزن بندازیم و از میان همه آنها تعدادی که بر روی خط ها میفتند را بشماریم و تقسیم بر تعداد کل کنیم.
اگر محاسبه را دقیق تر انجام دهید متوجه می شوید که میزان دقیق این احتمال اگر طول سوزن l و فاصله ی خط ها از هم t باشد برابر است با p=2*l/pi*t بله عدد پی اینجا ظاهر می شود!! یعنی اگر فاصله خط ها از هم دو برابر طول سوزن باشد این احتمال دقیقا برابر با یک بر روی عدد پی است!
اما از من میپرسید: یک لحظه صبر کن پی از کجا آمد؟ مگر پی نسبت محیط به قطر دایره نبود؟ اصلا پی مربوط به هندسه و دایره و این چیزهاست چطور سر از این مساله ی عجیب در می آورد؟
ادامه
پیاده سازی در پایتون و متلب
آزادی و تحمل: بازگشت به مدرنیسم
پرده اول: اعتراضات گسترده ی چند روز اخیر به کشیدن تصویر کاریکاتور پیامبر اسلام باز هم سوالات زیادی در ذهن ایجاد کرده است. اینکه چرا این دعوا پایانی ندارد؟ آیا توهین حق زندگی در یک جامعه ی آزاد است؟ و چرا فرانسه نوک پیکان حمله ی اسلام گرایان هست؟ تضاد پنهانی که ریشه در تاریخ و فلسفه ای دارد که غرب را گاه در برابر مذهب قرار می دهد.
پرده دوم: امسال مانند سال های پیش ویدئویی در فضای مجازی پخش شده از ایرانیانی که در تورنتو کانادا در حال عزاداری محرم هستند. در همین حین عده ای دیگر تا جای ممکن به آنها نزدیک شده و با پخش موسیقی شاد با صدای بسیار بلند طوری که صدای عزاداری شنیده نمی شد، سعی در مختل کردن عزاداری داشتند. قطعا این افراد با برنامه به آنجا رفته بودند و سعی کرده بودند همه چیز از آهنگ و بلندگو را آماده کنند تا بتوانند تا جای ممکن به هدف خود برسند. این کار حتی به درگیری فیزیکی منجر شده بود که با دخالت پلیس خاتمه یافته بود. کاری با حدس ها و گمان ها از این که این افراد چرا چنین کاری کردند نداریم اما این مثال از یک جهت جالب است. بسیاری از افرادی که در این جریان شرکت کرده بودند خود سالها قربانی "عدم آزادی" بودند اما اکنون در شرایطی که در محیطی "آزاد" قرار گرفته اند اصولا باید قدر آن را بدانند و به آن «احترام» بگذارند. اما چه اتفاقی می افتد؟
همواره هنگامی که تضادی بوجود می آید که منجر به انتقام، سرکوب یا حذف فیزیکی فرد یا گروهی توسط معتقدان به تفکر یا کیشی خاص در قدرت می شود، اولین موضوعی که رسانه ها از آن صحبت به میان می آورند بحث "آزادی" یا به طور خاص تر "آزادی بیان" است. تقریبا همه جا پر است از اینکه چرا شرایط سیاسی حاکم بر منطقه یا کشوری خاص "آزادی" را محدود می کند. تمامی این جریانات به نحوی شکل می گیرند که تصور همگانی از مشکلات نبود "آزادی" است. شعرها در باب آزادی سروده می شود و میدان ها به اسم آن می گذارند. صد البته که مفهوم "آزادی" برای یک جامعه پیشرو مفهومی کلیدی و اساسی است و قطعا ایده آل هر جامعه ای رسیدن به چنین آزادی ای است. اما صرف خواستن چیزی به معنی دانستن نحوه رسیدن به آن نیست.
بخشی از پیچیده بودن مسئله به روانشناسی بشر در بستر زندگی اجتماعی بر می گردد. برخلاف دیگر حیوانات که تمام برخورد هایشان بر سر قلمرو، غذا و جفت است بشر به طرز عجیبی نسبت به باورهایش حساس است تا جایی که حاضر است همه چیز را فدای آن کند!
ادامه
پرده اول: اعتراضات گسترده ی چند روز اخیر به کشیدن تصویر کاریکاتور پیامبر اسلام باز هم سوالات زیادی در ذهن ایجاد کرده است. اینکه چرا این دعوا پایانی ندارد؟ آیا توهین حق زندگی در یک جامعه ی آزاد است؟ و چرا فرانسه نوک پیکان حمله ی اسلام گرایان هست؟ تضاد پنهانی که ریشه در تاریخ و فلسفه ای دارد که غرب را گاه در برابر مذهب قرار می دهد.
پرده دوم: امسال مانند سال های پیش ویدئویی در فضای مجازی پخش شده از ایرانیانی که در تورنتو کانادا در حال عزاداری محرم هستند. در همین حین عده ای دیگر تا جای ممکن به آنها نزدیک شده و با پخش موسیقی شاد با صدای بسیار بلند طوری که صدای عزاداری شنیده نمی شد، سعی در مختل کردن عزاداری داشتند. قطعا این افراد با برنامه به آنجا رفته بودند و سعی کرده بودند همه چیز از آهنگ و بلندگو را آماده کنند تا بتوانند تا جای ممکن به هدف خود برسند. این کار حتی به درگیری فیزیکی منجر شده بود که با دخالت پلیس خاتمه یافته بود. کاری با حدس ها و گمان ها از این که این افراد چرا چنین کاری کردند نداریم اما این مثال از یک جهت جالب است. بسیاری از افرادی که در این جریان شرکت کرده بودند خود سالها قربانی "عدم آزادی" بودند اما اکنون در شرایطی که در محیطی "آزاد" قرار گرفته اند اصولا باید قدر آن را بدانند و به آن «احترام» بگذارند. اما چه اتفاقی می افتد؟
همواره هنگامی که تضادی بوجود می آید که منجر به انتقام، سرکوب یا حذف فیزیکی فرد یا گروهی توسط معتقدان به تفکر یا کیشی خاص در قدرت می شود، اولین موضوعی که رسانه ها از آن صحبت به میان می آورند بحث "آزادی" یا به طور خاص تر "آزادی بیان" است. تقریبا همه جا پر است از اینکه چرا شرایط سیاسی حاکم بر منطقه یا کشوری خاص "آزادی" را محدود می کند. تمامی این جریانات به نحوی شکل می گیرند که تصور همگانی از مشکلات نبود "آزادی" است. شعرها در باب آزادی سروده می شود و میدان ها به اسم آن می گذارند. صد البته که مفهوم "آزادی" برای یک جامعه پیشرو مفهومی کلیدی و اساسی است و قطعا ایده آل هر جامعه ای رسیدن به چنین آزادی ای است. اما صرف خواستن چیزی به معنی دانستن نحوه رسیدن به آن نیست.
بخشی از پیچیده بودن مسئله به روانشناسی بشر در بستر زندگی اجتماعی بر می گردد. برخلاف دیگر حیوانات که تمام برخورد هایشان بر سر قلمرو، غذا و جفت است بشر به طرز عجیبی نسبت به باورهایش حساس است تا جایی که حاضر است همه چیز را فدای آن کند!
ادامه
ویرگول
آزادی و تحمل: بازگشت به مدرنیسم
امسال مانند سال های پیش ویدئویی در فضای مجازی پخش شده از ایرانیانی که در تورنتو کانادا در حال عزاداری محرم هستند در همین حین عده ای دیگر ت…
This media is not supported in your browser
VIEW IN TELEGRAM
شرکت huggingface اولین مدل پرسش و پاسخ دیداری (Visual Question Answering ) خود را بر روی ریپوی محبوب transformers منتشر کرد. این قدم بزرگی برای ایجاد امکانات بیشتر برای توسعه مدل های زبانی درگیر با تصویر و بقیه منابع اطلاعاتی است.
کولب برای تست (بدون نصب هیچ چیز خاصی)
کولب برای تست (بدون نصب هیچ چیز خاصی)
مقاله نامپای (Numpy) چاپ شد
این مقاله یک مقاله بسیار خوش خوان و حتی برای کسانی که تاریخ و کاربرد نامپای را نمی دانند بسیار مفید است.
برنامه نویسی آرایه ای که نامپای به پایتون معرفی کرد اساس تقریبا تمام کتابخانه های سطح بالاتر از scipy و matplotlib تا tensorflow و pytorch شد.
نامپای نقش بسیار پر رنگی در بزرگترین اکتشافات علمی یک دهه پیش داشته. نامپای کتابخانه ای بود که با کمک آن اولین موج های گرانشی شناسایی شدند و اولین تصویر سیاهچاله به دست آمد.
همچنین نامپای موتور مرکزی تمام کتابخانه هایی است که انقلاب دیپ لرنینگ را رقم زد و تقریبا هر تکنولوژی هوش مصنوعی که میبینیم به آن وابسته ست.
لینک مقاله
این مقاله یک مقاله بسیار خوش خوان و حتی برای کسانی که تاریخ و کاربرد نامپای را نمی دانند بسیار مفید است.
برنامه نویسی آرایه ای که نامپای به پایتون معرفی کرد اساس تقریبا تمام کتابخانه های سطح بالاتر از scipy و matplotlib تا tensorflow و pytorch شد.
نامپای نقش بسیار پر رنگی در بزرگترین اکتشافات علمی یک دهه پیش داشته. نامپای کتابخانه ای بود که با کمک آن اولین موج های گرانشی شناسایی شدند و اولین تصویر سیاهچاله به دست آمد.
همچنین نامپای موتور مرکزی تمام کتابخانه هایی است که انقلاب دیپ لرنینگ را رقم زد و تقریبا هر تکنولوژی هوش مصنوعی که میبینیم به آن وابسته ست.
لینک مقاله
ComplexityExplained[Farsi].pdf
5.7 MB
«در اتـم کربـن هیـچ عشقـی وجود ندارد، هیـچ طوفانـی در یک مولکول آب نیسـت، هیـچ فروپاشـی مالـی در یـک اسکناس دلار نیست.»
– پیتر دادز
کتابچه «شرح پیچیدگی» (ترجمه شده به فارسی) یک توضیح بسیار زیبا و مختصر از دانشی است که به اعتقاد هاوکینگ علم اصلی قرن پیش رو است. مطالعه سیستم های پیچیده از مغز گرفته تا هوش مصنوعی و بازارهای مالی همه و همه در این علم مطالعه می شوند.
لینک به وبسایت
وبسایت دیگری در مورد پیچیدگی
– پیتر دادز
کتابچه «شرح پیچیدگی» (ترجمه شده به فارسی) یک توضیح بسیار زیبا و مختصر از دانشی است که به اعتقاد هاوکینگ علم اصلی قرن پیش رو است. مطالعه سیستم های پیچیده از مغز گرفته تا هوش مصنوعی و بازارهای مالی همه و همه در این علم مطالعه می شوند.
لینک به وبسایت
وبسایت دیگری در مورد پیچیدگی