Di bidang model bahasa besar (LLM) yang berkembang pesat, mengikuti pendekatan mutakhir seperti prompt tuning sangatlah penting. Teknik ini, diterapkan pada model fondasional yang sudah dilatih, meningkatkan performa tanpa biaya komputasi tinggi yang terkait dengan pelatihan model tradisional.
Dalam artikel ini, kita akan membahas dasar-dasar prompt tuning, membandingkannya dengan fine-tuning dan prompt engineering, serta membahas manfaat pentingnya. Kami juga akan memberikan contoh praktis menggunakan platform HuggingFace, di mana kita melakukan prompt tuning pada model bloomz-560m. Panduan ini bertujuan memperdalam pemahaman Anda tentang prompt tuning dan menginspirasi penerapannya dalam proyek Anda.
Apa itu Prompt Tuning?
Prompt tuning adalah teknik yang dirancang untuk meningkatkan performa model bahasa terlatih tanpa mengubah arsitektur intinya. Alih-alih memodifikasi bobot struktural yang dalam dari model, prompt tuning menyesuaikan prompt yang membimbing respons model. Metode ini didasarkan pada pengenalan "soft prompts", sekumpulan parameter yang dapat disetel yang disisipkan di awal urutan masukan.
Diagram tersebut membandingkan pendekatan tradisional penyetelan model dengan prompt tuning. Perhatikan bahwa pada penyetelan model, setiap tugas memerlukan model terpisah. Di sisi lain, prompt tuning memanfaatkan model fondasional yang sama di berbagai tugas dengan menyesuaikan prompt khusus tugas.
Bagaimana cara kerja prompt tuning?
1. Inisialisasi soft prompt
Soft prompt adalah token yang dibangun secara artifisial yang ditambahkan ke urutan masukan model. Prompt ini dapat diinisialisasi dengan beberapa cara. Inisialisasi acak umum digunakan, namun prompt juga dapat diinisialisasi berdasarkan heuristik tertentu. Setelah diinisialisasi, soft prompt ditempelkan di awal data masukan. Saat model memproses data ini, ia mempertimbangkan baik soft prompt maupun masukan sebenarnya.
2. Forward pass dan evaluasi loss
Proses pelatihannya biasanya mirip dengan pelatihan deep neural network (DNN) standar. Dimulai dengan forward pass di mana model memproses masukan gabungan melalui lapisannya, menghasilkan keluaran. Keluaran ini lalu dievaluasi terhadap hasil yang diharapkan menggunakan fungsi loss, yang mengukur selisih antara keluaran model dan nilai yang sebenarnya diharapkan.
Backpropagation
Selama backpropagation, galat dipropagasikan kembali melalui jaringan. Namun, alih-alih menyesuaikan bobot jaringan, kita hanya memodifikasi parameter soft prompt. Proses ini diulang selama beberapa epoch, dengan soft prompt secara bertahap belajar membentuk pemrosesan masukan oleh model sedemikian rupa sehingga meminimalkan galat untuk tugas yang diberikan.
Iterasi
Proses forward pass, evaluasi loss, dan backpropagation diulang selama beberapa epoch. Seiring waktu, soft prompt ini belajar membentuk masukan dengan cara yang secara konsisten menurunkan skor loss, sehingga meningkatkan performa spesifik tugas dari model tanpa mengorbankan kemampuan dasarnya.
Prompt Tuning VS Fine-Tuning VS Prompt Engineering
Prompt tuning, fine-tuning, dan prompt engineering adalah tiga metode berbeda yang diterapkan pada LLM terlatih untuk meningkatkan performanya pada tugas tertentu. Metode-metode ini tidak saling eksklusif dan masing-masing sesuai untuk kasus penggunaan tertentu.
Fine-tuning
Fine-tuning paling intensif sumber daya, melibatkan pelatihan ulang komprehensif model pada dataset tertentu untuk tujuan spesifik. Ini menyesuaikan bobot model terlatih, mengoptimalkannya untuk nuansa detail data namun membutuhkan sumber daya komputasi yang besar dan meningkatkan risiko overfitting. Banyak LLM seperti ChatGPT menjalani fine-tuning setelah pelatihan generik awal pada tugas prediksi kata berikutnya. Fine-tuning mengajarkan model-model ini cara berfungsi sebagai asisten digital, menjadikannya jauh lebih berguna daripada model yang dilatih secara umum.
Prompt tuning
Prompt tuning menyesuaikan serangkaian parameter tambahan, yang dikenal sebagai "soft prompts", yang diintegrasikan ke dalam pemrosesan masukan model. Metode ini memodifikasi cara model menafsirkan prompt masukan tanpa perlu mengubah seluruh bobotnya, menawarkan keseimbangan antara peningkatan performa dan efisiensi sumber daya. Ini sangat bernilai ketika sumber daya komputasi terbatas atau ketika dibutuhkan fleksibilitas di berbagai tugas, karena setelah teknik ini diterapkan bobot model asli tetap tidak berubah.
Prompt engineering
Prompt engineering, di sisi lain, sama sekali tidak melibatkan pelatihan atau pelatihan ulang. Ini sepenuhnya bergantung pada pengguna yang merancang prompt untuk model. Teknik ini memerlukan pemahaman bernuansa tentang kemampuan pemrosesan model dan memanfaatkan pengetahuan intrinsik yang tertanam di dalam model. Prompt engineering tidak memerlukan sumber daya komputasi karena hanya mengandalkan perumusan masukan yang strategis untuk mencapai hasil. Lihat kursus DataCamp tentang prompt engineering untuk pengembang untuk mempelajari lebih lanjut.
Perbandingan
Masing-masing teknik ini menawarkan pendekatan berbeda untuk memanfaatkan kemampuan model terlatih. Pilihan di antara ketiganya bergantung pada kebutuhan spesifik aplikasi, seperti ketersediaan sumber daya komputasi, kebutuhan kustomisasi model, dan tingkat interaksi yang diinginkan dengan parameter pembelajaran model.
Metode
Intensitas Sumber Daya
Perlu Pelatihan
Terbaik Untuk
Fine-Tuning
Tinggi
Ya
Tugas yang memerlukan kustomisasi model mendalam
Prompt Tuning
Rendah
Ya
Menjaga integritas model di berbagai tugas
Prompt Engineering
Tidak Ada
Tidak
Adaptasi cepat tanpa biaya komputasi.
Setiap metode punya tempatnya masing-masing, bergantung pada kebutuhan spesifik proyek Anda.
Manfaat Prompt Tuning
Prompt tuning menghadirkan beberapa manfaat utama, menjadikannya teknik yang tak tergantikan untuk mengoptimalkan model bahasa besar.
Efisiensi sumber daya
Prompt tuning mempertahankan parameter model terlatih tetap tidak berubah, sehingga secara signifikan mengurangi daya komputasi yang dibutuhkan. Efisiensi ini sangat krusial di lingkungan dengan sumber daya terbatas, memungkinkan penggunaan model canggih tanpa biaya tinggi. Seiring meningkatnya ukuran rata-rata model fondasional, "membekukan" parameter model menjadi semakin menarik karena tidak perlu menerapkan model terpisah untuk setiap tugas.
Penerapan cepat
Berbeda dengan fine-tuning komprehensif, prompt tuning hanya memerlukan penyesuaian pada sejumlah kecil parameter soft prompt. Ini mempercepat proses adaptasi, memungkinkan peralihan yang lebih cepat antar tugas dan mengurangi waktu henti.
Integritas model dan retensi pengetahuan
Dengan menjaga arsitektur inti dan bobot model tetap utuh, prompt tuning mempertahankan kemampuan dan pengetahuan asli yang tertanam dalam model terlatih. Hal ini penting untuk menjaga keandalan dan kemampuan generalisasi model di berbagai aplikasi.
Fleksibilitas tugas
Prompt tuning memfasilitasi penggunaan satu model fondasional untuk banyak tugas hanya dengan mengganti soft prompt. Pendekatan ini mengurangi kebutuhan melatih dan memelihara model terpisah untuk setiap tugas spesifik, meningkatkan skalabilitas dan kesederhanaan dalam pengelolaan model.
Keterlibatan manusia berkurang
Prompt tuning membutuhkan intervensi manusia yang jauh lebih sedikit dibandingkan prompt engineering, di mana perancangan prompt yang cermat untuk suatu tugas tertentu bisa rentan kesalahan dan memakan waktu. Sebaliknya, optimasi soft prompt secara otomatis selama pelatihan meminimalkan kesalahan manusia dan memaksimalkan efisiensi.
Performa yang kompetitif
Riset menunjukkan bahwa untuk model besar, prompt tuning dapat mencapai tingkat performa yang sebanding dengan fine-tuning. Manfaat ini semakin signifikan seiring bertambahnya ukuran model, menggabungkan efisiensi tinggi dengan hasil yang kuat.
Pendekatan Bertahap untuk Prompt Tuning
Untuk panduan ini, kita akan menerapkan prompt tuning pada model bloomz-560m dari BigScience. Kita akan bekerja di dalam ekosistem Hugging Face menggunakan pustaka PEFT (Parameter-Efficient Fine-Tuning).
Walaupun di sini kita fokus pada tugas causal language modeling, pustaka PEFT mendukung berbagai tugas, model, dan teknik tuning. Anda dapat menemukan metode PEFT yang kompatibel untuk model dan tugas lain di halaman dokumentasi PEFT.
1. Memuat model dan tokenizer
Untuk memulai, kita memuat model dan tokenizer dari model BigScience bloomz-560m. Tokenizer digunakan untuk memproses masukan teks, sementara model fondasional menangani tugas causal language modeling. Parameter trust_remote_code=True memungkinkan Anda menggunakan kode khusus yang disediakan pengelola model untuk arsitektur tertentu.
Meskipun ini berguna untuk mendapatkan fungsionalitas penuh, percayalah pada kode model hanya jika berasal dari sumber tepercaya. Hindari menggunakan kode yang tidak tepercaya untuk model dari pembuat yang tidak dikenal atau tidak terverifikasi, karena dapat menimbulkan risiko keamanan atau stabilitas.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name ="bigscience/bloomz-560m"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True)Didukung oleh
2. Inferensi dengan model fondasional
Sebelum melakukan tuning apa pun, penting untuk menetapkan baseline dengan menjalankan inferensi menggunakan model fondasional yang belum dituning. Dengan menggunakan prompt seperti "I want you to act as a logistician," kita dapat mengamati bagaimana model menghasilkan respons tanpa tuning lebih lanjut. Pastikan untuk menyertakan satu spasi ekstra setelah prompt, jika tidak model mungkin tidak menghasilkan apa pun.
Ini berfungsi sebagai acuan untuk membandingkan peningkatan setelah tuning.
Kita akan menggunakan fungsi generate_text khusus agar lebih mudah.
defgenerate_text(model, tokenizer, prompt_text, max_tokens):
prompt_text = tokenizer(prompt_text, return_tensors="pt")
outputs = model.generate(
input_ids=prompt_text["input_ids"],
attention_mask=prompt_text["attention_mask"],
max_length=max_tokens,
repetition_penalty=1.5,
eos_token_id=tokenizer.eos_token_id
)return tokenizer.batch_decode(outputs, skip_special_tokens=True)
initial_output = generate_text(model, tokenizer,"I want you to act as a logistician. ",100)print("Initial model output:", initial_output)Didukung oleh
Berikut keluaran modelnya:
['I want you to act as a logistician. You will be able to: Analyze the data']
Seperti yang Anda lihat, model belum terlalu yakin dengan konteksnya.
3. Dataset
Dataset adalah elemen krusial dalam prompt tuning. Kita menggunakan dataset `awesome-chatgpt-prompts` untuk tuning. Dataset ini menyediakan konten motivasional untuk tuning, memastikan model menyesuaikan responsnya sesuai.
from datasets import load_dataset
dataset_prompt ="fka/awesome-chatgpt-prompts"
data_prompt = load_dataset(dataset_prompt)
data_prompt = data_prompt.map(lambda x: tokenizer(x["prompt"]), batched=True)
train_prompts = data_prompt["train"].select(range(50))Didukung oleh
Kita melakukan tokenisasi dataset dan menyiapkan subset kecil untuk pelatihan.
4. Tuning
Sekarang bagian yang paling menarik; kita mengonfigurasi prompt tuning menggunakan kelas PromptTuningConfig dari pustaka PEFT.
from peft import get_peft_model, PromptTuningConfig, TaskType, PromptTuningInit
tuning_config = PromptTuningConfig(
task_type=TaskType.CAUSAL_LM, #This type indicates the model will generate text.
prompt_tuning_init=PromptTuningInit.RANDOM, #The added virtual tokens are initializad with random numbers
num_virtual_tokens=4, #Number of virtual tokens to be added and trained.
tokenizer_name_or_path=model_name
)
peft_model = get_peft_model(model, tuning_config)Didukung oleh
Argumen pelatihan ditentukan menggunakan kelas TrainingArguments.
from transformers import TrainingArguments
training_args = TrainingArguments(
use_cpu=True,# This is necessary for CPU clusters.
output_dir ="./",
auto_find_batch_size=True,# Find a suitable batch size that will fit into memory automatically, you can also use a custom batch size
learning_rate=0.005,
num_train_epochs=5)Didukung oleh
Objek Trainer mengelola proses pelatihan. Dengan DataCollatorForLanguageModeling, data collator memastikan sampel pelatihan diformat dengan tepat. Fase pelatihan dimulai dengan metode train, melakukan fine-tuning model bloomz-560m untuk tugas prompt yang spesifik.
from transformers import Trainer, DataCollatorForLanguageModeling
trainer = Trainer(
model=peft_model,# We pass in the PEFT version of the foundation model, bloomz-560M
args=training_args,#The args for the training.
train_dataset=train_prompts,#The dataset used to train the model.
data_collator=DataCollatorForLanguageModeling(tokenizer, mlm=False)# mlm=False indicates not to use masked language modeling)
trainer.train()Didukung oleh
5. Inferensi dengan model yang sudah dituning
Model yang sudah dituning disimpan di objek trainer, kita dapat menggunakan trainer.model untuk mengaksesnya. Kita gunakan fungsi generate_text untuk menjalankan inferensi dengan model yang sudah dituning!
tuned_output = generate_text(trainer.model, tokenizer,"I want you to act as a logistician. ",100)print("Tuned model output:", tuned_output)Didukung oleh
Berikut keluaran dari model yang sudah dituning:
['I want you to act as a logistician. You will be responsible for the logistics of your business.']
Seperti yang Anda lihat sekarang, model mengetahui apa yang dilakukan seorang logistik. Silakan bereksperimen dengan berbagai prompt, model, dan dataset!
Dalami Generative AI
Prompt tuning adalah alat yang ampuh untuk membuat model bahasa besar lebih efisien pada tugas tertentu. Kita telah mengeksplorasi prompt tuning dengan terlebih dahulu menjelaskan apa itu dan bagaimana cara kerjanya. Lalu kita membandingkannya dengan teknik serupa lainnya: fine-tuning dan prompt engineering. Terakhir, kita membahas manfaatnya dan melalui panduan langkah demi langkah untuk menerapkan prompt tuning pada model pratampil.
Seiring bidang AI generatif terus berkembang, penting untuk mengikuti perkembangan terbaru. Untuk lebih meningkatkan keterampilan dan pemahaman Anda tentang AI, Datacamp menawarkan berbagai sumber daya mendalam. Saya mendorong Anda untuk menjelajahi tutorial komprehensif berikut:
Saya Dimitri Didmanidze, seorang ilmuwan data yang saat ini menempuh pendidikan Magister Matematika dengan fokus pada Machine Learning. Perjalanan akademis saya juga mencakup riset tentang kapabilitas model berbasis transformer dan mengajar di tingkat universitas, yang memperkaya pemahaman saya tentang konsep teoretis yang kompleks. Saya juga pernah bekerja di industri perbankan, di mana saya menerapkan prinsip-prinsip ini untuk mengatasi tantangan data di dunia nyata.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Pelajari dasar-dasar kecerdasan buatan (AI), pelajari cara memanfaatkan AI secara efektif untuk pekerjaan, dan jelajahi model seperti ChatGPT untuk memahami lanskap AI yang dinamis.
Temukan potensi penuh dari LLMs melalui kursus konseptual kami yang mencakup aplikasi LLMs, metode pelatihan, pertimbangan etika, dan penelitian terbaru.
Di bidang model bahasa besar (LLM) yang berkembang pesat, mengikuti pendekatan mutakhir seperti prompt tuning sangatlah penting. Teknik ini, diterapkan pada model fondasional yang sudah dilatih, meningkatkan performa tanpa biaya komputasi tinggi yang terkait dengan pelatihan model tradisional.
Dalam artikel ini, kita akan membahas dasar-dasar prompt tuning, membandingkannya dengan fine-tuning dan prompt engineering, serta membahas manfaat pentingnya. Kami juga akan memberikan contoh praktis menggunakan platform HuggingFace, di mana kita melakukan prompt tuning pada model bloomz-560m. Panduan ini bertujuan memperdalam pemahaman Anda tentang prompt tuning dan menginspirasi penerapannya dalam proyek Anda.
Apa itu Prompt Tuning?
Prompt tuning adalah teknik yang dirancang untuk meningkatkan performa model bahasa terlatih tanpa mengubah arsitektur intinya. Alih-alih memodifikasi bobot struktural yang dalam dari model, prompt tuning menyesuaikan prompt yang membimbing respons model. Metode ini didasarkan pada pengenalan "soft prompts", sekumpulan parameter yang dapat disetel yang disisipkan di awal urutan masukan.
Sumber gambar
Diagram tersebut membandingkan pendekatan tradisional penyetelan model dengan prompt tuning. Perhatikan bahwa pada penyetelan model, setiap tugas memerlukan model terpisah. Di sisi lain, prompt tuning memanfaatkan model fondasional yang sama di berbagai tugas dengan menyesuaikan prompt khusus tugas.
Bagaimana cara kerja prompt tuning?
1. Inisialisasi soft prompt
Soft prompt adalah token yang dibangun secara artifisial yang ditambahkan ke urutan masukan model. Prompt ini dapat diinisialisasi dengan beberapa cara. Inisialisasi acak umum digunakan, namun prompt juga dapat diinisialisasi berdasarkan heuristik tertentu. Setelah diinisialisasi, soft prompt ditempelkan di awal data masukan. Saat model memproses data ini, ia mempertimbangkan baik soft prompt maupun masukan sebenarnya.
2. Forward pass dan evaluasi loss
Proses pelatihannya biasanya mirip dengan pelatihan deep neural network (DNN) standar. Dimulai dengan forward pass di mana model memproses masukan gabungan melalui lapisannya, menghasilkan keluaran. Keluaran ini lalu dievaluasi terhadap hasil yang diharapkan menggunakan fungsi loss, yang mengukur selisih antara keluaran model dan nilai yang sebenarnya diharapkan.
Backpropagation
Selama backpropagation, galat dipropagasikan kembali melalui jaringan. Namun, alih-alih menyesuaikan bobot jaringan, kita hanya memodifikasi parameter soft prompt. Proses ini diulang selama beberapa epoch, dengan soft prompt secara bertahap belajar membentuk pemrosesan masukan oleh model sedemikian rupa sehingga meminimalkan galat untuk tugas yang diberikan.
Iterasi
Proses forward pass, evaluasi loss, dan backpropagation diulang selama beberapa epoch. Seiring waktu, soft prompt ini belajar membentuk masukan dengan cara yang secara konsisten menurunkan skor loss, sehingga meningkatkan performa spesifik tugas dari model tanpa mengorbankan kemampuan dasarnya.
Prompt Tuning VS Fine-Tuning VS Prompt Engineering
Prompt tuning, fine-tuning, dan prompt engineering adalah tiga metode berbeda yang diterapkan pada LLM terlatih untuk meningkatkan performanya pada tugas tertentu. Metode-metode ini tidak saling eksklusif dan masing-masing sesuai untuk kasus penggunaan tertentu.
Fine-tuning
Fine-tuning paling intensif sumber daya, melibatkan pelatihan ulang komprehensif model pada dataset tertentu untuk tujuan spesifik. Ini menyesuaikan bobot model terlatih, mengoptimalkannya untuk nuansa detail data namun membutuhkan sumber daya komputasi yang besar dan meningkatkan risiko overfitting. Banyak LLM seperti ChatGPT menjalani fine-tuning setelah pelatihan generik awal pada tugas prediksi kata berikutnya. Fine-tuning mengajarkan model-model ini cara berfungsi sebagai asisten digital, menjadikannya jauh lebih berguna daripada model yang dilatih secara umum.
Prompt tuning
Prompt tuning menyesuaikan serangkaian parameter tambahan, yang dikenal sebagai "soft prompts", yang diintegrasikan ke dalam pemrosesan masukan model. Metode ini memodifikasi cara model menafsirkan prompt masukan tanpa perlu mengubah seluruh bobotnya, menawarkan keseimbangan antara peningkatan performa dan efisiensi sumber daya. Ini sangat bernilai ketika sumber daya komputasi terbatas atau ketika dibutuhkan fleksibilitas di berbagai tugas, karena setelah teknik ini diterapkan bobot model asli tetap tidak berubah.
Prompt engineering
Prompt engineering, di sisi lain, sama sekali tidak melibatkan pelatihan atau pelatihan ulang. Ini sepenuhnya bergantung pada pengguna yang merancang prompt untuk model. Teknik ini memerlukan pemahaman bernuansa tentang kemampuan pemrosesan model dan memanfaatkan pengetahuan intrinsik yang tertanam di dalam model. Prompt engineering tidak memerlukan sumber daya komputasi karena hanya mengandalkan perumusan masukan yang strategis untuk mencapai hasil. Lihat kursus DataCamp tentang prompt engineering untuk pengembang untuk mempelajari lebih lanjut.
Perbandingan
Masing-masing teknik ini menawarkan pendekatan berbeda untuk memanfaatkan kemampuan model terlatih. Pilihan di antara ketiganya bergantung pada kebutuhan spesifik aplikasi, seperti ketersediaan sumber daya komputasi, kebutuhan kustomisasi model, dan tingkat interaksi yang diinginkan dengan parameter pembelajaran model.
Metode
Intensitas Sumber Daya
Perlu Pelatihan
Terbaik Untuk
Fine-Tuning
Tinggi
Ya
Tugas yang memerlukan kustomisasi model mendalam
Prompt Tuning
Rendah
Ya
Menjaga integritas model di berbagai tugas
Prompt Engineering
Tidak Ada
Tidak
Adaptasi cepat tanpa biaya komputasi.
Setiap metode punya tempatnya masing-masing, bergantung pada kebutuhan spesifik proyek Anda.
Manfaat Prompt Tuning
Prompt tuning menghadirkan beberapa manfaat utama, menjadikannya teknik yang tak tergantikan untuk mengoptimalkan model bahasa besar.
Efisiensi sumber daya
Prompt tuning mempertahankan parameter model terlatih tetap tidak berubah, sehingga secara signifikan mengurangi daya komputasi yang dibutuhkan. Efisiensi ini sangat krusial di lingkungan dengan sumber daya terbatas, memungkinkan penggunaan model canggih tanpa biaya tinggi. Seiring meningkatnya ukuran rata-rata model fondasional, "membekukan" parameter model menjadi semakin menarik karena tidak perlu menerapkan model terpisah untuk setiap tugas.
Penerapan cepat
Berbeda dengan fine-tuning komprehensif, prompt tuning hanya memerlukan penyesuaian pada sejumlah kecil parameter soft prompt. Ini mempercepat proses adaptasi, memungkinkan peralihan yang lebih cepat antar tugas dan mengurangi waktu henti.
Integritas model dan retensi pengetahuan
Dengan menjaga arsitektur inti dan bobot model tetap utuh, prompt tuning mempertahankan kemampuan dan pengetahuan asli yang tertanam dalam model terlatih. Hal ini penting untuk menjaga keandalan dan kemampuan generalisasi model di berbagai aplikasi.
Fleksibilitas tugas
Prompt tuning memfasilitasi penggunaan satu model fondasional untuk banyak tugas hanya dengan mengganti soft prompt. Pendekatan ini mengurangi kebutuhan melatih dan memelihara model terpisah untuk setiap tugas spesifik, meningkatkan skalabilitas dan kesederhanaan dalam pengelolaan model.
Keterlibatan manusia berkurang
Prompt tuning membutuhkan intervensi manusia yang jauh lebih sedikit dibandingkan prompt engineering, di mana perancangan prompt yang cermat untuk suatu tugas tertentu bisa rentan kesalahan dan memakan waktu. Sebaliknya, optimasi soft prompt secara otomatis selama pelatihan meminimalkan kesalahan manusia dan memaksimalkan efisiensi.
Performa yang kompetitif
Riset menunjukkan bahwa untuk model besar, prompt tuning dapat mencapai tingkat performa yang sebanding dengan fine-tuning. Manfaat ini semakin signifikan seiring bertambahnya ukuran model, menggabungkan efisiensi tinggi dengan hasil yang kuat.
Pendekatan Bertahap untuk Prompt Tuning
Untuk panduan ini, kita akan menerapkan prompt tuning pada model bloomz-560m dari BigScience. Kita akan bekerja di dalam ekosistem Hugging Face menggunakan pustaka PEFT (Parameter-Efficient Fine-Tuning).
Walaupun di sini kita fokus pada tugas causal language modeling, pustaka PEFT mendukung berbagai tugas, model, dan teknik tuning. Anda dapat menemukan metode PEFT yang kompatibel untuk model dan tugas lain di halaman dokumentasi PEFT.
1. Memuat model dan tokenizer
Untuk memulai, kita memuat model dan tokenizer dari model BigScience bloomz-560m. Tokenizer digunakan untuk memproses masukan teks, sementara model fondasional menangani tugas causal language modeling. Parameter
trust_remote_code=Truememungkinkan Anda menggunakan kode khusus yang disediakan pengelola model untuk arsitektur tertentu.Meskipun ini berguna untuk mendapatkan fungsionalitas penuh, percayalah pada kode model hanya jika berasal dari sumber tepercaya. Hindari menggunakan kode yang tidak tepercaya untuk model dari pembuat yang tidak dikenal atau tidak terverifikasi, karena dapat menimbulkan risiko keamanan atau stabilitas.
2. Inferensi dengan model fondasional
Sebelum melakukan tuning apa pun, penting untuk menetapkan baseline dengan menjalankan inferensi menggunakan model fondasional yang belum dituning. Dengan menggunakan prompt seperti "I want you to act as a logistician," kita dapat mengamati bagaimana model menghasilkan respons tanpa tuning lebih lanjut. Pastikan untuk menyertakan satu spasi ekstra setelah prompt, jika tidak model mungkin tidak menghasilkan apa pun.
Ini berfungsi sebagai acuan untuk membandingkan peningkatan setelah tuning.
Kita akan menggunakan fungsi
generate_textkhusus agar lebih mudah.Berikut keluaran modelnya:
['I want you to act as a logistician. You will be able to: Analyze the data']Seperti yang Anda lihat, model belum terlalu yakin dengan konteksnya.
3. Dataset
Dataset adalah elemen krusial dalam prompt tuning. Kita menggunakan dataset `awesome-chatgpt-prompts` untuk tuning. Dataset ini menyediakan konten motivasional untuk tuning, memastikan model menyesuaikan responsnya sesuai.
Kita melakukan tokenisasi dataset dan menyiapkan subset kecil untuk pelatihan.
4. Tuning
Sekarang bagian yang paling menarik; kita mengonfigurasi prompt tuning menggunakan kelas
PromptTuningConfigdari pustakaPEFT.Argumen pelatihan ditentukan menggunakan kelas
TrainingArguments.Objek
Trainermengelola proses pelatihan. DenganDataCollatorForLanguageModeling, data collator memastikan sampel pelatihan diformat dengan tepat. Fase pelatihan dimulai dengan metodetrain, melakukan fine-tuning modelbloomz-560muntuk tugas prompt yang spesifik.5. Inferensi dengan model yang sudah dituning
Model yang sudah dituning disimpan di objek trainer, kita dapat menggunakan
trainer.modeluntuk mengaksesnya. Kita gunakan fungsigenerate_textuntuk menjalankan inferensi dengan model yang sudah dituning!Berikut keluaran dari model yang sudah dituning:
['I want you to act as a logistician. You will be responsible for the logistics of your business.']Seperti yang Anda lihat sekarang, model mengetahui apa yang dilakukan seorang logistik. Silakan bereksperimen dengan berbagai prompt, model, dan dataset!
Dalami Generative AI
Prompt tuning adalah alat yang ampuh untuk membuat model bahasa besar lebih efisien pada tugas tertentu. Kita telah mengeksplorasi prompt tuning dengan terlebih dahulu menjelaskan apa itu dan bagaimana cara kerjanya. Lalu kita membandingkannya dengan teknik serupa lainnya: fine-tuning dan prompt engineering. Terakhir, kita membahas manfaatnya dan melalui panduan langkah demi langkah untuk menerapkan prompt tuning pada model pratampil.
Seiring bidang AI generatif terus berkembang, penting untuk mengikuti perkembangan terbaru. Untuk lebih meningkatkan keterampilan dan pemahaman Anda tentang AI, Datacamp menawarkan berbagai sumber daya mendalam. Saya mendorong Anda untuk menjelajahi tutorial komprehensif berikut: