کد آموزش LLM برای مدل های MosaicML
مخزن کد شامل مجموعه ای جامع از ابزارها برای آموزش LLM، تنظیم دقیق، ارزیابی و استقرار با استفاده از Composer و پلت فرم MosaicML است. پایگاه کد به گونهای طراحی شده است که کاربر پسند، کارآمد و سازگار باشد و امکان آزمایش آسان با تکنیکهای پیشرفته را فراهم کند.
در این مقاله قصد داریم کد آموزش LLM برای مدل های MosaicML را یاد بگیریم. مقاله را بخوانید و کدگذاری آموزش LLM را نصب کنید.
MPT
MosaicML سازمانی است که بر تولید ابزارهای یادگیری ماشینی سریع و مقیاسپذیر متمرکز است و مدل زبانی «Mosaic Propagation Transformer» (MPT) را ایجاد کرده است. مدلهای MPT مشابه مدلهای GPT OpenAI هستند، اما با برخی تفاوتهای عمده معماری و آموزشی.
MPT-7B، مدلی در سری بنیاد MosaicML، یک مدل زبان به سبک GPT است که بر روی 1 تریلیون توکن از یک مجموعه داده تنظیم شده توسط MosaicML آموزش داده شده است. این منبع باز و از نظر تجاری قابل دوام است، با معیارهای ارزیابی قابل مقایسه با LLaMa 7B.
طراحی MPT از جدیدترین رویکردهای مدلسازی LLM استفاده میکند، مانند Flash Attention برای افزایش کارایی، Alibi برای برونیابی طول زمینه، و بهبودهای پایداری برای کاهش افزایش تلفات.
انواع مختلفی از مدل MPT وجود دارد، از جمله یک مدل تنظیم شده با طول زمینه 64K، که برای استفاده در دسترس هستند.
مدل | طول متن | استفاده تجاری | |
MPT-7B | 2048 | بله | |
MPT-7B-Instruct | 2048 | بله | |
MPT-7B-Chat | 2048 | خیر | |
MPT-7B-StoryWriter | بله |
MPT-7B یک مدل زبان همه منظوره است که بر روی یک مجموعه متن بزرگ آموزش داده شده است. در نظر گرفته شده است که محتوای با کیفیت بالا در چندین سناریو از جمله تکمیل متن، خلاصهسازی و ترجمه تولید کند.
MPT-7B-Instruct یک نسخه MPT-7B است که به طور خاص برای تولید مطالب آموزشی بهینه شده است. میتواند دستورالعملهای گام به گام را برای انواع کارها، از جمله دستور العملهای غذا، پروژههای DIY، و راهنماهای فنی ایجاد کند.
MPT-7B-Chat شکل مکالمه ای از مدل MPT-7B است که پاسخ های واقع بینانه و جذابی را به ورودی کاربر ارائه می دهد. این دارای طیف گسترده ای از برنامه ها، از جمله ربات های گفتگو، دستیاران مجازی، و کمک به مشتری است.
MPT-7B-StoryWriter یک نسخه مدل MPT-7B است که برای تولید نوشته های خلاقانه مانند داستان های کوتاه بهینه شده است. شعرها و متن ها می توان از آن به عنوان ابزاری برای الهام گرفتن و تولید ایده توسط نویسندگان و دیگر خلاقان استفاده کرد.
پیش نیازها
این چیزی است که برای شروع کار با پشته LLM ما نیاز دارید:
- از یک تصویر Docker با PyTorch 1.13+ استفاده کنید، به عنوان مثال. تصویر پایه PyTorch در MosaicML
- برچسب توصیه شده:
mosaicml/pytorch:1.13.1_cu117-python3.10-ubuntu20.04
- این تصویر با وابستگی های زیر از قبل پیکربندی شده است:
- نسخه PyTorch: 1.13.1
- نسخه CUDA: 11.7
- نسخه پایتون: 3.10
- نسخه اوبونتو: 20.04
- هستههای FlashAttention از HazyResearch
- برچسب توصیه شده:
- از سیستمی با پردازندههای گرافیکی NVIDIA استفاده کنید
نصب
1. ترمینال یا خط فرمان خود را باز کنید و به دایرکتوری که میخواهید مخزن را شبیهسازی کنید، بروید.
2. دستور زیر را برای کلون کردن مخزن اجرا کنید:
کلون git https://github.com/mosaicml/llm-foundry.git
3. دایرکتوری کاری فعلی خود را به مخزن کلون شده تغییر دهید:
cd llm-foundry
4. (اختیاری) ایجاد و استفاده از یک محیط مجازی برای مدیریت وابستگی ها بسیار توصیه می شود. برای ایجاد و فعال کردن یک محیط مجازی جدید دستور زیر را اجرا کنید:
python -m venv llmfoundry-venv
منبع llmfoundry-venv/bin/activate
5. بسته های مورد نیاز را با اجرای:
نصب کنید
pip install -e ".[gpu]"
اگر پردازنده گرافیکی NVIDIA ندارید، میتوانید در عوض این موارد را اجرا کنید:
pip install -e .
شروع اجرای LLM
در اینجا نحوه تهیه بخشی از مجموعه داده C4، آموزش یک مدل MPT-125M برای 10 دسته، تبدیل مدل به فرمت HuggingFace، ارزیابی مدل در چالش Winograd و ایجاد پاسخ به درخواست ها آمده است.
اگر یک نشانه تأیید هویت HuggingFace دارید که قابلیت نوشتن را دارد، میتوانید مدل خود را در هاب آپلود کنید! به سادگی توکن خود را به صورت زیر صادر کنید: و نظر را از خط حاوی –hf_repo_for_upload… حذف کنید.
صادر کردن HUGGING_FACE_HUB_TOKEN=your-auth-token
یادآوری این نکته مهم است که کد زیر شروع سریعی برای نمایش ابزارها است. برای به دست آوردن نتایج با کیفیت بالا، LLM باید برای بیش از ده دسته آموزش داده شود.
دایرکتوری را به اسکریپت تغییر دهید:
اسکریپت های سی دی
با اجرای دستور زیر مجموعه داده C4 را به قالب StreamingDataset تبدیل کنید:
python data_prep/convert_dataset_hf.py
--dataset c4 --data_subset en
--out_root my-copy-c4 -- splits train_small val_small
--concat_tokens 2048 --tokenizer EleutherAI/gpt-neox-20b --eos_text ''
با اجرای دستور زیر یک مدل MPT-125m را برای 10 دسته آموزش دهید:
composer train/train.py
train/yamls/mpt/125m.yaml
data_local=my-copy-c4
train_loader.dataset.split=train_small
eval_loader.dataset.split=val_small
max_duration=10ba
eval_interval=0
save_folder=mpt-125m
با اجرای دستور زیر مدل را به فرمت HuggingFace تبدیل کنید:
استنتاج پایتون/convert_composer_to_hf.py
--composer_path mpt-125m/ep0-ba10-rank0.pt
--hf_output_path mpt-125m-hf
--output_precision bf16
# --hf_repo_for_upload user-org/repo-name
مدل را در Winograd با اجرای دستور زیر ارزیابی کنید:
python eval/eval.py
eval/yamls/hf_eval.yaml
icl_tasks=eval/yamls/winograd.yaml
model_name_or_path=mpt-125m-hf
با اجرای دستور زیر به درخواستها پاسخ ایجاد کنید:
python inference/hf_generate.py
--name_or_path mpt-125m-hf
--max_new_tokens 256
--اعراض
"پاسخ به زندگی، جهان و شادی است"
"در اینجا یک دستور العمل سریع برای پخت کوکی های شکلاتی چیپسی آمده است: شروع کنید"
همچنین نحوه نصب MLC LLM.
این مقاله به شما کمک می کند تا کد آموزش LLM را برای مدل های پایه MosaicML یاد بگیرید. ما اطمینان داریم که برای شما مفید بوده است. لطفاً نظرات و انتقادات خود را در بخش نظرات زیر به اشتراک بگذارید.