Telegram Web
در مورد تله late binding در پایتون

امروز هنگام کارکردن یک جا به یک موقعیتی خوردم هر کاری می‌کردم هم نمی‌فهمیدم کجای کد اشتباه زده‌ام. قاعدتا مثل همیشه از کرسر پرسیدم آقا این کد کجاش مشکل داره؟ که کرسر توضیح داد و باعث شد با پدیده به اصطلاح late binding closure در پایتون آشنا بشم. نمونه ساده کدش می‌شه این شکلی:

funcs = []

for i in range(5):
def my_func():
print(i)
funcs.append(my_func)

for f in funcs:
f()


شما اگر تیکه کد بالا رو اجرا کنید، چهار بار عدد ۴ پرینت می‌شه. چرا؟ بدیهیه که خب پایتون وقتی اون کلوژر رو داره می‌سازه مقدار i رو پاس نمی‌ده. بلکه این شکلیه که بهش می‌گه هر وقت کال شدی برو i رو بردار و اجرا بشو.

حالا در چنین سناریویی که نیاز داریم یکسری کلوژر درست کنیم به ازای مقادیر مختلف، ساده‌ترین سولوشن چه شکلیه؟ تریکش این شکلیه که اون آرگومان رو به صورت دیفالت تو تعریف تابع بگنجونیم:

funcs = []

for i in range(5):
def my_func(n=i):
print(n)
funcs.append(my_func)

for f in funcs:
f()


حالا اگر این رو اجرا کنیم به ترتیب ۱ تا ۴ پرینت می‌شن. فرقش چیه؟ در اینه تو پایتون وقتی فانکشن داره تعریف می‌شه اون خط تعریف آرگومان‌هاش هم evaluate میشن به اصطلاح و اون متغیر جدید مقدار می‌گیره. حالا توی این نحوه تعریف کلوژر معمولا آدم حواسش هست قاطی نمی‌کنه ولی وقتی به صورت lambda طور می‌نویسه کاملا احتمال حواس‌پرت شدنش هست، مثلا این خط کد زیر درست نیست:

funcs_broken = [lambda: print(i) for i in range(5)]


بلکه درستش این شکلیه:

funcs_fixed = [lambda n=i: print(n) for i in range(5)]
Mahve Tamasha
Homayoun Shajarian سخاموزیک
محو تماشا

امروز داشتم همایون شجریان گوش می‌دادم تصادفا به این آهنگش رسیدم، نمی‌دونم چطور تا حالا نشنیده‌ بودمش. بسیار دل‌نشین و دل افزا است هم شعرش و هم صدای همایون:


گفته بودی که چرا محو تماشای منی
آن چنان مات که یک دم مژه برهم نزنی
مژه برهم نزنم تا که ز دستم نرود
ناز چشم تو، به قدر مژه برهم زدنی
امان ای دل من ای خدا
ای جان ای دل من ای خدا فغان ای دل من
میخواهم و میخواستمت تا نفسم بود
میسوختم از حسرت و عشق تو بسم بود
عشق تو بسم بود که این شعله ی بیدار
روشنگر شب های بلند قفسم بود
مژه برهم نزنم تا که ز دستم نرود
ناز چشم تو به قدر مژه برهم زدنی

امان ای دل من ای خدا
ای جان ای دل من ای خدا فغان ای دل من
لله که به جز یاد تو گر هیچکسم هست
حاشا حاشا که به جز عشق تو، گر هیچکسم بود
سیمای مسیحایی اندوه تو ای عشق ای عشق
در غربت این مهلکه فریادرسم بود ای عشق ای عشق
عشق تو بسم بود که این شعله ی بیدار
روشنگر شب های بلندِ قفسم بود
مژه برهم نزنم تا که ز دستم نرود
ناز چشم تو به قدر مژه برهم زدنی
امان ای دل من ای خدا
ای جان ای دل من ای خدا فغان ای دل من
زندگی قبل و بعد از LangFuse

ساعت ۶ عصر بود و فیچر جدید رو تازه زده بودم. امید رو صدا کردم که بهش نشون بدم و با هم چک کنیم که همه چیز رو به راهه یا نه. طبق معمول لنگ فیوز رو باز کردم که لاگ‌ها رو ببینیم که دیدیم لنگ فیوز پایینه و لاگ نمی‌اندازه. با موروثی مدتی صبر کردیم منتظر موندیم شاید لنگ فیوز درست بشه ولی تهش نشد. یک نگاه خسته‌ای بهم کردیم و نتیجه گرفتیم به امید این که فردا لنگ فیوز درست شده باشه، بریم فردا تستش کنیم. فلذا جمع کردیم رفتیم.

بعد این که جمع کردیم به این فکر افتادم که اصلا ما قبل از استفاده از langfuse چطوری کار می‌کردیم؟ و هر چی فکر کردم دیدم اصلا مدل کار کردنمون یک جور دیگه بود و اصلا هم نتیجه‌بده نبود. ولی دقیقا از چند ماه قبل که شروع به استفاده از langfuse کردیم (البته در کنار یکی دو تغییر دیگه) کم کم همه چی عوض شد و سرعت و کیفیت توسعه‌مون خیلی بهتر شد. نکته اینه که langfuse از نظر قدرت مدل‌هایی که داشتیم چیزی به ما اضافه نکرد ولی به واسطه این که به ما این امکان رو می‌داد تا راحت‌تر و دل‌پذیرتر مشاهده کنیم، نحوه ارزیابی ما رو هم بهتر کرد و در نتیجه محصولمون درست شد. خیلی وقتها دراومدن محصول و نتیجه بیشتر از این که وابسته به دانش یا امکانات باشه وابسته به مشاهده‌پذیرکردن و قابل ارزیابی‌تر کردنشه.

پی‌نوشت: ای کاش جاهای دیگه زندگیم هم LangFuse داشتم.

