LLM dan ML Tech Stack yang Muncul
Laju pengembangan di ruang Model Bahasa Besar (LLM) telah meledak selama beberapa bulan terakhir dan salah satu alur cerita yang paling menarik adalah pergeseran cepat menuju tumpukan teknologi baru untuk mendukung pola keterlibatan yang sama sekali baru dengan model bahasa ini. Dalam posting blog ini, kami akan mengeksplorasi perubahan yang terjadi di tumpukan teknologi LLM dan apa artinya bagi pengembang.
Tumpukan Teknologi NLP yang Ada
Sampai saat ini, pengembang NLP mengandalkan tumpukan teknologi yang dioptimalkan untuk tugas-tugas NLP seperti klasifikasi teks, Pengenalan Entitas Bernama, Disambiguasi Entitas Bernama. Tumpukan teknologi ini umumnya terdiri dari pipa preprocessing data, pipa pembelajaran mesin, dan berbagai database untuk menyimpan penyematan dan data terstruktur. Arsitektur ini bekerja dengan baik untuk menghasilkan sejumlah besar tiga kali lipat, penyematan kata, penyematan kalimat, output urutan-ke-urutan, probabilitas model bahasa, bobot perhatian, dan banyak lagi. Pengembang biasanya akan menyimpan output terstruktur ini di database ElasticSearch, Postgres, atau Neo4j, yang akan mereka gunakan sebagai grafik pengetahuan yang dapat diminta oleh pengguna (atau layanan).
Arsitektur ini bekerja dengan baik untuk menghasilkan data terstruktur yang sangat andal yang dapat digunakan dalam sistem perusahaan untuk mengotomatiskan proses kunci (mis. mengklasifikasikan dokumen, menemukan entitas, dan hubungan antar entitas, dll.). Namun, mereka berjuang untuk mendapatkan adopsi yang luas karena lambat untuk berdiri (memerlukan sejumlah besar data berlabel dan sedikit penyesuaian model); mahal untuk dijalankan (sering kali arsitektur ini memiliki lebih dari tiga lusin model dalam satu jalur pipa/sistem); dan pipeline penyerapan dan model rentan terhadap tata letak dokumen dan tipe data baru.
Tumpukan Teknologi LLM yang Muncul
Sejak musim gugur 2022, tumpukan teknologi baru mulai bermunculan yang dirancang untuk memanfaatkan potensi penuh LLM. Berbeda dengan tumpukan teknologi sebelumnya, yang satu ini ditujukan untuk memungkinkan pembuatan teks — tugas yang paling baik dilakukan oleh LLM modern dibandingkan dengan model pembelajaran mesin sebelumnya. Tumpukan baru ini terdiri dari empat pilar: pipa prapemrosesan data, titik akhir penyematan + penyimpanan vektor, titik akhir LLM, dan kerangka kerja pemrograman LLM. Ada beberapa perbedaan besar antara tech stack lama dan yang baru. Pertama: tumpukan teknologi baru tidak terlalu bergantung pada grafik pengetahuan yang menyimpan data terstruktur (misalnya tiga kali lipat) karena LLM seperti ChatGPT, Claude, dan Flan T-5 memiliki lebih banyak informasi yang dikodekan ke dalamnya daripada model sebelumnya seperti GPT 2. Kedua: tumpukan teknologi yang lebih baru menggunakan titik akhir LLM siap pakai sebagai modelnya, daripada pipa ML yang dibuat khusus (setidaknya untuk memulai). Ini berarti bahwa pengembang saat ini menghabiskan lebih sedikit waktu untuk melatih model ekstraksi informasi khusus (misalnya Pengenalan Entitas Bernama, Ekstraksi Relasi, dan Sentimen) dan dapat menghasilkan solusi dalam waktu singkat (dan biaya).
Pipa Preprocessing Data : Pilar pertama tumpukan teknologi baru sebagian besar tidak berubah dari tumpukan yang lebih lama: pipa preprocessing data. Langkah ini mencakup konektor untuk mencerna data di mana pun data berada (mis. bucket S3 atau CRM), lapisan transformasi data, dan konektor hilir (mis. ke database vektor). Seringkali informasi yang paling berharga untuk dimasukkan ke dalam LLM juga merupakan yang paling sulit untuk dikerjakan (PDF, PPTX, HTML, dll.) tetapi juga dokumen yang teksnya mudah diakses (.DOCX, misalnya) berisi informasi yang tidak dimiliki pengguna tidak ingin dikirim ke titik akhir inferensi (misalnya iklan, boilerplate legal, dll.).
Secara historis, langkah ini dibuat dengan tangan khusus untuk setiap aplikasi oleh ilmuwan data. Bergantung pada jenis data yang terlibat, mereka mungkin menggunakan model OCR siap pakai dan lusinan hingga ratusan ekspresi reguler khusus untuk mengubah dan membersihkan data bahasa alami untuk diproses dalam saluran pembelajaran mesin hilir. Di Unstructured kami sedang mengembangkan alat sumber terbuka untuk mempercepat langkah prapemrosesan ini, menggunakan berbagai model segmentasi dokumen visi komputer, serta model NLP, skrip Python, dan ekspresi reguler untuk secara otomatis mengekstrak, membersihkan, dan mengubah elemen dokumen penting (mis. judul, teks isi, header/footer, daftar, dan lainnya).
Penyematan Titik Akhir dan Penyimpanan Vektor:Penggunaan titik akhir penyematan dan penyimpanan vektor mewakili evolusi yang signifikan dalam cara data disimpan dan diakses. Sebelumnya penyematan sebagian besar digunakan untuk tugas khusus seperti pengelompokan dokumen. Namun, dalam arsitektur baru, menyimpan dokumen dan penyematannya dalam database vektor memungkinkan pola keterlibatan kritis oleh titik akhir LLM (lebih lanjut di bawah). Salah satu keunggulan utama arsitektur ini adalah kemampuan untuk menyimpan embedding mentah secara langsung, daripada mengonversinya ke format terstruktur. Ini berarti bahwa data dapat disimpan dalam format aslinya, memungkinkan waktu pemrosesan yang lebih cepat dan pengambilan data yang lebih efisien. Selain itu, pendekatan ini dapat mempermudah bekerja dengan kumpulan data besar, karena dapat mengurangi jumlah data yang perlu diproses selama pelatihan dan inferensi.
Menghasilkan dan menyimpan penyematan dokumen, bersama dengan versi JSON dari dokumen itu sendiri, menciptakan mekanisme yang mudah bagi LLM untuk berinteraksi dengan penyimpanan vektor. Ini sangat berguna untuk aplikasi yang membutuhkan pemrosesan waktu nyata, seperti chatbots. Dengan meminimalkan waktu yang diperlukan untuk pengambilan data, sistem dapat merespons lebih cepat dan memberikan pengalaman pengguna yang lebih baik. Keuntungan lain menggunakan penyematan (dan indeks dokumen) dan penyimpanan vektor adalah dapat mempermudah penerapan teknik seperti pembelajaran transfer, untuk mengaktifkan penyetelan halus yang lebih efisien dan kinerja yang lebih baik.
Titik Akhir LLM : Pilar ketiga tumpukan teknologi baru adalah titik akhir LLM. Ini adalah titik akhir yang menerima input data dan menghasilkan output LLM. Titik akhir LLM bertanggung jawab untuk mengelola sumber daya model, termasuk memori dan komputasi, dan untuk menyediakan antarmuka yang dapat diskalakan dan toleran terhadap kesalahan untuk melayani keluaran LLM ke aplikasi hilir.
Meskipun sebagian besar penyedia LLM menawarkan beberapa jenis titik akhir yang berbeda, kami menggunakan ini untuk merujuk pada titik akhir pembuatan teks. Seperti dibahas di atas, ini adalah pembukaan kunci teknologi baru yang mendukung banyak aplikasi baru (dibandingkan dengan pipeline ML yang lebih tradisional). Ini sedikit penyederhanaan, tetapi antarmuka yang diekspos titik akhir LLM ini adalah bidang teks sebagai masukan dan bidang teks sebagai keluaran.
Kerangka Pemrograman LLM : Pilar terakhir dari tumpukan teknologi baru adalah kerangka pemrograman LLM. Kerangka kerja ini menyediakan seperangkat alat dan abstraksi untuk membangun aplikasi dengan model bahasa. Di LangChain, inilah kerangka kerja yang sedang kami kerjakan. Kerangka kerja ini berkembang pesat, yang membuatnya sulit untuk didefinisikan. Tetap saja, kami berkumpul pada sekumpulan abstraksi, yang akan kami jelaskan secara mendetail di bawah ini.
Fungsi besar dari kerangka kerja ini mengatur semua komponen yang berbeda. Dalam tumpukan modern sejauh ini, jenis komponen yang telah kami lihat muncul adalah: penyedia LLM (dibahas di bagian atas), Model penyematan, toko vektor, pemuat dokumen, alat eksternal lainnya (pencarian google, dll). Di LangChain, kami mengacu pada cara menggabungkan komponen ini sebagai rantai. Misalnya, kami memiliki rantai untuk melakukan QA melalui penyimpanan vektor, rantai untuk berinteraksi dengan database SQL, dll.
Semua rantai ini melibatkan pemanggilan model bahasa di beberapa titik. Saat memanggil model bahasa, tantangan utama datang dari membangun prompt untuk diteruskan ke model bahasa. Prompt ini seringkali merupakan kombinasi dari informasi yang diambil dari komponen lain ditambah template prompt dasar. LangChain menyediakan banyak templat permintaan default untuk memulai rantai ini, tetapi kami juga fokus untuk membangun LangChainHub — tempat bagi pengguna untuk membagikan permintaan ini.
Pertanyaan-pertanyaan terbuka:
Cara Terbaik untuk Mengindeks Data: Saat ini, semua orang sebagian besar menggunakan toko vektor sebagai cara utama untuk mengindeks data sehingga LLM dapat berinteraksi dengannya. Namun, ini hanyalah langkah pertama untuk menentukan bagaimana interaksi ini seharusnya bekerja. Bidang eksplorasi aktif adalah sejauh mana grafik pengetahuan, ditambah dengan indeks dokumen dan penyematannya, dapat lebih meningkatkan kualitas kesimpulan dari LLM. Selain itu, di masa mendatang sebagian besar perusahaan akan terus membutuhkan data terstruktur berkualitas tinggi (biasanya dalam database grafik) untuk digabungkan dengan kumpulan data dan solusi intelijen bisnis yang ada. Ini berarti bahwa untuk jangka menengah, pengadopsi perusahaan mungkin benar-benar mengandalkan database vektor dan grafik untuk mendukung aplikasi dan alur kerja yang ada.
Seperti Apa Penyetelan / Pelatihan Ulang Yang Baik: Saat ini, kerangka kerja pemrograman LLM seperti LangChain digunakan untuk menggabungkan data Anda sendiri dengan LLM yang telah dilatih sebelumnya. Cara lain untuk melakukannya adalah menyempurnakan LLM pada data Anda. Finetuning memiliki beberapa pro dan kontra. Di sisi positifnya, ini mengurangi kebutuhan akan banyak orkestrasi ini. Sisi negatifnya, bagaimanapun, lebih mahal dan memakan waktu untuk melakukannya dengan benar, dan perlu dilakukan secara berkala untuk tetap up to date. Akan menarik untuk melihat bagaimana pengorbanan ini berkembang dari waktu ke waktu.
Berbagai cara menggunakan penyematan: Bahkan jika pola penggunaan utama tetap menyimpan data Anda di database eksternal, alih-alih menyempurnakannya, ada cara lain untuk menggabungkannya dengan LLM daripada pendekatan saat ini (yang semuanya melibatkan meneruskannya ke prompt ). Yang paling menarik adalah pendekatan seperti RETRO , yang mengambil penyematan untuk dokumen tetapi kemudian hadir langsung di atas penyematan tersebut daripada meneruskan teks sebagai petunjuk. Sementara model-model ini sebagian besar telah digunakan dalam pengaturan penelitian, akan menarik untuk melihat apakah mereka menjadikannya arus utama dan bagaimana hal ini memengaruhi kerangka kerja pemrograman LLM.
Kesimpulan
Pergeseran menuju tumpukan teknologi LLM baru ini merupakan perkembangan menarik yang akan memungkinkan pengembang membangun dan menerapkan aplikasi NLP yang lebih kuat. Tumpukan baru lebih efisien, dapat diskalakan, dan lebih mudah digunakan daripada tumpukan lama, dan membuka potensi penuh LLM. Kita dapat berharap untuk melihat lebih banyak inovasi di ruang ini dalam beberapa bulan dan tahun mendatang karena pengembang terus menemukan cara baru untuk memanfaatkan kekuatan LLM.

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































