انجمن‌های فارسی اوبونتو

جامعه کاربران => پروژه‌ها => نویسنده: محمدرضا حقیری در 12 دی 1402، 12:48 ب‌ظ

عنوان: نسخه آلفای مارال ۷ میلیارد پارامتری منتشر شد
ارسال شده توسط: محمدرضا حقیری در 12 دی 1402، 12:48 ب‌ظ
(http://haghiri75.com/wp-content/uploads/maral-lowpoly.png)

مارال ۷ میلیارد پارامتری

در ماه‌های گذشته، شخصا تلاش‌های زیادی کردم تا بتونم زبان فارسی را به یکی از مدل‌های زبانی بزرگ اضافه کنم. مدلی که بتونه فارسی‌ای تولید کنه که از لحاظ ساختار زبانی فارسی، درست باشند. اما خب بسیاری از مدل‌ها، قادر به درک درست از زبان فارسی نبودند و این پروژه به شکل عجیبی گیر کرده بود. تا این که شرکت فرانسوی Mistral AI مدل Mistral خودشون رو ارائه کرد.
مدل میسترال هم مثل بسیاری از مدل‌های دیگر، فارسی رو درست و حسابی نمی‌فهمید اما خب درک خوبی از «الفبای فارسی» داشت. به همین خاطر تصمیم به فاین‌تیون کردن این مدل گرفتم و یک مدل PEFT ازش تولید شد. این کافی نبود ولی، مدل peft نمی‌تونست به درستی از دانشی که میسترال داره استفاده کنه.
به همین خاطر، در این مرحله یک تیم دونفره شدیم و روی این مدل کار کردیم و بهبودش دادیم. با کمک چندین تن از دوستانمون زیرساخت گرافیکی لازم رو تهیه کردیم و حالا مارال ۷ میلیارد پارامتری اینجاست!

لینک‌های مربوطه


پروانه انتشار

این مدل با پروانه MIT منتشر شده که به شما امکان استفاده تجاری ازش رو میده. همچنین می‌تونید بدون مشکل از این مدل در پروژه‌های آزاد و ناآزاد استفاده کنید :)

روش اجرا (برای GPUهای محدود)

خب طبق معمول، این مدل نیازمند GPUئه برای اجرا و از اونجا که حجم مدل ۱۵ گیگه، حداقل GPU مورد نیاز یک T4 ئه (که روی کگل و کولب می‌تونید به صورت محدود رایگان داشته باشیدش). برای دستگاه خانگی از یک ۳۰۹۰ استفاده کردم و نتیجه بد نبود. اما کدی که در ادامه قرار می‌دم، برای اجرای بدون مشکل روی T4, 2090, 3060 و ... است.

خب، اول این کتابخونه‌ها رو نصب می‌کنیم:

pip install transformers accelerate bitsandbytes
و سپس این کد رو باید اجرا کنید:

from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
import torch

model_name_or_id = "MaralGPT/Maral-7B-alpha-1"

model = AutoModelForCausalLM.from_pretrained(model_name_or_id, torch_dtype=torch.bfloat16, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained(model_name_or_id)

prompt = "در سال ۱۹۹۶ چه کسی رییس جمهور آمریکا بود؟"
prompt = f"### Human:{prompt}\n### Assistant:"

inputs = tokenizer(prompt, return_tensors="pt").to("cuda")

generation_config = GenerationConfig(
    do_sample=True,
    top_k=1,
    temperature=0.5,
    max_new_tokens=300,
    pad_token_id=tokenizer.eos_token_id
)

outputs = model.generate(**inputs, generation_config=generation_config)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))


مشکلات حال حاضر

عنوان: پاسخ : نسخه آلفای مارال ۷ میلیارد پارامتری منتشر شد
ارسال شده توسط: S Y N C R E X در 12 دی 1402، 02:19 ب‌ظ
لطفا زیر دیپلم توضیح بدید چی هست و چیکار میکنه
عنوان: پاسخ : نسخه آلفای مارال ۷ میلیارد پارامتری منتشر شد
ارسال شده توسط: محمدرضا حقیری در 12 دی 1402، 05:42 ب‌ظ
لطفا زیر دیپلم توضیح بدید چی هست و چیکار میکنه

چت‌جی‌پی‌تی رو میشناسی؟ مارالشونه!
عنوان: پاسخ : نسخه آلفای مارال ۷ میلیارد پارامتری منتشر شد
ارسال شده توسط: S Y N C R E X در 13 دی 1402، 10:29 ق‌ظ
نقل‌قول
چت‌جی‌پی‌تی رو میشناسی؟ مارالشونه!
ها اینجوری خوبه     : )
بعد این سورسیه که میتونیم کامپایل کنیم رو سیستم خودمون اجرا کنیم ؟
عنوان: پاسخ : نسخه آلفای مارال ۷ میلیارد پارامتری منتشر شد
ارسال شده توسط: محمدرضا حقیری در 21 دی 1402، 07:52 ب‌ظ
نقل‌قول
چت‌جی‌پی‌تی رو میشناسی؟ مارالشونه!
ها اینجوری خوبه     : )
بعد این سورسیه که میتونیم کامپایل کنیم رو سیستم خودمون اجرا کنیم ؟

هم روی سیستم خودتون می‌تونید اجرا کنید (اگر حداقل یه ۳۰۹۰ خسته دارید)
هم روی Google Colab و سرویس‌های مشابه.