dium
dium
خواندن ۲ دقیقه·۲ سال پیش

نحوه استفاده از مدل LLaMA روی لینوکس

چندی پیش متا (فیس‌بوک پیشین) در یکی از نوشته‌هایش، یک معرفی از مدل پردازش زبان طبیعی خود با ۶۵ میلیارد پارامتر داشت.

دریافت:

شما از طریق این فرم گوگل قادر به درخواست برای دریافت tokenizers و checkpoints هستید. بگذریم، مدتی قبل هم از طریق یک pull request امکان دریافت این فایل از طریق تورنت به وجود آمد.

روش دیگر برای دریافت این فایل (نسخه‌های ۷، ۱۳، ۳۰ و ۶۵ میلیارد پارامتری) استفاده از مخزن زیر در گیت‌هاب هست که «فیس‌بوک» درخواست غیرفعال کردنش را داده. llama-dl

حجم فایل‌های دریافتی:

  • ۷میلیارد پارامتر ۱۳ گیگابایت
  • ۱۳ میلیارد پارامتر ۲۶ گیگابایت
  • ۳۰ میلیارد پارامتر ۶۵ گیگابایت
  • ۶۵ میلیارد پارامتر ۱۳۰.۵ گیگابایت

تبدیل فایل‌های pth به ggml:

ابتدا فایل زیر را برای تبدیل دریافت کنید:

https://github.com/ggerganov/llama.cpp/blob/master/convert-pth-to-ggml.py

سپس بسته‌هایی که در فایل بالا ذکر شده را در یک محیط مجازی (مثل virtualenv) نصب کنید.

virtualenv venv source venv/bin/activate pip install numpy torch pip install sentencepiece

در بالا نصب بستهٔ sentencepiece رو در یک دستور جداگونه امتحان می‌کنیم تا اگر به مشکلی خوردیم راحت بشه رفع کرد اون مشکل رو.


*اگر از نسخه‌های جدید پایتون (۳.۱۰ به بعد) در حال حاضر استفاده می‌کنید این قسمت مختص شماست:

یک ناسازگاری بین sentencepiece با نسخه‌های جدید پایتون وجود داره، اگر در نصب این بسته به مشکل خوردید بهتره که از طریق این لینک روی یکی از اجراهای موفق که با علامت سبز مشخص شده کلیک کنید یا مستقیم روی این لینک کلیک کنید (باید از قبل وارد گیت‌هاب شده باشید) و بعد artifact مورد نیاز رو دریافت و در آخر نسخه پایتون مورد نظر رو در فایل فشره شده جست‌وجو و فایل رو از حالت فشرده خارج کنید. و در آخر نصب wheel مورد نیاز از طریق pip برای مثال روی لینوکس و پایتون ۳.۱۱:

pip install ./sentencepiece-0.1.97-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

خب حالا که sentencepiece نصب شد بستهٔ دیگری برای نصب باقی نمی‌مونه و نوبت به اجرای مبدل می‌رسه (دریافت convert-pth-to-ggml.py رو بالا گفتیم):

*دقت کنید که virtualenv یا محیط‌مجازی پایتون شما با بسته‌های نصب شده فعال باشد.

*با توجه به مسیر پارامترهای دریافت شده llama دستور زیر رو ویرایش کنید.

python convert-pth-to-ggml.py ./7B 1


اجرا:

برای اجرای prompt‌های خودتون هر کدوم از مخازن زیر رو مایل بودید دریافت کنید (اینجا نسخهٔ راست توضیح داده میشه):

https://github.com/ggerganov/llama.cpp

یا

https://github.com/rustformers/llama-rs


و اما clone کردن نسخهٔ Rust:

git clone https://github.com/rustformers/llama-rs

*برای خروجی گرفتن نیاز هست rust روی دستگاه شما نصب باشه:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

مرحله بعد رفتن به پوشهٔ مخزن دریافت شده و خروجی گرفتن و اجرا:

cd llama-rs cargo build --release cd target/release ./llama-cli -m ../7B/ggml-model-f16.bin -p &quotWhy I love Iran?&quot


*توضیحات جانبی:

حتما llama-cli (که با rust نوشته شده) رو با راهنمایی خودش بررسی کنید، از طریق:

./llama-cli --help

در مطلب بالا ابهامی وجود داشت؟ پیوند زیر می‌تونه کمک کننده باشه:

https://til.simonwillison.net/llms/llama-7b-m2

چیز دیگه‌ای هست که بتونه کمکتون کنه؟ احتمال داره این پیوند:

https://www.tomshardware.com/how-to/create-ai-chatbot-server-on-raspberry-pi

اگر احساس می‌کنید این مطلب مفید بود باعث افتخار هست صلواتی به روح شهدا هدیه کنید.

پردازش زبانpth ggmlllamaopenaiهوش مصنوعی
ممنون می‌شوم اگر اشتباه‌های من را گوشزد کرده و به من بیاموزید. باتشکر
شاید از این پست‌ها خوشتان بیاید