#تجارب
صبح که بیدار شدم یادم نبود دیشب چه خواب دیدم. قبل از این که بخوابم داشتم فیلم‌های مناظره مرحوم چارلی کرک با تراجنسیتی‌ها و پورن‌استار‌ها را تماشا می‌کردم. برای همین صبح کمی دیر بیدار شدم. اول پیراهنم را اتو کردم و تماما مراقب بودم که مثل دیروز نشود که اتو را یادم رفته بود از برق بکشم و تا شب روشن مانده بود. بعدش هم یک اسنپ به مقصد شرکت گرفتم.

سوار ماشین که شدم و سلام کردم، راننده ،که آقایی حدود ۶۰ ساله با موهای سفید بود، جواب نداد. با فرم صورت و ابروهایش به نظر بسیار بداخلاق و عبوس میامد. راه که افتادیم مشخص شد حدسم درست بود. زرت زرت پشت هر ماشینی بوق می‌زد. جوری بوق می‌زد که برایم درک کردنی نبود. پشت چراغ چهارراه ولی‌عصر که رسیدیم، شیشه سمت خودش را بالا داد و مشغول کار با موبایلش شد و به جایی زنگ زد. کمی بعد صدای خانم اپراتور خودکار میامد که جایگاه این آقای راننده را در صف تلفن اعلام می‌کرد، شما نفر فلانیم در صف هستید. راننده همزمانی که گوشی در دستش بود، همچنان بوق می‌زد و عصبی به پیش می‌رفت. "اداره برق افسریه؟" و دیگر دیالوگش شروع شد. از صحبت‌هایشان فهمیدم که ده روز پیش اداره برق آمده بوده در کوچه اینها و تیر برق را جا به جا کرده بوده و سیم برق و کنتور برق این بندگان خدا را هم به فنا داده بوده. این آقای راننده بنده خدا هم رفته بوده اداره برق و درخواست داده بوده که کنتورش را درست کنند. اینها هم به این یک شماره تلفن با یک داخلی داده بودند. چیزی که از این جا به بعد خودم به صورت زنده شنیدمش این بود که آقای پشت تلفن به راننده گفت که به او ربطی ندارد و باید با آقای فلانی صحبت کند. راننده پرسید شماره داخلی این آقای فلانی چند است؟ و آن آقای پشت خط هم با لحنی که به خوبی عبارت به آنجایم را تداعی می‌کرد گفت که به من ربطی ندارد و قطع کرد. راننده همچنان عصبانی و با بوق زیاد رانندگی می‌کرد ولی دیگر برایم قابل درک‌ بود. چند تا فحش آبدار هم به ادارات داد که باز هم برایم قابل درک بود. به مقصد که رسیدیم مطابق با تمپلیت همیشگی‌ام خسته نباشید و خداحافظ گفتم و خب مثل سلام اولم بی پاسخ ماند. برایم بسیار درک‌کردنی شد.

باقی روز نکته زیادی نداشت. خدا را شکر پویا پاینده امروز حاضر بود. از انگیزه‌هایی که مرا صبح بالاخره مشتاق به رفتن می‌کند کار کردن در کنار پاینده است. ظهری اما نبود و ظهری هم که نباشد تیممان پخش و پلا برای نهار می‌رود. امروز برای همین تنها نهار را خوردم. تمرکز روی خوردن خورش کرفس البته حس خوبی داشت. لنگ فیوز هم سراسر روز کند می‌زد ولی خدا را شکر باعث خیر ناخواسته شد. تکه کدی که با کندی لنگ فیوز کندتر هم شده بود را فهمیدم که می‌شد جور دیگری زد که سریعتر اجرا شود. بعد از ظهر بود که بالاخره تسکی که کلی طول کشیده بود و بالا پایین شده بود به نظر تمام شد. احساس مفیدبودن کردم. برای ده ثانیه طول کشید بعدش یاد چیزهای دیگر افتادم و به سان کسی که وقتی از جای بالاتر میافتد بیشتر دردش می‌آید دردم آمد. نکته خاص به یادماندنی دیگری از روز نبود. به جز این که بهنام پیرهن بسیار قرمزی پوشیده بود دم ظهر شربت آبلیمو مهمانم کرد و در گروه‌های دکترای دانشگاه هم تعدادی آدم جدید ادد شدند.

شب دیگر خسته. در اینجور مواقع معمولا منتظر میمانم تا خیابان خلوت‌تر شود وگرنه باید کلی در ترافیک باشم. امشب دیگر از سردرد تصمیم گرفتم پیاده و با مترو برگردم. هوا خنک می‌زد و این که دیگر مویی بر سر و صورت نداشتم هم باعث می‌شد بیشتر خنکی‌اش را حس کنم. در راه، از شهر کتاب دو کتاب "پژوهشی مختصر در معنای گناه و ایمان" از جان رالز و "شهریار" ماکیاولی را خریدم. اولی را هفته پیش برای تولد یکی، خریده بودم منتها خودم از کتاب خوشم آمد و برای بار دوم، البته این بار برای خودم، خریدم.

در مترو خسته و کوفته نشستم. ایستگاه میدان ولی عصر، یکهو یک پسر بچه چهارساله‌ای پرید تو و پشتش مادرش وارد شد. پسر بچه بسیار بیش فعال می‌زد و البته خود مادرش هم تاییدش کرد. جایی مطمئن شدم بیش فعال است که دنبال دست فروش مترو به یک واگن دیگر رفت و مادرش هم طوری که مشخص بود عادی است سر جایش نشسته بود. پسرک بیش‌فعال به معنای واقعی کلمه و بیش فعالانه در مترو می‌پرید و عین فلش از این سمت به آن سمت می‌جهید. من به سان یک تماشاچی فقط نگاه می‌کردم. ناگهان مادرش بعد چهارم را شکست: مرا به پسرش نشان داد و گفت "بشین مگه نمی‌بینی مردم خسته‌اند از سر کار آمده‌اند". چشمانم شبیه سیامک انصاری در لحظه گرد شد. یعنی من قیافه‌ام این قدر داغان بود که برای مثال زدن از بین آن همه من را انتخاب کرد؟

