1 poin oleh GN⁺ 2024-07-02 | 1 komentar | Bagikan ke WhatsApp
  • Dalam 724 pengujian untuk melakukan ekstraksi data terstruktur dari siaran pers ISAF, beberapa model fine-tuning mencatat akurasi lebih tinggi daripada keluarga GPT-4
  • Perbandingan mencakup GPT-4o, GPT-4 Turbo, GPT-3.5 Turbo serta model fine-tuning berbasis TinyLlama, Mistral, Llama3, Solar, dan GPT-3.5
  • Model OpenAI selalu menghasilkan JSON yang valid, dan fine-tuning Mistral serta Llama3 juga stabil, tetapi TinyLlama menunjukkan perbedaan besar dalam nilai yang hilang dan kualitas JSON tergantung template
  • Dalam agregasi akhir, Mistral-7B yang di-fine-tune dengan OpenPipe menempati peringkat pertama, disusul sangat dekat oleh Solar LLM dan Llama3-7B
  • Fine-tuning menawarkan potensi peningkatan privasi, kontrol, dan biaya, tetapi juga meningkatkan kompleksitas MLOps dalam mengelola inferensi, evaluasi, dan reproducibility model yang tersebar di berbagai lingkungan

Tujuan eksperimen dan dataset

  • Tujuannya adalah mengevaluasi akurasi LLM fine-tuning dalam tugas mengekstrak informasi peristiwa dari siaran pers ISAF
  • Data berada di repositori publik Hugging Face Hub, dan evaluasi dilakukan pada test split yang belum pernah dilihat model
    • Data uji terdiri dari 724 baris
    • Field mencakup name, eventrefnumber, text, StartDate, eventtype, province, targetgroup, minkilled, mincaptured, killq, captureq, killcaptureraid, airstrike, noshotsfired, minleaderskilled, minleaderscaptured, dan lainnya
  • Setiap baris dikonversi menjadi objek Pydantic agar mudah divalidasi dan diproses
  • Output model diharapkan mengikuti struktur JSON berikut
    • name
    • start_date
    • event_type
    • province
    • target_group
    • min_killed
    • min_captured
    • killq
    • captureq
    • killcaptureraid
    • airstrike
    • noshotsfired
    • min_leaders_killed
    • min_leaders_captured

Metode evaluasi model baseline OpenAI

  • GPT-4o, GPT-4 Turbo, dan GPT-3.5 Turbo digunakan sebagai pembanding baseline
  • Model GPT tidak bisa menggunakan prompt yang sama persis seperti model fine-tuning, sehingga membutuhkan prompt yang lebih panjang
    • Mencantumkan daftar field yang perlu diekstrak
    • Memberikan nilai yang diperbolehkan untuk tipe peristiwa, provinsi, dan kelompok target
    • Menyertakan aturan anotasi angka
    • Memasukkan contoh siaran pers dan output JSON yang diharapkan
  • Aturan anotasi angka menggunakan kriteria berikut
    • a couple ditafsirkan sebagai 2
    • several ditafsirkan sebagai minimal 3
    • a few, some, a group, a small group, multiple ditafsirkan sebagai minimal 3
    • numerous, a handful ditafsirkan sebagai minimal 4
    • a large number ditafsirkan sebagai minimal 5
    • facilitator bukan leader
  • Prediksi skala besar dijalankan secara asinkron, dan logika retry ditambahkan karena rate limit GPT-3.5 Turbo
  • Hasil prediksi disimpan per nama model di field predictions untuk setiap peristiwa

