اگر «آموزش هوش مصنوعی برای دانشجویان» را جستجو کنید، صفحهٔ اول پر از دوره است: از مقدماتی تا پیشرفته، نقشهٔ راه، فهرست ابزارهای رایگان برای دانشجو.
این نوشته یکی از آنها نیست. من دوره نمیفروشم و قرار نیست فهرست دیگری اضافه کنم.
چیزی که میخواهم بنویسم از سمت دیگری است: از سمت کسی که آدم استخدام میکند و سیستم میسازد. چه چیزی، در کار واقعی، تفاوت میسازد؟
اول، یک واقعیت ناخوشایند دربارهٔ ابزارها
بخش بزرگی از آنچه امروز بهعنوان «مهارت هوش مصنوعی» آموزش داده میشود، دربارهٔ ابزارهای مشخص است: این پلتفرم، آن کتابخانه، این سرویس.
مسئله این است که این ابزارها با سرعتی عوض میشوند که هیچ برنامهٔ درسی به آن نمیرسد. ابزاری که امسال استاندارد است، دو سال دیگر ممکن است جایگزین شده باشد.
این بدان معنا نیست که یاد گرفتن ابزار بیفایده است — باید با چیزی کار کرد. معنایش این است که ابزار را بهعنوان مثال یاد بگیرید، نه بهعنوان مهارت. آنچه میماند، الگویی است که پشت ابزار است.
سه مهارتی که کهنه نمیشوند
یک: فهمیدن اینکه این فناوری کجا اشتباه میکند
این مهمترین چیزی است که میشود یاد گرفت و کمترین جایی است که آموزش داده میشود.
مدل زبانی گاهی چیزی میگوید که درست نیست، و با اطمینان کامل میگوید. این نه خرابی است و نه چیزی که با نسخهٔ بعدی حل شود؛ خاصیت این فناوری است.
کسی که این را نفهمیده باشد، سیستمی میسازد که در نمایش خوب کار میکند و در کار واقعی خطرناک است. کسی که فهمیده باشد، از روز اول میپرسد: اگر اشتباه کرد چه میشود، و چطور میفهمیم؟
چطور یاد بگیرید: سادهترین راه این است که عمداً دنبال اشتباه بگردید. هر چیزی که ساختید، ده پرسش بپرسید که جوابشان را نمیداند و ببینید چه میکند. این تمرین، بیشتر از هر دورهای یاد میدهد.
دو: تعریف کردن یک مسئله طوری که قابل حل باشد
در کار واقعی، مسئلهها به شما داده نمیشوند؛ باید از دل حرفهای آدمها بیرونشان بکشید.
کسی میگوید «میخواهیم بهرهوری بالا برود». این مسئله نیست. مسئله وقتی ساخته میشود که به این تبدیل شود: «فلان کار روزی سه ساعت وقت میگیرد، تکراری است، و اگر اشتباه انجام شود با یک پیام قابل جبران است.»
فاصلهٔ میان این دو جمله، بخش بزرگی از کارِ حرفهای است — و در هیچ دورهای آموزش داده نمیشود، چون در دورهها مسئله همیشه از قبل تعریف شده است.
چطور یاد بگیرید: با کسی که کار واقعی دارد حرف بزنید — یک مغازهدار، یک دفتر کوچک — و سعی کنید مشکلش را در یک جمله بنویسید که قابل سنجش باشد. اگر نتوانستید، هنوز مسئله را نفهمیدهاید.
سه: توضیح دادن به کسی که کد نمیخواند
سیستمی که ساخته میشود، باید به کسی تحویل داده شود که آن را نساخته. اگر نتوانید توضیح بدهید چه کار میکند و کجا نمیکند، سیستم استفاده نمیشود.
این مهارت را معمولاً دستکم میگیرند و در عمل بیشتر از خیلی چیزهای فنی تعیینکننده است.
چطور یاد بگیرید: هر چیزی که ساختید، برای کسی که هیچ ربطی به این حوزه ندارد توضیح بدهید. اگر بعد از توضیح، آن شخص بتواند بگوید این چه کاری میکند و کجا به آن نباید اعتماد کرد، توضیحتان خوب بوده.
از کجا شروع کنید — یک مسیر ساده
بدون فهرست دوره، فقط ترتیب:
قدم اول: پایتون، در حد کارکردن. نه در حد استادی. حلقه، شرط، تابع، کار با فایل. چند هفته کافی است.
قدم دوم: یک بار از رابط برنامهنویسی یک مدل استفاده کنید. یعنی برنامهای بنویسید که به مدل پیام بفرستد و جواب بگیرد. همین. همان بار که این کار را بکنید، بخش بزرگی از ابهام از بین میرود.
قدم سوم: یک چیز کوچک بسازید که واقعاً استفاده شود. ترجیحاً برای خودتان یا کسی که میشناسید. چیزی که هر روز به کار بیاید، حتی اگر ساده باشد.
قدم چهارم: خرابش کنید. پرسشهای سخت بپرسید، ورودی عجیب بدهید، ببینید کجا میشکند. این قدم را رد نکنید؛ ارزش آموزشیاش از سه قدم قبل بیشتر است.
قدم پنجم: بنویسید چه یاد گرفتید. کجا اشتباه کرد، چرا، و چه کردید. این نوشته، در مصاحبه، از هر مدرکی بیشتر میگوید.
پنج قدم بالا را میشود در چند ماه برداشت، در کنار درس، بدون هیچ هزینهای جز وقت. و کسی که این پنج را برداشته باشد، از کسی که سه دوره گذرانده و چیزی نساخته، در عمل جلوتر است.
سه چیزی که در شروع نباید سراغشان بروید
این بخش را مینویسم چون دیدهام آدمها ماهها را در جاهایی هدر میدهند که برای شروع مناسب نیستند.
آموزش دادن مدل از پایه. این کار منابع و دادهای میخواهد که در دسترس نیست و مسئلهای را حل نمیکند که با مدلهای موجود حل نشود. برای پژوهش جای خودش را دارد؛ برای شروع، نه.
غرق شدن در ریاضیات پیش از دیدن یک نمونهٔ کارکن. ریاضیات مهم است و در جای خودش باید یاد گرفته شود. ولی کسی که شش ماه ریاضی میخواند بدون اینکه چیزی ساخته باشد، معمولاً انگیزهاش را از دست میدهد.
دنبال کردن هر مدل تازهای که میآید. خبرها هر هفته عوض میشوند و دنبال کردنشان حس پیشرفت میدهد بدون اینکه پیشرفتی باشد. یک نمونهٔ کارکن، از صد خبر خواندهشده بیشتر میارزد.
نکتهٔ مشترک هر سه این است که هیچکدام بیارزش نیستند؛ فقط برای مرحلهٔ شما نیستند. آموزش دیدن مدل، ریاضیات عمیق و دنبال کردن پیشرفتها، همه در جای خودشان لازم میشوند — ولی وقتی که چیزی ساخته باشید و بدانید چرا میخواهیدشان.
این برای کسبوکار ایرانی یعنی چه
این بخش برای دانشجویی است که میخواهد بداند این مهارت اینجا به چه کار میآید.
اول، بازار اینجا سیستمساز میخواهد، نه مدلساز. تعداد جاهایی که مدل از پایه میسازند در ایران کم است. تعداد کسبوکارهایی که مشکل واقعی دارند و کسی را میخواهند که با ابزارهای موجود حلش کند، زیاد است. مهارت دوم بازار بزرگتری دارد.
دوم، محدودیت دسترسی بخشی از مسئله است. دسترسی به بعضی سرویسها مستقیم باز نیست و پرداخت هم ساده نیست. کسی که بلد باشد با این محدودیتها طراحی کند، مهارتی دارد که در آموزشهای خارجی اصلاً مطرح نمیشود.
سوم، فارسی یک تخصص است. بیشتر ابزارها روی انگلیسی طراحی و بعد بومی شدهاند. کسی که بفهمد الگوهای گفتاری فارسی — تعارف، پرسش غیرمستقیم، جملهٔ شرطی — چطور سیستمها را گیج میکنند، چیزی میداند که کمکس میداند.
چهارم، پروژهٔ واقعی از کارآموزی بهتر است. اگر کسبوکار کوچکی را پیدا کنید که مشکل مشخصی دارد و برایش چیزی بسازید که واقعاً استفاده شود، در شش ماه بیشتر یاد میگیرید تا در دو سال دوره.
چهار پرسشی که در مصاحبه واقعاً پرسیده میشود
اینها را از تجربهٔ نشستن آن طرف میز مینویسم. هیچکدام دربارهٔ حفظ کردن تعریف نیست.
«چیزی که ساختی کجا اشتباه میکند؟» کسی که بگوید «خوب کار میکند» هنوز آن را جدی امتحان نکرده. کسی که سه مورد مشخص بگوید و توضیح بدهد چرا، نشان داده که میفهمد.
«چرا این راه را انتخاب کردی و نه راه دیگر؟» پاسخ درست لازم نیست ثابت کند انتخابتان درستترین بوده؛ باید نشان بدهد که انتخابی در کار بوده. «چون در آموزش اینطور بود» جواب بدی است.
«اگر این سیستم فردا برای هزار نفر اجرا شود چه میشود؟» این پرسش میسنجد که آیا به مسائل واقعی — همزمانی، خرابی، هزینه — فکر کردهاید یا فقط به حالتی که خودتان امتحان کردید.
«این را برای کسی که فنی نیست توضیح بده.» سادهترین پرسش و گویاترینشان.
هر چهارتا را میشود پیش از مصاحبه تمرین کرد، روی همان پروژهٔ کوچکی که ساختهاید.
پروژهٔ اولی که ارزش دارد
اگر بخواهم یک پروژه پیشنهاد کنم که هر سه مهارت بالا را تمرین بدهد، این است:
سیستمی بسازید که به بیست پرسش تکراری یک کسبوکار واقعی جواب بدهد — و برای هر چیز دیگری صادقانه بگوید نمیداند.
ساده به نظر میرسد و نیست. باید تصمیم بگیرید کدام پرسشها در فهرستاند، چطور تشخیص میدهید پرسشی خارج از فهرست است، و وقتی مطمئن نیست چه بگوید. هر سه، همان تصمیمهایی هستند که در سیستمهای واقعی هم گرفته میشوند.
و وقتی تمام شد، به صاحب همان کسبوکار نشانش بدهید و ببینید چه میگوید. آن بازخورد، از هر نمرهای بیشتر میارزد.
اگر رشتهٔ شما فنی نیست
این پرسش را زیاد میشنوم و جوابش کوتاه است: کمبود اصلی این حوزه، آدم فنی نیست.
کمبود اصلی کسانی هستند که یک حوزه را خوب میشناسند و میتوانند بگویند مسئلهٔ واقعی کجاست. کسی که حسابداری خوانده و میداند در یک دفتر حسابداری چه چیزی وقت میبرد، برای ساختن سیستم آن دفتر از یک برنامهنویس که هیچوقت پا در دفتر حسابداری نگذاشته مفیدتر است.
برای چنین کسی مسیر متفاوت است: لازم نیست برنامهنویس شوید. کافی است بتوانید با ابزارهای بدون کدنویسی چیزی بسازید، بفهمید کجا اشتباه میکند، و مسئله را طوری تعریف کنید که کسی که کد مینویسد بتواند حلش کند.
سه مهارتی که در این نوشته گفتم، هیچکدام به رشتهٔ فنی نیاز ندارند. فقط مهارت دوم و سوم، برای شما، از مهارت اول هم مهمترند.
جمعبندی
آموزش هوش مصنوعی برای دانشجویان، اگر به فهرست ابزار تبدیل شود، چیزی میآموزد که تا فارغالتحصیلی کهنه شده.
آنچه کهنه نمیشود سه چیز است: بدانید این فناوری کجا اشتباه میکند، بتوانید یک مسئلهٔ واقعی را قابل حل کنید، و بتوانید کارتان را برای کسی که کد نمیخواند توضیح بدهید.
هر سه را با ساختن یاد میگیرید، نه با خواندن.
هوش مصنوعی عاملی چیست دربارهٔ همان مرزی است که در مهارت اول گفتم، و ساخت ایجنت هوش مصنوعی نشان میدهد فاصلهٔ میان یک نمونهٔ آموزشی و چیزی که در کار واقعی دوام میآورد کجاست.