به خانه که رسیدم دلم گویا سرمازده بود. شام برای همین نان و حلواارده خوردم. تا عمری اصلا حلواارده خور نبودم، از جایی به بعد ولی به خاطر طبع گرمش، فنش شدم. نقطه مقابل حلواارده اما آدم‌هایی هستند که قلب آدم را سرما می‌زنند.

#روزمرگی
دست حسرت بر بناگوش

یکی را دست حسرت بر بناگوش
یکی با آن که می‌خواهد در آغوش

نداند دوش بر دوش حریفان
که تنها مانده چون خفت از غمش دوش

نکوگویان نصیحت می‌کنندم
ز من فریاد می‌آید که خاموش

ز بانگ رود و آوای سرودم
دگر جای نصیحت نیست در گوش

مرا گویند چشم از وی بپوشان
ورا گو برقعی بر خویشتن پوش

نشانی زان پری تا در خیال است
نیاید هرگز این دیوانه با هوش

نمی‌شاید گرفتن چشمه چشم
که دریای درون می‌آورد جوش

بیا تا هر چه هست از دست محبوب
بیاشامیم اگر زهر است اگر نوش

مرا در خاک راه دوست بگذار
برو گو دشمن اندر خون من کوش

نه یاری سست پیمان است سعدی
که در سختی کند یاری فراموش

پی‌نوشت: این شعر از سعدی، انگار یک جوری با غزل‌های عاشقانه دیگرش فرق داره. درش یک جور حس و درد واقع‌نگری وجود داره. شبیه همون بپذیر قبلی. و شب بخیر.
روزنامه شریف | SharifDaily
«سالانه ۱۰۰۰ پژوهشگر مهاجرت کردند» ❇️ نشست خبری صبح شنبه وزیر علوم، یک اظهار نظر پر بازتاب دیگر هم داشت؛ سخنانی با موضوع معیشت استادان و پژوهشگران و... که سیمایی صراف آن‌را «فوق‌العاده پایین» و علت اصلی مهاجرت آن‌ها دانسته و گفته دولت برای حل آن، دغدغه جدی…
رتبه ۱۷ جهان چه فایده؟

وزیر علوم گویا چنین سخنی داشته:

وزیر علوم با بیان اینکه مهاجرت برای کشور یک زیان است، گفت: از سال ۲۰۱۰ تا ۲۰۲۲ ما ۱۲ هزار پژوهشگر داریم که از کشور خارج شدند. اینها کسانی هستند که در ایران تحصیل کردند. ممکن است فارغ التحصیلان ارشد، دکتری یا هیات علمی بودند که از کشور رفتند و در یک نشریه معتبر بین المللی با نام یک پژوهشگاه خارجی مقاله منتشر کردند که طی یک سال ۲۸ هزار مقاله منتشر کردند که اگر این تعداد مقاله با نام یک دانشگاه ایرانی منتشر می‌شد، رتبه علمی ۱۴ را داشتیم؛ در حالی که الان ۱۷ هستیم.


قبل از هر چیز می‌خواستم بگم که همین که وزیر علوم چنین صحبتی رو می‌کنه که مهاجرت زیانه جای شکر داره. و کلا از این وزیر علوم من به خاطر صحبت‌هاش و اقداماتش برداشت مثبتی دارم. مثلا این دو ایده‌اش که کارشناسی باید به سه سال کاهش پیدا کنه و تعداد دانشگاه‌ها و موسسات آموزشی هم باید کم بشن رو خیلی خوشم اومد. اما این سخنان اخیری که داشت برام ایراد ایجاد کرد. این ایرادی که می‌تونم بگیرم اینه که حتی این وزیر علوم هم با وجود روشن‌بینی که داره اما باز نهایتا ذهنش به رتبه‌های علمی افتاد. ما سال‌هاست که کیفیت پژوهشی و علمی دانشگاه‌های خودمون رو با تعداد مقالات می‌سنجیم. هر وقت در این ملاک رتبه‌مون بهتر می‌شه احساس فخر می‌کنیم و هر بار بدتر می‌شه می‌گیم باید به فلان قدر برسه. در واقع مثلا فرض کنید حرف وزیر تحقق پیدا کرده بود و ما عوض ۲۸ هزار مقاله، اصلا ۲۸۰ هزار مقاله داشتیم و اصلا در رنکینگ جهانی، چهارم بودیم. در این صورت چه فرقی می‌کرد؟

رنکینگ کشورها بر حسب تعداد مقالات یا اصلا تعداد سایتیشن‌ها یا اصلا هر متریک پیچیده‌‌تر دیگه‌ای به نظر یک چیزی در مایه‌های رنکینگ تیم‌های فوتبال ملی می‌مونه. کشورهای قوی‌تر قطعا رتبه بالاتری در این رنکینگ‌ها دارند ولی الزامی نداره که هر کشوری که تعداد مقاله بیشتری داشته باشه در زمینه علم و پژوهش موفق‌تر باشه. به نظر اون چیزی که از تعداد مقالات مهم‌تره اینه که مراکز پژوهشی اون کشور تو چرخه اهداف مشخصی بیافتند و تولید علمشون حداقل یک جای دیگه مصرف بشه.

حالا چرا اصلا با این جور تفاسیر از رتبه علمی مخالفم؟ چون این باعث افتادن در دام عدم اصلاح وضع موجود می‌شه. همونطور که گفتیم یکی دیگه از نظرات وزیر علوم اینه که تعداد موسسات آموزشی باید کاهش پیدا کنه:

