Memudahkan evaluasi dan penyesuaian model LLaMA dengan adaptasi peringkat rendah (LoRA).
Memperbarui :
Di cabang
dev
, terdapat UI Obrolan baru dan konfigurasi Mode Demo baru sebagai cara sederhana dan mudah untuk mendemonstrasikan model baru.Namun, versi baru ini belum memiliki fitur penyesuaian dan tidak kompatibel karena menggunakan cara baru untuk menentukan cara model dimuat, dan juga format templat prompt baru (dari LangChain).
Untuk info lebih lanjut, lihat: #28.
LLM.Tuner.Chat.UI.di.Demo.Mode.mp4
Lihat demo di Hugging Face * Hanya melayani demonstrasi UI. Untuk mencoba pelatihan atau pembuatan teks, jalankan di Colab.
1-klik dan jalankan di Google Colab dengan runtime GPU standar.
Memuat dan menyimpan data di Google Drive.
Evaluasi berbagai model LLaMA LoRA yang disimpan di folder Anda atau dari Hugging Face.
Beralih di antara model dasar seperti decapoda-research/llama-7b-hf
, nomic-ai/gpt4all-j
, databricks/dolly-v2-7b
, EleutherAI/gpt-j-6b
, atau EleutherAI/pythia-6.9b
.
Sempurnakan model LLaMA dengan template cepat dan format set data pelatihan yang berbeda.
Muat kumpulan data JSON dan JSONL dari folder Anda, atau bahkan tempelkan teks biasa langsung ke UI.
Mendukung format "prompt"-"penyelesaian" Stanford Alpaca seed_tasks, alpaca_data, dan OpenAI.
Gunakan templat cepat untuk menjaga kumpulan data Anda KERING.
Ada berbagai cara untuk menjalankan aplikasi ini:
Jalankan di Google Colab : Cara paling sederhana untuk memulai, yang Anda perlukan hanyalah akun Google. Waktu proses GPU standar (gratis) cukup untuk menjalankan pembuatan dan pelatihan dengan ukuran batch mikro sebesar 8. Namun, pembuatan dan pelatihan teks jauh lebih lambat dibandingkan layanan cloud lainnya, dan Colab mungkin menghentikan eksekusi jika tidak ada aktivitas saat menjalankan tugas yang panjang.
Jalankan di layanan cloud melalui SkyPilot : Jika Anda memiliki akun layanan cloud (Lambda Labs, GCP, AWS, atau Azure), Anda dapat menggunakan SkyPilot untuk menjalankan aplikasi di layanan cloud. Bucket cloud dapat dipasang untuk menyimpan data Anda.
Jalankan secara lokal : Tergantung pada perangkat keras yang Anda miliki.
Lihat video untuk petunjuk langkah demi langkah.
Buka Notebook Colab ini dan pilih Runtime > Run All ( ⌘/Ctrl+F9
).
Anda akan diminta untuk mengotorisasi akses Google Drive, karena Google Drive akan digunakan untuk menyimpan data Anda. Lihat bagian "Konfigurasi"/"Google Drive" untuk pengaturan dan info lebih lanjut.
Setelah sekitar 5 menit berjalan, Anda akan melihat URL publik di output bagian "Launch"/"Start Gradio UI " (seperti Running on public URL: https://xxxx.gradio.live
). Buka URL di browser Anda untuk menggunakan aplikasi.
Setelah mengikuti panduan instalasi SkyPilot, buat .yaml
untuk menentukan tugas menjalankan aplikasi:
# llm-tuner.yamlresources: akselerator: A10:1 # 1x GPU NVIDIA A10, sekitar US$ 0,6 / jam di Lambda Cloud. Jalankan `sky show-gpus` untuk jenis GPU yang didukung, dan `sky show-gpus [GPU_NAME]` untuk informasi detail jenis GPU. cloud: lambda # Opsional; jika dibiarkan, SkyPilot akan secara otomatis memilih cloud.file_mounts termurah: # Pasang penyimpanan cloud yang sudah ada yang akan digunakan sebagai direktori data. # (untuk menyimpan kumpulan data kereta model terlatih) # Lihat https://skypilot.readthedocs.io/en/latest/reference/storage.html untuk detailnya. /data:name: llm-tuner-data # Pastikan nama ini unik atau Anda pemilik bucket ini. Jika tidak ada, SkyPilot akan mencoba membuat bucket dengan nama ini.store: s3 # Bisa berupa mode [s3, gcs]: MOUNT# Kloning repo Tuner LLaMA-LoRA dan instal dependensinya.setup: | conda create -q python=3.8 -n llm-tuner -y conda activation llm-tuner # Kloning repo LLaMA-LoRA Tuner dan instal dependensinya [ ! -d llm_tuner ] && git clone https://github.com/zetavg/LLaMA-LoRA-Tuner.git llm_tuner echo 'Menginstal dependensi...' pip install -r llm_tuner/requirements.lock.txt # Opsional: instal Wandb ke aktifkan logging ke Weights & Biases pip install Wandb # Opsional: patch bitsandbytes untuk mengatasi kesalahan "libbitsandbytes_cpu.so: simbol tidak terdefinisi: cget_col_row_stats" BITSANDBYTES_LOCATION="$(pip tampilkan bitsandbytes | grep 'Lokasi' | awk '{print $2}')/bitsandbytes" [ -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" ] && [ ! -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so.bak" ] && [ -f "$BITSANDBYTES_LOCATION/libbitsandbytes_cuda121.so" ] && echo 'Menambal bitsandbytes untuk dukungan GPU...' && mv "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so.bak" && cp "$BITSANDBYTES_LOCATION/libbitsandbytes_cuda121.so" "$BITSANDBYTES_LOCATION/libbitsandbytes_cpu.so" conda install -q cudatoolkit -y echo 'Dependensi terpasang.' # Opsional: Instal dan atur Cloudflare Tunnel untuk mengekspos aplikasi ke internet dengan nama domain khusus [ -f /data/secrets/cloudflared_tunnel_token.txt ] && echo "Installing Cloudflare" && curl -L --output cloudflared.deb https: //github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb && sudo dpkg -i cloudflared.deb && sudo layanan cloudflared hapus instalasi || : && sudo cloudflared service install "$(cat /data/secrets/cloudflared_tunnel_token.txt | tr -d 'n')" # Opsional: model pra-unduh echo "Model dasar pra-unduh sehingga Anda tidak perlu menunggu lama setelah aplikasi siap..." python llm_tuner/download_base_model.py --base_model_names='decapoda-research/llama-7b-hf,nomic-ai/gpt4all-j'# Mulai aplikasi. `hf_access_token`, `wandb_api_key` dan `wandb_project` bersifat opsional.dijalankan: | conda mengaktifkan llm-tuner python llm_tuner/app.py --data_dir='/data' --hf_access_token="$([ -f /data/secrets/hf_access_token.txt ] && cat /data/secrets/hf_access_token.txt | tr -d 'n')" --wandb_api_key="$([ -f /data/secrets/wandb_api_key.txt ] && cat /data/secrets/wandb_api_key.txt | tr -d 'n')" --wandb_project='llm-tuner' --timezone='Atlantic/Reykjavik' --base_model= 'penelitian decapoda/llama-7b-hf' --base_model_choices='decapoda-research/llama-7b-hf,nomic-ai/gpt4all-j,databricks/dolly-v2-7b' --berbagi
Kemudian luncurkan klaster untuk menjalankan tugas:
sky launch -c llm-tuner llm-tuner.yaml
-c ...
adalah tanda opsional untuk menentukan nama klaster. Jika tidak ditentukan, SkyPilot akan secara otomatis menghasilkannya.
Anda akan melihat URL publik aplikasi di terminal. Buka URL di browser Anda untuk menggunakan aplikasi.
Perhatikan bahwa keluar dari sky launch
hanya akan keluar dari streaming log dan tidak akan menghentikan tugas. Anda dapat menggunakan sky queue --skip-finished
untuk melihat status tugas yang sedang berjalan atau tertunda, sky logs <cluster_name> <job_id>
connect back to log streaming, dan sky cancel <cluster_name> <job_id>
untuk menghentikan tugas.
Setelah selesai, jalankan sky stop <cluster_name>
untuk menghentikan cluster. Untuk mengakhiri sebuah cluster, jalankan sky down <cluster_name>
.
Ingatlah untuk menghentikan atau mematikan klaster setelah Anda selesai untuk menghindari timbulnya biaya tak terduga. Jalankan sky cost-report
untuk melihat biaya cluster Anda.
Untuk masuk ke mesin cloud, jalankan ssh <cluster_name>
, seperti ssh llm-tuner
.
Jika Anda telah menginstal sshfs
di mesin lokal Anda, Anda dapat memasang sistem file mesin cloud di komputer lokal Anda dengan menjalankan perintah seperti berikut:
mkdir -p /tmp/llm_tuner_server && umount /tmp/llm_tuner_server || : && sshfs llm-tuner:/ /tmp/llm_tuner_server
conda buat -y python=3.8 -n llm-tuner conda aktifkan llm-tuner
instalasi pip -r persyaratan.lock.txt python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --timezone='Atlantic/Reykjavik' --share
Anda akan melihat URL lokal dan publik aplikasi di terminal. Buka URL di browser Anda untuk menggunakan aplikasi.
Untuk opsi selengkapnya, lihat python app.py --help
.
Untuk menguji UI tanpa memuat model bahasa, gunakan tanda --ui_dev_mode
:
python app.py --data_dir='./data' --base_model='decapoda-research/llama-7b-hf' --share --ui_dev_mode
Untuk menggunakan Gradio Auto-Reloading, file
config.yaml
diperlukan karena argumen baris perintah tidak didukung. Ada contoh file untuk memulai:cp config.yaml.sample config.yaml
. Lalu, jalankangradio app.py
.
Lihat video di YouTube.
https://github.com/tloen/alpaca-lora
https://github.com/lxe/simple-llama-finetuner
...
TBC