You are currently viewing اجرای محلی LLM و VLM روی Raspberry Pi |  توسط Pye Sone Kyaw

اجرای محلی LLM و VLM روی Raspberry Pi | توسط Pye Sone Kyaw


دریافت مدل‌هایی مانند Phi-2، Mistral و LLaVA که به صورت محلی روی Raspberry Pi با Olama اجرا می‌شوند.

پای سونه کیاو
به سوی علم داده
LLM و VLM را با استفاده از Olama در Raspberry Pi استفاده کنید – منبع: نویسنده

آیا تا به حال به این فکر کرده اید که مدل های زبان بزرگ (LLM) یا مدل های زبان بصری (VLM) را بر روی دستگاه خود اجرا کنید؟ احتمالاً این کار را کرده‌اید، اما فکر راه‌اندازی کارها از ابتدا، مدیریت محیط، دانلود وزنه‌های صحیح مدل، و این شک دائمی که دکل شما حتی می‌تواند مدل را کنترل کند، احتمالاً باعث توقف شما شد.

بیایید یک قدم فراتر از آن برویم. تصور کنید LLM یا VLM خود را روی دستگاهی بزرگتر از کارت اعتباری – Raspberry Pi – اجرا کنید. غیر ممکن؟ اصلا. منظورم این است که به هر حال دارم این پست را می نویسم، پس قطعا امکان پذیر است.

ممکن است، بله. اما اصلاً چرا این کار را می کنید؟

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

این همچنین در مورد فشار دادن مرزها برای دیدن آنچه ممکن است. اگر بتوان آن را در این انتهای مقیاس محاسباتی انجام داد، آنگاه می توان آن را در هر سطحی بین Raspberry Pi و GPU سرور بزرگ و قدرتمند انجام داد.

به طور سنتی، هوش مصنوعی لبه ارتباط نزدیکی با بینایی کامپیوتر دارد. کاوش در استقرار LLM و VLM در لبه یک بعد هیجان انگیز به این زمینه در حال ظهور می بخشد.

مهمتر از همه، من فقط می خواستم با Raspberry Pi 5 که اخیراً خریداری کرده ام، یک کار سرگرم کننده انجام دهم.

بنابراین چگونه می توانیم به همه اینها در Raspberry Pi دست پیدا کنیم؟ با استفاده از اولاما!

اولاما چیست؟

Ollama به عنوان یکی از بهترین راه حل ها برای اجرای LLM های محلی بر روی رایانه شخصی شما بدون نیاز به دست و پنجه نرم کردن با مشکل تنظیم چیزها از ابتدا ظاهر شده است. تنها با چند دستور می توان همه چیز را بدون هیچ مشکلی تنظیم کرد. این همه مستقل است و به تجربه من روی چندین دستگاه و مدل عالی کار می کند. حتی یک REST API را برای خروجی مدل نمایش می دهد، بنابراین می توانید آن را روی Raspberry Pi اجرا کنید و در صورت تمایل آن را از سایر برنامه ها و دستگاه های خود فراخوانی کنید.

وب سایت اولاما

همچنین Ollama Web UI وجود دارد که یک قطعه زیبا از AI UI/UX است که به طور یکپارچه با Ollama برای کسانی که نگران رابط های خط فرمان هستند کار می کند. اگر بخواهید اساساً یک رابط ChatGPT محلی است.

با هم، این دو قطعه نرم افزار منبع باز چیزی را ارائه می دهند که من معتقدم بهترین تجربه LLM میزبانی محلی در حال حاضر وجود دارد.

هم Ollama و هم Ollama Web UI از VLM هایی مانند LLaVA پشتیبانی می کنند که حتی درهای بیشتری را برای این مورد استفاده از هوش مصنوعی مولد شدید باز می کند.

الزامات فنی

تنها چیزی که نیاز دارید موارد زیر است:

  • Raspberry Pi 5 (یا 4 برای تنظیم سریع تر) – نوع رم 8 گیگابایتی را متناسب با مدل های 7B انتخاب کنید.
  • کارت SD – حداقل 16 گیگابایت، هر چه اندازه بزرگتر باشد، مدل های بیشتری را می توانید جای دهید. اکنون آن را با یک سیستم عامل مناسب مانند Raspbian Bookworm یا اوبونتو بارگیری کنید
  • اتصال اینترنت

همانطور که قبلاً اشاره کردم، اجرای Olama بر روی Raspberry Pi اکنون نزدیک به انتهای طیف سخت افزاری است. اساساً، هر دستگاهی قدرتمندتر از Raspberry Pi، به شرط اینکه توزیع لینوکس را اجرا کند و ظرفیت حافظه مشابهی داشته باشد، از نظر تئوری باید بتواند Olama و مدل های مورد بحث در این پست را اجرا کند.

1. Olama را نصب کنید

برای نصب Olama در Raspberry Pi، از Docker برای صرفه جویی در منابع خودداری می کنیم.

در ترمینال، اجرا کنید

curl https://ollama.ai/install.sh | sh

پس از اجرای دستور بالا باید چیزی شبیه به تصویر زیر مشاهده کنید.

منبع: نویسنده

همانطور که خروجی می گوید، به 0.0.0.0:11434 بروید تا بررسی کنید که Ollama کار می کند یا خیر. دیدن «هشدار: GPU NVIDIA شناسایی نشده است» طبیعی است. Olama در حالت فقط CPU اجرا می شود.’ از آنجایی که ما از Raspberry Pi استفاده می کنیم. اما اگر این دستورالعمل ها را برای چیزی که قرار است پردازنده گرافیکی NVIDIA داشته باشد دنبال می کنید، مشکلی وجود دارد.

برای هر گونه مشکل یا به روز رسانی، مخزن Ollama GitHub را بررسی کنید.

2. LLM را از طریق خط فرمان راه اندازی کنید

کتابخانه رسمی الگوهای اوللاما را برای لیستی از الگوهایی که می توان با استفاده از Ollama اجرا کرد، بررسی کنید. مدل های 8 گیگابایتی Raspberry Pi بزرگتر از 7B مناسب نیستند. بیایید از Phi-2، یک LLM 2.7B از مایکروسافت، که اکنون مجوز MIT را دریافت کرده است، استفاده کنیم.

ما به طور پیش فرض از مدل Phi-2 استفاده خواهیم کرد، اما از هر یک از برچسب های دیگر موجود در اینجا استفاده کنید. صفحه مدل Phi-2 را بررسی کنید تا ببینید چگونه می توانید با آن تعامل کنید.

در ترمینال، اجرا کنید

ollama run phi

هنگامی که چیزی شبیه به خروجی زیر مشاهده کردید، اکنون یک LLM دارید که روی Raspberry Pi اجرا می شود! خیلی ساده است.

منبع: نویسنده
در اینجا یک تعامل با Phi-2 2.7B است. بدیهی است که شما به همان نتیجه نخواهید رسید، اما ایده را دریافت می کنید. | منبع: نویسنده

می‌توانید مدل‌های دیگری مانند Mistral، Llama-2 و غیره را امتحان کنید، فقط مطمئن شوید که فضای کافی برای وزن مدل روی کارت SD وجود دارد.

طبیعتاً هرچه مدل بزرگتر باشد، خروجی کندتر خواهد بود. در Phi-2 2.7B می توانم حدود 4 توکن در ثانیه دریافت کنم. اما با Mistral 7B، نرخ تولید به حدود 2 توکن در ثانیه کاهش می یابد. یک واژگان تقریباً معادل یک کلمه است.

در اینجا یک تعامل با Mistral 7B | منبع: نویسنده

ما اکنون LLM هایی داریم که روی Raspberry Pi اجرا می شوند، اما هنوز کارمان تمام نشده است. ترمینال برای همه نیست. اجازه دهید Ollama Web UI را نیز راه اندازی کنیم!

3. Ollama Web UI را نصب و راه اندازی کنید

ما دستورالعمل‌های موجود در مخزن Ollama Web UI GitHub را دنبال می‌کنیم تا آن را بدون Docker نصب کنیم. توصیه می کند که حداقل Node.js >= 20.10 باشد، بنابراین ما آن را دنبال می کنیم. همچنین پایتون را حداقل 3.11 توصیه می کند، اما سیستم عامل Raspbian قبلاً آن را برای ما نصب کرده است.

ابتدا باید Node.js را نصب کنیم. در ترمینال، اجرا کنید

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\
sudo apt-get install -y nodejs

20.x را در صورت لزوم برای خوانندگان بعدی به نسخه مناسب تری تغییر دهید.

سپس بلوک کد زیر را اجرا کنید.

git clone https://github.com/ollama-webui/ollama-webui.git
cd ollama-webui/

# Copying required .env file
cp -RPp example.env .env