وی خاطرنشان کرد: ما معتقد هستیم باید دانشگاه با هدف کیفی سازی سامان پیدا کنند گسترده شدن دانشگاه برای ما آزار دهنده است این تعداد واحدهای دانشگاه کیفیت را کاهش یافته است. برای این برنامه وزارت علوم برای هر استان پرونده هایی به سرانجام رسانده؛ اما موفق نشده است.


خب حالا در صورتی که بخواد دست به این اصلاحات بزنه و تعداد دانشگاه‌ها و تعداد دانشجوها رو کاهش بده احتمال قوی تعداد مقالات منتشرشده ما هم کاهش چشمگیری پیدا می‌کنند و دیگه ما در رتبه ۱ تا ۲۰ نخواهیم بود بلکه به رتبه واقعی خودمون که احتمالا یک جایی بعد از ۴۰ اینا باشه می‌رسیم. ما برای سالها یک متریک الکی رو برای خودمون بولد کردیم و در هر سخنرانی و سند راهبردی و تبلیغات ازش به عنوان پوئن مثبت یاد کردیم، در حالی که هیچ کوریلیشنی با اون چیزی که برای کشور نیازه نداره و اتفاقا تلاش برای بهترکردن و نگه‌داشتنش باعث بروز شرهای دیگه شده که خودشان نیاز به اصلاح دارند. علم و پژوهش باید مورد مصرف تکنولوژی، صنعت، اقتصاد، فرهنگ بروکراسی قرار بگیرند (این دو مورد آخر رو برای علوم انسانی ذکر کردم، علوم انسانی در هر کشوری فرهنگ و بروکراسی اون کشور رو می‌سازند ولی حتی علوم انسانی هم در کشور ما با وجود استقلال از صنعت گویا توفیقی در ساخت بروکراسی موفق نداشته).

پی‌نوشت: می‌تونید رنکینگ کشورها بر حسب فاکتورهایی مثل تعداد مقالات، تعداد ارجاعات، اچ‌ایندکس و ... را به صورت کلی و یا فیلترشده بر حسب فیلدهای مختلف مثل هوش مصنوعی، فیزیک و ... در این جا ببینید:

https://www.scimagojr.com/countryrank.php


پی نوشت ۲: الان مثلا ما در هوش مصنوعی تعداد مقالاتمون ۲.۷ برابر اسرائیل هست. ولی خب اون چه استفاده‌ای از AI می‌کنه و ما چه استفاده‌ای می‌کنیم. از استارتاپ‌ها گرفته تا صنایع نظامی ...
در دل هیچ‌کس ندارم جای
آرزوی هلاک را مانم

طالب آملی
زندگی سخته، ناممکنه، درد داره. همین.
چُراز
🟢 روایت تاریخی هسته‌ای در ایران؛ قسمت دوم ⚪️ روایت هسته‌ای از انقلاب تا برجام 🔴 چرا ایران به بمب اتمی نرسید؟ 🔹 این یک روایت تاریخی مهم است! ما در این قسمت، تحولات برنامه هسته‌ای ایران را از دوران انقلاب تا توافق برجام، به شکلی بی‌طرفانه مرور می‌کنیم تا تصویری…
ویدئو قسمت دوم چراز از روایت ماجرای هسته‌ای، خوب بود. با توجه به موضع‌گیری‌های اخیر حسین میرزایی در توییتر انتظار نداشتم که از این زاویه نسبتا بی‌طرفانه قسمت دوم رو (که بازه بعد از انقلاب تا عقد برجام هست) نقل کنه.

نکته پررنگ روایت چراز، اینه که تصمیمات ایران رو بسیار تحت تأثیر اتفاقات عراق می‌بینه و در واقع اتفاقات عراق باعث نگرانی‌های امنیتی حاکمان ایران و انگیزه‌های بعدی اونها میشه. ترس از رسیدن عراق به سلاح‌های کشتار جمع در حین جنگ با ایران، باعث میشه برای اولین‌بار ج.ا. به این سناریوها فکر کنه و به شبکه عبدالقدیرخان متصل بشه. جنگ اول خلیج‌ فارس و حمله آمریکا به عراق و ناتوانی عراق در برابر آمریکا، باعث میشه ایرانی‌ها بیشتر به فکر لزوم داشتن بازدارندگی در مقابل آمریکا پی ببرند و همین تبدیل به انگیزه اصلی برای ساخت سلاح هسته‌ای بشه. در مقابل اما حمله دوم آمریکا به عراق به نظر چراز باعث احتیاط ج.ا. در تکمیل پروژه آماد میشه و به وجود اومدن داستان‌های بعدی میشه.

روح پررنگ دیگه ای که در این روایت وجود داره و چراز خیلی روش تاکید داره شخص نتانیاهو و به طور کلی اسراییل هست که از سی سال قبل تا این ور ردپاش رو در مقابله با برنامه هسته‌ای ایران و حمله آمریکا به عراق میشه دید. در کمال تعجب حتی چراز هم در مورد واقعه یازده سپتامبر معتقده که بابت تداخلات زمانیش مشکوکه و یک طرح کمرنگی از تئوری توطئه رو رسم می‌کنه.
غم فسردن و پژمردن از خزانش نیست
گل همیشه بهار است داغ سینه‌ی ما

طالب آملی
امروز نشسته بودم، یکی بزرگی آمد کاری داشت. مشغول صحبت هر چند کوتاه شدیم. ایستاده بود و من هم نشسته بودم. بعد که صحبتمون تموم شد عذاب وجدان گرفتم که رسم درست نیست که وقتی مخاطبم ایستاده است من نشسته باشم و یا وقتی مخاطبم نشسته است من ایستاده باشم. شب در ماشین مشغول خواندن رندوم شدم که این بیت تصادفا خواندم:

به هر کجا که نشینم کمال بی ادبی است
که ایستاده خیال تو در مقابل من

همین دیگر. از این پس سعی میکنم این نکته ایستاده نشسته را رعایت کنم.

#تجارب
Illusion of Dimnishing Returns
1/...

