Panduan, kode, dan konfigurasi untuk rangkaian model ReplitLM .
Ini terus diperbarui untuk menambahkan lebih banyak cara untuk menggunakan dan mengembangkan model kami.
Model | Pos pemeriksaan [CC BY-SA 4.0] | Kosakata [CC BY-SA 4.0] | Kode [Apache 2.0] |
---|---|---|---|
kode ulang-v1-3b | Tautan Unduh | Unduh | Repo |
kode ulang-v1_5-3b | (Segera hadir) | (Segera hadir) | Segera hadir |
2 Mei 2023: replit-code-v1-3b
Kami juga memiliki Space bertenaga GPU untuk model replit-code-v1-3b
tempat Anda dapat menggunakan model tersebut secara langsung!
Demo yang Dihosting dengan GPU
Semua model Replit yang dirilis tersedia di Hugging Face di bawah halaman organisasi Replit dan dapat digunakan dengan perpustakaan Hugging Face Transformers.
Anda dapat menggunakan model Replit dengan perpustakaan Hugging Face Transformers. README untuk setiap model yang dirilis memiliki petunjuk tentang cara menggunakan model dengan Hugging Face Transformers. Pastikan Anda menyetel clean_up_tokenization_spaces=False
saat mendekode dengan tokenizer dan juga menggunakan pemrosesan postingan yang direkomendasikan yang diberikan dalam README.
Model | BACA SAYA |
---|---|
kode ulang-v1-3b | Dokumentasi |
Kami merekomendasikan pelatihan lebih lanjut, pra-pelatihan, dan penyempurnaan model Replit dengan LLM Foundry dan Composer dari MosesML.
Model Replit kami kompatibel dengan LLM Foundry dan dapat dilatih/disetel dengan cara yang sangat optimal dengan LLM Foundry + Composer menggunakan teknik pelatihan canggih, komponen arsitektur, pengoptimal, dan banyak lagi. Semua model, LLM Foundry, dan kerangka pelatihan Komposer berbasis Pytorch. Dengan menggunakan ini, Anda dapat melatih model Replit pada kumpulan data Anda sendiri.
Langkah-langkah berikut memberi Anda garis besar tentang apa yang perlu dilakukan untuk melatih model dengan tautan ke bagian dokumentasi LLM Foundry yang diperlukan untuk setiap langkah:
Instal Pengecoran LLM
Untuk memulai LLM Foundry, Anda dapat mengikuti README LLM Foundry ke:
Pada tingkat tinggi, LLM Foundry digunakan dengan mendefinisikan konfigurasi yaml dan kemudian menjalankan skrip pelatihan train/train.py
di repo LLM Foundry dengan konfigurasi yaml yang ditentukan menggunakan perintah seperti composer train/train.py <configuration_yaml_path> <extra_args>
. Dir scripts/train/yamls berisi contoh YAML untuk finetuning dan pretaining.
Instal Persyaratan Lain untuk Model Replit
Anda kemudian harus menginstal beberapa dependensi lain yang ditentukan dalam requirements.txt
.
Untuk berlatih dengan LLM Foundry, Anda perlu mengonversi kumpulan data Anda ke format Kumpulan Data Streaming Mosaik.
Jenis sumber dataset yang didukung adalah dataset JSON dan Dataset Hugging Face.
Dokumentasi Persiapan Data di LLM Foundry memberikan langkah-langkah bagaimana melakukan hal ini.
Saat menjalankan convert_dataset_hf.py
atau convert_dataset_json.py
pada langkah di atas, Anda harus menentukan bahwa Anda menggunakan tokenizer Replit dengan meneruskan argumen --tokenizer replit/replit-code-v1-3b
. Langkah penting (karena penerapan llm-foundry
saat ini) adalah mengedit scripts/data_prep/convert_dataset_hf.py
dengan meneruskan kwarg trust_remote_code=True
ke panggilan AutoTokenizer.from_pretrained
saat tokenizer dimuat dalam metode main()
.
Menguji Kumpulan Data Anda yang Dikonversi
Untuk menguji kumpulan data yang dikonversi dan memeriksa apakah kumpulan data tersebut berfungsi dengan pemuat data, Anda dapat mengikuti bagian Uji Pemuat Data di dokumen LLM Foundry.
Untuk berlatih dengan LLM Foundry, Anda perlu menentukan konfigurasi eksekusi yaml. Yaml ini mendefinisikan model, kumpulan data pelatihan, kumpulan data dan metrik evaluasi, parameter pelatihan, dan banyak lagi.
Menggunakan Model Replit
Untuk konfigurasi YAML apa pun yang Anda tetapkan untuk dilatih/diselaraskan dengan LLM Foundry, Anda dapat menyambungkan dan menggunakan model Replit dengan mengganti kunci model dan tokenizer di YAML Anda sebagai berikut:
...
model:
name: hf_causal_lm
pretrained: true
pretrained_model_name_or_path: replit/replit-code-v1-3b
config_overrides:
attn_config:
attn_impl: triton
attn_uses_sequence_id: false
tokenizer:
name: replit/replit-code-v1-3b
kwargs:
model_max_length: ${max_seq_len}
trust_remote_code: true
...
Ini akan memuat model kami dengan bobotnya dari Hugging Face untuk konfigurasi Anda.
Setelah mengonversi kumpulan data dan menentukan yaml konfigurasi proses, Anda dapat menjalankan pelatihan dengan LLM Foundry.
Ikuti bagian Cara Memulai Pelatihan di dokumen LLM Foundry untuk menjalankan pelatihan. Bagian ini menunjukkan kepada Anda cara menjalankan pelatihan single-node dan multi-node. Secara efektif, Anda akan menjalankan skrip pelatihan scripts/train/train.py
di repo LLM Foundry dengan konfigurasi yaml yang ditentukan menggunakan perintah seperti composer train/train.py <configuration_yaml_path> <extra_args>
.
Ada beberapa logika hardcode di Composer yang perlu kita hindari untuk menyimpan pos pemeriksaan. Dalam skrip pelatihan scripts/train/train.py
, tambahkan baris model.tokenizer = None
tepat setelah model diinisialisasi dan sebelum train dataloader disiapkan, yaitu, pada saat penulisan, baris 147 di main()
. Hal ini secara efektif memastikan bahwa kita tidak menyimpan tokenizer dengan status pos pemeriksaan. Kami memerlukan solusi ini karena saat ini Komposer tidak dapat menangani penyimpanan pos pemeriksaan dengan tokenizer yang menyertakan file *.py
.
Anda dapat menginstruksikan untuk menyempurnakan model ReplitLM kami untuk kasus penggunaan Anda sendiri. Untuk sebagian besar kasus penggunaan penyetelan instruksi, kami menyarankan untuk memulai dari contoh Memeluk Wajah di bawah. Jika tidak, kami juga memberikan panduan terperinci untuk melakukan Penyetelan Instruksi dengan LLM Foundry.
Anda dapat menginstruksikan penyesuaian model replit-code-v1-3b
pada kumpulan data bergaya Alpaca menggunakan pustaka transformers
.
Untuk mencapai hal tersebut, Anda memerlukan kumpulan data penyetelan instruksi yang sudah dalam format gaya Alpaca, seperti:
Kontributor sumber terbuka Teknium telah membagi repo Alpaca asli ke repo stanford_alpaca-replit yang telah dikonfigurasikan sebelumnya untuk dijalankan dengan model kami. Kami sangat menyarankan Anda menggunakan ini sebagai titik awal.
Repo berisi instruksi tentang cara menyiapkan dan menjalankan pelatih. Format kumpulan data gaya Alpaca yang diperlukan dijelaskan di sini. Kumpulan data apa pun yang diformat dengan gaya Alpaca akan berfungsi dengan pelatih. Misalnya, kumpulan data Code Alpaca dapat digunakan untuk menginstruksikan penyesuaian model kita menggunakan skrip pelatihan di repo Teknium.
Anda juga dapat menggunakan LLM Foundry untuk melakukan Penyetelan Instruksi. Untuk melakukannya, Anda perlu melakukan langkah-langkah tingkat tinggi berikut, dengan detail dan langkah spesifik yang perlu Anda ikuti ditautkan sesuai kebutuhan:
Instal Pengecoran LLM
Untuk memulai LLM Foundry, Anda dapat mengikuti README LLM Foundry ke:
Pada tingkat tinggi, LLM Foundry digunakan dengan mendefinisikan konfigurasi yaml dan kemudian menjalankan skrip pelatihan train/train.py
di repo LLM Foundry dengan konfigurasi yaml yang ditentukan menggunakan perintah seperti composer train/train.py <configuration_yaml_path> <extra_args>
. Dir scripts/train/yamls berisi contoh YAML untuk menyempurnakan dan mempertahankan.
Instal Persyaratan Lain untuk Model Replit
Anda kemudian harus menginstal beberapa dependensi lain yang ditentukan dalam requirements.txt
.
Dapat berupa salah satu dari berikut ini:
Bergantung pada kumpulan data yang Anda gunakan, Anda mungkin perlu atau tidak perlu memformat kumpulan data ke dalam format yang diharapkan oleh LLM Foundry.
Kumpulan data yang Tidak Diperlukan Pemrosesan Awal Khusus
Beberapa dataset seperti mosaikml/dolly_hhrlhf sudah dilengkapi dengan fungsi prapemrosesan yang dapat Anda gunakan segera. Pada saat penerbitan, kumpulan data Hugging Face berikut hadir dengan fungsi pra-pemrosesan yang telah didaftarkan sebelumnya: HuggingFaceH4/databricks_dolly_15k
, Muennighoff/P3
, Muennighoff/flan
, bigscience/P3
, tatsu-lab/alpaca
.
Kumpulan data yang memerlukan Pemrosesan Awal Khusus
Jika Anda tidak menggunakan salah satu kumpulan data di atas, Anda perlu menulis fungsi prapemrosesan Anda sendiri dan mendaftarkannya.
Untuk kumpulan data apa pun, Anda memerlukan setiap contoh diformat sebagai kamus dengan kunci berikut:
formatted_example = { 'prompt' : < prompt_text > , 'response' : < response_text > }
yaitu, setiap sampel adalah kamus dengan dua kunci. Ini adalah format yang diharapkan oleh pemuat data finetuning
di bagian hilir.
Panduan untuk Memformat Kumpulan Data Anda
Bagian Pemformatan Data di repo LLM Foundry asli menjelaskan cara melakukan ini.
Jika Anda perlu membuat fungsi prapemrosesan khusus untuk memasukkan data Anda ke dalam format yang benar, dan langkah-langkah dalam dokumentasi LLM Foundry membingungkan Anda, TL;DR yang diparafrasekan adalah sebagai berikut:
preprocess.py
) di suatu tempat di basis kode Anda, misalnya, di direktori yang sama dengan skrip pelatihan Anda, asalkan dapat diimpor oleh skrip pelatihan Anda.preprocess_function()
yang mengambil satu sampel dari kumpulan data Anda sebagai masukan dan mengembalikan kamus dengan kunci prompt
dan response
seperti dijelaskan di atas, sesuai dengan logika Anda tentang cara memformat sampel ke dalam format yang diperlukan.preprocess.py
) dan fungsi (misalnya, preprocess_function()
) yang Anda buat. Sekarang Anda dapat menggunakan kumpulan data Anda untuk menyempurnakan model Replit.
Memandu
Bagian Penggunaan di repo LLM Foundry asli menjelaskan cara menggunakan kumpulan data Anda dan menyempurnakan model Replit.
Jika Anda menggunakan opsi 1) atau 2) di bagian tersebut, Anda akan mengubah train_loader
, dan eval_loader
jika berlaku, di YAML pelatihan Anda berdasarkan apa yang Anda lakukan di dua langkah sebelumnya. Jika Anda menggunakan opsi 3) (yaitu, kumpulan data streaming), pertama-tama Anda akan mengonversi kumpulan data tersebut ke dalam format yang benar dengan kunci prompt dan respons, lalu Anda akan menuliskannya ke kumpulan data MDS lokal. Setelah ini, Anda dapat memodifikasi YAML Anda agar mengarah ke ini.