LLM ประสิทธิภาพสูงกว่า 20 รายการพร้อมสูตรสำหรับฝึกฝนล่วงหน้า ปรับแต่ง และปรับใช้ตามขนาดที่ต้องการ
✅ การใช้งานตั้งแต่เริ่มต้น ✅ ไม่มีนามธรรม ✅ เป็นมิตรกับผู้เริ่มต้น ✅ แฟลชสนใจ ✅ FSDP ✅ LoRA, QLoRA, อะแดปเตอร์ ✅ ลดหน่วยความจำ GPU (fp4/8/16/32) ✅ 1-1,000+ GPU/TPU ✅ 20+ LLM
เริ่มต้นอย่างรวดเร็ว • โมเดล • ปรับแต่ง • ปรับใช้ • เวิร์กโฟลว์ทั้งหมด • คุณสมบัติ • สูตรอาหาร (YAML) • Lightning AI • บทช่วยสอน
LLM ทุกตัวถูกนำไปใช้ตั้งแต่ต้นโดย ไม่มีนามธรรม และ การควบคุมเต็มรูป แบบ ทำให้รวดเร็ว เรียบง่าย และมีประสิทธิภาพในระดับองค์กร
✅ พร้อมใช้งานระดับองค์กร - Apache 2.0 สำหรับการใช้งานระดับองค์กรไม่จำกัด
✅ เป็นมิตรกับนักพัฒนา - ดีบักง่าย ๆ โดยไม่มีเลเยอร์นามธรรมและการใช้งานไฟล์เดียว
✅ ประสิทธิภาพที่ปรับให้เหมาะสม - รุ่นที่ออกแบบมาเพื่อเพิ่มประสิทธิภาพสูงสุด ลดต้นทุน และเร่งการฝึกอบรม
✅ สูตรอาหารที่ได้รับการพิสูจน์แล้ว - สูตรอาหารการฝึกอบรม/การปรับแต่งที่ได้รับการปรับปรุงให้เหมาะสมที่สุด ผ่านการทดสอบในระดับองค์กร
ติดตั้ง LitGPT
pip install 'litgpt[all]'
โหลดและใช้ LLM กว่า 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.
✅ ปรับให้เหมาะสมเพื่อการอนุมานที่รวดเร็ว
✅การหาปริมาณ
✅ทำงานบน GPU หน่วยความจำต่ำ
✅ไม่มีชั้นนามธรรมภายใน
✅ปรับให้เหมาะสมกับขนาดการผลิต
ติดตั้งจากแหล่งที่มา:
git clone https://github.com/Lightning-AI/litgpt
cd litgpt
pip install -e ' .[all] '
สำรวจเอกสาร Python API ฉบับเต็ม
ทุกรุ่นเขียนขึ้นตั้งแต่ต้นเพื่อเพิ่มประสิทธิภาพสูงสุดและขจัดชั้นของสิ่งที่เป็นนามธรรมออก:
แบบอย่าง | ขนาดโมเดล | ผู้เขียน | อ้างอิง |
---|---|---|---|
ลามะ 3, 3.1, 3.2 | 1B, 3B, 8B, 70B, 405B | เมตาเอไอ | เมตาเอไอ 2024 |
รหัสลามะ | 7B, 13B, 34B, 70B | เมตาเอไอ | โรซิแยร์ และคณะ 2023 |
มิกซ์ทรัล MoE | 8x7B | มิสทรัล เอไอ | มิสทรัล เอไอ 2023 |
มิสทรัล | 7B, 123B | มิสทรัล เอไอ | มิสทรัล เอไอ 2023 |
โค้ดเจมม่า | 7B | ทีมงาน Google, Google Deepmind | |
เจมม่า 2 | 2B, 9B, 27B | ทีมงาน Google, Google Deepmind | |
พี 3 และ 3.5 | 3.8B | ไมโครซอฟต์ | อับดิน และคณะ 2024 |
- | - | - | - |
แบบอย่าง | ขนาดโมเดล | ผู้เขียน | อ้างอิง |
---|---|---|---|
โค้ดเจมม่า | 7B | ทีมงาน Google, Google Deepmind | |
รหัสลามะ | 7B, 13B, 34B, 70B | เมตาเอไอ | โรซิแยร์ และคณะ 2023 |
เหยี่ยว | 7B, 40B, 180B | TII ยูเออี | TII 2023 |
FreeWilly2 (เบลูก้าเสถียร 2) | 70B | AI ความเสถียร | ความเสถียรของ AI 2023 |
ฟังก์ชั่นการเรียกลามะ 2 | 7B | Trelis | Trelis และคณะ 2023 |
เจมม่า | 2B, 7B | ทีมงาน Google, Google Deepmind | |
เจมม่า 2 | 9B, 27B | ทีมงาน Google, Google Deepmind | |
ลามะ 2 | 7B, 13B, 70B | เมตาเอไอ | ตูรอน และคณะ 2023 |
ลามะ 3.1 | 8B, 70B | เมตาเอไอ | เมตาเอไอ 2024 |
ลามะ 3.2 | 1B, 3B | เมตาเอไอ | เมตาเอไอ 2024 |
แมทสตรัล | 7B | มิสทรัล เอไอ | มิสทรัล เอไอ 2024 |
ไมโครลามะ | 300ม | เคนหวาง | การซื้อคืน MicroLlama |
มิกซ์ทรัล MoE | 8x7B | มิสทรัล เอไอ | มิสทรัล เอไอ 2023 |
มิสทรัล | 7B, 123B | มิสทรัล เอไอ | มิสทรัล เอไอ 2023 |
โอลโม | 1B, 7B | สถาบันอัลเลนเพื่อ AI (AI2) | โกรเนเวลด์ และคณะ 2024 |
OpenLLaMA | 3B, 7B, 13B | การวิจัย OpenLM | เกิงและหลิว 2023 |
พี 1.5 & 2 | 1.3B, 2.7B | การวิจัยของไมโครซอฟต์ | หลี่และคณะ 2023 |
พี่ 3 | 3.8B | การวิจัยของไมโครซอฟต์ | อับดิน และคณะ 2024 |
ตุ่นปากเป็ด | 7B, 13B, 70B | ลีและคณะ | ลี ฮันเตอร์ และรุยซ์ 2023 |
ปีเธีย | {14,31,70,160,410}ม, {1,1.4,2.8,6.9,12}บี | เอลิวเธอร์เอไอ | ไบเดอร์แมน และคณะ 2023 |
รหัสเสถียร | 3B | AI ความเสถียร | ความเสถียรของ AI 2023 |
LM เสถียร | 3B, 7B | AI ความเสถียร | ความเสถียรของ AI 2023 |
LM Zephyr ที่เสถียร | 3B | AI ความเสถียร | ความเสถียรของ AI 2023 |
จิ๋วลามะ | 1.1B | จางและคณะ | จางและคณะ 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
การปรับแต่งอย่างละเอียดเป็นกระบวนการในการใช้โมเดล AI ที่ได้รับการฝึกล่วงหน้า และการฝึกอบรมเพิ่มเติมเกี่ยวกับชุดข้อมูลพิเศษที่มีขนาดเล็กลงซึ่งปรับให้เหมาะกับงานหรือแอปพลิเคชันเฉพาะ
# 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
ทดสอบเซิร์ฟเวอร์ในเทอร์มินัลที่แยกต่างหาก และรวมโมเดล API เข้ากับผลิตภัณฑ์ AI ของคุณ:
# 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 ?
การดาวน์โหลดบางรุ่นต้องใช้โทเค็นการเข้าถึงเพิ่มเติม คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในเอกสารดาวน์โหลด
อ่านเอกสารแชทฉบับเต็ม
การฝึกอบรมล่วงหน้าเป็นกระบวนการสอนโมเดล AI โดยการเปิดเผยข้อมูลจำนวนมากก่อนที่จะมีการปรับแต่งอย่างละเอียดสำหรับงานเฉพาะ
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, รองรับ multi-GPU ผ่านการขนานข้อมูลแบบแบ่งส่วนอย่างสมบูรณ์, ออฟโหลด CPU ที่เป็นตัวเลือก และรองรับ 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 ขับเคลื่อนโครงการ AI ที่ยอดเยี่ยม ความคิดริเริ่ม ความท้าทาย และแน่นอนว่าองค์กรต่างๆ โปรดส่งคำขอดึงเพื่อรับการพิจารณาสำหรับคุณสมบัติ
โครงการ Samba โดยนักวิจัยที่ Microsoft สร้างขึ้นบนฐานโค้ด LitGPT และผสมผสานโมเดลพื้นที่รัฐเข้ากับหน้าต่างแบบเลื่อน ซึ่งมีประสิทธิภาพเหนือกว่าโมเดลพื้นที่รัฐล้วนๆ
พื้นที่เก็บข้อมูล LitGPT เป็นชุดเริ่มต้นอย่างเป็นทางการสำหรับ NeurIPS 2023 LLM Efficiency Challenge ซึ่งเป็นการแข่งขันที่เน้นการปรับแต่ง LLM ที่ปรับแบบไม่มีคำสั่งที่มีอยู่เป็นเวลา 24 ชั่วโมงบน GPU ตัวเดียว
LitGPT ขับเคลื่อนโครงการ TinyLlama และ TinyLlama: เอกสารวิจัยโมเดลภาษาขนาดเล็กแบบโอเพ่นซอร์ส
MicroLlama เป็นโมเดลลามะ 300 ล้านตัวที่ได้รับการฝึกอบรมบนโทเค็น 50B ที่ขับเคลื่อนโดย TinyLlama และ LitGPT
บทความวิจัย "การฝึกอบรม LM ฐานขนาดเล็กล่วงหน้าด้วยโทเค็นที่น้อยลง" ซึ่งใช้ LitGPT พัฒนาโมเดลภาษาพื้นฐานที่มีขนาดเล็กลงโดยการสืบทอดบล็อกหม้อแปลงสองสามบล็อกจากโมเดลขนาดใหญ่ และการฝึกอบรมเกี่ยวกับส่วนเล็กๆ ของข้อมูลที่ใช้โดยโมเดลขนาดใหญ่ โดยแสดงให้เห็นว่าโมเดลขนาดเล็กเหล่านี้สามารถทำงานได้เทียบเท่ากับโมเดลขนาดใหญ่ แม้ว่าจะใช้ข้อมูลและทรัพยากรการฝึกอบรมน้อยกว่ามากก็ตาม
เรายินดีต้อนรับผู้มีส่วนร่วมทุกคน โดยไม่คำนึงถึงระดับประสบการณ์หรือฮาร์ดแวร์ของพวกเขา การมีส่วนร่วมของคุณมีค่า และเรารู้สึกตื่นเต้นที่ได้เห็นสิ่งที่คุณสามารถทำได้ในสภาพแวดล้อมที่มีการทำงานร่วมกันและสนับสนุนนี้
เริ่มต้นเลย
⚡️ การปรับแต่งแบบละเอียดพร้อม LoRA, QLoRA และอะแดปเตอร์
- การฝึกล่วงหน้า
การประเมินแบบจำลอง
ชุดข้อมูลที่รองรับและกำหนดเอง
- การหาปริมาณ
- เคล็ดลับในการจัดการกับข้อผิดพลาดหน่วยความจำไม่เพียงพอ (OOM)
?? ใช้งาน Cloud 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 } ,
}