چند ماه پیش، پیپر پر سر و صدای Illusion of Thinking نشون داد که مدل‌های زبانی رو وقتی روی نمونه‌ مساله‌های ریزنینگی با میزان کامپلکسیتی مختلفی تست می‌گیریم، با نمودار غیرمنتظره‌ای مواجه می‌شیم. نموداری که در اون دقت مدل از یک کامپلکسیتی بیشتر به بعد، دچار کولپس می‌شه و می‌افته. حرف این پیپر این بود که در واقع مدل‌های زبانی دست به استدلال نمی‌زنن و عملکرد خوبشون روی داده‌های با کامپلکسیتی محدود هم ناشی از یک جور contamination هست.

بر سر درستی یا غلطی ادعای این پیپر بحث‌های زیادی در گرفت. game changer روند فیلد اما مربوط به یک بخش کوچک انتهایی این پیپر بود که در اون اکسپریمنتی رو انجام داده بودند که نشون دادند حتی اگر الگوریتم حل یک مساله رو هم به llm بدیم باز وقتی نمونه مساله ما از یک حدی پیچیده‌تر میشه با وجود داشتن الگوریتم درست باز مدل روی اون نمونه کولپس می‌کنه. در واقع این پیپر برای اولین بار نشون داد که یک چیز execution‌طوری در ذات مسائل ریزنینگی هست (که در عین این که از بعد دانش اون مساله جداست) ولی در عین حال مدل‌ها روی اون مشکل دارند. یعنی اگر یک حل یک مساله ریزنینگی رو به دو مرحله پیدا کردن راه‌حل و الگوریتم اون و بعد اجرای اون الگوریتم تقسیم کنیم، حتی اگر از خیر مرحله پیدا کردن الگوریتم بگذریم، مدل‌های ما روی فاز اجرای راه حل به طرز عجیبی مشکل دارند. روی همین سوال کلی پیپر در این چند وقت اومدند سعی کردند توانایی execution مدل‌های زبانی رو بنچمارک کنند. تا این که چند روز پیش یک پیپر جالب اومده که آزمایشات و نتایج قابل تاملی داره.

اسم این پیپر illusion of dimnishing returns هست و به نوعی این سوال که آیا ریزنینگ چیه و مدل‌های ریزنینگی ما آیا واقعا دارن ریزنینگ می‌کنن یا نه به این اسم illusion گره خورده و احتمالا از این به بعد پیپرهای زیادی با این عنوان می‌بینیم. یکی از زیباترین پیپرهایی بوده که این چند وقت خوندم و آزمایشاتشون و ایده‌هایی که زدن هم جالب بوده. زیبایی کارشون به اینه که اون سوال باز انتهای پپیر illusion of thinking رو به ظرافت از زوایای جالبی بررسی کرده و یک سری سوال‌های دیگه انگار برای ادامه کار فیلد ساخته.
Out of Distribution
Illusion of Dimnishing Returns 1/... چند ماه پیش، پیپر پر سر و صدای Illusion of Thinking نشون داد که مدل‌های زبانی رو وقتی روی نمونه‌ مساله‌های ریزنینگی با میزان کامپلکسیتی مختلفی تست می‌گیریم، با نمودار غیرمنتظره‌ای مواجه می‌شیم. نموداری که در اون دقت مدل…
Illusion of Dimnishing Returns
2/...


خب همونطور که در قسمت قبلی گفتیم، از دل این سوال که آیا llmها می‌تونن ریزنینگ کنند یا نه، یک سوال داخلی به وجود اومده که به فرض اگر یک llm ای بهش یک الگوریتمی رو بدیم آیا llm می‌تونه اون رو به درستی اجرا کنه یا نه؟ در واقع اگر ما تا چند وقت پیش حل کردن یک مساله ریزنینگی رو یک چیز یکپارچه‌ای می‌دیدیم اما الان برامون تبدیل به دو فاز جدای از هم شده: planning که تو اون الگوریتم حل مساله رو باید بفهمیم و فاز execution که در اون اجرای اون الگوریتم یافت شده تو planning رو باید انجام بدیم. آزمایشات پیپرهای این چند ماهه نشون دادند که llmها در execution های طولانی و پیچیده عملکرد جالبی ندارند.

مقاله illusion of dimnishing returns یک کار مهمی که در ابتدای خودش کرده اینه که اومده اولا این ستینگ رو فرموله کرده و براش term و metric معرفی کرده (یک فرمولیزیشن خوب باعث میشه بشه ابعاد مستقل ماجرا رو از هم فاکتورگیری کرد و جنبه ابعاد مختلف یک پدیده رو راحت‌تر مشاهده کرد). اومده گفته اجرای یک تسک رو می‌شه با سه ترم لول بندی کرد: step و turn و task. استپ یک جورهایی هر گامی از llm که باعث تغییر استیت می‌شه رو دربرمی‌گیره، turn میشه هر مرحله اجرایی که می‌تونه شامل اجراکردن روی چندین step بشه و task هم که می‌شه دنباله تمامی استپ‌هایی که باید انجام بشن. حالا بر همین حسب اومده متریک‌های Step Acc و Turn Acc و Turn Complexity و Task Acc و البته Horizon Length رو تعریف کرده. این متریک‌های برای یک مدل روی یک مساله تعریف می‌شن و به نوعی نشون می‌دن که اون مدل چه قدر خوبه. جالب‌ترینشون که Horizon Length با در نظرگیری هایپرپارامتر ترشولد S هست می‌گه که حداکثر پیچیدگی مساله‌ای که یک مدل می‌تونه انجام بده به شرطی که میانگین دقتش روی اون مساله پایین‌تر از s نیاد چه قدره. و از طرفی نشون می‌ده حتی افزایش دقت‌های بسیار ناچیز روی نرخ‌های بالای Step Acc باعث می‌شه که میزان Horizon Length ما به صورت نمایی بالا بره. اون جمله معروف که هر ۷ ماه میزان عملکرد مدل‌ها روی تسک‌های مهندسی نرم افزار با در نظرگیری s=0.5 دوبرابر می‌شه رو هم ذکر کرده.

