20+ LLM berkinerja tinggi dengan resep untuk dilatih sebelumnya, disempurnakan, dan diterapkan dalam skala besar.
✅ Implementasi dari awal ✅ Tanpa abstraksi ✅ Ramah bagi pemula ✅ Perhatian kilat ✅ FSDP ✅ LoRA, QLoRA, Adaptor ✅ Kurangi memori GPU (fp4/8/16/32) ✅ 1-1000+ GPU/TPU ✅ 20+ LLM
Mulai cepat • Model • Penyempurnaan • Penerapan • Semua alur kerja • Fitur • Resep (YAML) • Lightning AI • Tutorial
Setiap LLM diimplementasikan dari awal tanpa abstraksi dan kontrol penuh , menjadikannya sangat cepat, minimal, dan berkinerja pada skala perusahaan.
✅ Siap untuk perusahaan - Apache 2.0 untuk penggunaan perusahaan tanpa batas.
✅ Ramah pengembang - Proses debug mudah tanpa lapisan abstraksi dan implementasi file tunggal.
✅ Performa yang dioptimalkan - Model dirancang untuk memaksimalkan performa, mengurangi biaya, dan mempercepat pelatihan.
✅ Resep yang telah terbukti - Pelatihan/penyempurnaan resep yang sangat optimal dan diuji pada skala perusahaan.
Instal LitGPT
pip install 'litgpt[all]'
Muat dan gunakan salah satu dari 20+ LLM:
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.
✅ Dioptimalkan untuk inferensi cepat
✅ Kuantisasi
✅ Berjalan pada GPU dengan memori rendah
✅ Tidak ada lapisan abstraksi internal
✅ Dioptimalkan untuk skala produksi
Instal dari sumber:
git clone https://github.com/Lightning-AI/litgpt
cd litgpt
pip install -e ' .[all] '
Jelajahi dokumen Python API selengkapnya.
Setiap model ditulis dari awal untuk memaksimalkan performa dan menghilangkan lapisan abstraksi:
Model | Ukuran model | Pengarang | Referensi |
---|---|---|---|
Lama 3, 3.1, 3.2 | 1B, 3B, 8B, 70B, 405B | Meta AI | Meta AI 2024 |
Kode Llama | 7B, 13B, 34B, 70B | Meta AI | Rozière dkk. 2023 |
Campuran MoE | 8x7B | AI Mistral | MistralAI 2023 |
Mistral | 7B, 123B | AI Mistral | MistralAI 2023 |
KodeGemma | 7B | Tim Google, Google Deepmind | |
Permata 2 | 2B, 9B, 27B | Tim Google, Google Deepmind | |
Fi 3 & 3.5 | 3.8B | Microsoft | Abdin dkk. 2024 |
... | ... | ... | ... |
Model | Ukuran model | Pengarang | Referensi |
---|---|---|---|
KodeGemma | 7B | Tim Google, Google Deepmind | |
Kode Llama | 7B, 13B, 34B, 70B | Meta AI | Rozière dkk. 2023 |
Elang | 7B, 40B, 180B | TII UEA | TII 2023 |
FreeWilly2 (Beluga Stabil 2) | 70B | Stabilitas AI | Stabilitas AI 2023 |
Fungsi Memanggil Llama 2 | 7B | Teralis | Trelis dkk. 2023 |
permata | 2B, 7B | Tim Google, Google Deepmind | |
Permata 2 | 9B, 27B | Tim Google, Google Deepmind | |
Lama 2 | 7B, 13B, 70B | Meta AI | Touvron dkk. 2023 |
Lama 3.1 | 8B, 70B | Meta AI | Meta AI 2024 |
Lama 3.2 | 1B, 3B | Meta AI | Meta AI 2024 |
Matematika | 7B | AI Mistral | MistralAI 2024 |
MikroLlama | 300M | Ken Wang | Repo MicroLlama |
Campuran MoE | 8x7B | AI Mistral | MistralAI 2023 |
Mistral | 7B, 123B | AI Mistral | Mistral AI 2023 |
OLMo | 1B, 7B | Institut Allen untuk AI (AI2) | Groeneveld dkk. 2024 |
BukaLLaMA | 3B, 7B, 13B | Penelitian OpenLM | Geng & Liu 2023 |
Fi 1.5 & 2 | 1.3B, 2.7B | Penelitian Microsoft | Li dkk. 2023 |
Fi 3 | 3.8B | Penelitian Microsoft | Abdin dkk. 2024 |
Platipus | 7B, 13B, 70B | Lee dkk. | Lee, Hunter, dan Ruiz 2023 |
Pythia | {14,31,70,160,410}Jt, {1,1.4,2.8,6.9,12}B | EleutherAI | Biderman dkk. 2023 |
Kode Stabil | 3B | Stabilitas AI | Stabilitas AI 2023 |
StabilLM | 3B, 7B | Stabilitas AI | Stabilitas AI 2023 |
StabilLM Zephyr | 3B | Stabilitas AI | Stabilitas AI 2023 |
Llama Kecil | 1.1B | Zhang dkk. | Zhang dkk. 2023 |
Tip : Anda dapat membuat daftar semua model yang tersedia dengan menjalankan perintah litgpt download list
.
Penyempurnaan • Pra-pelatihan • Pra-pelatihan lanjutan • Evaluasi • Penerapan • Uji
Gunakan antarmuka baris perintah untuk menjalankan alur kerja tingkat lanjut seperti pra-pelatihan atau penyesuaian pada data Anda sendiri.
Setelah menginstal LitGPT, pilih model dan alur kerja yang akan dijalankan (menyempurnakan, melakukan pra-pelatihan, mengevaluasi, menerapkan, dll...):
# 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
Penyempurnaan adalah proses mengambil model AI yang telah dilatih sebelumnya dan melatihnya lebih lanjut pada kumpulan data khusus yang lebih kecil yang disesuaikan dengan tugas atau aplikasi tertentu.
# 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
Baca dokumen penyempurnaan selengkapnya
Terapkan LLM yang telah dilatih sebelumnya atau sempurnakan untuk digunakan dalam aplikasi dunia nyata. Deploy, secara otomatis menyiapkan server web yang dapat diakses oleh situs web atau aplikasi.
# 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
Uji server di terminal terpisah dan integrasikan model API ke produk AI Anda:
# 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" ])
Baca dokumen penerapan selengkapnya.
Evaluasi LLM untuk menguji kinerjanya pada berbagai tugas untuk melihat seberapa baik LLM memahami dan menghasilkan teks. Sederhananya, kita dapat mengevaluasi hal-hal seperti seberapa baik kinerjanya dalam kimia tingkat perguruan tinggi, pengkodean, dll... (MMLU, Truthful QA, dll...)
litgpt evaluate microsoft/phi-2 --tasks ' truthfulqa_mc2,mmlu '
Baca dokumen evaluasi selengkapnya.
Uji seberapa baik model bekerja melalui obrolan interaktif. Gunakan perintah chat
untuk mengobrol, mengekstrak embeddings, dll...
Berikut ini contoh yang menunjukkan cara menggunakan 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 ?
Pengunduhan model tertentu memerlukan token akses tambahan. Anda dapat membaca lebih lanjut tentang ini di dokumentasi unduhan.
Baca dokumen obrolan selengkapnya.
Pra-pelatihan adalah proses mengajarkan model AI dengan memaparkannya pada sejumlah besar data sebelum disesuaikan untuk tugas-tugas tertentu.
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
Baca dokumen pra-pelatihan selengkapnya
Pra-pelatihan lanjutan adalah cara lain untuk menyempurnakan model yang sudah dilatih sebelumnya dengan melatih data khusus:
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
Baca dokumen pra-pelatihan lanjutan selengkapnya
✅ Pengoptimalan tercanggih: Flash Attention v2, dukungan multi-GPU melalui paralelisme data yang dipecah sepenuhnya, pembongkaran CPU opsional, dan dukungan TPU dan XLA.
✅ Pra-latih, sempurnakan, dan terapkan
✅ Kurangi persyaratan komputasi dengan pengaturan presisi rendah: campuran FP16, BF16, dan FP16/FP32.
✅ Persyaratan memori yang lebih rendah dengan kuantisasi: float 4-bit, bilangan bulat 8-bit, dan kuantisasi ganda.
✅ File konfigurasi untuk kinerja luar biasa.
✅ Penyempurnaan hemat parameter: LoRA, QLoRA, Adaptor, dan Adaptor v2.
✅ Mengekspor ke format berat model populer lainnya.
✅ Banyak kumpulan data populer untuk pra-pelatihan dan penyesuaian, serta dukungan untuk kumpulan data khusus.
✅ Kode yang mudah dibaca dan dimodifikasi untuk bereksperimen dengan ide penelitian terbaru.
LitGPT hadir dengan resep tervalidasi (konfigurasi YAML) untuk melatih model dalam kondisi berbeda. Kami telah membuat resep ini berdasarkan parameter yang kami temukan memiliki performa terbaik untuk berbagai kondisi pelatihan.
Telusuri semua resep pelatihan di sini.
litgpt finetune
--config https://raw.githubusercontent.com/Lightning-AI/litgpt/main/config_hub/finetune/llama-2-7b/lora.yaml
Konfigurasi memungkinkan Anda menyesuaikan pelatihan untuk semua parameter terperinci seperti:
# 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 mendukung banyak proyek, inisiatif, tantangan AI yang hebat, dan tentu saja perusahaan. Silakan kirimkan permintaan penarikan untuk dipertimbangkan untuk suatu fitur.
Proyek Samba yang dibuat oleh para peneliti di Microsoft dibangun di atas basis kode LitGPT dan menggabungkan model ruang negara dengan perhatian jendela geser, yang mengungguli model ruang negara murni.
Repositori LitGPT adalah starter kit resmi untuk NeurIPS 2023 LLM Efficiency Challenge, yang merupakan kompetisi yang berfokus pada penyetelan LLM non-instruksi yang sudah ada selama 24 jam pada satu GPU.
LitGPT mendukung proyek TinyLlama dan TinyLlama: Makalah penelitian Model Bahasa Kecil Sumber Terbuka.
MicroLlama adalah model Llama 300 juta yang dilatih sebelumnya pada token 50 miliar yang didukung oleh TinyLlama dan LitGPT.
Makalah penelitian "Prapelatihan LM Basis Kecil dengan Token Lebih Sedikit", yang memanfaatkan LitGPT, mengembangkan model bahasa dasar yang lebih kecil dengan mewarisi beberapa blok transformator dari model yang lebih besar dan melatih sebagian kecil data yang digunakan oleh model yang lebih besar. Hal ini menunjukkan bahwa model yang lebih kecil ini dapat memiliki performa yang sebanding dengan model yang lebih besar meskipun menggunakan lebih sedikit data pelatihan dan sumber daya.
Kami menyambut semua kontributor individu, terlepas dari tingkat pengalaman atau perangkat keras mereka. Kontribusi Anda sangat berharga, dan kami sangat senang melihat apa yang dapat Anda capai dalam lingkungan yang kolaboratif dan mendukung ini.
Mulailah
⚡️ Penyempurnaan, termasuk. LoRA, QLoRA, dan Adaptor
? Pra-pelatihan
Evaluasi model
Kumpulan data yang didukung dan khusus
? Kuantisasi
? Tips mengatasi error out-of-memory (OOM).
?? Menggunakan cloud TPU
Implementasi ini diperluas pada Lit-LLaMA dan nanoGPT, dan didukung oleh Lightning Fabric ⚡ .
LitGPT dirilis di bawah lisensi Apache 2.0.
Jika Anda menggunakan LitGPT dalam penelitian Anda, harap kutip karya berikut:
@misc { litgpt-2023 ,
author = { Lightning AI } ,
title = { LitGPT } ,
howpublished = { url{https://github.com/Lightning-AI/litgpt} } ,
year = { 2023 } ,
}