# Building Frontend Using Node
npm i
npm run build

# Serving Frontend with the Backend
cd ./backend
pip install -r requirements.txt --break-system-packages
sh start.sh

این یک تغییر جزئی از آنچه در GitHub در دسترس است است. توجه داشته باشید که برای سادگی و اختصار، از بهترین روش‌ها مانند استفاده از محیط‌های مجازی و استفاده از پرچم بسته‌های سیستم شکسته پیروی نمی‌کنیم. اگر با خطایی مانند uvicorn not found مواجه شدید، جلسه ترمینال خود را مجددا راه اندازی کنید.

اگر همه چیز خوب پیش رفت، باید بتوانید از طریق http://0.0.0.0:8080 در Raspberry Pi یا از طریق http:// به رابط کاربری Ollama Web در پورت 8080 دسترسی داشته باشید.<локалния адрес на Raspberry Pi>:8080/ اگر از طریق دستگاه دیگری در همان شبکه دسترسی دارید.

اگر این را می بینید، بله، کار کرده است | منبع: نویسنده

پس از ایجاد حساب کاربری و ورود به سیستم، باید چیزی شبیه به تصویر زیر مشاهده کنید.

منبع: نویسنده

اگر چند وزن مدل را قبلا دانلود کرده اید، باید آنها را در منوی کشویی مانند زیر ببینید. اگر نه، می توانید برای دانلود یک الگو به تنظیمات بروید.

مدل های موجود در اینجا ظاهر می شوند | منبع: نویسنده
اگر می‌خواهید الگوهای جدید را دانلود کنید، برای دانلود الگوهای | به تنظیمات > الگوها بروید منبع: نویسنده

کل رابط کاربری بسیار تمیز و شهودی است، بنابراین من توضیح زیادی در مورد آن نمی دهم. این واقعاً یک پروژه منبع باز بسیار خوب انجام شده است.

در اینجا یک تعامل با Mistral 7B از طریق Ollama Web UI | منبع: نویسنده

4. VLM را از طریق Ollama Web UI راه اندازی کنید

همانطور که در ابتدای این مقاله اشاره کردم، می توانیم VLM را نیز اجرا کنیم. بیایید LLaVA را راه اندازی کنیم، یک VLM منبع باز محبوب که توسط Olama نیز پشتیبانی می شود. برای انجام این کار، وزن ها را با کشیدن «لاوا» از طریق رابط دانلود کنید.

متأسفانه، بر خلاف LLM ها، زمان زیادی طول می کشد تا تنظیمات تصویر Raspberry Pi را تفسیر کنند. پردازش مثال زیر حدود 6 دقیقه طول کشید. بیشتر اوقات احتمالاً به این دلیل است که جنبه تصویری چیزها هنوز به درستی بهینه نشده است، اما قطعاً در آینده تغییر خواهد کرد. نرخ تولید توکن حدود 2 توکن در ثانیه است.

درخواست منبع تصویر: Pexels

برای پایان دادن به همه چیز

در این مرحله، ما تقریباً با اهداف این مقاله به پایان رسیده ایم. به طور خلاصه، ما توانستیم از Ollama و Ollama Web UI برای اجرای LLM و VLM مانند Phi-2، Mistral و LLaVA در Raspberry Pi استفاده کنیم.

من قطعاً می‌توانم تعداد کمی از موارد استفاده را برای LLM‌های میزبان محلی تصور کنم که روی Raspberry Pi (یا سایر دستگاه‌های کوچک دیگر اجرا می‌شوند)، به خصوص از آنجایی که اگر مدل‌هایی با اندازه می‌خواهیم، ​​4 توکن در ثانیه به نظر می‌رسد نرخ قابل قبولی با پخش جریانی برای برخی موارد استفاده است. از Phi-2.

حوزه LLMها و VLMهای “کوچک” که با توجه به نامگذاری “بزرگ” آنها تا حدی متناقض نامگذاری شده است، یک حوزه تحقیقاتی فعال است که اخیراً مدلهای کمی منتشر شده است. امیدواریم این روند در حال ظهور ادامه داشته باشد و مدل های کارآمدتر و جمع و جورتر به بازار بیایند! قطعا چیزی که در ماه های آینده باید به آن توجه داشت.

ابطال: من به Olama یا Olama Web UI وابسته نیستم. همه دیدگاه ها و نظرات متعلق به من است و نماینده هیچ سازمانی نیست.



Source link