حالا ممکنه شما بعد این توضیحات براتون سوال بشه اصلا چرا باید توانایی execution مدل‌ها رو بسنجیم. مصادف با همین هم اصلا یکسری پیپر بعد از illusion of thinking اومدند نشون دادند که اگر ما به مدل یک حافظه بدیم یا قابلیت‌های اجرای راه‌حلش رو بتونیم برون‌سپاری کنیم به یک کد پایتون اون وقت عملکردش بسیار متفاوت می‌شه. درسته این حرف ولی ماجرا اینه که همه چیز اجرای محاسباتی و ریاضیاتی نیست که ما براش اکسکیوتر بیرونی داشتیم و سر همین بحث هم این پیپر یک بحث ریزی می‌کنه که بعضی وقت‌ها مفهوم اجرا یک چیزی فراتر از اجراهای ریاضیاتیه.
Out of Distribution
Illusion of Dimnishing Returns 2/... خب همونطور که در قسمت قبلی گفتیم، از دل این سوال که آیا llmها می‌تونن ریزنینگ کنند یا نه، یک سوال داخلی به وجود اومده که به فرض اگر یک llm ای بهش یک الگوریتمی رو بدیم آیا llm می‌تونه اون رو به درستی اجرا کنه یا نه؟ در…
Illusion of Dimnishing Returns
3/...


اما قسمت زیبا و گل پیپر همین جا در سر تعریف کردن اکسپریمنت‌ها و تسک‌هاشه. اینها اومدند برای این که بتونن اون مفاهیم step و turn و task رو عینی کنند یک تسک خیلی ساده اما بسیار کنترل پذیر و عاری از هر گونه فاکتور مزاحم دیگه‌ای ساختند. تسکی که ساختند رو اسمش رو retrieve and compose گذاشتند. این تسک این شکلیه که اول یک دیکشنری ساخته می‌شه که کلیدهای اون کلمات معنادار هستند و ولیو‌هاش هم یک سری مقادیر اعداد دو رقمی. هر task این شکلی شامل تعدادی turn می‌شه که در هر turn تعدادی از اون کلمات معنادار به llm داده می‌شن. وظیفه‌ای که llm داره اینه که در هر turn باید بیاد مقادیر ما به ازای این کلمات رو استخراج کنه و بعد با هم جمع بزنه و حاصل جمع رو بده به turn بعدی که اون turn هم حاصل جمعش رو با حاصل جمع قبلی جمع بزنه. در این جا هر کلمه معادل با یک step میشه فرض کرد و هر turn رو هم می‌شه متناظر با انجام یک execution دید. زیبایی کارشون در اینه که تسک رو جوری تعریف کردند که اون فاز retrieval واقعا معادل با بیرون کشیدن یک چیز دانشی از توی llm شده و خودش هیچ گونه محاسبه نمی‌خواد. از طرف دیگه هم فاز compose که شامل جمع زدن مقادیر عددی هست به قدری ساده است که می‌دونیم احتمال خطا انجام دادنش توسط llm نزدیک به صفر درصده. این اکسپریمنت یعنی واقعا معادل با executeکردن خالی هست و هیچ گونه planningای درش نیاز نداره.

حالا روی همین اکسپریمنت اومدند یک سری آزمایش تعریف کردند. در ساده‌ترین اکسپریمنت اومدند میزان کامپلکسیتی هر turn رو برابر با یک قرار دادند (یعنی در هر turn صرفا یک کلمه به مدل داده می‌شه). چیزی که مشاهده کردند دیدند مدل‌های اوپن سورس قوی‌ مثل Qwen و Gemma هم وقتی طول Task از یک حد هر چند کمی (۱۵ نوبت)، بیشتر میشه دچار افت به زیر ۵۰ درصد می‌شه عملکردشون.
Out of Distribution
Illusion of Dimnishing Returns 3/... اما قسمت زیبا و گل پیپر همین جا در سر تعریف کردن اکسپریمنت‌ها و تسک‌هاشه. اینها اومدند برای این که بتونن اون مفاهیم step و turn و task رو عینی کنند یک تسک خیلی ساده اما بسیار کنترل پذیر و عاری از هر گونه فاکتور مزاحم دیگه‌ای…
Illusion of Dimnishing Returns
4/...


ریزالت شگفت این پیپر اما اینجاست. قبلتر گفتیم که دو متریک Turn Acc و Task Acc می‌تونن وجود داشته باشند. در مورد Task Acc واضحه که هر چه قدر که طول تسک بیشتر بشه دقت Task افت پیدا می‌کنه به واسطه این که به هر حال احتمال این که مدل حداقل یک جا خراب کنه بیشتر می‌شه. اما در مورد Turn Acc چه می‌شه گفت؟ در نگاه اول به ذهنمون می‌رسه که Turn Acc یک معیاری مستقل از کوتاهی یا بلندی تسک هست و این که این Turn فعلی درست انجام می‌شه یا نه نباید ربطی به طول تسک داشته باشه. قبلا در پیپر GSM-Infinite مشابه این نشون داده شده بود که اتفاقا با افزایش طول تسک، اون turn هایی که دیرتر هستند، دقتشون پایینتر از turnهای زودتره. در اون پیپر علت این پدیده رو به طولانی‌شدن context ربط داده بودند که منطقی هم هست.

