آموزشمدل‌های زبانی بزرگ (LLM)

درس ۸۱ از ۸۵، هوش مصنوعی، حدود ۱۲ دقیقه خواندن

سرعت اجرا: توکن در ثانیه

جواب کوتاه

سرعت اجرای یه مدل زبانی رو معمولا با «توکن در ثانیه» می‌سنجن، یعنی هر ثانیه چند تکه از جواب نوشته می‌شه. کار مدل دو مرحله داره: پرامپت رو یه‌جا و موازی می‌خونه، که سریعه؛ ولی جواب رو توکن‌به‌توکن می‌نویسه، چون هر توکن به قبلی بستگی داره، و بیشتر زمان همین‌جا می‌گذره. توی این مرحله، برای هر توکن تقریبا همه‌ی وزن‌ها باید از حافظه به پردازنده برسن؛ برای همین سرعت حافظه از قدرت حساب مهم‌تره. یه پژوهش ۲۰۲۲ نشون داد یه مدل ۱۷۵ میلیاردی با ۳ بیت، چون حافظه‌ی کمتری باید خونده بشه، ۳٫۲۵ تا ۴٫۵ برابر سریع‌تر از ۱۶ بیت جواب داد.

یعنی چی

توکن در ثانیه یعنی هر ثانیه چند تکه از جواب نوشته می‌شه.

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

دو مرحله

یه پژوهش ۲۰۲۳ کار مدل رو موقع جواب دادن به دو مرحله تقسیم می‌کنه.

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

دو عدد سرعت

از همین دو مرحله، دو عدد درمیاد که هر کدوم یه حس متفاوت می‌ده.

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

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

چرا حافظه

مثلا فرض کنید یه سرآشپز خیلی سریع دارید، ولی مواد توی انباره و هر بار با یه چرخ‌دستی میارنش. سرعت غذا دیگه دست سرآشپز نیست؛ دست چرخ‌دستیه.

موقع نوشتن جواب، مدل برای ساختن هر توکن تقریبا از همه‌ی وزن‌هاش رد می‌شه، و این وزن‌ها باید از حافظه به پردازنده برسن. حساب‌هایی که با هر وزن انجام می‌شه کمه، ولی تعداد وزن‌ها زیاده. پژوهش‌های ۲۰۲۲ و ۲۰۲۳ هر دو همین رو می‌گن: این مرحله بیشتر به سرعت حافظه بسته‌ست تا به قدرت حساب. پردازنده‌ی سریع بیشتر وقتش رو منتظر وزن‌ها می‌مونه.

یه حساب تقریبی

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

یه مثال ساختگی: حافظه‌ای که هر ثانیه ۱۰۰ گیگابایت جابه‌جا می‌کنه. مدل ۷ میلیاردی ۱۶ بیتی، که توی درس چقدر حافظه لازمه دیدیم ۱۴ گیگابایته، حداکثر حدود ۷ توکن در ثانیه می‌ده. همون مدل ۴ بیتی، ۳٫۵ گیگابایت، حداکثر حدود ۲۸. این فقط سقفه؛ در عمل کمی کمتره. ولی نشون می‌ده چرا مدل کوچیک‌تر و کم‌حجم‌تر سریع‌تر جواب می‌ده.

یه نمونه‌ی واقعی

همون پژوهش ۲۰۲۲ که توی درس کوانتیزه کردن دیدیم، سرعت رو هم اندازه گرفت.

یه مدل ۱۷۵ میلیاردی با ۱۶ بیت، روی کارت‌های قوی، برای هر توکن ۲۳۰ میلی‌ثانیه طول می‌کشید، یعنی حدود ۴ توکن در ثانیه. با ۳ بیت شد ۷۱ میلی‌ثانیه، حدود ۱۴ توکن، یعنی ۳٫۲۵ برابر سریع‌تر، و به‌جای ۵ کارت فقط یکی لازم بود. روی کارت‌های ارزون‌تر که حافظه‌ی کندتری دارن، فرق بیشتر هم بود: از ۵۸۹ به ۱۳۰ میلی‌ثانیه، ۴٫۵ برابر. دقیقا همون‌جا که حافظه کندتره، کم کردن حجم بیشتر کمک می‌کنه. یه نکته هم داره: روش ۸ بیتی که توی همون درس دیدیم حافظه رو کم کرد ولی سرعت رو نه؛ پس سریع‌تر شدن به برنامه‌ی اجرا هم بستگی داره، نه فقط تعداد بیت.

چطور سریع‌تر

از همه‌ی این‌ها سه راه ساده درمیاد. اول، مدل کوچیک‌تر: وزن کمتر، رفت‌وآمد کمتر. دوم، کوانتیزه با برنامه‌ای که واقعا از حجم کمتر استفاده کنه: همون ۳٫۲۵ تا ۴٫۵ برابر. سوم، جای سریع‌تر: اگه مدل توی حافظه‌ی کارت گرافیک جا بشه، معمولا سریع‌تر از وقتیه که بخشیش روی پردازنده‌ست، همون اجرای ترکیبی که توی درس اجرای مدل روی کامپیوتر دیدیم. و یادتون باشه، جواب کوتاه‌تر هم یعنی زمان کمتر؛ چون هر توکن زمان خودش رو داره.

حدس با کوچیک، تایید با بزرگ

یادتونه که خوندن پرامپت سریعه چون موازیه، و نوشتن جواب کنده چون یکی‌یکیه؟ یه پژوهش ۲۰۲۲ از همین فرق یه حقه‌ی زیرکانه ساخت.

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

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

چند نفر با هم

تا اینجا درباره‌ی یه نفر حرف زدیم. یه سرور که به هزاران نفر جواب می‌ده، از همون گلوگاه حافظه استفاده‌ی دیگه‌ای می‌کنه.

وقتی وزن‌ها یه بار از حافظه خونده می‌شن، می‌شه باهاشون برای چند نفر با هم یه توکن ساخت؛ چون همون وزن‌هاست و فقط ورودی‌ها فرق دارن. به این می‌گن دسته‌ای کردن. یه پژوهش ۲۰۲۲ یه قدم جلوتر رفت: به‌جای اینکه صبر کنه همه‌ی جواب‌های یه دسته تموم بشه، بعد از هر توکن نگاه می‌کنه؛ هر کی تموم شد بیرون می‌ره و یه درخواست تازه جاش میاد. روی یه مدل ۱۷۵ میلیاردی، با همون تاخیر برای هر نفر، ۳۶٫۹ برابر درخواست بیشتر از سیستم مقایسه‌شون جواب داد.

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

چند نکته

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

درس بعد می‌پرسه کی یه مدل کوچیک کافیه، و کی نه: مدل‌های کوچک: کی کافی‌اند.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

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

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

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

فصل‌های این درس

درس بعد