Topik ini menempatkan HMM dan CRF di dalam peta sistem pelabelan barisan masa kini. Penggantinya ada dua, yaitu pelabel barisan neural untuk sistem yang dilatih dengan data berlabel, dan prompting LLM untuk sistem tanpa pelatihan sama sekali. Setelah membacanya, kedua pengganti tersebut dapat dijelaskan beserta konsekuensinya, dan batasan kapan model klasik masih dipilih dapat dinyatakan secara jujur.
Pelabel barisan neural#
Sistem NER modern umumnya menggunakan pelabel barisan neural, yaitu jaringan saraf yang membaca seluruh barisan token sebelum mengeluarkan label. Arsitektur yang terkenal adalah BiLSTM-CRF, yaitu vektor kata dibaca dua arah oleh LSTM (Long Short-Term Memory) untuk menangkap konteks kiri dan kanan, lalu lapisan CRF di atasnya menjaga agar barisan label tetap mengikuti skema BIO. Pola yang sama berlanjut pada era transformer, ketika model praterlatih ditindaklanjuti dengan penyetelan (fine-tuning) untuk tugas pelabelan.
Posisi CRF di dalam sistem neural perlu dibaca secara jujur. CRF yang fiturnya disusun secara manual memang tidak lagi menjadi pilihan utama, tetapi gagasan lapisan CRF bertahan sebagai lapisan dekoding di atas keluaran jaringan karena tugasnya masih relevan, yaitu menimbang barisan label secara utuh. Yang benar-benar hilang adalah pekerjaan penyusunan fitur, karena jaringan mempelajari representasi kata dari data. Pergeseran ini bukan kegagalan matematika HMM atau CRF, melainkan pengalihan pekerjaan fitur dari tangan manusia ke pelatihan.
Demo pelabel neural pada spaCy#
spaCy adalah contoh yang mudah dicoba karena komponen NER-nya adalah jaringan saraf kecil yang sudah terlatih pada korpus beranotasi. Demo berikut memproses satu kalimat bahasa Inggris menggunakan model en_core_web_sm, lalu menampilkan entitas beserta label per token yang mendasarinya. Kalimatnya sengaja memuat dua nama orang, satu nama tempat dua token, dan satu tanggal, sehingga ketiga jenis entitas yang paling umum ikut terwakili.
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("Ali and Budi visited Lake Toba in June.")
# entitas beserta penjelasan labelnya
for ent in doc.ents:
print(f"{ent.text:<12}{ent.label_:<8}{spacy.explain(ent.label_)}")
print()
# label per token yang mendasari entitas di atas
for token in doc:
print(f"{token.text:<12}{token.ent_iob_:<4}{token.ent_type_}")Ali PERSON People, including fictional
Budi PERSON People, including fictional
Lake Toba GPE Countries, cities, states
June DATE Absolute or relative dates or periods
Ali B PERSON
and O
Budi B PERSON
visited O
Lake B GPE
Toba I GPE
in O
June B DATE
. O Keluaran tersebut menghubungkan kembali pembahasan skema BIO. Atribut ent_iob_ menuliskan B, I, atau O pada setiap token, dan nama entitas dua token seperti Lake Toba terbaca sebagai pasangan B dan I dengan jenis yang sama, persis konvensi skema BIO. Atribut ent_type_ menyimpan jenis entitas, dan nilainya kosong pada token berlabel O. Tidak ada fitur yang disusun manual pada demo ini, dan seluruh keputusan berasal dari jaringan yang terlatih, yaitu pergeseran dari fitur manual ke representasi yang dipelajari.
Prompting LLM tanpa pelatihan#
LLM adalah model bahasa besar yang dilatih pada korpus masif dan diarahkan melalui instruksi berupa teks. Pendekatan ini disebut prompting, yaitu menuliskan permintaan lengkap dengan contoh keluaran yang diharapkan, tanpa pelatihan tambahan. Untuk NER, prompt cukup meminta model mengekstrak nama orang dan tempat dari sebuah kalimat dalam format tertentu, misalnya JSON.
Pendekatan ini mengubah pembagian kerjanya secara mendasar. Tidak ada data berlabel, tidak ada pelatihan, dan jenis label baru dapat dicoba dengan mengubah teks prompt. Harga yang dibayarkan ada di tempat lain. Setiap permintaan memerlukan biaya dan waktu tunggu yang jauh lebih besar daripada model lokal, keluarannya berupa teks yang harus diurai sebelum masuk ke sistem lain, dan konsistensinya bergantung pada pengaturan model sehingga permintaan yang sama dapat menghasilkan keluaran yang sedikit berbeda. Agar keluaran dapat digunakan sistem lain, formatnya perlu ditentukan sejak prompt disusun, misalnya JSON berisi daftar span dan labelnya, dan penguraian hasil itu menambah satu langkah kerja yang tidak ada pada model lokal.
Perbandingan dan posisi yang jujur#
Tabel berikut merangkum empat pendekatan pada aspek yang paling sering menjadi pertimbangan.
| Aspek | HMM | CRF | Pelabel neural | Prompting LLM |
|---|---|---|---|---|
| Pelatihan berlabel | Perlu, penghitungan frekuensi | Perlu, optimisasi | Perlu, menuntut sumber daya | Tidak perlu |
| Data minimal | Sangat kecil | Kecil | Besar | Tanpa data |
| Fitur | Emisi kata saja | Disusun manual | Dipelajari dari data | Dipelajari dari data |
| Biaya eksekusi | Murah di CPU | Murah di CPU | Ringan untuk model kecil | Mahal per permintaan |
| Determinisme | Deterministik | Deterministik | Deterministik pada model tetap | Bergantung pengaturan |
Pembacaan yang jujur terhadap tabel tersebut adalah sebagai berikut. Untuk NER production dengan cukup data berlabel, pelabel neural adalah pilihan utama masa kini, dan spaCy pada demo di atas termasuk di dalamnya. HMM dan CRF tidak lagi bersaing untuk akurasi terbaik, tetapi keduanya masih dipilih secara sengaja dalam kondisi tertentu, yaitu data berlabel yang sangat kecil, kebutuhan keputusan yang dapat dijelaskan melalui tabel probabilitas dan bobot fitur, lingkungan tanpa GPU, dan tuntutan keluaran yang deterministik. Prompting LLM dipilih ketika tidak ada data berlabel dan jenis label sering berubah, dengan konsekuensi biaya dan determinisme yang sudah disebutkan.
Ringkasan#
- Pelabel barisan neural menggantikan fitur manual HMM dan CRF dengan representasi yang dipelajari, dan lapisan CRF masih bertahan sebagai dekoder barisan pada sebagian arsitektur.
- Komponen NER spaCy adalah contoh pelabel neural yang dapat dicoba langsung, dan atribut
ent_iob_besertaent_type_memperlihatkan label BIO per token. - Prompting LLM mengekstrak entitas tanpa pelatihan dan tanpa data berlabel, dengan harga berupa biaya per permintaan dan konsistensi yang tidak dijamin.
- Model klasik tetap dipilih ketika data berlabel kecil, keputusan perlu dapat dijelaskan, GPU tidak tersedia, dan keluaran harus deterministik, sedangkan pelabel neural menjadi pilihan utama production.
Referensi#
- spaCy Usage Documentation — Explosion
— Bagian Named entities menjabarkan
doc.ents,ent.label_, dan atribut per token untuk membaca keluaran NER. - Speech and Language Processing, draf edisi ke-3 — Jurafsky & Martin, Stanford — Bab sequence labeling menempatkan NER klasik dan neural dalam satu kerangka tugas yang sama.