در این پیپر illusion of dimnishing returns اما اومدن یک کار جالب کردند. اومدند یک ستینگی رو تعریف کردند که در اون برای سنجیدن دقت یک turn میان turnهای قبلی اون رو به یک احتمالی خراب می‌کنند و نتیجه‌اش رو عوض می‌کنند. پدیده جالبی که مشاهده کردند اینه که هر چه قدر نرخ خطای turnهای قبلی رو بیشتر می‌کنند مدل‌ در turn های بعدی هم به احتمال بیشتری خطا می‌کنه که اصلا حداقل با ذات عملکردی انسان بدیهی نمی‌خوره. اسم این پدیده رو گذاشتند self-conditioning و این جوری تعریفش کردند که:

Models self-condition on their previous mistakes, leading to degradation in per-step accuracy.


به این معنا که مدل روی خطاهای قبلی که خودش کرده هم مشروط می‌شه و عملکردش تحت تاثیر اونا قرار می‌گیره هر چند اصلا عملیات اجرای این turn فعلی مستقل از اون turn های خراب قدیم باشه. نکته‌ای که مشاهده کردند اینه که scale کردن سایز مدل باعث جلوگیری از self conditioning نمیشه اما thinking تا حدزیادی این مشکل رو برطرف می‌کنه. رازی که خود پیپر درش اظهار نظر نمی‌کنه و دست به حدس می‌زنه اینه که شاید شاید انجام RL در موقع آموزش این مدل‌ها باعث شده که اینها مصون به self-conditioning باشند.
Out of Distribution
Illusion of Dimnishing Returns 4/... ریزالت شگفت این پیپر اما اینجاست. قبلتر گفتیم که دو متریک Turn Acc و Task Acc می‌تونن وجود داشته باشند. در مورد Task Acc واضحه که هر چه قدر که طول تسک بیشتر بشه دقت Task افت پیدا می‌کنه به واسطه این که به هر حال احتمال…
Illusion of Dimnishing Returns
5/5


در نهایت هم یک شکل در مقاله هست که نشون می‌ده که مدلهای مختلف در تسک‌های اجرای بلند چه تفاوتی با هم دارند. گپی که GPT-5 نسبت به بقیه داره قابل توجهه و البته که گویا Gemini 2.5-Pro نسبت به بقیه در این فاکتور وضع خوبی نداره. فاکتوری که می‌تونه در انجام تسک‌های بلند مثل مهندسی‌ نرم‌افزار و ... موثر باشه.
نبرد شناخت اراده‌ها با سنگ، کاغذ، قیچی

چند روزی بود آقای بهنام (که حق استادی به گردن بنده بابت کوبر دارند)، هر از گاهی محض تفنن در حین کار بنده رو به سنگ کاغذ قیچی دعوت می‌کردند. به طرز عجیبی من هم هر بار هر روز به بهنام می‌باختم. بهنام انگار بهتر از من می‌دونست که من در حرکت بعدی می‌خواهم چه اکشنی بزنم. سر همین من بیشتر توجهم به سنگ کاغذ قیچی جلب شد.

سنگ کاغذ به ظاهر بازی هست که هیچ چیزی نداره. شما سه تا اکشن ممکن دارید که هر کدوم رو انتخاب کنید به احتمال ۰.۵ می‌برید و به احتمال ۰.۵ می‌بازید. و حتی عنصر تاسی هم وجود نداره که قطعیت رو از شما سلب کنه. در نگاه اول آدم حس می‌کنه یک بازی کاملا تصادفیه که درش هوشمندی هم معنا نداره ولی اتفاقا وقتی با یک نفر از یک حدی بیشتر بازی می‌کنید، اگر طرف مقابل باهوش باشه می‌تونه کم کم روحیه شما رو از سنگ کاغذ قیچی بفهمه و از همین بتونه حدس بزنه که شما چه استراتژی پیاده می‌کنید. در واقع سنگ کاغذ قیچی در عین ساده بودنش یک استعاره خیلی تمیز از نبرد شناخت اراده‌ها است (دقت کنید که نبرد شناخت اراده‌ها و نه نبرد اراده‌ها، چرا که اراده هم معنی نداره صرفا تنها چیزی که اهمیت داره شناخت اراده‌هاست)

امروز آخر وقت یکبار دیگه فرصت شد با بهنام بازی کنم. در کمال تعجب سه بر صفر شکستش دادم. بهنام تعجب کرد و پرسید که چطوری تونستی بالاخره؟ من گفتم هیچی. فهمیدم که تو من رو می‌شناسی برای همین قبل از این که بازی شروع بشم به تصادف تصمیم گرفتم فارغ از اتفاقات بازی حرکت‌هام رو به ترتیب قیچی، قیچی، کاغذ، قیچی، سنگ بزنم و خب نتیجه داد. فهمیدم که هر چه قدر بیشتر سعی کنم استراتژی بچینم بیشتر بر طبق الگوی رفتاری خودم فکر می‌کنم و الگوی رفتاریم حتی اگر خودم هم بهش واقف نباشم برای بهنام خیلی آشکاره. در چنین شرایطی رندوم بازی کردن بهتر از استراتژی چیدنه و خب شانس بردن در رندوم بازی کردن نصف نصفه. گاهی وقتا رندوم بازی کردن در شرایطی که بقیه شما رو می‌شناسن و حرکت بعدیتون رو می‌دونن بهترین حرکت ممکنه.

پی‌نوشت: نقطه آخر رو که گذاشتم، از ذهنم گذشت که سیاست خارجی ایران امروز چه قدر پیش‌بینی پذیر هست.

پی‌نوشت: آقای مصطفی مشکاتی لطفا به بخش کامنت‌ها مراجعه کنند چند نفر کارشون دارند.
به حشر، تن به جحیم افکنم نخستین گام
دل و دماغ رسن‌بازی صراطم نیست

طالب آملی در این بیت می‌گه روز قیامت که بشه همون گام اول خودم رو از روی پل صراط به جهنم می‌اندازم، حال و حوصله رو پل رفتن و تلاش برای روش موندن و نیافتادن رو ندارم. شاعر چنان از اعمال دنیوی خود مایوس است که خود را اهل بهشت نمی‌داند و ترجیح می‌دهد از همان ابتدا به جای امتحان‌دادن از پل صراط، کار را یکسره کند.
انقلابی در راه است: مدل‌های ویدئویی چگونه فرمول‌بندی مسائل ویژنی را تغییر می‌دهند؟