Konfigurasi model fine-tuning

  • Setelah prediksi model baseline OpenAI, prediksi dari model lokal yang sebelumnya di-fine-tune dan model berbasis layanan fine-tuning sekali klik ditambahkan ke dataset yang sama
  • Model fine-tuning yang disertakan adalah sebagai berikut
    • tinyllama-templatefree
    • tinyllama-sharegpt
    • mistral-lora-templatefree
    • finetuned-openai-gpt-3.5-turbo-1106
    • finetuned-mistral-7b-optimised-openpipe
    • ft-solar-1-mini-chat-240612-predibase
    • finetuned-llama3-7b-32k-openpipe
  • Model Mistral fine-tuning lokal sulit dijalankan secara lokal, sehingga inferensi dilakukan di lingkungan A100 milik Modal
    • Dalam evaluasi berikutnya, model ini gagal pada hampir semua item
    • Di chart ditampilkan sebagai mistral-lora-templatefree
  • Model gpt-3.5-turbo-1106 di-fine-tune menggunakan layanan fine-tuning sekali klik dari OpenAI
  • OpenPipe digunakan untuk menghasilkan prediksi model Mistral 7B, Mistral 8x7B, dan Llama3
  • Di Predibase, model berbasis Solar LLM dari Upstage dievaluasi
    • Solar LLM diperkenalkan sebagai model yang dilatih agar kuat pada tugas yang sering memakai fine-tuning, seperti ekstraksi data terstruktur
    • Model dasarnya diperkirakan upstage/SOLAR-10.7B-v1.0 dari Hugging Face Hub
  • Inferensi Qwen2 di Predibase tidak berfungsi, sehingga dikecualikan dari evaluasi kali ini
  • Dataset prediksi final dipublikasikan sebagai dataset publik di Hugging Face Hub

Validitas JSON dan nilai yang hilang

  • Evaluasi pertama dilakukan dengan memeriksa apakah output setiap model merupakan JSON yang valid
  • Model OpenAI selalu menghasilkan JSON yang valid
  • Model Mistral dan Llama3 fine-tuning juga secara stabil menghasilkan JSON yang valid
  • Hasil TinyLlama sangat berbeda tergantung pilihan template
    • tinyllama-sharegpt memiliki 38 nilai yang hilang
    • Jika tidak ada nilai yang hilang, model ini dinilai akan memiliki seluruh 724 prediksi sekaligus JSON yang valid
  • Rekap nilai yang hilang adalah sebagai berikut
    • gpt-4o: 0
    • gpt-4-turbo: 0
    • gpt-3.5-turbo: 0
    • tinyllama-templatefree: 0
    • tinyllama-sharegpt: 38
    • finetuned-openai-gpt-3.5-turbo-1106: 0
    • finetuned-llama3-7b-32k-openpipe: 0
    • mistral-lora-templatefree: 0
    • finetuned-mistral-7b-optimised-openpipe: 0
    • ft-solar-1-mini-chat-240612-predibase: 0

Akurasi per field

  • Evaluasi akurasi dilakukan berdasarkan total 13 atribut
    • start_date
    • province
    • target_group
    • event_type
    • min_killed
    • min_captured
    • killq
    • captureq
    • killcaptureraid
    • airstrike
    • noshotsfired
    • min_leaders_killed
    • min_leaders_captured
  • Total jumlah tugas pada semua chart adalah 724
  • start_date

    • Pada akurasi start_date, Solar dan model GPT-3.5 fine-tuning mencatat performa terbaik
    • Skornya adalah sebagai berikut
      • gpt-4o: 527
      • gpt-4-turbo: 522
      • gpt-3.5-turbo: 492
      • tinyllama-templatefree: 231
      • tinyllama-sharegpt: 479
      • finetuned-openai-gpt-3.5-turbo-1106: 646
      • finetuned-llama3-7b-32k-openpipe: 585
      • mistral-lora-templatefree: 0
      • finetuned-mistral-7b-optimised-openpipe: 636
      • ft-solar-1-mini-chat-240612-predibase: 649
    • Bahkan model terbaik pun salah pada 75 tanggal, sehingga ekstraksi tanggal masih punya ruang untuk perbaikan
  • province

    • Dalam prediksi provinsi, model fine-tuning mengungguli model OpenAI
    • Skornya adalah sebagai berikut
      • gpt-4o: 649
      • gpt-4-turbo: 645
      • gpt-3.5-turbo: 595
      • tinyllama-templatefree: 335
      • tinyllama-sharegpt: 660
      • finetuned-openai-gpt-3.5-turbo-1106: 704
      • finetuned-llama3-7b-32k-openpipe: 707
      • mistral-lora-templatefree: 0
      • finetuned-mistral-7b-optimised-openpipe: 711
      • ft-solar-1-mini-chat-240612-predibase: 704
  • target_group dan event_type

    • Karena target_group bisa berisi beberapa kelompok, skor dihitung berdasarkan rasio kelompok jawaban benar yang berhasil ditebak model
    • Model fine-tuning menunjukkan performa yang jauh lebih baik daripada model OpenAI dalam identifikasi kelompok target
    • Namun, jika ada kelompok baru yang tidak ada di data pelatihan, performanya bisa menurun
    • event_type dianggap sebagai item yang sulit bahkan bagi anotator manusia karena ada kategori yang tumpang tindih secara makna
    • Pada item sulit ini pun, model fine-tuning mencatat performa yang baik
  • Field angka dan boolean

    • Dalam estimasi angka seperti min_killed, selisih antara model fine-tuning dan model OpenAI mengecil
    • Mistral menjadi yang tertinggi, tetapi selisihnya tidak besar, dan model OpenAI juga menunjukkan performa baik pada item ini
    • Aturan anotasi angka yang disertakan dalam prompt panjang kemungkinan membantu
    • Atribut boolean seperti killq mencatat akurasi tinggi pada sebagian besar model
    • Mistral fine-tuning juga melampaui skor tertinggi GPT-4o pada item ini
    • killcaptureraid tampak sebagai item yang merugikan model OpenAI
      • kill-capture raid adalah istilah teknis yang digunakan dengan cara tertentu dalam pelabelan
      • Model OpenAI tidak mengetahui kriteria penilaian pelabelan tersebut
    • noshotsfired adalah field yang berasal dari siaran pers pada periode tertentu yang menekankan fakta bahwa “tidak ada tembakan”
    • Model OpenAI menunjukkan performa dalam urutan yang berlawanan dengan ekspektasi, dan diperlukan investigasi tambahan untuk memahami penyebabnya
    • Pada min_leaders_killed dan min_leaders_captured, skor secara umum tinggi
    • Berbeda dari anggapan umum bahwa LLM lemah dalam angka, pada tugas ini performanya tinggi, dan model fine-tuning tetap memberikan hasil terbaik

