سلام. من امیر پورمند هستم و این قسمت چهاردهم از ایستگاه هوش مصنوعیه. تقریباً یک سالی میشه که این پادکست رو درست کردم و فیدبکهای خوبتون رو جاهای مختلف گرفتم و انگیزهای شده برای ادامه کارها. خیلی ممنون که گوش میدید و همراهی میکنید. لطفاً اگر موضوع یا موضوعاتی هم براتون دغدغه هست بهم بگید که اگر بلد بودم راجع بهش صحبت کنم.
تو این قسمت میخوام راجع به تفاوتهای هوش مصنوعی در صنعت و دانشگاه ( Academia Vs Industry in AI) صحبت کنم.
این یکی از دوگانههایی هست که زیاد تو دانشگاه با دوستان راجع بهش صحبت کردیم. بعداً هم که وارد صنعت شدم دیدم که همین بحث مجدداً وجود داره.
اهمیت این بحث برام از تجربه شخصی میاد. راستش من تو اوایل دوره ارشد درک درستی از کارکرد این دو تا سیستم نداشتم. برای همین خیلی به ارتباط بین صنعت و دانشگاه فکر میکردم و اصلاً نمیفهمیدم خواسته دانشگاه از یه دانشجوی ارشد چیه. خواسته صنعت از کسی که پروژه انجام میده چیه.
همون داستان متداول ما ایرانیهاست دیگه. هر جایی قدرت و حوصله انتخاب کردن رو نداریم میگیم که یه چیزی بینابینی باشه حتماً بهتره. میخواستم هم خدا رو داشته باشم هم خرما. اما میشه گفت هیچ کدوم رو بدست نیاوردم.
بخاطر همین میخواستم تو این قسمت تفاوتها و اهداف این دو تا سیستم رو بیشتر شفاف کنم. یکی این که فضا باز بشه برای گفتگوی بیشتر و دیگری هم این که شاید کمکی بشه به کسی که میخواد با دید صنعتی به حوزه آکادمیک بیاد یا این که کسی بعد فارغالتحصیلی وارد بازار کار بشه. یا کسی که میخواد تز ارشدش رو تعریف بکنه.
شنیدن اپیزود
همه اپیزودهای این پادکست تو کانال کست باکس منتشر میشه و البته میتونید از جاهای دیگه هم بشنوید.اینجا هم میتونید فایل صوتی این قسمت رو گوش بدید:
مقایسه هدف دانشگاه و صنعت
تو ایران اینطوری هست که هدف اصلی دانشگاه تو تحصیلات تکمیلی «چاپ پایاننامه یا مقاله» هست. هدف که میگم منظورم کاری هست که انجام میدن. منظورم هدف به معنای فلسفیاش نیست که اون برای قصههاست. چیزی که کف دانشگاه اتفاق میافته اینه که هدف این سیستم چاپ مقاله است.
دانشگاه از طریق آیین نامه ارتقا و رتبه بندی اساتید، به اساتید میگه که مقاله چاپ کنید. مقاله باعث میشه که استاد اعتبار بگیره رتبه بگیره درجه بگیره و خب دانشجو هم به همون منوال باید در مقاله مشارکت کنه. حالا شیک و مجلسیاش این میشه که دانشجوی تحصیلات تکمیلی باید کار پژوهشی انجام بده.
پس تو این سیستم دانشجو به دنبال چاپ مقاله یا دفاع هست. استاد به دنبال ارتقا گرفتن هست و دانشگاهها هم میخوان تو رتبهبندی دانشگاهها جایگاه بالاتری رو کسب کنند و رتبهبندیها هم بر مبنای انتشار مقاله (Publication) هستند.
از طرفی هدف صنعت متفاوته. رفع نیاز مردم و خلق ارزش که نتیجهاش میشه پول درآوردن.
این بحث رو برای تخریب مطرح نمیکنم برای فهم بهتر مسئله میگم. حالا جلوتر میگم که در واقع این دو تا سیستم مکمل همدیگه هستند.
حالا بخاطر تفاوت اهداف در بالاترین لایه که گفتم یه سری تفاوت بینشون بوجود میاد که دوست دارم راجع بهش صحبت کنم.
تفاوتها از جنبه فردی
تفاوت های فردیش معمولاً مشخصتره و بیشتر هم به چشم میاد. مثلاً دانشگاه معمولاً پول نمیده یا اگرم بده به نسبت صنعت بسیار بسیار کمتره.
همه جای دنیا هم همینه. حالا تو ایران کلا دانشجو رو آدم حساب نمیکنند و اصلا بهش حقوق نمیدهند. تو کانادا آمریکا کم میدن. در حدی که زندگیش بگذره.
ولی هیچ وقت به اندازه صنعت پول نمیدن. شما تو شریف هم وقتی میرید با اساتید صحبت میکنید میبینید که اکثرا درامدشون از پروژه های خارج دانشگاه هست. دانشگاه اصولا پولی نداره که بخواد بده.
یه تفاوت دیگه اش اینه که تو صنعت معمولا پروژهها تیمی انجام میشه و تو دانشگاه تکی.
این که میگم معمولا برای اینه که تو ذهنتون دنبال استثنا نگردید. تو ارشد و دکترا اکثرا اینطوری هست که طرف خودش هست و خودش. هفته ای یک بار هم با استاد راهنما جلسه میگذاره و گزارش میده و خلاص.
ولی تو صنعت هر روز میان سرکار. گزارش میدن. با هم در ارتباطن. تیم وجود داره.
تفاوتها از جنبه سیستمی
معماری جدید یا استفاده از مدلهای از پیش آموزش دیده
فرض کنید مسئله شما اینه که مدل تبدیل صوت به متن انگلیسی داشته باشید. اگر مسئله رو به این شکل تعریف کنید، تو صنعت به راحتی میشه از یه مدل آماده برای اینکار استفاده کرد.
مثلاً مدل Whisper که OpenAI آموزش داده رو به عنوان یکی از گزینهها انتخاب کرد و مدل رو روی GPU بالا آورد و قضیه حله! حتی ممکنه به این نتیجه برسیم که هزینه GPU برامون بالاست، از نظر قیمتی به صرفهتر هست که از API یک شرکت دیگه استفاده کنیم.
حالا چالش این میشه که چطوری میخوایم از این مدل استفاده کنیم؟ چطوری سرعت خروجی گرفتن مدل رو افزایش بدیم؟ چطوری بهش محصولات مختلف رو وصل کنیم؟
اینجاست که نقش ML Engineer پررنگ میشه که بهش میگن مهندس یادگیری ماشین.
اما شما اگر همین مسئله رو تو آکادمیک تعریف کنید، نمیشه صرفاً از یک مدل Pretrain شده استفاده کرد و خروجی ارائه داد. باید حتماً خودمون مدل آموزش بدیم؛ چون این که ما صرفاً از یک مدل یا معماری دیگه استفاده کنیم که «ایده» جدیدی نیست. ما باید ایده جدید بدیم که قابل دفاع باشه.
ایده جدید به این معنا که تو هوش مصنوعی لازمه که یک کار جدیدی انجام بدید که قبلاً انجام نشده. یک سری از ایدههای موجود رو بردارید و با هم ترکیب کنید و ایده جدیدی بدید.
خروجیش هم باید این باشه دقت یا سرعت یا کیفیت یا هر معیار دیگهای بهتر بشه. یه چیزی رو باید بهبود بدید.
اگر به مقالات نگاه کنید اکثر مقالات حول یک ایده نوشته شدند. طرف یه ایده داشته و این ایده رو پیاده سازی کرده و نشون داده ایده اش میتونه بعضی جاها بهتر از ایده بقیه کار کنه.
مثلاً قبلاً یکی اومده معماری YOLO رو پیشنهاد داده برای تشخیص شیء. شما میاید میگید که اگر به جای تابع Loss مدل از فلان تابع Loss استفاده کنم، کیفیت خروجیهای مدل بهتر میشه.
حالا اگر کیفیت خیلی هم بالا نرفت اشکال نداره. حتی دو دهم درصد هم افزایش دقت بدید ممکنه بتونید مقالهاش رو چاپ کنید و هدف برآورده میشه.
این میشه خلاصه کاری که از یک دانشجوی ارشد هوش مصنوعی انتظار میره. شما باید برای دفاع ارشد یا دکترا «ایده جدید» بدید.
مجموعه دادگان ثابت یا متغیر
چیزی که معمولاً نمیشه تو دانشگاه بهش دست زد، مجموعه دادگان هست.
شما یک سری مجموعه دادگان به ازای هر مسئله دارید که باید از اونها برای ارزیابی مدلتون استفاده کنید.
اگر بخواید کاری انجام بدید نمیشه که دیتاست رو تغییر بدید. چون دیگه قابل بررسی نیست. قابل ارزیابی نیست. نمیشه فهمید ایده شما چقدر ارزش داره.
مثلاً برای مسئله تشخیص شی سالهاست دیتاست COCO که مایکروسافت ارائه کرده به عنوان دیتاست مرجع مورد استفاده قرار میگیره.
شما حق ندارید به این دیتاست دست بزنید. بلکه باید صرفاً مدل رو تغییر بدید و کیفیت خروجی رو ملاحظه کنید. اگر بهتر شد شما میتونید یک مقاله ارائه بدید.
البته بعضیها هستند که تو آکادمیک دیتاست ارائه میدن ولی به طور کلی ارائه دیتاست نمیتونه به تنهایی یک دستاورد باشه. نمیشه با درست کردن دیتاست و بهبود خروجی، ارشد یا دکترا رو دفاع کرد.
از اون طرف تو صنعت ما همچین محدودیتی نداریم. همونطور که گفتم هدف اینه که مسئله رو حل کنیم. روش مهم نیست.
اتفاقاً خیلی وقتها تو صنعت به جای تمرکز بر مدل، بر داده متمرکز میشن. شما آدمهایی مثل Andrew NG رو نگاه کنید. سالهاست دارند میگن که ما به جای این که تو فضای مدلها بگردیم و بخوایم دقت مدل رو افزایش بدیم، اتفاقاً باید تو دادههامون رو بیشتر و باکیفیتتر بکنیم.
چرا جای دور بریم. به مدلی مثل ChatGPT یا کلاً خانواده LLMها نگاه کنید. معمولاً این مدلها از نظر آکادمیک ایده خاصی داخلشون ندارند. همون ایدهها و معماریهای قبلی هستند.
ولی حجم و کیفیت دادههای ورودی رو به شدت افزایش دادند و از اون طرف هم سایز مدل رو افزایش دادند. اینه که کیفیتی به این شکل عالی گرفتند.
تو پروژههای صنعتی اگر نگاه کنید، ما اکثر اوقات به دنبال اوقات دنبال معماری جدید نیستیم. بلکه دنبال این هستیم که از معماریهای موجود مسئله جدید رو حل کنیم. حالا اگر حتی دیتاست براش نداریم، با ابزارهای مختلف دیتاست رو جمعآوری میکنیم و مسئله رو به تدریج حل میکنیم.
تفاوت در جنس پیچیدگی
دانشگاه درگیر حل مسائل از پیش تعریف شده است. تو دانشگاه تو فیلد هوش مصنوعی یک عالمه مسئله باز وجود داره که محققان میشینند و حولش پژوهش انجام میدن. خیلی هم مسئله رو محدود تعریف میکنند. برای این که بتوانند حلش کنند. پیچیدگی تو دانشگاه از این جنس هست که مسئله کاملاً تعریف شده و قراره صرفاً مدل عوض بشه که کیفیت از هر نظر بهتر بشه.
حالا همین بره تو صنعت. پیچیدگی مسئله متفاوت میشه. درسته ما دیگه نیاز نداریم که روی خود مدل فکر کنیم. درسته که خیلی وقتها دیگه قرار نیست تغییر عجیبی روی معماری مدل بدیم.
ولی اینجا به نظرم حداقل سه نوع پیچیدگی اضافه میشه:
پیچیدگی تعریف مسئله در صنعت
تو دانشگاه وقتی وارد میشید مسئله رو خودتون انتخاب میکنید. مثلاً میگید دستهبندی تصویر یا Image Classification. بعد روی یک حوزه محدود از اون مسئله کار میکنید. عموماً هم این ربط پیدا میکنه به تخصص استاد؛ یعنی مسائلی که تعریف میکنید ربط داره به این که استاد راهنماتون چه تخصصی داره و چه زمینهای رو بیشتر کار کرده.
ولی تو صنعت اصلاً اینطور نیست. اتفاقاً چالش صنعت همینه که مسئله رو چی تعریف کنیم.
اینجا وقتی میریم با ذینفع پروژه صحبت میکنیم دقیقاً نمیدونیم مسئله رو باید چی تعریف کنیم. آیا مسئله دستهبندی تصویر (Image Classification) هست یا قطعه بندی تصویر (Image Segmentation) یا تشخیص شی (Object Detection) هست. مسئله با کمی تغییر همه اینها میتونه باشه.
اینجا اتفاقاً لازمه که چند جلسه وقت بگذاریم صحبت کنیم تا به این برسیم که مسئله چیه. اصلاً شاید صحبت کردیم متوجه شدیم که نیازی به هوش مصنوعی نیست. مسئله با روشهای دیگه قابل حل هست.
حالا بر فرض این که هوش مصنوعی هم بخوایم خیلی وقتها مسئله به این سادگیها به یکی از مسائل از پیش تعریف شده داخل دانشگاه مرتبط نیست و یه چیز دیگه است.
اینه که من یه باگی که تو بچههای آکادمیک میبینم (اونهایی که فقط دوره آکادمیک گذروندند) اینه که قبل از این که مسئله رو بفهمند چیه براش راهحل میدن. همون اول میرن یک معماری عجیب غریب هوش مصنوعی طراحی میکنند و میخوان به زور ابزار رو به مسئله بقبولونند. در صورتی که اینطور نیست.
چالشهای فنی مثل MLOps و مقیاسپذیری
تو صنعت اینطور نیست که یک بار یک مدلی رو داخل Jupyter Notebook آموزش بدیم و تموم بشه بره. اینطوری هست که دادههای جدید هی وارد سیستم میشن و هی باید مدل آموزش پیدا کنه. تو ادبیات یادگیری ماشین بهش میگن Continuous Training یا یادگیری مداوم.
بعد چالش دیگه اینه که مدل باید مقیاسپذیر باشه. مدل باید بتونه تعداد بسیاری زیادی از کوئری رو در زمان معقول جواب بده.
بعد چالش مانیتورینگ مدل هست که خروجی مدل رو باید مداوم بررسی کنیم و ببینیم چه کیفیتی داره. اصلاً توزیع خروجیهای ما به چه شکلی هست. مثلاً اگر توزیع خروجیها یکهو تغییر کرد باید متوجه بشیم که تغییرات لازم رو انجام بدیم.
اینجاست که متوجه میشیم کلی چالش تو سطح بزرگتر برامون پیش اومده. چون ما صرفاً اینجا دنبال این نیستیم که مقاله بدیم تموم بشه بره. دنبال این هستیم که یه مدل سالها کار کنه و توسعه پیدا کنه.
من مدتی تو کارگزاری مفید زیر نظر دکتر زارع زاده کار میکردم. یک ویدئویی ازشون هست که لینکش رو گذاشتم. یک حرفی که من ازشون شنیدم اینه که ما تو دانشگاه صرفاً روی مدل متمرکز میشیم اما وقتی وارد صنعت میشیم میبینیم که مدل صرفاً بخشی از یک سیستم جامعتر هست که باید پیادهسازی بشه. صرفاً این نیست که یه مدل آموزش بدیم خوشحال بشیم.
نمایشگاه کار شریف: مسیر شغلی هوش مصنوعی در صنعت چطور است؟
چالش ارتباط بین اعضای مختلف
همون طور که قبلاً هم گفتم یه پروژه صنعتی ابعاد مختلفی داره که لازمه یک تیم درگیر بشن. نیاز به مدیر محصول، طراح رابط کاربری، Backend و Front-end و ML Engineer و افراد مختلف هست که تو یک تیم با هم کار کنند. حالا کلی چالش اینجا ممکنه بوجود بیاد که چطوری به هم وصل بشیم و غیره.
تجربه شخصی
بگذارید تجربه شخصیم رو هم در این زمینه بگم.
من از اونجایی که خیلی طرفدار ایده ارتباط دانشگاه با صنعت بودم، تز ارشدم رو با مشورت و همراهی یک سری پزشک متخصص، تشخیص پولیپ در روده تعریف کردم.
اگر کولونوسکوپی رفته باشید میدونید که یک دستگاهی هست که وارد بدن میشه و از اونجا داخل روده رو بررسی میکنند. یک سری ضایعه هم به نام پولیپ داخل روده هست که انواع مختلف (خوشخیم و بدخیم و …) داره.
حالا مسئله این بود که ما میخواستیم به عنوان دستیار و کمککار پزشک تشخیص بدیم که وقتی مدل داخل روده پولیپ رو تشخیص داد مثلاً با بوق به پزشک اطلاع بده. مسئله تو هوشمصنوعی یک مسئله خوش تعریف هست. بهش میگن Object Detection.
حالا ما خیلی برامون مهم نیست که اون شی چیه. گربه یا سگ یا آدم یا لپتاب یا حتی پولیپ خیلی تفاوتی در کلیت مسئله ایجاد نمیکنه.
کاری که من انجام دادم این بود که رفتم یک سری مجموعه دادگان برچسب خورده جمعآوری کردم و با یک مدل خوب و جدید (تو جامعه هوش مصنوعی بهش میگن State of the art یعنی مدرن)، دادهها رو آموزش دادم.
یک مدلی هم بدست اومد که دقت قابل قبولی داشت. من با دید صنعتی که داشتم رفتم و گفتم مدل رو بریم به پزشکها نشون بدیم. گفتند که «نه. کجای کاری. شما باید در مدلات یک Contribution داشته باشی. اینطوری که نمیشه.»
منظور از Contribution این هست که تو باید از خودت دستاورد خاصی داشته باشی. ایده داشته باشی. تو مدل یک تغییری ایجاد کرده باشی. این که صرفاً یک دیتاست رو آموزش دادی «هیچ» ارزشی از نظر آکادمیک نداره.
در صورتی که اگر مسئله صنعتی بود همون اول مدل رو بهشون میدادیم و خب احتمالاً مدتها درگیر این میشدیم که چطوری این مدل رو با سیستم اونها هماهنگ کنیم.
مثلاً چطوری مدل رو با دستگاه پزشکی هماهنگ کنیم. اطلاعات رو از دستگاه پزشکی بخونیم. اطلاعات رو کجا نشون بدیم. تأخیرمون باید چقدر باشه.
بعد از اون احتمالاً پروژه وارد فاز تست میشد که پزشک تست کنه و مرتب فیدبک بده که چه تغییراتی نیازه انجام بشه.
بعد از اون به این مرحله میرسیم که مرتب دادههای جدید به سیستم اضافه بشه و مدل دائما در حال آموزش دیدن باشه. این چیزی هست که در صنعت اتفاق میافته و باید هم اتفاق بیافته.
ولی امیر پورمند تو دانشگاه در حال خوندن مقالات مختلف بود که یک ایده جدید به ذهنش برسه که بتونه بعد ایده رو تست کنه و بببینه اصلاً کیفیت خروجی بهتر میشه یا نه.
تفاوت واقعاً فاحش هست. واقعاً هم شخص خاصی نیست که مقصر باشه. یک جملهای هست که میگه «آدمها سیستمها رو میسازند و بعد از اون سیستمها هستند که آدمها رو میسازند.».
الان یک استاد دانشگاه وقتی میخواد ارتقاء بگیره، آییننامه ارتقاء اساتید هست که استاد رو ملزم میکنه برای تبدیل از استادیار به دانشیار انقدر مقاله باید داده باشه. H-Index اش فلان باید باشه.
خب وقتی سیستم اینطوری هست استاد هم مجبور میشه به دانشجو فشار بیاره که کارش رو مقاله کنه. مقاله هم همینه که آدم باید ریز بشه داخل مسئله. خیلی به Big Picture قضیه نگاه نمیکنه. البته این مسئله تا حدی هم به ذات آکادمیک برمیگرده که خب هدفش رو «حل نیاز مردم» تعریف نکرده.
حالا این رو تو پرانتر بگم که من دانشگاه رو یه نهاد میدونم که با اهداف مختلف بوجود اومده. هر نهادی هم یه عمر محدودی داره. یا خودش رو به طرز قابل توجهی تغییر میده که با نیازهای جامعه همسوتر بشه یا میمیره. خیلی چیز عجیب غریبی نیست.
ولی من هدفم این بحثها نبود. هدفم این بود که این دوگانه رو کمی روش زوم کنم که بتونیم معایب و مزایای هر کدوم رو بهتر ببینیم.
میخواستم بگم که «ارتباط دانشگاه با صنعت» انقدرها هم که در حرف قشنگه، در عمل تو شرایط فعلی کار بسیار سختی هست و شاید همیشه و همهجا قابل انجام نباشه.
فکر میکنم به شخصه اگر این نکات رو موقع تعریف تز ارشد میدونستم از دو حال خارج نبود: یا موضوع رو عوض میکردم و یا این که با در نظر گرفتن این چالشها نحوه مدیریت پروژهام رو به کلی تغییر میدادم.
حالا این حرفهایی که زدم چه فایدهای داره؟ اگر کسی تو صنعت کار کرده و حالا میخواد وارد آکادمیک بشه همون اول این مسائل رو قبول کنه. قبول کنه که دانشگاه دید خاصی به مسائل داره و اگر میخواد مسیر دانشگاه رو بتونه موفقیت آمیز طی کنه، نباید با کل سیستم بجنگه؛ چون فقط خودش رو خسته میکنه.
و اگر کسی میخواد از دانشگاه فارغالتحصیل بشه و وارد صنعت بشه، حواسش باشه که اتفاقاً اون چیزهایی که تو دانشگاه سریع ازش عبور میکردند و فکر میکردند حاشیه است، اتفاقاً اصل کار هست و چالش همونجاست. و از اون طرف اونجاهایی که خیلی تو دانشگاه روش وقت میگذاشتم تو صنعت خیلی روش مانور داده نمیشده (مگر پوزیشنهای خیلی خاص).
خیلی حرف زدم!
خلاصه این بود از قسمت چهاردهم ایستگاه هوش مصنوعی. همونطور که اول قسمت هم گفتم خوشحال میشم اگر هر نظر یا کامنتی (چه مثبت و چه منفی) دارید بهم بگید که بتونم مسیر پادکست رو بهتر تعیین کنم.
امیدوارم که این قسمت براتون مفید بوده باشه.