Kerangka kerja pembelajaran mendalam deklaratif yang dibangun untuk skala dan efisiensi.
Penting
Komunitas kami telah pindah ke Discord -- silakan bergabung dengan kami di sana!
Ludwig adalah kerangka kerja kode rendah untuk membangun model AI khusus seperti LLM dan jaringan saraf dalam lainnya.
Fitur utama:
Ludwig dihosting oleh Linux Foundation AI & Data.
Instal dari PyPi. Ketahuilah bahwa Ludwig memerlukan Python 3.8+.
pip install ludwig
Atau instal dengan semua dependensi opsional:
pip install ludwig[full]
Silakan lihat berkontribusi untuk petunjuk instalasi lebih rinci.
Ingin mengintip sekilas beberapa fitur Ludwig 0.8? Lihat Notebook Colab ini
Ingin menyempurnakan Llama-2 atau Mistral? Lihat buku catatan ini:
Untuk tutorial lengkapnya, lihat panduan resmi memulai, atau lihat Contoh menyeluruh.
Mari kita sempurnakan model bahasa besar LLaMA-2-7b yang telah dilatih sebelumnya untuk mengikuti instruksi seperti chatbot ("penyetelan instruksi").
Kami akan menggunakan dataset Stanford Alpaca, yang akan diformat sebagai file seperti tabel yang terlihat seperti ini:
petunjuk | masukan | keluaran |
---|---|---|
Berikan tiga tips untuk tetap sehat. | 1.Makan makanan yang seimbang dan pastikan untuk menyertakan... | |
Susunlah benda-benda di bawah ini secara berurutan... | kue, aku, makan | saya sedang makan kue. |
Tuliskan paragraf pengantar tentang seorang tokoh terkenal... | Michelle Obama | Michelle Obama adalah seorang wanita inspiratif yang ... |
... | ... | ... |
Buat file konfigurasi YAML bernama model.yaml
dengan yang berikut:
model_type : llm
base_model : meta-llama/Llama-2-7b-hf
quantization :
bits : 4
adapter :
type : lora
prompt :
template : |
Below is an instruction that describes a task, paired with an input that may provide further context.
Write a response that appropriately completes the request.
### Instruction:
{instruction}
### Input:
{input}
### Response:
input_features :
- name : prompt
type : text
output_features :
- name : output
type : text
trainer :
type : finetune
learning_rate : 0.0001
batch_size : 1
gradient_accumulation_steps : 16
epochs : 3
learning_rate_scheduler :
decay : cosine
warmup_fraction : 0.01
preprocessing :
sample_ratio : 0.1
backend :
type : local
Dan sekarang mari kita latih modelnya:
export HUGGING_FACE_HUB_TOKEN = " <api_token> "
ludwig train --config model.yaml --dataset " ludwig://alpaca "
Mari kita bangun jaringan saraf yang memprediksi apakah ulasan kritikus film tentang Rotten Tomatoes positif atau negatif.
Dataset kami akan menjadi file CSV yang terlihat seperti ini:
Judul film | konten_rating | genre | waktu proses | kritikus_top | ulasan_konten | direkomendasikan |
---|---|---|---|---|---|---|
Bebaskan Kami dari Kejahatan | R | Aksi & Petualangan, Horor | 117.0 | BENAR | Sutradara Scott Derrickson dan rekan penulisnya, Paul Harris Boardman, menyampaikan prosedur rutin dengan ketakutan yang biasa-biasa saja. | 0 |
barbara | PG-13 | Rumah Seni & Internasional, Drama | 105.0 | PALSU | Entah bagaimana, dalam narasi yang menggugah ini, Barbara berhasil mempertahankan prinsipnya, kemanusiaannya, dan keberaniannya, serta berjuang untuk menyelamatkan seorang gadis remaja pembangkang yang hidupnya coba dihancurkan oleh Komunis. | 1 |
Bos yang Mengerikan | R | Komedi | 98.0 | PALSU | Para bos ini tidak bisa membenarkan pembunuhan atau kenangan lucu yang abadi, sehingga secara fatal mengorbankan sebuah lelucon yang bisa saja bagus tetapi berakhir biasa-biasa saja. | 0 |
... | ... | ... | ... | ... | ... | ... |
Unduh contoh kumpulan data dari sini.
wget https://ludwig.ai/latest/data/rotten_tomatoes.csv
Selanjutnya buat file konfigurasi YAML bernama model.yaml
dengan yang berikut:
input_features :
- name : genres
type : set
preprocessing :
tokenizer : comma
- name : content_rating
type : category
- name : top_critic
type : binary
- name : runtime
type : number
- name : review_content
type : text
encoder :
type : embed
output_features :
- name : recommended
type : binary
Itu saja! Sekarang mari kita latih modelnya:
ludwig train --config model.yaml --dataset rotten_tomatoes.csv
Selamat menjadi model
Coba terapkan Ludwig ke data Anda. Hubungi Discord jika Anda memiliki pertanyaan.
Boilerplate pembelajaran mesin minimal
Ludwig menangani kompleksitas teknik pembelajaran mesin secara langsung, sehingga ilmuwan riset dapat fokus dalam membangun model pada tingkat abstraksi tertinggi. Pemrosesan awal data, pengoptimalan hyperparameter, manajemen perangkat, dan pelatihan terdistribusi untuk model torch.nn.Module
sepenuhnya gratis.
Bangun tolok ukur Anda dengan mudah
Membuat garis dasar yang canggih dan membandingkannya dengan model baru adalah perubahan konfigurasi yang sederhana.
Terapkan arsitektur baru dengan mudah ke berbagai masalah dan kumpulan data
Terapkan model baru di seluruh rangkaian tugas dan kumpulan data yang didukung Ludwig. Ludwig menyertakan perangkat benchmarking lengkap yang dapat diakses oleh pengguna mana pun, untuk menjalankan eksperimen dengan banyak model di beberapa kumpulan data hanya dengan konfigurasi sederhana.
Pemrosesan awal, pemodelan, dan metrik data yang sangat dapat dikonfigurasi
Setiap dan semua aspek arsitektur model, loop pelatihan, pencarian hyperparameter, dan infrastruktur backend dapat dimodifikasi sebagai bidang tambahan dalam konfigurasi deklaratif untuk menyesuaikan alur guna memenuhi kebutuhan Anda. Untuk detail tentang apa yang dapat dikonfigurasi, lihat dokumen Konfigurasi Ludwig.
Pembelajaran multi-modal dan multi-tugas yang out-of-the-box
Padu padankan data tabular, teks, gambar, dan bahkan audio ke dalam konfigurasi model yang kompleks tanpa menulis kode.
Ekspor dan pelacakan model kaya
Lacak semua uji coba dan metrik secara otomatis dengan alat seperti Tensorboard, Comet ML, Weights & Biases, MLFlow, dan Aim Stack.
Secara otomatis menskalakan pelatihan ke cluster multi-GPU dan multi-node
Beralih dari pelatihan di komputer lokal Anda ke cloud tanpa perubahan kode.
Antarmuka berkode rendah untuk model tercanggih, termasuk Huggingface Transformers yang telah dilatih sebelumnya
Ludwig juga berintegrasi secara alami dengan model terlatih, seperti yang tersedia di Huggingface Transformers. Pengguna dapat memilih dari banyak koleksi model PyTorch terlatih yang canggih untuk digunakan tanpa perlu menulis kode apa pun. Misalnya, melatih model analisis sentimen berbasis BERT dengan Ludwig semudah:
ludwig train --dataset sst5 --config_str " {input_features: [{name: sentence, type: text, encoder: bert}], output_features: [{name: label, type: category}]} "
Antarmuka kode rendah untuk AutoML
Ludwig AutoML memungkinkan pengguna mendapatkan model terlatih hanya dengan menyediakan kumpulan data, kolom target, dan anggaran waktu.
auto_train_results = ludwig . automl . auto_train ( dataset = my_dataset_df , target = target_column_name , time_limit_s = 7200 )
Produksi yang mudah
Ludwig memudahkan penyajian model pembelajaran mendalam, termasuk pada GPU. Luncurkan REST API untuk model Ludwig terlatih Anda.
ludwig serve --model_path=/path/to/model
Ludwig mendukung ekspor model ke bundel Torchscript yang efisien.
ludwig export_torchscript -–model_path=/path/to/model
Baca publikasi kami tentang Ludwig, ML deklaratif, dan tolok ukur SoTA Ludwig.
Pelajari lebih lanjut tentang cara kerja Ludwig, cara memulai, dan kerjakan lebih banyak contoh.
Jika Anda tertarik untuk berkontribusi, memiliki pertanyaan, komentar, atau pemikiran untuk dibagikan, atau jika Anda hanya ingin mengetahui informasi terbaru, silakan pertimbangkan untuk bergabung dengan Komunitas Discord kami dan ikuti kami di X!
Ludwig adalah proyek sumber terbuka yang dikelola secara aktif dan mengandalkan kontribusi dari orang-orang seperti Anda. Pertimbangkan untuk bergabung dengan grup aktif kontributor Ludwig untuk menjadikan Ludwig kerangka kerja yang lebih mudah diakses dan kaya fitur untuk digunakan semua orang!