Hasil agregasi akhir

  • Setelah menjumlahkan 13 skor akurasi individual lalu mengambil rata-ratanya, akurasi agregat akhir dihitung dalam skala 0–100
  • Pada hasil akhir, model fine-tuning melampaui model keluarga OpenAI GPT
  • TinyLlama juga menunjukkan akurasi agregat lebih tinggi daripada GPT-3.5 Turbo
  • Model dengan performa terbaik adalah Mistral-7B yang di-fine-tune di OpenPipe
  • Solar LLM dan Llama3-7B menyusul Mistral-7B dengan jarak yang sangat tipis
  • Untuk fine-tuning ekstraksi data terstruktur, pendekatan yang masuk akal tampaknya adalah mulai dari Mistral-7B, Solar 7B, dan Llama3-7B lalu membandingkan model mana yang paling cocok
  • Jika hanya melihat akurasi, ketiga model tersebut bisa nyaris sama
  • Model serving, efisiensi, dan latensi mungkin memiliki trade-off tersendiri

Keunggulan dan biaya fine-tuning

  • Model OpenAI juga dapat ditingkatkan performanya dengan memasukkan lebih banyak contoh dan aturan ke dalam prompt
  • Namun jika prompt makin panjang, biaya per request akan meningkat
  • Model fine-tuning milik sendiri menawarkan keunggulan berikut
    • Privasi data, karena tidak perlu mengirim informasi rahasia ke OpenAI
    • Potensi peningkatan performa karena model yang lebih kecil
    • Kontrol yang lebih besar
    • Potensi perbaikan biaya
  • Perbandingan biaya saat ini sulit dipastikan secara jelas
    • Penyedia cloud besar dapat memanfaatkan skala ekonomi
    • Dalam use case nyata yang melakukan inferensi berulang dalam jangka panjang, argumen biaya untuk model sendiri bisa menjadi lebih meyakinkan
    • Untuk memperbaiki pemanggilan OpenAI, perlu memasukkan banyak contoh dan penjelasan, sehingga biaya per query bisa meningkat

Operasi evaluasi dan kompleksitas MLOps

  • Fine-tuning menghasilkan performa lebih baik daripada GPT-4 hanya dengan penyesuaian yang relatif sedikit
    • Model yang digunakan adalah model fine-tuning pertama yang dibuat dari data yang diambil
    • Sebagian besar memakai nilai default
  • Ke depannya, rencananya adalah fokus pada model Solar, Llama3, dan Mistral 7B
  • Evaluasi diimplementasikan terutama dengan Jupyter notebook, dan proses operasionalnya merepotkan
    • Sebagian model berjalan secara lokal
    • Sebagian model di-deploy ke layanan dan lingkungan yang berbeda-beda
    • Cara menjalankan loop atas 724 baris berjalan lambat
  • Pada iterasi berikutnya, evaluasi perlu dibuat agar bisa dijalankan secara lokal, dimulai dengan mengevaluasi sebagian slice data lalu diperluas ke seluruh data
  • Saat menangani banyak model dalam proyek yang sama, diperlukan antarmuka inferensi standar
  • Jika model tersebar di berbagai lokasi, fine-tuning dan pembaruan dilakukan berulang, dan data terus berubah, diperlukan sistem untuk mengelolanya
  • Trade-off utama LLM fine-tuning adalah harus mengelola banyak komponen demi operasi yang stabil dan dapat diulang

Nilai dari evaluasi dan langkah berikutnya

  • Implementasi evaluasi memang merepotkan, tetapi memberikan tolok ukur khusus tugas untuk memastikan apakah data pelatihan atau perbaikan model benar-benar menghasilkan kemajuan
  • Tanpa evaluasi, sulit menilai apakah ada peningkatan
  • Ide membuat beberapa model yang sangat terspesialisasi secara terpisah bukanlah langkah berikutnya yang jelas untuk saat ini
    • Contoh: model terpisah yang hanya pandai memperkirakan jumlah orang yang ditangkap
    • Jika melihat performa model saat ini, belum jelas apakah pendekatan ini akan meningkatkan akurasi secara signifikan
  • Langkah berikutnya dengan prioritas tinggi adalah menjalankan evaluasi selain akurasi
    • Evaluasi data out-of-domain yang disebutkan di tulisan sebelumnya adalah salah satu contohnya
    • Tujuannya adalah memeriksa perilaku pada data palsu dengan topik yang sama sekali berbeda
  • Langkah berikutnya yang lain adalah menelaah LLM serving untuk 3 model teratas secara lebih mendalam
    • LLM serving memiliki alat, trade-off, dan teknik yang berbeda dari serving model non-LLM
  • Jika ingin menggali masalah lebih dalam, pendekatan yang berguna adalah mengunggah kasus yang salah ke antarmuka web seperti Lilac atau Argilla untuk menganalisis pola kegagalan
  • Memahami skenario kegagalan kemungkinan lebih membantu untuk meningkatkan akurasi daripada menyetel parameter fine-tuning

1 komentar

 
GN⁺ 2024-07-02
Komentar di Hacker News
  • Sebagai pendiri OpenPipe, saya melihat ekstraksi data adalah penggunaan yang sangat cocok untuk model fine-tuning, jadi hasil yang bagus ini tidak mengejutkan
    Jika bisa membuat data pelatihan yang kuat, mengalahkan GPT-4 di berbagai jenis tugas juga cukup mudah; dalam riset yang kami publikasikan seminggu lalu, Llama 3 8B yang di-fine-tune mengungguli GPT-4 pada 3 dari 4 contoh tugas: peringkasan kreatif, tanya jawab, ekstraksi data, dan klasifikasi
    Kuncinya adalah membuat cara untuk menghasilkan data pelatihan berkualitas tinggi secara iteratif, dan artikel tersebut juga membahas bagian ini: https://openpipe.ai/blog/mixture-of-agents

    • Saya penasaran apakah penggemar teknologi yang bukan ahli juga bisa dengan mudah melakukan fine-tuning dan menjalankannya
      Kegunaannya adalah membuat LLM pakar topik yang mengumpulkan informasi niche tentang suatu topik selama 2 tahun terakhir dengan melatihnya pada dokumentasi teknis, berita tertentu, tulisan blog selama 2 tahun, sumber primer, dan thread penjelasan di Twitter
    • Saya penasaran apakah, jika membuat model meta berbasis LLM yang memilih salah satu dari beberapa model fine-tuning sesuai pertanyaan, hasil keseluruhannya bisa lebih baik daripada GPT-4
    • Saya penasaran apakah melatih model baru dengan respons model dari penyedia LLM besar (OpenAI, Anthropic, dll.) melanggar ketentuan layanan
  • Hasil ini sama sekali tidak mengejutkan, dan sejalan dengan temuan sebelumnya bahwa dalam ekstraksi informasi dan klasifikasi teks, model kecil yang terspesialisasi pun bisa bekerja lebih baik
    Saat program doktoral, saya mengerjakan ekstraksi peristiwa dan emosi bergaya ACE yang terperinci, dan transformer khusus “kecil” yang di-fine-tune lebih baik daripada prompting LLM seperti BERT atau Roberta-large
    Akan bagus jika skor model kecil juga disertakan bersama pipeline terbaru, dan meskipun ini mereplikasi hasil yang sudah diketahui, tetap merupakan pekerjaan yang bagus

  • Satu-satunya penggunaan LLM yang serius dan benar-benar berguna dalam pekerjaan nyata bagi saya adalah ekstraksi/strukturisasi data
    Saya perlu mengambil awal, akhir, dan deskripsi peristiwa dari laporan experience sampling yang tidak bisa dibagikan secara online, lalu menjalankan model dengan llama.cpp untuk mengubahnya menjadi CSV 4 kolom: onset, offset, description, dan apakah memenuhi kondisi tertentu
    Hanya dengan memasukkan beberapa contoh struktur yang diinginkan ke prompt, beberapa model menanganinya dengan baik, dan saya menyukai Mixtral 8x7b karena paling cepat di laptop dalam kisaran kualitas yang sama
    Untuk tugas ini, model yang lebih kecil dan di-fine-tune kemungkinan besar akan lebih baik dan lebih cepat; ketika data tidak bisa dikirim ke tempat seperti OpenAI, pemrosesan offline diperlukan, sehingga model yang kecil, bisa dijalankan lokal, dan bisa di-fine-tune dapat benar-benar bersinar

    • Saya menyadari hal ini sejak awal ketika bereksperimen dengan GPT-3 untuk ekstraksi data web, dan setelah memposting prototipe pertama di Reddit dan HN, saya melihat banyak permintaan otomatisasi untuk stack web scraping berbasis aturan
      Ini berujung pada startup https://kadoa.com yang mengotomatisasi masalah “membosankan dan sulit” ini, yang banyak membutuhkan pemeliharaan dan sulit diskalakan
      Tempat AI menambah nilai terbesar adalah penggunaan yang relatif kurang glamor seperti ini, dan alih-alih menghapus pekerjaan, AI akan mengotomatisasi pekerjaan repetitif seperti web scraping, pengisian formulir, dan input data
    • Sebagai langkah berikutnya, saat mengerjakan deployment/inference, saya ingin melihat seberapa kecil model bisa dibuat
      Spacy sudah lama mendorong pola semacam ini dengan model berukuran puluhan MB, dan menyenangkan melihat kini ada lebih banyak perhatian
      Idealnya, akan bagus jika ada banyak model ultra-kecil yang masing-masing sangat terspesialisasi, berukuran kecil, dan inferensinya cepat, tetapi jika tidak disusun dengan benar, menjaga semuanya tetap mutakhir pada suatu titik akan menjadi tidak tertangani
  • Itulah inti dari fine-tuning model
    Bagus karena artikel ini menunjukkan proses fine-tuning dengan campuran opsi hosting dan opsi lokal

    • Saya penasaran apakah ada layanan bagus semacam “ini dataset-nya, tolong fine-tune 9 model ini dan berikan statistik evaluasinya”
    • Intinya bukan sekadar bahwa model menjadi lebih baik setelah di-fine-tune, melainkan bahwa model yang jauh lebih sederhana, setelah di-fine-tune, mengalahkan model yang jauh lebih canggih
  • Artikelnya ditulis dengan baik dan bermanfaat
    Saya melihat pengujian GPT pada contoh menggunakan temperature=1; saya penasaran apakah ini praktik terbaik untuk tugas yang membutuhkan output terstruktur
    Dari pemahaman ringan saya, temperature 0 adalah yang terbaik untuk workload seperti ini, sementara temperature tinggi lebih cocok untuk tugas yang lebih kreatif

    • Itu disetel mengikuti panduan model tertentu
      Beberapa penyedia fine-tuning LLM memang menetapkan temperature 0 dan saya mengikutinya, sementara yang lain merekomendasikan 1
      Kita bisa bereksperimen berulang untuk mencari nilai terbaik bagi tiap model, dan untuk model yang akan difokuskan pada iterasi/fine-tuning berikutnya, itu layak dicoba
  • Akan menarik melihat contoh ketika GPT-4o salah tetapi model dengan performa terbaik menjawab benar
    Selain itu, sebagai orang yang banyak melakukan ekstraksi data terstruktur, saya menyarankan mencobanya lagi dengan temperature 0; berdasarkan pengalaman, sebaiknya selalu memakai 0 dan perbedaannya bisa sangat besar
    Temperature 1 pada dasarnya berarti model mulai memilih token yang probabilitas benarnya lebih rendah

    • Untuk penggunaan ini, yang punya jawaban benar/salah yang jelas berdasarkan data historis, perbandingan dengan temperature 0 akan menarik
      Saat bereksperimen dengan temperature di editor AI SQL, 0.3 terasa ideal, karena semakin dekat ke 0 semakin teroptimasi untuk akurasi, tetapi ketika terjadi kesalahan, model menjadi lebih sulit memulihkan diri
  • Saya menulis makalah tentang topik serupa: https://www.nature.com/articles/s41467-024-45563-x

  • Saya penasaran apakah konten artikel berita sasaran yang berpotensi kontroversial dapat memengaruhi kemampuan ChatGPT untuk meringkas

    • Kami menggunakan ekstraksi informasi LLM untuk artikel berita keuangan lewat OpenAI Azure, dan ini masalah besar
      Bahkan hanya dengan teks berita keuangan, respons moderasi konten 404 muncul pada 4% artikel, dan itu alasan utama kami mempertimbangkan model terbuka
    • Sepertinya tidak
      Biasanya jika error seperti itu terjadi, tidak ada output sama sekali, tetapi artikel ini menunjukkan bahwa mereka memperoleh output JSON normal untuk semua 724 test case kueri
      Topik seperti ini kemungkinan besar sudah tercakup baik dalam data pelatihan, dan model open-source juga mungkin memakai data serupa, jadi kesenjangan antara model proprietari dan model open-source tampaknya tidak besar
  • Dengan risiko terdengar seperti orang lama, menurut saya prioritas utama seharusnya adalah merilis semua model sebebas dan se-open-source mungkin agar semua orang bisa melakukan fine-tuning
    Ini adalah subkasus dari gagasan bahwa free/open-source umumnya lebih baik, baik dari sisi kebebasan maupun kualitas

    • Ini terdengar seperti pihak yang menimbun data pribadi paling banyak dan mengklaim kepemilikannya akan membuat produk terbaik
      Mirip dengan dulu ketika iklan tertarget terasa bagus karena lebih “relevan”, tetapi sekarang bukan hanya iklan, melainkan juga produk yang berguna menjadi seperti itu
      Pemilik platform seperti Apple atau Microsoft bisa mengambil data dari aplikasi dan produk, bahkan secara lokal, sehingga mereka mendapat keunggulan yang jauh lebih besar daripada sekadar unggul 3–6 bulan dalam kualitas model
      Saya tidak suka sentralisasi teknologi ini, tetapi meskipun fakta bahwa model kecil yang di-fine-tune bisa lebih baik memberi harapan, keterbukaan dan privasi saja akan sulit menang, atau hampir tidak punya peluang
      Skenario terbaiknya adalah model terbuka menyebar di ranah layanan UKM, menjadi komoditas dan efektif, sehingga biaya token OpenAI tidak perlu dikeluarkan
      Itu mungkin rencana Zuck, dan bisa jadi niatnya adalah mencegah penjaga gerbang terpusat pada teknologi yang terutama menguntungkan para pesaingnya
      Meski begitu, musuh dari musuh adalah teman, jadi tindakannya mungkin salah satu hal terbaik yang pernah ia lakukan demi kepentingan publik
  • Di Predibase, kami baru-baru ini menjalankan lebih dari 700 eksperimen fine-tuning untuk membenchmark performa 30 tugas pada LLM open-source populer dan membandingkannya dengan GPT-4
    Dalam 85% kasus, model tersebut mengalahkan GPT-4, dan hasilnya bisa dilihat di sini: https://predibase.com/fine-tuning-index
    Situs tersebut memiliki grafik interaktif dan tautan ke makalah Arxiv