Bahasa Cina Sederhana |. Bahasa Inggris?
PaddleNLP adalah kit pengembangan model bahasa besar (LLM) berdasarkan kerangka pembelajaran mendalam Paddle, yang mendukung pelatihan model besar yang efisien, kompresi lossless, dan inferensi performa tinggi pada berbagai perangkat keras. PaddleNLP memiliki karakteristik kesederhanaan, kemudahan penggunaan , dan kinerja terbaik , dan berkomitmen untuk membantu pengembang menerapkan aplikasi model besar tingkat industri yang efisien.
08.08.2024 "PaddleNLP 3.0, alat canggih untuk pengembangan model bahasa besar tingkat industri, dirilis" , dengan seluruh pelatihan, proses tekanan dan dorongan terintegrasi, dan cakupan penuh model arus utama. Model-model besar secara otomatis diparalelkan, dan seluruh proses pelatihan dan mendorong ratusan miliar model tersedia secara langsung. Memberikan solusi penyempurnaan dan penyelarasan kinerja tinggi tingkat industri, inferensi kompresi terdepan, dan adaptasi multi-perangkat keras. Meliputi skenario aplikasi seperti asisten cerdas tingkat industri, pembuatan konten, tanya jawab pengetahuan, dan ekstraksi informasi penting. Waktu siaran langsung: 22 Agustus (Kamis) 19:00. Tautan pendaftaran: https://www.wjx.top/vm/Y2f7FFY.aspx?udsid=143844
27.06.2024 PaddleNLP v3.0 Beta : Gunakan model besar dan rasakan pengalaman yang ditingkatkan sepenuhnya. Menyatukan rangkaian model besar untuk mencapai akses proses penuh ke chip komputasi domestik; sepenuhnya mendukung proses aplikasi tingkat industri model besar seperti konfigurasi paralel 4D dayung terbang, strategi penyesuaian yang efisien, algoritma penyelarasan yang efisien, dan inferensi mandiri berkinerja tinggi; -mengembangkan algoritma RsLoRA+ yang sangat konvergen, mekanisme penyimpanan ekspansi dan kontraksi otomatis Unified Checkpoint dan FastFFN dan FusedQKV yang didukung secara universal membantu pelatihan dan promosi model besar terus mendukung pembaruan dan memberikan solusi yang efisien.
24.04.24 PaddleNLP v2.8 : Algoritma RsLoRA+ yang dikembangkan sendiri dengan konvergensi ekstrim sangat meningkatkan kecepatan konvergensi pelatihan PEFT dan efek pelatihan memperkenalkan akselerasi pembangkitan kinerja tinggi ke algoritma RLHF PPO, memecahkan hambatan kecepatan pembangkitan dalam pelatihan PPO, dan Kinerja pelatihan PPO jauh lebih maju. Mendukung beberapa metode pengoptimalan kinerja pelatihan model besar secara universal seperti FastFFN dan FusedQKV, menjadikan pelatihan model besar lebih cepat dan stabil.
Ini mendukung pelatihan dan inferensi model pemahaman bahasa alami dan model besar untuk GPU NVIDIA, Ubuntu XPU, NPU Shengteng, GCU Suiyuan, DCU Haiguang, dan perangkat keras lainnya. Antarmuka suite ini mendukung peralihan perangkat keras yang cepat, sehingga secara signifikan mengurangi biaya penelitian dan pengembangan peralihan perangkat keras. Model pemahaman bahasa alami yang saat ini didukung: Daftar model pemahaman bahasa alami multi-perangkat keras
Mendukung pelatihan kinerja tinggi 4D untuk strategi paralel data murni, strategi paralel data pengirisan parameter yang dikelompokkan, strategi paralel model tensor, dan strategi paralel model pipa. Pelatih mendukung konfigurasi strategi terdistribusi untuk mengurangi biaya penggunaan yang disebabkan oleh kombinasi terdistribusi yang kompleks; mendukung pelatihan ekspansi dan kontraksi dinamis dalam distribusi parameter model, mengurangi biaya migrasi yang disebabkan oleh peralihan perangkat keras.
Algoritme penyempurnaan secara mendalam menggabungkan aliran data zero-fill dan operator kinerja tinggi FlashMask untuk mengurangi pengisian dan penghitungan data pelatihan yang tidak valid dan sangat meningkatkan hasil pelatihan fine-tuning.
Modul penalaran berkinerja tinggi dari rangkaian model besar memiliki penyisipan dinamis bawaan dan strategi fusi operator tautan penuh, yang sangat mempercepat penalaran paralel. Detail implementasi yang mendasarinya dirangkum untuk mencapai kemampuan penalaran paralel berkinerja tinggi yang luar biasa.
Parameter model telah mendukung seri LLaMA, seri Baichuan, seri Bloom, seri ChatGLM, seri Gemma, seri Mistral, seri OPT, dan seri Qwen. Daftar detail daftar dukungan parameter model [LLM] adalah sebagai berikut:
Seri model | Nama model |
---|---|
LAMA | facebook/llama-7b, facebook/llama-13b, facebook/llama-30b, facebook/llama-65b |
Lama2 | meta-llama/Llama-2-7b, meta-llama/Llama-2-7b-chat, meta-llama/Llama-2-13b, meta-llama/Llama-2-13b-chat, meta-llama/Llama- 2-70b, meta-llama/Llama-2-70b-obrolan |
Lama3 | meta-llama/Meta-Llama-3-8B, meta-llama/Meta-Llama-3-8B-Instruksikan, meta-llama/Meta-Llama-3-70B, meta-llama/Meta-Llama-3-70B- Menginstruksikan |
Llama3.1 | meta-llama/Meta-Llama-3.1-8B, meta-llama/Meta-Llama-3.1-8B-Instruksikan, meta-llama/Meta-Llama-3.1-70B, meta-llama/Meta-Llama-3.1-70B- Instruksikan, meta-llama/Meta-Llama-3.1-405B, meta-llama/Meta-Llama-3.1-405B-Instruksikan, meta-llama/Llama-Guard-3-8B |
Llama3.2 | meta-llama/Llama-3.2-1B, meta-llama/Llama-3.2-1B-Instruksikan, meta-llama/Llama-3.2-3B, meta-llama/Llama-3.2-3B-Instruksikan, meta-llama/Llama- Penjaga-3-1B |
Baichuan | baichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Base, baichuan-inc/Baichuan-13B-Chat |
Baichuan2 | baichuan-inc/Baichuan2-7B-Base, baichuan-inc/Baichuan2-7B-Chat, baichuan-inc/Baichuan2-13B-Base, baichuan-inc/Baichuan2-13B-Chat |
Bunga | bigscience/bloom-560m, bigscience/bloom-560m-bf16, bigscience/bloom-1b1, bigscience/bloom-3b, bigscience/bloom-7b1, bigscience/bloomz-560m, bigscience/bloomz-1b1, bigscience/bloomz-3b, ilmu besar/bloomz-7b1-mt, ilmu besar/bloomz-7b1-p3, ilmu besar/bloomz-7b1, bellegroup/belle-7b-2m |
ObrolanGLM | THUDM/chatglm-6b, THUDM/chatglm-6b-v1.1 |
ObrolanGLM2 | THUDM/obrolan2-6b |
ObrolanGLM3 | THUDM/chatglm3-6b |
permata | google/gemma-7b, google/gemma-7b-it, google/gemma-2b, google/gemma-2b-it |
Mistral | mistralai/Mistral-7B-Instruksikan-v0.3, mistralai/Mistral-7B-v0.1 |
Campuran | mistralai/Mixtral-8x7B-Instruksikan-v0.1 |
MEMILIH | facebook/opt-125m, facebook/opt-350m, facebook/opt-1.3b, facebook/opt-2.7b, facebook/opt-6.7b, facebook/opt-13b, facebook/opt-30b, facebook/opt-66b , facebook/opt-iml-1.3b, opt-iml-max-1.3b |
Qwen | qwen/qwen-7b, qwen/qwen-7b-chat, qwen/qwen-14b, qwen/qwen-14b-chat, qwen/qwen-72b, qwen/qwen-72b-chat, |
Qwen1.5 | Qwen/Qwen1.5-0.5B, Qwen/Qwen1.5-0.5B-Obrolan, Qwen/Qwen1.5-1.8B, Qwen/Qwen1.5-1.8B-Obrolan, Qwen/Qwen1.5-4B, Qwen/ Qwen1.5-4B-Obrolan, Qwen/Qwen1.5-7B, Qwen/Qwen1.5-7B-Obrolan, Qwen/Qwen1.5-14B, Qwen/Qwen1.5-14B-Obrolan, Qwen/Qwen1.5-32B, Qwen/Qwen1.5-32B-Obrolan, Qwen/Qwen1.5-72B, Qwen/Qwen1.5- 72B-Obrolan, Qwen/Qwen1.5-110B, Qwen/Qwen1.5-110B-Obrolan, Qwen/Qwen1.5-MoE-A2.7B, Qwen/Qwen1.5-MoE-A2.7B-Obrolan |
Qwen2 | Qwen/Qwen2-0.5B, Qwen/Qwen2-0.5B-Instruksikan, Qwen/Qwen2-1.5B, Qwen/Qwen2-1.5B-Instruksikan, Qwen/Qwen2-7B, Qwen/Qwen2-7B-Instruksikan, Qwen/Qwen2- 72B, Qwen/Qwen2-72B-Instruksikan, Qwen/Qwen2-57B-A14B, Qwen/Qwen2-57B-A14B-Instruksikan |
Qwen2-Matematika | Qwen/Qwen2-Math-1.5B, Qwen/Qwen2-Math-1.5B-Instruksikan, Qwen/Qwen2-Math-7B, Qwen/Qwen2-Math-7B-Instruksikan, Qwen/Qwen2-Math-72B, Qwen/Qwen2- Instruksi Matematika-72B, Qwen/Qwen2-Math-RM-72B |
Qwen2.5 | Qwen/Qwen2.5-0.5B, Qwen/Qwen2.5-0.5B-Instruksikan, Qwen/Qwen2.5-1.5B, Qwen/Qwen2.5-1.5B-Instruksikan, Qwen/Qwen2.5-3B, Qwen/ Qwen2.5-3B-Instruksikan, Qwen/Qwen2.5-7B, Qwen/Qwen2.5-7B-Instruksikan, Qwen/Qwen2.5-14B, Qwen/Qwen2.5-14B-Instruksikan, Qwen/Qwen2.5-32B, Qwen/Qwen2.5-32B-Instruksikan, Qwen/Qwen2.5-72B, Qwen/Qwen2.5- 72B-Instruksikan |
Qwen2.5-Matematika | Qwen/Qwen2.5-Math-1.5B, Qwen/Qwen2.5-Math-1.5B-Instruksikan, Qwen/Qwen2.5-Math-7B, Qwen/Qwen2.5-Math-7B-Instruksikan, Qwen/Qwen2. 5-Matematika-72B, Qwen/Qwen2.5-Matematika-72B-Instruksikan, Qwen/Qwen2.5-Matematika-RM-72B |
Qwen2.5-Pembuat Kode | Qwen/Qwen2.5-Coder-1.5B, Qwen/Qwen2.5-Coder-1.5B-Instruksikan, Qwen/Qwen2.5-Coder-7B, Qwen/Qwen2.5-Coder-7B-Instruksikan |
Yuan2 | IEITYuan/Yuan2-2B, IEITYuan/Yuan2-51B, IEITYuan/Yuan2-102B |
Paralelisme 4D dan optimalisasi operator telah mendukung seri LLaMA, seri Baichuan, seri Bloom, seri ChatGLM, seri Gemma, seri Mistral, seri OPT, dan seri Qwen. Daftar dukungan operator dan paralelisme 4D model [LLM] adalah sebagai berikut:
Nama model/dukungan kemampuan paralel | paralelisme data | Paralelisme model tensor | Paralelisme sharding parameter | Paralelisme saluran pipa | |||
---|---|---|---|---|---|---|---|
Kemampuan dasar | paralelisme urutan | tahap1 | tahap2 | tahap3 | |||
lama | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen1.5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Campuran (moe) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Mistral | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
Baichuan | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Baichuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
ObrolanGLM | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
ObrolanGLM2 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
ObrolanGLM3 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
Bunga | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
GPT-2/GPT-3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
MEMILIH | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
permata | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Yuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
Pra-pelatihan model besar, penyempurnaan (termasuk teknologi SFT, PEFT), penyelarasan, dan kuantifikasi telah mendukung seri LLaMA, seri Baichuan, seri Bloom, seri ChatGLM, seri Mistral, seri OPT dan seri Qwen, pra-model [LLM] daftar dukungan pelatihan, penyempurnaan, penyelarasan, dan kuantisasi adalah sebagai berikut:
Model | Pralatihan | SFT | LoRa | Masker Flash | Penyetelan Awalan | DPO/SimPO/ORPO | RLHF | Kuantisasi |
---|---|---|---|---|---|---|---|---|
lama | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ? |
campuran | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Mistral | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ? |
Baichuan/Baichuan2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ✅ |
ObrolanGLM-6B | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
ObrolanGLM2/ObrolanGLM3 | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ✅ |
Bunga | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
GPT-3 | ✅ | ✅ | ? | ? | ? | ? | ? | ? |
MEMILIH | ✅ | ✅ | ✅ | ? | ? | ? | ? | ? |
permata | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Yuan | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
Penalaran model besar sudah mendukung seri LLaMA, seri Qwen, seri Mistral, seri ChatGLM, seri Bloom dan seri Baichuan, mendukung penalaran Weight Only INT8 dan INT4, dan mendukung WAC (weight, activation, Cache KV) untuk penalaran terukur INT8 dan FP8, [ LLM] Daftar dukungan inferensi model adalah sebagai berikut:
Dukungan nama model/jenis kuantisasi | FP16/BF16 | MUSIM 8 | MUSIM 4 | INT8-A8W8 | FP8-A8W8 | INT8-A8W8C8 |
---|---|---|---|---|---|---|
LAMA | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen-Moe | ✅ | ✅ | ✅ | ? | ? | ? |
Campuran | ✅ | ✅ | ✅ | ? | ? | ? |
ObrolanGLM | ✅ | ✅ | ✅ | ? | ? | ? |
Bunga | ✅ | ✅ | ✅ | ? | ? | ? |
Baichuan | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
ular piton >= 3.8
dayung dayung >= 3.0.0b0
Jika Anda belum menginstal PaddlePaddle, silakan merujuk ke situs resmi PaddlePaddle untuk menginstalnya.
instalasi pip --upgrade paddlenlp==3.0.0b2
Atau Anda dapat menginstal kode cabang pengembangan terbaru melalui perintah berikut:
instalasi pip --pre --upgrade paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
Untuk tutorial lebih detail tentang instalasi PaddlePaddle dan PaddleNLP, silakan lihat Instalasi.
PaddleNLP menyediakan API Otomatis yang nyaman dan mudah digunakan yang dapat memuat model dan Tokenizer dengan cepat. Berikut adalah contoh pembuatan teks menggunakan model Qwen/Qwen2-0.5B
:
>>> dari paddlenlp.transformers impor AutoTokenizer, AutoModelForCausalLM>>> tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B")>>> model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-0.5B", dtype=" float16")>>> input_features = tokenizer("Halo! Silakan perkenalkan diri Anda.", return_tensors="pd")>>> keluaran = model.generate(**input_features, max_length=128)>>> print(tokenizer.batch_decode(outputs[0], skip_special_tokens=True)) ['Saya adalah model bahasa AI. Saya dapat menjawab berbagai pertanyaan, termasuk namun tidak terbatas pada: cuaca, berita, sejarah, budaya, sains, pendidikan, hiburan, dll. Apakah ada sesuatu yang perlu Anda ketahui? ']
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # Jika Anda sudah mengkloning atau mengunduh PaddleNLP, lewati mkdir -p llm/data && cd llm/data dapatkan https://bj.bcebos.com/paddlenlp/models/transformers/llama/data/llama_openwebtext_100k.bin wget https://bj.bcebos.com/padaddlenlp/models/transformers/llama/data/llama_openwebtext_100k.idxcd .. # ubah folder menjadi PaddleNLP/llmpython -u -m paddle.distributed.launch --gpus "0,1, 2,3,4,5,6,7" run_pretrain.py ./config/llama/pretrain_argument.json
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # Jika Anda sudah mengkloning atau mengunduh PaddleNLP, lewati mkdir -p llm/data && cd llm/data wget https://bj.bcebos.com/padaddlenlp/datasets/examples/AdvertiseGen.tar.gz && tar -zxvf AdvertiseGen.tar.gzcd .. # ubah folder menjadi PaddleNLP/llmpython -u -m paddle.distributed.launch - -gpus "0,1,2,3,4,5,6,7" jalankan_finetune.py ./config/llama/sft_argument.json
Untuk langkah lebih lengkap dalam proses model besar, silakan lihat pengenalan Kit Model Besar Dayung Terbang.
Untuk konten PaddleNLP lainnya, silakan merujuk ke:
Pustaka model yang dipilih, termasuk penggunaan proses penuh dari model terlatih berkualitas tinggi secara menyeluruh.
Berbagai contoh skenario untuk mempelajari cara menggunakan PaddleNLP untuk memecahkan berbagai masalah teknis NLP, termasuk teknologi dasar, aplikasi sistem, dan aplikasi yang diperluas.
Tutorial interaktif untuk mempelajari PaddleNLP dengan cepat di platform komputasi gratis AI Studio.
Pindai kode QR di WeChat dan isi kuesioner untuk bergabung dengan grup komunikasi dan berdiskusi mendalam dengan banyak pengembang komunitas dan tim resmi.
Jika PaddleNLP bermanfaat untuk penelitian Anda, silakan mengutipnya
@misc{=paddlenlp,title={PaddleNLP: Perpustakaan NLP yang Mudah Digunakan dan Berkinerja Tinggi},author={Kontributor PaddleNLP},howpublished = {url{https://github.com/PaddlePaddle/PaddleNLP}}, tahun={2021}}
Kami telah belajar dari desain luar biasa Hugging Face's Transformers? tentang penggunaan model terlatih, dan ingin mengucapkan terima kasih kepada penulis Hugging Face dan komunitas sumber terbuka mereka.
PaddleNLP mengikuti lisensi open source Apache-2.0.