Kecerdasan buatan
LlamaIndex: Tingkatkan Aplikasi LLM Anda dengan Data Kustom dengan Mudah

Model bahasa besar (LLM) seperti seri GPT dari OpenAI telah dilatih pada berbagai data yang dapat diakses secara publik, menunjukkan kemampuan luar biasa dalam generasi teks, ringkasan, menjawab pertanyaan, dan perencanaan. Meskipun memiliki kemampuan yang luas, pertanyaan yang sering diajukan adalah tentang integrasi yang mulus dari model ini dengan data kustom, pribadi, atau milik perusahaan.
Bisnis dan individu dibanjiri dengan data kustom yang unik, sering disimpan dalam berbagai aplikasi seperti Notion, Slack, dan Salesforce, atau disimpan dalam file pribadi. Untuk memanfaatkan LLM untuk data spesifik ini, beberapa metode telah diusulkan dan dicoba.
Fine-tuning merupakan salah satu pendekatan, yang terdiri dari penyesuaian bobot model untuk mengintegrasikan pengetahuan dari dataset tertentu. Namun, proses ini tidak tanpa tantangan. Ini memerlukan upaya substantif dalam persiapan data, dipasangkan dengan prosedur optimisasi yang sulit, memerlukan tingkat tertentu keahlian machine learning. Selain itu, implikasi keuangan dapat signifikan, terutama ketika menangani dataset besar.
Pembelajaran dalam konteks telah muncul sebagai alternatif, memprioritaskan pembuatan input dan prompt untuk memberikan LLM dengan konteks yang diperlukan untuk menghasilkan output yang akurat. Pendekatan ini mengurangi kebutuhan untuk pelatihan model yang ekstensif, menawarkan cara yang lebih efisien dan mudah diakses untuk mengintegrasikan data pribadi.
Tapi, kelemahan dari ini adalah ketergantungannya pada keterampilan dan keahlian pengguna dalam rekayasa prompt. Selain itu, pembelajaran dalam konteks mungkin tidak selalu seakurat atau seandal fine-tuning, terutama ketika menangani data yang sangat spesialis atau teknis. Pemodelan pra-pelatihan pada rentang teks internet yang luas tidak menjamin pemahaman tentang jargon atau konteks spesifik, yang dapat menyebabkan output yang tidak akurat atau tidak relevan. Ini sangat bermasalah ketika data pribadi berasal dari domain atau industri khusus.
Selain itu, jumlah konteks yang dapat disediakan dalam satu prompt terbatas, dan kinerja LLM dapat menurun seiring dengan meningkatnya kompleksitas tugas. Ada juga tantangan privasi dan keamanan data, karena informasi yang disediakan dalam prompt dapat potensial sensitif atau rahasia.
Saat komunitas menjelajahi teknik-teknik ini, alat seperti LlamaIndex kini mendapatkan perhatian.
Ini dimulai oleh Jerry Liu, seorang ilmuwan peneliti Uber sebelumnya. Saat bereksperimen dengan GPT-3 tahun lalu, Liu menyadari keterbatasan model dalam menangani data pribadi, seperti file pribadi. Pengamatan ini menyebabkan dimulainya proyek open-source LlamaIndex.
Inisiatif ini telah menarik investor, mengamankan $8,5 juta dalam putaran pendanaan benih terbaru.
LlamaIndex memfasilitasi peningkatan LLM dengan data kustom, menjembatani kesenjangan antara model pra-pelatihan dan kasus penggunaan data kustom. Melalui LlamaIndex, pengguna dapat memanfaatkan data mereka sendiri dengan LLM, membuka kemampuan generasi pengetahuan dan penalaran dengan wawasan yang dipersonalisasi.
Pengguna dapat menyediakan LLM dengan data mereka sendiri dengan mulus, memfasilitasi lingkungan di mana generasi pengetahuan dan penalaran sangat dipersonalisasi dan mendalam. LlamaIndex mengatasi keterbatasan pembelajaran dalam konteks dengan menyediakan platform yang lebih ramah pengguna dan aman untuk interaksi data, memastikan bahwa bahkan mereka dengan keahlian machine learning yang terbatas dapat memanfaatkan potensi penuh LLM dengan data pribadi mereka.
Konsep Tingkat Tinggi & Beberapa Wawasan
1. Retrieval Augmented Generation (RAG):
RAG adalah proses dua tahap yangancang untuk menghubungkan LLM dengan data kustom, sehingga meningkatkan kemampuan model untuk menghasilkan respons yang lebih akurat dan mendalam. Proses ini terdiri dari:
- Tahap Pengindeksan: Ini adalah fase persiapan di mana dasar untuk pembuatan basis pengetahuan dibuat.
- Tahap Pencarian: Di sini, basis pengetahuan dicari untuk konteks yang relevan untuk membantu LLM dalam menjawab pertanyaan.
Perjalanan Pengindeksan dengan LlamaIndex:
- Connector Data: Bayangkan connector data sebagai paspor data Anda ke LlamaIndex. Mereka membantu mengimpor data dari berbagai sumber dan format, mengemasnya menjadi representasi ‘Dokumen’ yang sederhana. Connector data dapat ditemukan dalam LlamaHub, sebuah repositori open-source yang diisi dengan data loader. Loader-loader iniancang untuk integrasi yang mudah, memungkinkan pengalaman plug-and-play dengan aplikasi LlamaIndex apa pun.
- Dokumen / Node: Dokumen adalah seperti tas yang dapat memuat berbagai jenis data—baik itu PDF, output API, atau entri database. Di sisi lain, Node adalah potongan atau “bagian” dari Dokumen, diperkaya dengan metadata dan hubungan dengan node lain, memastikan fondasi yang kuat untuk pengambilan data yang akurat nanti.
- Indeks Data: Setelah pengambilan data, LlamaIndex membantu mengindeks data ini ke dalam format yang dapat diambil. Di balik layar, ini memotong dokumen mentah menjadi representasi antara, menghitung embedding vektor, dan menyimpulkan metadata. Di antara indeks, ‘VectorStoreIndex’ sering menjadi pilihan utama.
Jenis Indeks di LlamaIndex: Kunci untuk Data Terorganisir
LlamaIndex menawarkan berbagai jenis indeks, masing-masing untuk kebutuhan dan kasus penggunaan yang berbeda. Di inti indeks-indeks ini terletak “node” seperti yang dibahas sebelumnya. Mari kita coba memahami indeks LlamaIndex dengan mekanisme dan aplikasinya.
1. Indeks Daftar:
- Mekanisme: Indeks Daftar menyelaraskan node secara berurutan seperti daftar. Setelah memotong data input menjadi node, mereka disusun dalam fashion linear, siap untuk diquery secara berurutan atau melalui kata kunci atau embedding.
- Kelebihan: Jenis indeks ini bersinar ketika kebutuhan adalah untuk pengqueryan berurutan. LlamaIndex memastikan pemanfaatan data input Anda secara penuh, bahkan jika melebihi batas token LLM, dengan cerdas mengquery teks dari setiap node dan memperbarui jawaban saat menavigasi ke bawah daftar.
2. Indeks Toko Vektor:
- Mekanisme: Di sini, node bertransformasi menjadi embedding vektor, disimpan baik secara lokal atau dalam database vektor khusus seperti Milvus. Ketika diquery, ini mengambil node teratas yang paling mirip, mengalirkannya ke sintesis respons.
- Kelebihan: Jika alur kerja Anda bergantung pada perbandingan teks untuk kesamaan semantik melalui pencarian vektor, indeks ini dapat digunakan.
3. Indeks Pohon:
- Mekanisme: Dalam Indeks Pohon, data input berkembang menjadi struktur pohon, dibangun dari bawah ke atas dari node daun (potongan data asli). Node induk muncul sebagai ringkasan dari node daun, dibuat menggunakan GPT. Selama query, indeks pohon dapat menelusuri dari node akar ke node daun atau mengonstruksi respons langsung dari node daun yang dipilih.
- Kelebihan: Dengan Indeks Pohon, pengqueryan potongan teks panjang menjadi lebih efisien, dan pengambilan informasi dari berbagai segmen teks disederhanakan.
4. Indeks Kata Kunci:
- Mekanisme: Peta kata kunci ke node membentuk inti dari Indeks Kata Kunci. Ketika diquery, kata kunci dipilih dari query, dan hanya node yang dipetakan yang dibawa ke sorotan.
- Kelebihan: Ketika Anda memiliki query pengguna yang jelas, Indeks Kata Kunci dapat digunakan. Misalnya, menyaring dokumen kesehatan menjadi lebih efisien ketika hanya fokus pada dokumen yang relevan dengan COVID-19.
Menginstal LlamaIndex
Menginstal LlamaIndex adalah proses yang sederhana. Anda dapat memilih untuk menginstalnya langsung dari Pip atau dari sumber. (Pastikan untuk memiliki python terinstal di sistem Anda atau Anda dapat menggunakan Google Colab)
1. Instalasi dari Pip:
- Eksekusi perintah berikut:
pip install llama-index
- Catatan: Selama instalasi, LlamaIndex mungkin mengunduh dan menyimpan file lokal untuk paket tertentu seperti NLTK dan HuggingFace. Untuk menentukanektori untuk file-file ini, gunakan variabel lingkungan “LLAMA_INDEX_CACHE_DIR”.
2. Instalasi dari Sumber:
- Pertama, kloning repositori LlamaIndex dari GitHub:
git clone https://github.com/jerryjliu/llama_index.git
- Setelah dikloning, navigasikan keektori proyek.
- Anda akan memerlukan Poetry untuk mengelola dependensi paket.
- Sekarang, buat lingkungan virtual menggunakan Poetry:
poetry shell - Akhirnya, instal paket inti dengan:
poetry install
Mengatur Lingkungan Anda untuk LlamaIndex
1. Pengaturan OpenAI:
- Secara default, LlamaIndex menggunakan
gpt-3.5-turbodari OpenAI untuk generasi teks dantext-embedding-ada-002untuk pengambilan dan embedding. - Untuk menggunakan pengaturan ini, Anda akan memerlukan
OPENAI_API_KEY. Dapatkan satu dengan mendaftar di situs web OpenAI dan membuat token API baru. - Anda memiliki fleksibilitas untuk menyesuaikan model bahasa besar yang mendasarinya sesuai dengan kebutuhan proyek Anda. Tergantung pada penyedia LLM Anda, Anda mungkin memerlukan kunci lingkungan dan token tambahan.
2. Pengaturan Lingkungan Lokal:
- Jika Anda lebih suka tidak menggunakan OpenAI, LlamaIndex secara otomatis beralih ke model lokal –
LlamaCPPdanllama2-chat-13Buntuk generasi teks, danBAAI/bge-small-enuntuk pengambilan dan embedding. - Untuk menggunakan
LlamaCPP, ikuti panduan instalasi yang disediakan. Pastikan untuk menginstal paketllama-cpp-python, idealnya dikompilasi untuk mendukung GPU Anda. Pengaturan ini akan menggunakan sekitar 11,5GB memori di seluruh CPU dan GPU. - Untuk embedding lokal, eksekusi
pip install sentence-transformers. Pengaturan lokal ini akan menggunakan sekitar 500MB memori.
Dengan pengaturan ini, Anda dapat menyesuaikan lingkungan Anda untuk memanfaatkan kekuatan OpenAI atau menjalankan model secara lokal, selaras dengan kebutuhan proyek dan sumber daya Anda.















