أكثر من 20 ماجستيرًا في القانون عالي الأداء مع وصفات للتدريب المسبق والضبط والنشر على نطاق واسع.
✅ تطبيقات من الصفر ✅ لا تجريدات ✅ صديقة للمبتدئين ✅ انتباه الفلاش. ✅ FSDP. ✅ LoRA، QLoRA، محول ✅ تقليل ذاكرة GPU (fp4/8/16/32) ✅ 1-1000+ GPU/TPUs ✅ 20+ LLMs
البداية السريعة • النماذج • Finetune • النشر • جميع مسارات العمل • الميزات • الوصفات (YAML) • Lightning AI • البرامج التعليمية
يتم تنفيذ كل LLM من الصفر بدون أي تجريدات وتحكم كامل ، مما يجعلها سريعة للغاية، وبسيطة، وذات أداء على نطاق المؤسسة.
✅ جاهز للمؤسسات - Apache 2.0 للاستخدام غير المحدود للمؤسسات.
✅ سهل الاستخدام للمطورين - تصحيح سهل بدون طبقات تجريدية وتنفيذ ملف واحد.
✅ الأداء الأمثل - نماذج مصممة لتحقيق أقصى قدر من الأداء وتقليل التكاليف وتسريع التدريب.
✅ وصفات مجربة - وصفات تدريب/ضبط عالية الجودة تم اختبارها على مستوى المؤسسة.
قم بتثبيت LitGPT
pip install 'litgpt[all]'
قم بتحميل واستخدام أي من أكثر من 20 ماجستير في القانون:
from litgpt import LLM
llm = LLM . load ( "microsoft/phi-2" )
text = llm . generate ( "Fix the spelling: Every fall, the familly goes to the mountains." )
print ( text )
# Corrected Sentence: Every fall, the family goes to the mountains.
✅ الأمثل للاستدلال السريع
✅ التكميم
✅ يعمل على وحدات معالجة الرسوميات ذات الذاكرة المنخفضة
✅ لا يوجد طبقات من التجريدات الداخلية
✅ الأمثل لحجم الإنتاج
التثبيت من المصدر:
git clone https://github.com/Lightning-AI/litgpt
cd litgpt
pip install -e ' .[all] '
استكشف مستندات Python API الكاملة.
تتم كتابة كل نموذج من الصفر لتحقيق أقصى قدر من الأداء وإزالة طبقات التجريد:
نموذج | حجم النموذج | مؤلف | مرجع |
---|---|---|---|
اللاما 3، 3.1، 3.2 | 1ب، 3ب، 8ب، 70ب، 405ب | ميتا الذكاء الاصطناعي | ميتا آي آي 2024 |
كود لاما | 7ب، 13ب، 34ب، 70ب | ميتا الذكاء الاصطناعي | روزيير وآخرون. 2023 |
ميكسترال مو | 8x7 ب | ميسترال منظمة العفو الدولية | ميسترال آي آي 2023 |
ميسترال | 7ب، 123ب | ميسترال منظمة العفو الدولية | ميسترال آي آي 2023 |
كودجيما | 7 ب | جوجل | فريق جوجل، جوجل ديب مايند |
جيما 2 | 2ب، 9ب، 27ب | جوجل | فريق جوجل، جوجل ديب مايند |
فاي 3 و 3.5 | 3.8 ب | مايكروسوفت | عابدين وآخرون. 2024 |
... | ... | ... | ... |
نموذج | حجم النموذج | مؤلف | مرجع |
---|---|---|---|
كودجيما | 7 ب | جوجل | فريق جوجل، جوجل ديب مايند |
كود لاما | 7ب، 13ب، 34ب، 70ب | ميتا الذكاء الاصطناعي | روزيير وآخرون. 2023 |
فالكون | 7ب، 40ب، 180ب | الإمارات العربية المتحدة | تي آي آي 2023 |
FreeWilly2 (بيلوجا المستقرة 2) | 70 ب | الاستقرار منظمة العفو الدولية | الاستقرار الذكاء الاصطناعي 2023 |
وظيفة استدعاء اللاما 2 | 7 ب | تعريشة | تريليس وآخرون. 2023 |
جيما | 2ب، 7ب | جوجل | فريق جوجل، جوجل ديب مايند |
جيما 2 | 9 ب، 27 ب | جوجل | فريق جوجل، جوجل ديب مايند |
اللاما 2 | 7ب، 13ب، 70ب | ميتا الذكاء الاصطناعي | توفرون وآخرون. 2023 |
اللاما 3.1 | 8 ب، 70 ب | ميتا الذكاء الاصطناعي | ميتا آي آي 2024 |
اللاما 3.2 | 1 ب، 3 ب | ميتا الذكاء الاصطناعي | ميتا آي آي 2024 |
ماثسترال | 7 ب | ميسترال منظمة العفو الدولية | ميسترال آي آي 2024 |
ميكرولاما | 300 م | كين وانغ | ميكرولاما الريبو |
ميكسترال مو | 8x7 ب | ميسترال منظمة العفو الدولية | ميسترال آي آي 2023 |
ميسترال | 7ب، 123ب | ميسترال منظمة العفو الدولية | ميسترال آي آي 2023 |
أولمو | 1 ب، 7 ب | معهد ألين للذكاء الاصطناعي (AI2) | جرونيفيلد وآخرون. 2024 |
OpenLLaMA | 3ب، 7ب، 13ب | أبحاث OpenLM | جينغ وليو 2023 |
فاي 1.5 و 2 | 1.3ب، 2.7ب | أبحاث مايكروسوفت | لي وآخرون. 2023 |
فاي 3 | 3.8 ب | أبحاث مايكروسوفت | عابدين وآخرون. 2024 |
خلد الماء | 7ب، 13ب، 70ب | لي وآخرون. | لي وهنتر ورويز 2023 |
بيثيا | {14,31,70,160,410}م، {1,1.4,2.8,6.9,12}ب | إليوثيرAI | بيدرمان وآخرون. 2023 |
StableCode | 3 ب | الاستقرار منظمة العفو الدولية | الاستقرار الذكاء الاصطناعي 2023 |
StableLM | 3ب، 7ب | الاستقرار منظمة العفو الدولية | الاستقرار الذكاء الاصطناعي 2023 |
StableLM زفير | 3 ب | الاستقرار منظمة العفو الدولية | الاستقرار الذكاء الاصطناعي 2023 |
TinyLlama | 1.1 ب | تشانغ وآخرون. | تشانغ وآخرون. 2023 |
نصيحة : يمكنك إدراج جميع الطرز المتوفرة عن طريق تشغيل أمر litgpt download list
.
Finetune • التدريب المسبق • التدريب المسبق المستمر • التقييم • النشر • الاختبار
استخدم واجهة سطر الأوامر لتشغيل مهام سير العمل المتقدمة مثل التدريب المسبق أو الضبط الدقيق لبياناتك الخاصة.
بعد تثبيت LitGPT، حدد النموذج وسير العمل المطلوب تشغيله (الضبط الدقيق والتدريب المسبق والتقييم والنشر وما إلى ذلك...):
# ligpt [action] [model]
litgpt serve meta-llama/Llama-3.2-3B-Instruct
litgpt finetune meta-llama/Llama-3.2-3B-Instruct
litgpt pretrain meta-llama/Llama-3.2-3B-Instruct
litgpt chat meta-llama/Llama-3.2-3B-Instruct
litgpt evaluate meta-llama/Llama-3.2-3B-Instruct
الضبط الدقيق هو عملية أخذ نموذج ذكاء اصطناعي تم تدريبه مسبقًا وتدريبه بشكل أكبر على مجموعة بيانات أصغر ومتخصصة مصممة خصيصًا لمهمة أو تطبيق محدد.
# 0) setup your dataset
curl -L https://huggingface.co/datasets/ksaw008/finance_alpaca/resolve/main/finance_alpaca.json -o my_custom_dataset.json
# 1) Finetune a model (auto downloads weights)
litgpt finetune microsoft/phi-2
--data JSON
--data.json_path my_custom_dataset.json
--data.val_split_fraction 0.1
--out_dir out/custom-model
# 2) Test the model
litgpt chat out/custom-model/final
# 3) Deploy the model
litgpt serve out/custom-model/final
اقرأ مستندات الضبط الدقيق الكاملة
انشر LLM مدربًا مسبقًا أو متقنًا لاستخدامه في تطبيقات العالم الحقيقي. النشر، يقوم تلقائيًا بإعداد خادم ويب يمكن الوصول إليه عن طريق موقع ويب أو تطبيق.
# deploy an out-of-the-box LLM
litgpt serve microsoft/phi-2
# deploy your own trained model
litgpt serve path/to/microsoft/phi-2/checkpoint
اختبر الخادم في محطة منفصلة وقم بدمج واجهة برمجة التطبيقات النموذجية في منتج الذكاء الاصطناعي الخاص بك:
# 3) Use the server (in a separate Python session)
import requests , json
response = requests . post (
"http://127.0.0.1:8000/predict" ,
json = { "prompt" : "Fix typos in the following sentence: Exampel input" }
)
print ( response . json ()[ "output" ])
اقرأ مستندات النشر الكاملة.
قم بتقييم LLM لاختبار أدائها في المهام المختلفة لمعرفة مدى فهمها للنص وإنشائه. ببساطة، يمكننا تقييم أشياء مثل مدى نجاحها في الكيمياء على مستوى الكلية، والبرمجة، وما إلى ذلك... (MMLU، Truthful QA، إلخ...)
litgpt evaluate microsoft/phi-2 --tasks ' truthfulqa_mc2,mmlu '
اقرأ مستندات التقييم الكاملة.
اختبر مدى جودة عمل النموذج عبر الدردشة التفاعلية. استخدم أمر chat
للدردشة واستخراج التضمينات وما إلى ذلك...
فيما يلي مثال يوضح كيفية استخدام Phi-2 LLM:
litgpt chat microsoft/phi-2
>> Prompt: What do Llamas eat ?
# 1) List all supported LLMs
litgpt download list
# 2) Use a model (auto downloads weights)
litgpt chat microsoft/phi-2
>> Prompt: What do Llamas eat ?
يتطلب تنزيل نماذج معينة رمز وصول إضافي. يمكنك قراءة المزيد عن هذا في وثائق التنزيل.
اقرأ مستندات الدردشة الكاملة.
التدريب المسبق هو عملية تدريس نموذج الذكاء الاصطناعي من خلال تعريضه لكمية كبيرة من البيانات قبل ضبطه لمهام محددة.
mkdir -p custom_texts
curl https://www.gutenberg.org/cache/epub/24440/pg24440.txt --output custom_texts/book1.txt
curl https://www.gutenberg.org/cache/epub/26393/pg26393.txt --output custom_texts/book2.txt
# 1) Download a tokenizer
litgpt download EleutherAI/pythia-160m
--tokenizer_only True
# 2) Pretrain the model
litgpt pretrain EleutherAI/pythia-160m
--tokenizer_dir EleutherAI/pythia-160m
--data TextFiles
--data.train_data_path " custom_texts/ "
--train.max_tokens 10_000_000
--out_dir out/custom-model
# 3) Test the model
litgpt chat out/custom-model/final
اقرأ مستندات التدريب المسبق الكاملة
يعد التدريب المسبق المستمر طريقة أخرى للضبط الدقيق لنموذج تم تدريبه مسبقًا من خلال التدريب على البيانات المخصصة:
mkdir -p custom_texts
curl https://www.gutenberg.org/cache/epub/24440/pg24440.txt --output custom_texts/book1.txt
curl https://www.gutenberg.org/cache/epub/26393/pg26393.txt --output custom_texts/book2.txt
# 1) Continue pretraining a model (auto downloads weights)
litgpt pretrain EleutherAI/pythia-160m
--tokenizer_dir EleutherAI/pythia-160m
--initial_checkpoint_dir EleutherAI/pythia-160m
--data TextFiles
--data.train_data_path " custom_texts/ "
--train.max_tokens 10_000_000
--out_dir out/custom-model
# 2) Test the model
litgpt chat out/custom-model/final
اقرأ المستندات الكاملة للتدريب المسبق المستمر
✅ أحدث التحسينات: Flash Attention v2، ودعم وحدات معالجة الرسومات المتعددة عبر توازي البيانات المقسمة بالكامل، وتفريغ وحدة المعالجة المركزية الاختياري، ودعم TPU وXLA.
✅ التدريب المسبق والضبط والنشر
✅ تقليل متطلبات الحوسبة باستخدام إعدادات منخفضة الدقة: FP16 وBF16 وFP16/FP32 المختلطة.
✅ متطلبات ذاكرة أقل مع التكميم: عوامات 4 بت، وأعداد صحيحة 8 بت، والتكميم المزدوج.
✅ ملفات التكوين لأداء رائع خارج الصندوق.
✅ ضبط فعال للمعلمات: LoRA وQLoRA والمحول والمحول v2.
✅ التصدير إلى تنسيقات وزن النماذج الشائعة الأخرى.
✅ العديد من مجموعات البيانات الشائعة للتدريب المسبق والضبط الدقيق ودعم مجموعات البيانات المخصصة.
✅ كود قابل للقراءة وسهل التعديل لتجربة أحدث الأفكار البحثية.
يأتي LitGPT مزودًا بوصفات تم التحقق من صحتها (تكوينات YAML) لتدريب النماذج في ظل ظروف مختلفة. لقد قمنا بإنشاء هذه الوصفات بناءً على المعلمات التي وجدناها تقدم أفضل أداء لظروف التدريب المختلفة.
تصفح جميع وصفات التدريب هنا.
litgpt finetune
--config https://raw.githubusercontent.com/Lightning-AI/litgpt/main/config_hub/finetune/llama-2-7b/lora.yaml
تتيح لك التكوينات تخصيص التدريب لجميع المعلمات الدقيقة مثل:
# The path to the base model's checkpoint directory to load for finetuning. (type: , default: checkpoints/stabilityai/stablelm-base-alpha-3b)
checkpoint_dir : checkpoints/meta-llama/Llama-2-7b-hf
# Directory in which to save checkpoints and logs. (type: , default: out/lora)
out_dir : out/finetune/qlora-llama2-7b
# The precision to use for finetuning. Possible choices: "bf16-true", "bf16-mixed", "32-true". (type: Optional[str], default: null)
precision : bf16-true
...
# The path to the base model's checkpoint directory to load for finetuning. (type: , default: checkpoints/stabilityai/stablelm-base-alpha-3b)
checkpoint_dir : checkpoints/meta-llama/Llama-2-7b-hf
# Directory in which to save checkpoints and logs. (type: , default: out/lora)
out_dir : out/finetune/qlora-llama2-7b
# The precision to use for finetuning. Possible choices: "bf16-true", "bf16-mixed", "32-true". (type: Optional[str], default: null)
precision : bf16-true
# If set, quantize the model with this algorithm. See ``tutorials/quantize.md`` for more information. (type: Optional[Literal['nf4', 'nf4-dq', 'fp4', 'fp4-dq', 'int8-training']], default: null)
quantize : bnb.nf4
# How many devices/GPUs to use. (type: Union[int, str], default: 1)
devices : 1
# How many nodes to use. (type: int, default: 1)
num_nodes : 1
# The LoRA rank. (type: int, default: 8)
lora_r : 32
# The LoRA alpha. (type: int, default: 16)
lora_alpha : 16
# The LoRA dropout value. (type: float, default: 0.05)
lora_dropout : 0.05
# Whether to apply LoRA to the query weights in attention. (type: bool, default: True)
lora_query : true
# Whether to apply LoRA to the key weights in attention. (type: bool, default: False)
lora_key : false
# Whether to apply LoRA to the value weights in attention. (type: bool, default: True)
lora_value : true
# Whether to apply LoRA to the output projection in the attention block. (type: bool, default: False)
lora_projection : false
# Whether to apply LoRA to the weights of the MLP in the attention block. (type: bool, default: False)
lora_mlp : false
# Whether to apply LoRA to output head in GPT. (type: bool, default: False)
lora_head : false
# Data-related arguments. If not provided, the default is ``litgpt.data.Alpaca``.
data :
class_path : litgpt.data.Alpaca2k
init_args :
mask_prompt : false
val_split_fraction : 0.05
prompt_style : alpaca
ignore_index : -100
seed : 42
num_workers : 4
download_dir : data/alpaca2k
# Training-related arguments. See ``litgpt.args.TrainArgs`` for details
train :
# Number of optimizer steps between saving checkpoints (type: Optional[int], default: 1000)
save_interval : 200
# Number of iterations between logging calls (type: int, default: 1)
log_interval : 1
# Number of samples between optimizer steps across data-parallel ranks (type: int, default: 128)
global_batch_size : 8
# Number of samples per data-parallel rank (type: int, default: 4)
micro_batch_size : 2
# Number of iterations with learning rate warmup active (type: int, default: 100)
lr_warmup_steps : 10
# Number of epochs to train on (type: Optional[int], default: 5)
epochs : 4
# Total number of tokens to train on (type: Optional[int], default: null)
max_tokens :
# Limits the number of optimizer steps to run (type: Optional[int], default: null)
max_steps :
# Limits the length of samples (type: Optional[int], default: null)
max_seq_length : 512
# Whether to tie the embedding weights with the language modeling head weights (type: Optional[bool], default: null)
tie_embeddings :
# (type: float, default: 0.0003)
learning_rate : 0.0002
# (type: float, default: 0.02)
weight_decay : 0.0
# (type: float, default: 0.9)
beta1 : 0.9
# (type: float, default: 0.95)
beta2 : 0.95
# (type: Optional[float], default: null)
max_norm :
# (type: float, default: 6e-05)
min_lr : 6.0e-05
# Evaluation-related arguments. See ``litgpt.args.EvalArgs`` for details
eval :
# Number of optimizer steps between evaluation calls (type: int, default: 100)
interval : 100
# Number of tokens to generate (type: Optional[int], default: 100)
max_new_tokens : 100
# Number of iterations (type: int, default: 100)
max_iters : 100
# The name of the logger to send metrics to. (type: Literal['wandb', 'tensorboard', 'csv'], default: csv)
logger_name : csv
# The random seed to use for reproducibility. (type: int, default: 1337)
seed : 1337
litgpt finetune
--config https://raw.githubusercontent.com/Lightning-AI/litgpt/main/config_hub/finetune/llama-2-7b/lora.yaml
--lora_r 4
تعمل LitGPT على تشغيل العديد من مشاريع ومبادرات وتحديات الذكاء الاصطناعي الرائعة وبالطبع المؤسسات. يرجى تقديم طلب سحب للنظر فيه للحصول على الميزة.
تم بناء مشروع Samba من قبل باحثين في Microsoft على قاعدة كود LitGPT ويجمع بين نماذج مساحة الحالة وانتباه النافذة المنزلقة، والذي يتفوق في الأداء على نماذج مساحة الحالة النقية.
كان مستودع LitGPT هو مجموعة الأدوات الرسمية المبدئية لتحدي الكفاءة NeurIPS 2023 LLM، وهي مسابقة تركز على ضبط LLM موجود بدون تعليمات لمدة 24 ساعة على وحدة معالجة رسومات واحدة.
قامت LitGPT بدعم مشروع TinyLlama وTinyLlama: ورقة بحثية لنموذج لغة صغيرة مفتوحة المصدر.
MicroLlama هو نموذج 300 مليون Llama تم تدريبه مسبقًا على 50 مليار رمز مدعوم من TinyLlama وLitGPT.
تعمل الورقة البحثية "التدريب المسبق لـ LMs ذات القاعدة الصغيرة مع عدد أقل من الرموز"، والتي تستخدم LitGPT، على تطوير نماذج لغة أساسية أصغر من خلال وراثة عدد قليل من كتل المحولات من النماذج الأكبر والتدريب على جزء صغير من البيانات المستخدمة بواسطة النماذج الأكبر. ويوضح أن هذه النماذج الأصغر يمكن أن تؤدي أداءً مشابهًا للنماذج الأكبر على الرغم من استخدام بيانات وموارد تدريب أقل بكثير.
نحن نرحب بجميع المساهمين الأفراد، بغض النظر عن مستوى خبرتهم أو أجهزتهم. مساهماتك قيمة، ونحن متحمسون لرؤية ما يمكنك تحقيقه في هذه البيئة التعاونية والداعمة.
ابدأ
⚡️ الضبط الدقيق، بما في ذلك. LoRA وQLoRA والمحولات
؟ التدريب المسبق
تقييم النموذج
مجموعات البيانات المدعومة والمخصصة
؟ التكميم
؟ نصائح للتعامل مع أخطاء نفاد الذاكرة (OOM).
?? استخدام السحابة TPU
يمتد هذا التنفيذ إلى Lit-LLaMA وnanoGPT، وهو مدعوم بواسطة Lightning Fabric ⚡ .
تم إصدار LitGPT بموجب ترخيص Apache 2.0.
إذا كنت تستخدم LitGPT في بحثك، فيرجى ذكر العمل التالي:
@misc { litgpt-2023 ,
author = { Lightning AI } ,
title = { LitGPT } ,
howpublished = { url{https://github.com/Lightning-AI/litgpt} } ,
year = { 2023 } ,
}