به سبک چند وقت گذشته، گزارش توسعه فردی ماهانهام رو منتشر میکنم.
متمم
تو متمم بیشتر درسهای مسیر شغلی رو دنبال کردم. این مطالب علیالخصوص الان که در حال تغییر کار هستم برام مهم خواهد بود؛ چون به احتمال بسیار زیاد شغل بعدیم تا حد زیادی با کار الانم متفاوت خواهد بود (حتی اگر پوزیشن شغلیام همچنان ML Engineer باشه). این ذات کارکردن تو حوزه هوشه و چندان نمیشه کاریش کرد.
تو مسیر شغلی در کنار MLOps که به نظرم جذابه و وقتی توش یه چیزی یاد میگیرم ذوق میکنم، یک پوزیشن جدید به نام ML Developer Advocate دیدم. البته تو ایران همچین چیزی نداریم. فقط شرکتهای خارجی دارند. ولی به نظرم جالب اومد. عملاً تو این پوزیشن یک سری Developer توی یک حوزه خاص (مثلاً ML) میان و یک سری آموزش متنی و صوتی و تصویری تولید میکنند که بقیه همکاران بتونند استفاده کنند. یک چیزی بین برنامهنویس و تولید کننده محتوا. معمولاً هم فول ریموته.
بدیش اینه که شرکتهای خارجی معروف (مثل Huggingface) این رو دارند و خب ایران و ایرانی هم طبق معمول از همه چیز و همه جا تحریم. کلاً هم ۴ تا کشور (ایران و کرهشمالی و کوبا و سوریه) هستند که هر جا نگاه میکنم از کارکردن باهامون معذورن.
آموزش و سرو کردن مدل
یه بخشی از کار این ماه به آموزشدادن و جمعآوری داده برای یک مدل جدید صوت به متن (Whisper) گذشت. انصافاً هم خروجی خوبی بدست اومد. این مدل که با منابع سازمان تهیه شده و قاعدتاً برای استفاده سازمانیه؛ ولی احتمالاً اگر فرصت کنم بشینم با Kaggle و Colab یک مدل اوپنسورس هم آموزش بدم و منتشر کنم.
برای جمعآوری داده هم اذیت خودم نکردم. کانالهایی که زیرنویس فارسی دارند رو تو یوتیوب به دقت انتخاب کردم و بعد اسکریپتی نوشتم که صوت و زیرنویس رو دانلود کنه و بریزه تو یه جا. دیتاست رو هم اینجا گذاشتم که اگر کسی خواست استفاده کنه. حالا باید سر فرصت بشینم پردازشش کنم ولی فکر کنم تقریباً ۳۵۰ ساعت صوت برچسبخورده درست حسابی از توش دربیاد. همین رو اگر میخواستیم بدیم یه آدم برچسب بزنه حداقل ۱۰۰۰ ساعت طول میکشید.
فکر میکنم گوگل (هولدینگ آلفابت) اگر بفهمه که با منابع خودش (Colab) از خودش (Youtube) دانلود کردم و داخل خودش (Kaggle) ذخیره کردم و بصورت عمومی منتشر کردم، تسمهتایم پاره میکنه؛ چون بدبخت کلی مکانیزم گذاشته که کسی نتونه از یوتیوب چیزی دانلود کنه، چه برسه به این کارهایی که من کردم :)
همچنین مقداری هم وقت گذاشتم که ببینم روش بهینه برای سرو کردن مدل های یادگیری ماشینی (Model Serving) چیه؟ از طریق سایت MadewithML با Ray آشنا شدم و کلی چیز ازش یاد گرفتم.
Ray Serve: Tutorial for Building Real-time Inference pipelines Arize AI - Community Paper Reading
یوتیوب
همچنان یوتیوب یکی از اصلیترین منابعی هست که ازش یاد میگیرم و این ماه هم کانالهای زیر رو دیدم و ویدئوهاشون رو پیگیری کردم؛ البته به نظرم یوتیوب دیدن هم داره فرسایشی میشه و باید کمترش کنم. یوتیوب کمی جنبه این رو داره که آدم درگیر Hype بشه و کتاب بیشتر به آدم آرامش میده. ولی از اون طرف بعید میدونم بعضی از مطالبی که تو یوتیوب میگن رو بشه تو کتاب پیدا کرد.
یوتیوب رو نمیشه چندان کنترل کرد. آدم میره داخلش و چیزهای خیلی متفاوتی هم میبینه. مثلاً چند تا قسمت از «شبهای برره» رو هم دیدم. سریالی که هنوز به نظرم جالبه و طنز قشنگی داره.
پیدا کردن کار
از نظر کاری خیلی چالش داشتم و اصلاً تکلیفم مشخص نبود (و هنوزم نیست). اول شرکت فعلیم گفتند که با دورکاری مشکل دارند و قرار شد بیام بیرون. بعد رفتم با یک شرکت دیگه صحبت کردم و همه چی داشت اوکی میشد که تو مصاحبه آخر یاد حرفهای محمدرضا راجع به گوسفندنگری و پرورش منابع و مدیریت منابع افتادم.
استک شرکت بعدی Kotlin و Java بود عملاً Java Backend Developer میخواستند که حالا اگر ML هم بلد بود، بد نیست. اوایل اینطوری بودم که اوکیه دیگه. بالاخره آدم میره یه استک کاملاً جدید رو یاد میگیره و با همون کار میکنه و کد میزنه. اتفاقاً همینطوری رفتم کورس ماش راجع به جاوا رو دانلود کردم و بخش مهمی ازش رو دیدم و همچنین راجع به Kotlin هم کلی ویدئو دیدم و یاد گرفتم. انصافاً هم زبان قشنگی هست. یاد قدیم افتادم که سیشارپ کد میزدم و برام جذاب بود.
ولی بعد یکی از جلسههای مصاحبه با خودم گفتم که دارم چیکار میکنم؟ آیا از ظرفیتهای ایجاد شده قبلی کامل استفاده کردم که حالا برم یک ظرفیت جدید پرورش بدم؟ آیا تو پایتون نمیشه کار پیدا کرد؟ آیا از ظرفیت «رشته هوش مصنوعی» که کلی وقت گذاشتم و یاد گرفتم، استفاده کردم؟
اینجا به این فکر کردم که درست نیست آدم مثل مرغ پرکنده هی از این زبان برنامهنویسی به اون زبان برنامهنویسی بپره؛ از این فریمورک به اون فریمورک بپره. مخصوصاً وقتی که هنوز ظرفیت قبلی رو کامل پرورش نداده و استفاده چندانی هم ازش نکرده. به همین دلیل اون پوزیشن (که اتفاقاً مزایا و همهچیش خوب بود) رو کنسل کردم.
ولی یک سوال همچنان برام مهمه که گوسفندنگری تا کجا خوبه؟ آیا برای گوسفندنگری هم باید نقطه شکست داشت؟ تا کجا باید به ظرفیتهای فعلی بچسبیم و همینها رو توسعه بدیم؟
فعلاً جواب خودم بهش اینه که اصل بر اینه که از ظرفیت موجود استفاده بشه و ترجیحاً همین ظرفیتها پرورش داده بشن. ولی خب اگر این ظرفیت دیگه به درد نمیخوره یا به حد کافی پرورش داده شده و ازش استفاده هم شده، اونوقت میشه سراغ ظرفیتهای جدید رفت.
الان خب تکلیفم چندان مشخص نیست و دارم جاهای مختلف اپلای میکنم ببینم کجا نیروی هوش میخوان که با دورکاری هم اوکی باشند. البته خب انصافاً «خاموش» دنبال کار بودم. آدم اگر بخواد خیلی جدی دنبال کار باشه باید تو لینکداین «Open to work» بزنه که بقیه هم بدونند. ولی هنوز ترجیح میدم همینطوری در سکوت دنبالش باشم تا تکلیف اینجاهایی که دارم صحبت میکنم مشخصتر بشه.
یک ترسی هم در دلم هست که تو یزد از صنعت دور بیفتم یا نتونم خوب کار کنم که خب تا نرم نمیشه فهمید تا چه حد درسته. فعلاً به دلایل متعدد از جمله این که از دایره امن خارج میشم به نظرم در کل تصمیم درستیه.
سلامتی
راجع به سلامتی ایدهام این بود که راه برم و استخر برم.
از چند وقت پیش که پادکست خداحافظ آفریقا رو گوش دادم به راه رفتن علاقهمند شدم. خصوصاً این که انسان راست قامت یا انسان کارگر روش شکارش، شکار مداوم (Persistence hunting) بوده. معنیاش اینه که اجدادمون هیچ هنر دیگهای نداشتند، مگر این که هی دنبال شکار برن تا از خستگی بیفته یه گوشه و برن بالاسرش بخورنش.
منم از این فازها برداشتم و به طور خاص یه روز خیلی راه رفتم و زخم پام دوباره باز شد و داستان شد. اینه که کلاً راه رفتن رو کنسل کردم تا این که خوب شه و به نظر میاد هنوز هم کامل خوب نشده. امیدوارم از این ماه کمتر اذیتم بکنه و ادا اصول از خودش درنیاره.
۴ تا دندون عقل هم دارم که هر ۴ تاشون خیلی بد دراومدند و عملاً دارند همه دندونهای دیگه ام رو خراب میکنند. بالاخره ۴ تا عمل جراحیه که دو سه ساله پشت گوش انداختم. اینجا مینویسم که زودتر عمل کنم تموم شه بره.