اجرای مدل زبانی روی کامپیوتر (لوکال، آفلاین)
جواب کوتاه
برای اجرای یه مدل زبانی روی کامپیوتر خودتون سه چیز لازمه: فایل وزنهای یه مدل وزنباز، یه برنامهی اجراکننده که با این عددها جواب بسازه، و کامپیوتری با حافظهی کافی. راه ساده چهار قدمه: مدلی انتخاب کنید که توی حافظهتون جا بشه، فایلش رو یه بار از جای مطمئن دانلود کنید، برنامهی اجراکننده رو نصب کنید، و فایل رو توش باز کنید و بپرسید. از اون به بعد اینترنت لازم نیست. این برنامهها روی پردازندههای معمولی و کارتهای گرافیک اجرا میشن، و اگه مدل از حافظهی کارت گرافیک بزرگتر باشه، بخشیش رو روی کارت و بقیه رو روی پردازنده میبرن.
یعنی چی
مدل روی کامپیوتر خودتونه؛ یه بار دانلود، بعد بی اینترنت.
وقتی با یه دستیار آنلاین حرف میزنید، سوالتون از اینترنت به سرورهای سازنده میره و جواب برمیگرده. مثل اینه که هر بار برای خوندن یه کتاب برید کتابخونه. اجرای لوکال یعنی کتاب رو بخرید و بذارید روی قفسهی خونه: یه بار میخریدش، بعد هر وقت خواستید، حتی وقتی اینترنت قطعه، میخونیدش. توی درس مدل وزنباز و متنباز دیدیم که فقط مدلهای وزنباز این امکان رو دارن.
سه چیز لازم
اولی فایل وزنهاست، یعنی همون میلیاردها عددی که مدل یاد گرفته، توی یه یا چند فایل بزرگ. دومی برنامهی اجراکنندهست، برنامهای که این عددها رو میخونه و با همون حلقهی ساختن متن تکهبهتکه جواب میسازه. سومی هم کامپیوتر شماست، با حافظهای که فایل وزنها توش جا بشه. وقتی هر سه سر جاشون باشن، اینترنت رو قطع کنید؛ باز کار میکنه، چون هیچ تیکهای بیرون از کامپیوترتون نیست.
چهار قدم
- یه مدل انتخاب کنید که توی حافظهتون جا بشه. درس بعد، چقدر حافظه لازمه، حسابش رو یاد میده.
- فایل وزنها رو یه بار دانلود کنید. از جای مطمئن؛ معمولا نسخهی کوانتیزهشدهش، که کمحجمتره. فقط همین قدم اینترنت میخواد.
- برنامهی اجراکننده رو نصب کنید. چند تا برنامهی متنباز و رایگان برای این کار هست.
- فایل رو توی برنامه باز کنید و بپرسید. از اینجا به بعد اینترنت لازم نیست.
همین. بقیهی این درس جزئیاته: سختافزار چه نقشی داره، برنامههای دیگه چطور وصل میشن، و دو نکتهی ایمنی.
یه فایل برای همهچی
توی درس قبل دیدیم یه مدل دانلودی معمولا یه پوشهست با چند فایل. برای اجرای لوکال، یه قالب دیگه رایجتره: همهچی توی یه فایل.
راهنمای یکی از این قالبها، به اسم GGUF، میگه هدفش اینه که «همهی اطلاعاتی که برای بار کردن مدل لازمه، توی خود فایل باشه». یعنی کنار وزنها، شکل شبکه، واژهنامهی توکنها، و حتی قالب گفتگو، یعنی اینکه مدل انتظار داره پیامها با چه نشونههایی جدا بشن. این آخری خیلی مهمه: راهنمای یه کتابخونهی معروف مدلها میگه حتی دو مدل که از یه مدل پایه ساخته شدن ممکنه قالب گفتگوی متفاوتی داشته باشن، و با نشونههای اشتباه «خیلی بدتر» کار میکنن. اگه یه مدل لوکال جوابهای عجیب میده یا بهجای جواب، پیام شما رو ادامه میده، اول قالب گفتگوش رو چک کنید.
پردازنده یا کارت گرافیک
راهنمای یکی از برنامههای متنباز معروف این کار میگه هدفش اجرای مدل با کمترین دردسر روی سختافزارهای خیلی مختلفه: پردازندههای چند خانوادهی مختلف و کارتهای گرافیک چند سازنده. توی درس چرا GPU برای یادگیری عمیق دیدیم چرا کارت گرافیک سریعتره. ولی اگه مدل توی حافظهی کارت جا نشه چی؟
همون راهنما میگه میشه اجرای ترکیبی داشت: بخشی از مدل روی کارت گرافیک، بقیه روی پردازنده. اینطوری مدلی که از حافظهی کارت بزرگتره هم اجرا میشه، فقط بخشی که روی پردازندهست کندتر پیش میره. و اگه کارت گرافیک ندارید، کل مدل روی پردازنده اجرا میشه؛ کندتر، ولی کار میکنه.
صفحهی گفتگو و برنامهها
این برنامهها معمولا فقط یه پنجرهی ساده نیستن. همون برنامهی متنباز یه حالت سرور هم داره: یه صفحهی گفتگو که توی مرورگر باز میشه، و یه رابط که شکلش مثل رابط سرویسهای آنلاین معروفه. فایدهش اینه که برنامهای که برای وصل شدن به یه سرویس آنلاین نوشته شده، با عوض کردن یه نشونی، به مدل روی کامپیوتر خودتون وصل میشه. مثلا برنامهای که با ابزار کار میکنه، حالا بی اینترنت.
پیچهای تنظیم
چتباتهای آنلاین بیشتر تنظیمها رو از شما پنهون میکنن. برنامهی لوکال معمولا همه رو جلوی چشمتون میذاره.
چند تا رو توی همین مسیر دیدیم. دما میگه جواب چقدر تصادفی باشه، و توی راهنمای یه اجراکنندهی متنباز معروف پیشفرضش ۰٫۸ هست. سقف احتمال میگه فقط از بین گزینههای برتری انتخاب کنه که جمع احتمالشون به یه حد برسه؛ اونجا پیشفرض ۰٫۹۵. طول زمینه میگه گفتگو تا چند توکن یادش بمونه؛ بیشترش حافظهی بیشتری میخواد. و یه پیچ مخصوص لوکال: چند لایه از مدل روی کارت گرافیک بره، که همون اجرای ترکیبی بالاست.
اگه نمیدونید چی کار کنید، به پیشفرضها دست نزنید. فقط اگه مدل کند بود یا حافظه کم آورد، طول زمینه رو کم کنید؛ و اگه جوابها پرتوپلا بود، دما رو پایین بیارید.
ایمنی
دو تا عادت ساده، که جلوی دو تا دردسر رو میگیره.
اول، فایل رو از جای مطمئن بگیرید. یه فایل وزن فقط عدد نیست؛ بعضی قالبهای قدیمیتر با روشی از زبان پایتون ذخیره شدن که خود مستندات پایتون دربارهش هشدار میده: میشه فایلی ساخت که موقع باز شدن کد دلخواه اجرا کنه، پس هیچوقت فایلی از منبع نامطمئن رو اینطوری باز نکنید. قالبهای تازهتر، مثل safetensors و همون قالب یهفایلی که بالاتر دیدیم، فقط عدد و اطلاعات نگه میدارن، نه کد؛ پس هر جا شد اونا رو بگیرید.
دوم، فقط برای همین کامپیوتر. حالت سرور اون برنامه، بهطور پیشفرض فقط به درخواستهای خود همون کامپیوتر جواب میده و بقیهی دستگاههای شبکه بهش راه ندارن. اگه بازش کنید، هر کسی توی شبکه میتونه ازش استفاده کنه؛ پس بی فکر بازش نکنید. همینها باعث میشه اجرای لوکال برای حریم خصوصی اینقدر خوب باشه.
چند نکته
- کوچیک شروع کنید. یه مدل کوچیک و کوانتیزه، تا ببینید روی دستگاهتون چطوره.
- دانلود رو با اینترنت خوب انجام بدید. فایلها بزرگن؛ بعدش اینترنت لازم نیست.
- فایل فقط از جای مطمئن.
- سرور رو بی فکر روی شبکه باز نکنید.
درس بعد حساب سادهای یاد میده که بفهمید یه مدل توی کامپیوترتون جا میشه یا نه: چقدر حافظه لازمه.
جمعبندی. آنچه از این درس با خودتان میبرید.
- فایل وزنها، برنامهی اجراکننده، حافظه.
- یه بار دانلود، بعد بی اینترنت.
- مدلی که توی حافظه جا بشه.
- بزرگتر از کارت؟ نصفش روی پردازنده.
- فایل از جای مطمئن.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.