در چند سال اخیر، بعد از موفقیت مدل‌های generative در حوزه متن، به تازگی مدل‌های video generation هم در حال توسعه هستند. این مدل‌ها این شکلی‌اند که شما یک پرامپت مثل "یک طوطی در حال فوتبال بازی کردن" بهش می‌دید و اون هم برای شما فریم به فریم یک ویدئو مرتبط با اون پرامپت رو می‌کشه و در نهایت یک ویدئو بهتون می‌ده. حالا اگر از شما پرسیده بشه کاربرد این video modelها چیه، شما احتمال زیاد پاسخ می‌دید که باهاش میشه ویدئو تولید کرد. این پاسخ اشتباه نیست ولی کامل هم نیست. در واقع مثل این می‌مونه که بپرسیم با LLMها می‌شه چه کار کرد و پاسخ بدیم که می‌شه باهاش چت کرد. در حالی که با LLMها می‌شه خیلی‌ کارهای دیگه رو در قالب و بستر چت هندل کرد.

مرتبط با این حالا یک ریسرچی اومده و بررسی کرده که آیا تسک‌های ویژنی رو می‌شه با این video modelها انجام داد یا نه؟ به این منظور اومدن مدل veo3 گوگل که خفن‌ترین مدل ویدئو جنریشن فعلی هست رو برداشتند و سعی کردند با پرامپت‌دادن بهش عملکرد این مدل رو توی تسک‌های مختلف ویژنی بسنجیند. مثلا چه شکلیه؟ مثلا بهش تصویر یک طوطی می‌دید و می‌گید سگمنتیشن روش بکن و حالا video model میاد و فریم به فریم عملیات سگمنتشن رو روی این انجام می‌ده تا به فریم نهایی که همون جواب سگمنتیشن هست برسه. حالا این ریسرچ اومده و دسته تسک‌های مختلف رو با veo3 تست گرفت. دسته perception مثل همین تسک‌های ویژنی ساده سگمنتیشن و کی پوینت درآوردن، دسته Modeling مثل سنجیدن توانایی‌های world modelای مثلا به مدل می‌گن کاغذ رو آتش بزن بنداز تو آب (ببینند آیا مدل می‌تونه درست پیش بینی کنه عاقبت این کار چه می‌شه)، و دسته کارهای reasoning ای (مثلا یک ماز رو می‌دن به مدل می‌گن مسیر خروجی رو دربیار ا اصلا فلان الگوریتم رو روی این گراف اجرا کن) (یا حتی کارهایی از جنس binding مثلا یک صحنه پر از مکعب و کره‌های آبی و قرمز رو می‌دن به مدل بعد میگن مکعب آبی شروع به سبزشدن می‌کنه).

نتیجه کارهاشون قابل توجهه و نشون دادن که veo3 تو خیلی از تسک‌های ویژنی عملکرد خوبی داره. از طرفی نشون هم دادند که مفهومی مثل chain of thought رو میشه اینجا به شکل chain of frame پیاده سازی کرد (مثلا به مدل می‌گی که قبل از رسیدن به جواب نهایی چند فریم برای خودت طراحی کن). نکته جالب دیگه هم اینه که میشه تسک‌ها رو به شکل جدیدی فرموله کرد مثلا یک حرف از دیتاست القبای آمنی‌گلات رو به مدل دادند و گفتند پارسش کن و مدل شروع کرده تکه تکه اون حرف رو کشیدن و به نوعی دیکامپوزش کرد.

البته که veo3 بهترین عملکرد رو نسبت به مدل‌های ساده دیگه نداره ولی نویسندگان مقاله معتقدند که ما الان در این حوزه مشابه وقتی هستیم که GPT3 اومده بود و با این که از مدل‌های فاین تیون شده عملکرد پایینتری داشت ولی به نوعی generali purpose بود. حالا این دوستان هم معتقدند که احتمالا veo4 وقتی منتشر بشه در حکم یک مدل generalist برای تسک‌های ویژنی می‌شه و شاید اصلا نحوه فرمولیشن ما از تسک‌ها هم تغییر پیدا کنه، مشابه اتفاقی که LLMها برای حوزه NLP رقم زدند. حتما ویدئوهاش رو ببینید.

لینک:
https://video-zero-shot.github.io/
زمین‌گیر است جمعیت، فلک پیماست تنهایی

به توحید خدا همچون الف گویاست تنهایی
دویی در پله شرک است و بی همتاست تنهایی

تجرد پیشگان را نیست کثرت مانع از وحدت
که در دریای لشکر چون علم تنهاست تنهایی

به اندک سختیی رو از تو گردانند همراهان
روی گر در دهان اژدها همپاست تنهایی

حدیث قاف و عنقا را مدان افسانه چون طفلان
که کوه قاف کنج عزلت و عنقاست تنهایی

دل رم کرده هر کس را بود در سینه، می داند
که صحبت دامگاه و دامن صحراست تنهایی

تجرد شهپر پرواز گردون شد مسیحا را
زمین گیرست جمعیت، فلک پیماست تنهایی

چو مرغ خانگی بر گرد آب و گل نمی گردد
همای خوش نشین اوج استغناست تنهایی

چو بوی گل که در آغوش گل با گل نیامیزد
اگر چه هست در دنیا، نه در دنیاست تنهایی

ز خود دورافکند چون نافه صائب سایه خود را
غزال وحشی دامان این صحراست تنهایی

صائب

پی‌نوشت: صائب شاعر اندرریتدی هست. فقط از صائب برمیاد بتونه چنین شعر حماسی در تحسین تنهایی بگه.
2025/10/13 02:19:52
Back to Top
HTML Embed Code: