Kecerdasan Buatan
LlamaIndex: Tingkatkan Aplikasi LLM Anda dengan Data Khusus dengan Mudah

Model bahasa besar (LLM) seperti seri GPT OpenAI telah dilatih pada beragam data yang dapat diakses publik, menunjukkan kemampuan luar biasa dalam pembuatan teks, peringkasan, menjawab pertanyaan, dan perencanaan. Terlepas dari fleksibilitasnya, pertanyaan yang sering diajukan berkisar pada integrasi yang mulus antara model-model ini dengan data khusus, pribadi, atau kepemilikan.
Bisnis dan individu dibanjiri dengan data unik dan khusus, sering kali disimpan di berbagai aplikasi seperti Notion, Slack, dan Salesforce, atau disimpan dalam file pribadi. Untuk memanfaatkan LLM untuk data spesifik ini, beberapa metodologi telah diusulkan dan diujicobakan.
Mencari setelan Salah satu pendekatan tersebut adalah penyesuaian bobot model untuk menggabungkan pengetahuan dari kumpulan data tertentu. Namun, proses ini bukannya tanpa tantangan. Proses ini membutuhkan upaya substansial dalam persiapan data, ditambah dengan prosedur optimasi yang rumit, sehingga memerlukan keahlian pembelajaran mesin tingkat tertentu. Selain itu, implikasi finansialnya bisa signifikan, terutama ketika menangani kumpulan data besar.
Pembelajaran dalam konteks telah muncul sebagai alternatif, memprioritaskan penyusunan masukan dan petunjuk untuk memberikan LLM konteks yang diperlukan untuk menghasilkan keluaran yang akurat. Pendekatan ini mengurangi kebutuhan akan pelatihan ulang model yang ekstensif, menawarkan cara yang lebih efisien dan mudah diakses untuk mengintegrasikan data pribadi.
Namun kelemahannya adalah ketergantungannya pada keterampilan dan keahlian pengguna di dalamnya rekayasa cepatSelain itu, pembelajaran dalam konteks mungkin tidak selalu seakurat atau seandal fine-tuning, terutama ketika menangani data yang sangat terspesialisasi atau teknis. Pra-pelatihan model pada beragam teks internet tidak menjamin pemahaman jargon atau konteks tertentu, yang dapat menghasilkan keluaran yang tidak akurat atau tidak relevan. Hal ini khususnya bermasalah ketika data pribadi berasal dari domain atau industri niche.
Selain itu, jumlah konteks yang dapat diberikan dalam satu perintah terbatas, dan kinerja LLM dapat menurun seiring dengan meningkatnya kompleksitas tugas. Ada juga tantangan privasi dan keamanan data, karena informasi yang diberikan dalam perintah tersebut berpotensi bersifat sensitif atau rahasia.
Saat komunitas mengeksplorasi teknik-teknik ini, alat-alat seperti Indeks Llama kini mendapat perhatian.
Itu dimulai oleh Jerry Liu, mantan ilmuwan riset Uber. Saat bereksperimen dengan GPT-3 musim gugur lalu, Liu menyadari keterbatasan model tersebut dalam menangani data pribadi, seperti berkas pribadi. Pengamatan ini mendorong dimulainya proyek sumber terbuka LlamaIndex.
Inisiatif ini telah menarik investor dan mengamankan $ 8.5 juta dalam putaran pendanaan awal baru-baru ini.
LlamaIndex memfasilitasi penambahan LLM dengan data khusus, menjembatani kesenjangan antara model terlatih dan kasus penggunaan data khusus. Melalui LlamaIndex, pengguna dapat memanfaatkan data mereka sendiri dengan LLM, membuka pengetahuan dan penalaran dengan wawasan yang dipersonalisasi.
Pengguna dapat dengan mudah memberikan data mereka sendiri kepada LLM, membina lingkungan di mana perolehan pengetahuan dan penalaran sangat dipersonalisasi dan berwawasan luas. LlamaIndex mengatasi keterbatasan pembelajaran dalam konteks dengan menyediakan platform yang lebih ramah pengguna dan aman untuk interaksi data, memastikan bahwa bahkan mereka yang memiliki keahlian pembelajaran mesin terbatas dapat memanfaatkan potensi penuh LLM dengan data pribadi mereka.
Konsep Tingkat Tinggi & beberapa Wawasan
1. Pengambilan Augmented Generation (RAG):
RAG adalah proses ganda yang dirancang untuk menggabungkan LLM dengan data khusus, sehingga meningkatkan kapasitas model untuk memberikan respons yang lebih tepat dan terinformasi. Proses ini meliputi:
- Tahap Pengindeksan: Ini adalah fase persiapan dimana landasan penciptaan basis pengetahuan diletakkan.
- Tahap Kueri: Di sini, basis pengetahuan dijelajahi untuk mencari konteks yang relevan untuk membantu LLM dalam menjawab pertanyaan.
Perjalanan Pengindeksan dengan LlamaIndex:
- Konektor DataAnggap konektor data sebagai paspor data Anda ke LlamaIndex. Konektor ini membantu mengimpor data dari berbagai sumber dan format, merangkumnya ke dalam representasi 'Dokumen' yang sederhana. Konektor data dapat ditemukan di LlamaHub, repositori sumber terbuka yang dilengkapi dengan pemuat data. Pemuat ini dirancang untuk integrasi yang mudah, memungkinkan pengalaman plug-and-play dengan aplikasi LlamaIndex apa pun.
- Dokumen / Node: Dokumen seperti koper umum yang dapat menampung beragam tipe data—baik itu PDF, keluaran API, atau entri database. Di sisi lain, Node adalah cuplikan atau “potongan” dari Dokumen, yang diperkaya dengan metadata dan hubungan dengan node lain, memastikan landasan yang kuat untuk pengambilan data yang tepat di kemudian hari.
- Indeks DataSetelah penyerapan data, LlamaIndex membantu mengindeks data ini ke dalam format yang dapat diambil. Di balik layar, LlamaIndex membedah dokumen mentah menjadi representasi perantara, menghitung penempatan vektor, dan menyimpulkan metadata. Di antara indeks-indeks tersebut, 'VectorStoreIndex' seringkali menjadi pilihan utama.
Jenis Indeks di LlamaIndex: Kunci Data Terorganisir
LlamaIndex menawarkan berbagai jenis indeks, masing-masing untuk kebutuhan dan kasus penggunaan yang berbeda. Inti dari indeks-indeks ini terletak pada "node" seperti yang telah dibahas sebelumnya. Mari kita coba memahami indeks LlamaIndex beserta mekanisme dan aplikasinya.
1. Daftar Indeks:
- Mekanisme: Indeks Daftar menyelaraskan node secara berurutan seperti daftar. Setelah data masukan dikelompokkan ke dalam node, data tersebut disusun secara linier, siap untuk dikueri baik secara berurutan atau melalui kata kunci atau penyematan.
- Keuntungan: Jenis indeks ini bersinar ketika diperlukan untuk kueri berurutan. LlamaIndex memastikan pemanfaatan seluruh data masukan Anda, bahkan jika data tersebut melampaui batas token LLM, dengan menanyakan teks secara cerdas dari setiap node dan menyaring jawaban saat menavigasi ke bawah daftar.
2. Indeks Penyimpanan Vektor:
- Mekanisme: Di sini, node diubah menjadi penyematan vektor, disimpan secara lokal atau dalam database vektor khusus milvus. Saat ditanya, ia mengambil top_k node yang paling mirip, menyalurkannya ke penyintesis respons.
- Keuntungan: 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 masukan berevolusi menjadi struktur pohon, dibangun dari bawah ke atas dari simpul daun (potongan data asli). Node induk muncul sebagai ringkasan dari node daun, dibuat menggunakan GPT. Selama kueri, indeks pohon dapat berpindah dari simpul akar ke simpul daun atau membuat respons langsung dari simpul daun yang dipilih.
- Keuntungan: Dengan Indeks Pohon, membuat kueri potongan teks panjang menjadi lebih efisien, dan mengekstraksi informasi dari berbagai segmen teks menjadi lebih sederhana.
4. Indeks Kata Kunci:
- Mekanisme: Peta kata kunci ke node membentuk inti Indeks Kata Kunci. Saat ditanyakan, kata kunci diambil dari kueri, dan hanya node yang dipetakan yang dijadikan sorotan.
- Keuntungan: Bila Anda memiliki pertanyaan pengguna yang jelas, Indeks Kata Kunci dapat digunakan. Misalnya, memilah-milah dokumen layanan kesehatan menjadi lebih efisien ketika hanya fokus pada dokumen yang berkaitan dengan COVID-19.
Menginstal LlamaIndex
Menginstal LlamaIndex adalah proses yang mudah. Anda dapat memilih untuk menginstalnya langsung dari Pip atau dari sumbernya. (Pastikan python diinstal di sistem Anda atau Anda dapat menggunakan Google Colab)
1. Instalasi dari Pip:
- Jalankan perintah berikut:
pip install llama-index
- Note: Selama instalasi, LlamaIndex dapat mengunduh dan menyimpan file lokal untuk paket tertentu seperti NLTK dan HuggingFace. Untuk menentukan direktori bagi 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 ke direktori proyek.
- Anda memerlukan Puisi untuk mengelola dependensi paket.
- Sekarang, buat lingkungan virtual menggunakan Puisi:
poetry shell
- Terakhir, instal persyaratan paket inti dengan:
poetry install
Menyiapkan Lingkungan Anda untuk LlamaIndex
1. Pengaturan OpenAI:
- Secara default, LlamaIndex menggunakan OpenAI
gpt-3.5-turbo
untuk pembuatan teks dantext-embedding-ada-002
untuk pengambilan dan penyematan. - Untuk menggunakan pengaturan ini, Anda harus memiliki
OPENAI_API_KEY
Dapatkan satu dengan mendaftar di situs web OpenAI dan membuat token API baru. - Anda memiliki fleksibilitas untuk menyesuaikan Model Bahasa Besar (LLM) yang mendasarinya sesuai kebutuhan proyek Anda. Bergantung pada penyedia LLM Anda, Anda mungkin memerlukan kunci dan token lingkungan tambahan.
2. Pengaturan Lingkungan Lokal:
- Jika Anda memilih untuk tidak menggunakan OpenAI, LlamaIndex secara otomatis beralih ke model lokal –
LlamaCPP
danllama2-chat-13B
untuk pembuatan teks, danBAAI/bge-small-en
untuk pengambilan dan penyematan. - Untuk menggunakan
LlamaCPP
, ikuti panduan instalasi yang disediakan. Pastikan untuk menginstalllama-cpp-python
paket, idealnya dikompilasi untuk mendukung GPU Anda. Pengaturan ini akan menggunakan sekitar 11.5 GB memori di seluruh CPU dan GPU. - Untuk penyematan lokal, jalankan
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 dan sumber daya proyek Anda.
Kasus Penggunaan sederhana: Membuat Kueri Halaman Web dengan LlamaIndex dan OpenAI
Berikut skrip Python sederhana untuk menunjukkan cara menanyakan halaman web guna memperoleh wawasan tertentu:
!pip install llama-index html2text
import os from llama_index import VectorStoreIndex, SimpleWebPageReader # Enter your OpenAI key below: os.environ["OPENAI_API_KEY"] = "" # URL you want to load into your vector store here: url = "http://www.paulgraham.com/fr.html" # Load the URL into documents (multiple documents possible) documents = SimpleWebPageReader(html_to_text=True).load_data([url]) # Create vector store from documents index = VectorStoreIndex.from_documents(documents) # Create query engine so we can ask it questions: query_engine = index.as_query_engine() # Ask as many questions as you want against the loaded data: response = query_engine.query("What are the 3 best advise by Paul to raise money?") print(response)
The three best pieces of advice by Paul to raise money are: 1. Start with a low number when initially raising money. This allows for flexibility and increases the chances of raising more funds in the long run. 2. Aim to be profitable if possible. Having a plan to reach profitability without relying on additional funding makes the startup more attractive to investors. 3. Don't optimize for valuation. While valuation is important, it is not the most crucial factor in fundraising. Focus on getting the necessary funds and finding good investors instead.
Dengan skrip ini, Anda telah membuat alat yang ampuh untuk mengekstrak informasi spesifik dari halaman web hanya dengan mengajukan pertanyaan. Ini hanyalah sekilas tentang apa yang dapat dicapai dengan LlamaIndex dan OpenAI saat menanyakan data web.
LlamaIndex vs Langchain: Memilih Berdasarkan Tujuan Anda
Pilihan Anda antara LlamaIndex dan rantai langka akan bergantung pada tujuan proyek Anda. Jika Anda ingin mengembangkan alat pencarian cerdas, LlamaIndex adalah pilihan yang tepat, unggul sebagai mekanisme penyimpanan cerdas untuk pengambilan data. Di sisi lain, jika Anda ingin membuat sistem seperti ChatGPT dengan kemampuan plugin, Langchain adalah pilihan tepat. Sistem ini tidak hanya memfasilitasi beberapa instance ChatGPT dan LlamaIndex, tetapi juga memperluas fungsionalitas dengan memungkinkan pembuatan agen multi-tugas. Misalnya, dengan Langchain, Anda dapat membuat agen yang mampu mengeksekusi kode Python sambil melakukan pencarian Google secara bersamaan. Singkatnya, sementara LlamaIndex unggul dalam penanganan data, Langchain mengorkestrasi beberapa alat untuk memberikan solusi holistik.

Karya Seni Logo LlamaIndex dibuat menggunakan tengah perjalanan