Mengenali lebih jauh tentang LlamaIndex
LlamaIndex (sebelumnya dikenal sebagai GPT Index) adalah kerangka kerja open-source yang dirancang untuk memudahkan integrasi antara Large Language Models (LLMs) seperti GPT-3/4 dengan berbagai sumber data eksternal. LlamaIndex memungkinkan pengguna untuk menghubungkan dan menggunakan LLMs dalam aplikasi yang membutuhkan akses ke data eksternal, seperti database, dokumen teks, atau API, dengan lebih efisien dan terstruktur.
Fitur Utama LlamaIndex
1. Pembuatan Indeks dan Pengambilan Data
LlamaIndex memungkinkan pengguna untuk membangun indeks dari berbagai sumber data seperti PDF, dokumen teks, database SQL, dan data lainnya. Indeks ini mempermudah proses pencarian dan pengambilan informasi dari data yang terstruktur maupun tidak terstruktur, sehingga LLM dapat mengakses informasi secara cepat dan akurat.
2. Integrasi Langsung dengan LLM
LlamaIndex mendukung integrasi langsung dengan LLM seperti GPT-3 dan GPT-4, membuatnya mudah untuk menggunakan model bahasa besar ini dalam aplikasi yang memerlukan penanganan data kompleks dan canggih, seperti *retrieval-augmented generation* (RAG) dan pencarian kontekstual.
3. Dukungan Multi-Format Data
LlamaIndex dapat mengolah berbagai jenis data, termasuk teks, HTML, database SQL, dan dokumen (misalnya, PDF, docx). Ini memungkinkan pengguna untuk membuat pipeline pemrosesan data yang sesuai dengan kebutuhan aplikasi mereka.
4. Eksekusi dan Pembelajaran Berdasarkan Data Eksternal
Dengan LlamaIndex, LLM dapat diberikan konteks dan data eksternal yang relevan, sehingga model dapat mengeksekusi pertanyaan atau perintah berdasarkan data tersebut. Misalnya, Anda dapat menggunakan LlamaIndex untuk menjawab pertanyaan dari basis data internal perusahaan atau dokumen-dokumen hukum.
5. Fleksibilitas dalam Penggunaan Indeks
Pengguna dapat memilih berbagai jenis indeks, seperti tree index, keyword table index, atau vector index. Masing-masing indeks memiliki keunggulan tergantung pada kasus penggunaan, apakah untuk pencarian cepat, pencocokan kata kunci, atau pencarian berbasis vektor untuk pencocokan yang lebih akurat.
Kegunaan LlamaIndex
LlamaIndex cocok untuk aplikasi yang membutuhkan akses ke data eksternal atau sumber informasi yang kompleks, seperti:
- Aplikasi Question Answering
Aplikasi yang dapat menjawab pertanyaan berdasarkan data dalam dokumen atau basis data tertentu.
- Aplikasi Chatbot Pintar
Chatbot yang dilengkapi dengan kemampuan untuk mencari dan merespons berdasarkan informasi yang ada di dalam dokumen-dokumen tertentu.
- Sistem Rekomendasi
Memberikan rekomendasi atau respons berdasarkan analisis data eksternal, misalnya dokumen riset atau informasi produk.
Contoh Implementasi
Misalnya, Anda memiliki koleksi dokumen PDF berisi kebijakan perusahaan. Dengan LlamaIndex, Anda bisa membuat indeks dari seluruh dokumen tersebut, kemudian menggunakan LLM untuk menjawab pertanyaan terkait kebijakan berdasarkan informasi dalam dokumen tersebut. Ini membantu mengotomatisasi pencarian informasi yang relevan tanpa perlu membaca seluruh dokumen satu per satu.
LlamaIndex adalah solusi yang memungkinkan LLM untuk bekerja lebih efisien dengan data eksternal, menjadikannya alat yang penting untuk berbagai aplikasi AI modern yang mengandalkan interaksi cerdas dengan sumber data yang beragam.
Apakah meta llm llama 3 berhungan dengan llama index?
Meta LLM LLaMA 3 dan LlamaIndex merupakan dua teknologi yang berbeda, meskipun keduanya bisa digunakan secara bersamaan untuk membangun aplikasi yang memanfaatkan LLM (Large Language Models) dan data eksternal. Berikut penjelasan tentang hubungan antara LLaMA 3 dan LlamaIndex:
1. Meta LLM LLaMA 3:
- LLaMA (Large Language Model Meta AI) adalah keluarga model bahasa besar yang dikembangkan oleh Meta (perusahaan induk dari Facebook).
- LLaMA dirancang untuk bersaing dengan model-model LLM lainnya seperti GPT (OpenAI) dan bertujuan memberikan model yang lebih efisien dan ringan dibandingkan LLM konvensional.
- LLaMA 3 merupakan versi terbaru dari model ini dan memiliki peningkatan dalam hal performa, kapasitas, dan kemampuan pemrosesan bahasa alami.
2. LlamaIndex:
- LlamaIndex adalah framework open-source yang berfungsi sebagai penghubung antara LLM (seperti LLaMA 3, GPT-3/4) dengan berbagai sumber data eksternal, seperti dokumen teks, database SQL, atau API.
- LlamaIndex memungkinkan LLM mengakses data eksternal untuk pengambilan informasi (retrieval) dan menjawab pertanyaan berdasarkan data yang lebih spesifik.
Hubungan Antara LLaMA 3 dan LlamaIndex:
- LlamaIndex dapat digunakan bersama dengan LLaMA 3. Artinya, LLaMA 3 dapat menjadi model bahasa yang digunakan di dalam LlamaIndex untuk melakukan berbagai tugas pemrosesan bahasa alami.
- Sebagai contoh, jika Anda ingin membangun aplikasi question answering (QA) menggunakan LLaMA 3 dan memiliki sejumlah dokumen PDF, LlamaIndex dapat memparsing dan membuat indeks dari dokumen tersebut. LLaMA 3 kemudian dapat menggunakan indeks ini untuk menjawab pertanyaan secara lebih akurat berdasarkan informasi di dokumen tersebut.
- LlamaIndex menyediakan alat dan infrastruktur untuk membantu LLaMA 3 bekerja lebih efisien dengan data eksternal yang besar dan kompleks, misalnya dengan melakukan pencarian kontekstual atau pencocokan vektor untuk mengambil informasi yang relevan dari data yang sudah diindeks.
LLaMA 3 dan LlamaIndex tidak dikembangkan oleh entitas yang sama dan tidak saling bergantung secara langsung. Namun, LlamaIndex dapat digunakan dengan LLaMA 3 sebagai LLM yang diintegrasikan. Dengan kata lain, LLaMA 3 adalah model bahasa yang dapat melakukan tugas pemrosesan bahasa alami, sedangkan LlamaIndex adalah kerangka kerja yang membantu model bahasa seperti LLaMA 3 (atau LLM lainnya) untuk bekerja dengan data eksternal. Kombinasi ini membuat LLaMA 3 dapat digunakan dalam aplikasi-aplikasi yang lebih kompleks, seperti *retrieval-augmented generation* (RAG) atau pencarian kontekstual berbasis data.
Jadi, jika Anda memiliki aplikasi yang menggunakan LLaMA 3 sebagai LLM, Anda bisa menggunakan LlamaIndex untuk mengintegrasikan data-data eksternal agar performa LLaMA 3 dalam menjawab pertanyaan atau melakukan tugas lain menjadi lebih baik.
LLM apa saja yang disupport oleh llamaindex ?
LlamaIndex mendukung integrasi dengan berbagai Large Language Models (LLMs) yang populer di industri. Model-model ini mencakup LLM komersial maupun open-source, baik yang berbasis API dari platform cloud maupun yang dapat dijalankan secara lokal di server. Berikut adalah daftar LLM yang umum didukung oleh LlamaIndex:
Model LLM yang Didukung oleh LlamaIndex
1. OpenAI Models
— GPT-3 (Davinci, Curie, Babbage, Ada)
— GPT-3.5
— GPT-4
2. Cohere Models
— Cohere Command Series
3. Anthropic Models
— Claude (Claude 1, Claude 2)
4. Google Models
— PaLM (Pathways Language Model)
— PaLM 2 (Chinchilla)
5. Hugging Face Models
— Model-model yang tersedia di platform Hugging Face seperti BLOOM, OPT, dan LLaMA (LLaMA 1, LLaMA 2)
— Model lainnya yang di-host di Hugging Face dapat dengan mudah diintegrasikan, baik dengan API Hugging Face atau dijalankan secara lokal.
6. Meta Models
— LLaMA (LLaMA 1 dan LLaMA 2)
— LLaMA 3 (jika tersedia dan dapat diakses di platform seperti Hugging Face atau API lain)
7. Local Models
— Model-model LLM yang dijalankan secara lokal di server pengguna, seperti GPT-J, GPT-NeoX, dan model-model fine-tuned lainnya.
— LlamaIndex dapat digunakan dengan model lokal asalkan pengguna memiliki antarmuka untuk mengirim permintaan (request) dan menerima tanggapan (response) dari model tersebut, seperti melalui API REST atau framework seperti LangChain.
8. LangChain Integration
— LlamaIndex memiliki dukungan bawaan untuk integrasi dengan LangChain, yang berarti model-model yang kompatibel dengan LangChain juga bisa digunakan dengan LlamaIndex. LangChain mendukung berbagai LLM, baik dari provider cloud seperti OpenAI, Cohere, dan Anthropic, maupun model lokal seperti GPT-4All.
9. Other Cloud-based LLMs
— Model LLM dari penyedia cloud lain seperti Azure OpenAI Service, AWS Bedrock, atau platform cloud lainnya yang menyediakan API untuk interaksi dengan model bahasa.
Bagaimana LlamaIndex Bekerja dengan LLM ?
- LlamaIndex memungkinkan pengguna untuk memilih model LLM yang akan digunakan sesuai dengan kebutuhan aplikasi mereka. Misalnya, untuk aplikasi yang membutuhkan pemahaman konteks lebih dalam, pengguna dapat menggunakan GPT-4, sementara untuk aplikasi dengan fokus pada efisiensi, GPT-3 atau model-model open-source seperti LLaMA 2 dapat dipilih.
- LlamaIndex dapat berfungsi sebagai alat penyimpanan (indexing) dan pengambilan data (retrieval) dari sumber eksternal. Setelah data diindeks, pengguna dapat menggunakan LLM yang terintegrasi untuk melakukan tugas pemrosesan bahasa alami berdasarkan data yang sudah diindeks.
Contoh Implementasi:
Misalnya, jika Anda ingin menggunakan LLaMA 2 untuk memproses data dari dokumen PDF yang besar, Anda bisa menggunakan LlamaIndex untuk membuat indeks dari seluruh dokumen tersebut. LLaMA 2 kemudian dapat digunakan untuk mencari informasi dari indeks tersebut dan memberikan jawaban atau informasi yang relevan.
Dengan fleksibilitas integrasi ini, LlamaIndex memungkinkan pengguna untuk bekerja dengan berbagai LLM sesuai dengan kebutuhan spesifik mereka, baik yang bersifat komersial, open-source, maupun model lokal.
Apakah konsep RAG mirip dengan Llamaindex ?
Konsep Retrieval-Augmented Generation (RAG) dan LlamaIndex memiliki hubungan yang erat karena keduanya berfokus pada integrasi retrieval (pengambilan informasi) dengan generation (generasi teks) dalam konteks penggunaan Large Language Models (LLMs). Namun, ada beberapa perbedaan utama antara konsep RAG dan fungsi yang disediakan oleh LlamaIndex. Berikut penjelasan tentang kesamaan dan perbedaan antara RAG dan LlamaIndex:
1. Apa Itu Retrieval-Augmented Generation (RAG) ?
- RAG adalah teknik yang menggabungkan dua proses utama: retrieval (pengambilan informasi) dan generation (generasi teks).
- Pada dasarnya, RAG bekerja dengan mengambil informasi yang relevan dari dokumen eksternal atau basis data (retrieval) dan kemudian menggunakan model LLM untuk menghasilkan respons atau jawaban (generation) berdasarkan informasi yang diambil tersebut.
- Konsep RAG biasanya terdiri dari dua komponen utama:
1. Retriever: Mengambil data atau informasi relevan dari sumber data eksternal (misalnya, database, dokumen, atau API).
2. Generator: Menghasilkan jawaban atau konten baru berdasarkan informasi yang diambil oleh retriever dan pertanyaan/input yang diberikan oleh pengguna.
- RAG sering digunakan dalam aplikasi yang membutuhkan akurasi tinggi dalam menjawab pertanyaan (misalnya, question answering), di mana jawaban dihasilkan berdasarkan dokumen-dokumen yang tersedia. Model seperti GPT-3/4 atau BERT dapat digunakan untuk proses ini.
2. Apa Itu LlamaIndex?
- LlamaIndex (sebelumnya GPT Index) adalah kerangka kerja yang memudahkan integrasi LLM dengan data eksternal. LlamaIndex berfungsi sebagai penyedia indeks (indexer) untuk berbagai sumber data, seperti dokumen teks, PDF, database SQL, dan API, sehingga model LLM dapat mengakses informasi ini dengan lebih mudah.
- LlamaIndex membantu membangun pipeline untuk pengambilan informasi (retrieval) dari berbagai format data, serta memberikan konteks dan informasi tambahan kepada LLM untuk menghasilkan jawaban yang lebih relevan.
- LlamaIndex bukanlah model retrieval atau generation itu sendiri, melainkan alat bantu yang menghubungkan data eksternal dengan LLM yang sudah ada, memungkinkan model untuk mencari dan mengambil informasi sebelum menghasilkan jawaban.
Kesamaan Antara RAG dan LlamaIndex
1. Fokus pada Pengambilan dan Penggunaan Data Eksternal
Baik RAG maupun LlamaIndex digunakan untuk menggabungkan data eksternal dengan proses pemodelan bahasa alami. Mereka memungkinkan LLM untuk menghasilkan jawaban berdasarkan informasi spesifik dari sumber data yang relevan.
2. Dukungan untuk Aplikasi Kompleks
Keduanya dapat digunakan dalam aplikasi seperti *question answering*, di mana jawaban harus didasarkan pada data eksternal yang besar atau kompleks.
3. Penggunaan LLM sebagai Generator
RAG dan LlamaIndex menggunakan LLM untuk menghasilkan respons setelah proses pengambilan informasi selesai.
Perbedaan Antara RAG dan LlamaIndex
1. Konsep RAG sebagai Arsitektur Generatif
— RAG adalah pendekatan arsitektural yang mencakup dua komponen terpisah (retriever dan generator) yang bekerja bersama. RAG biasanya mengintegrasikan retriever (misalnya, BM25 atau FAISS) untuk pengambilan informasi dan generator (misalnya, LLM) untuk menghasilkan respons.
— RAG sering digunakan dalam model generatif end-to-end yang dipadukan dengan *retrieval*, sehingga bisa diimplementasikan langsung sebagai satu kesatuan model yang saling berinteraksi.
2. LlamaIndex sebagai Infrastruktur Integrasi
— LlamaIndex bukan model atau arsitektur, melainkan kerangka kerja (framework) yang memfasilitasi proses pengambilan informasi dari berbagai sumber data dan menghubungkannya dengan LLM yang digunakan. LlamaIndex memungkinkan pengguna untuk membuat indeks dari berbagai jenis data (teks, PDF, database) yang kemudian bisa di-query oleh LLM.
— LlamaIndex lebih fokus pada pemrosesan dan penyimpanan data untuk memudahkan LLM bekerja dengan informasi eksternal, dan dapat digunakan bersama dengan model RAG atau model LLM lainnya.
3. Modularitas LlamaIndex
— LlamaIndex dapat digunakan dengan berbagai LLM dan retriever, serta menyediakan cara yang fleksibel untuk membangun pipeline integrasi data eksternal, sedangkan RAG biasanya dirancang dengan kombinasi retriever-generator yang spesifik.
Penggunaan LlamaIndex untuk RAG
LlamaIndex dapat menjadi bagian dari implementasi RAG. Misalnya:
- LlamaIndex digunakan untuk membuat indeks dari sumber data eksternal (seperti dokumen PDF, SQL database).
- Indeks yang dibuat oleh LlamaIndex dapat digunakan oleh retriever di dalam arsitektur RAG untuk mengambil informasi yang relevan.
- LLM seperti GPT-3/4 atau LLaMA dapat digunakan sebagai generator dalam arsitektur RAG tersebut untuk menghasilkan jawaban atau konten berdasarkan informasi yang di-*retrieve* melalui LlamaIndex.
LlamaIndex dapat dianggap sebagai komponen pendukung dalam implementasi RAG. Jika RAG adalah pendekatan arsitektural untuk menggabungkan retrieval dan generation, maka LlamaIndex adalah alat bantu yang memudahkan pembuatan indeks dan penghubung antara data eksternal dan model LLM yang digunakan dalam RAG.
Apakah ada proses embedding pada llama index ?
Ya, LlamaIndex menggunakan proses embedding sebagai salah satu metode untuk memfasilitasi pencarian dan pengambilan informasi dari data yang diindeks. Embedding adalah salah satu fitur inti yang memungkinkan LlamaIndex untuk melakukan pengambilan informasi (retrieval) dengan lebih akurat dan efisien. Berikut penjelasan tentang proses embedding di LlamaIndex:
Proses Embedding di LlamaIndex
1. Apa Itu Embedding?
— Embedding adalah representasi vektor dari teks atau data dalam dimensi yang lebih rendah. Proses ini mengubah kata-kata, kalimat, atau paragraf menjadi vektor numerik yang dapat dipahami dan diproses oleh mesin.
— Representasi vektor ini digunakan untuk mengukur kesamaan (similarity) antar teks, memungkinkan mesin untuk mengidentifikasi informasi yang relevan berdasarkan kedekatan nilai vektor.
2. Bagaimana LlamaIndex Menggunakan Embedding?
— LlamaIndex menggunakan embedding untuk mengubah potongan-potongan data (misalnya, paragraf dari dokumen PDF atau teks dari file .txt) menjadi representasi vektor.
— Representasi vektor ini kemudian disimpan di dalam sebuah indeks. Saat ada query (pertanyaan atau permintaan informasi) dari pengguna, query tersebut juga akan diubah menjadi embedding vektor.
— Setelah query diubah menjadi vektor, LlamaIndex akan mencari vektor dalam indeks yang paling mirip atau memiliki kedekatan nilai (similarity) tertinggi dengan query tersebut. Ini memungkinkan LlamaIndex untuk mengambil informasi yang paling relevan dari data yang diindeks.
3. Jenis-jenis Embedding yang Digunakan di LlamaIndex
— Text Embeddings: Representasi vektor dari teks yang biasanya diperoleh dari model LLM atau embedding model tertentu, seperti OpenAI’s text-embedding-ada-002, Sentence Transformers, atau model embedding dari Hugging Face.
— Document Embeddings: Digunakan untuk mewakili dokumen secara keseluruhan, atau bagian-bagian dari dokumen (seperti bab atau paragraf) dalam format vektor.
— Custom Embeddings: Pengguna dapat mengintegrasikan model embedding khusus yang sesuai dengan kasus penggunaan spesifik, misalnya menggunakan embedding untuk data multi-bahasa atau domain tertentu.
4. Penggunaan Embedding untuk Retrieval
— LlamaIndex menggunakan embedding untuk melakukan pencarian berbasis vektor (vector search). Proses ini sering digunakan ketika pengguna ingin menemukan informasi dengan konteks yang lebih kompleks, seperti pencarian semantik, di mana mesin perlu memahami makna dan konsep di balik kata-kata.
— Dengan vektor embedding, LlamaIndex dapat memfasilitasi pencarian yang lebih canggih dibandingkan pencarian kata kunci tradisional, karena embedding dapat menangkap makna kontekstual dari teks.
5. Bagaimana Embedding Dihasilkan?
— LlamaIndex dapat menggunakan berbagai model embedding untuk menghasilkan vektor, baik dari API layanan cloud (misalnya, OpenAI API) maupun model lokal yang berjalan di server pengguna.
— LlamaIndex terintegrasi dengan berbagai model embedding, seperti:
— OpenAI Embeddings: Model embedding seperti `text-embedding-ada-002`.
— Hugging Face Transformers: Model seperti `sentence-transformers`, `BERT`, `RoBERTa`, atau model embedding lain yang tersedia di Hugging Face.
— Model Embedding Lokal: Jika pengguna memiliki model embedding lokal, LlamaIndex dapat menggunakan model tersebut untuk menghasilkan vektor dari data.
6. Penyimpanan dan Pengindeksan Embedding
— Setelah embedding dihasilkan, LlamaIndex menyimpan vektor tersebut di dalam struktur indeks yang terorganisir, seperti menggunakan FAISS (Facebook AI Similarity Search) atau Pinecone. Indeks ini memungkinkan pencarian berbasis vektor menjadi lebih cepat dan efisien.
— LlamaIndex juga mendukung penyimpanan embedding dalam berbagai format dan struktur penyimpanan lainnya, tergantung pada kebutuhan pengguna.
7. Pencarian Berbasis Vektor dengan Embedding
— Ketika pengguna melakukan query atau pertanyaan, LlamaIndex mengubah query tersebut menjadi embedding vektor.
— Vektor query kemudian dibandingkan dengan vektor yang ada di indeks. LlamaIndex mencari vektor yang memiliki kedekatan (similarity) tertinggi dengan query.
— Hasil pencarian berbasis vektor ini kemudian dikembalikan kepada pengguna sebagai respons, yang dapat digunakan oleh LLM untuk menghasilkan jawaban atau konteks yang lebih baik.
Contoh Penggunaan Embedding di LlamaIndex
Misalnya, Anda memiliki koleksi dokumen PDF yang berisi artikel ilmiah. Dengan LlamaIndex, Anda dapat:
1. Menggunakan embedding untuk mengonversi setiap paragraf dari dokumen-dokumen tersebut menjadi vektor embedding.
2. Menyimpan embedding tersebut di dalam indeks berbasis vektor seperti FAISS.
3. Ketika pengguna mengajukan pertanyaan tentang topik tertentu, LlamaIndex akan mencari vektor yang paling relevan dengan query tersebut di dalam indeks.
4. LLM dapat menggunakan hasil pencarian ini untuk memberikan jawaban yang lebih akurat dan relevan berdasarkan artikel ilmiah yang ada.
LlamaIndex mendukung proses embedding untuk mengubah data teks menjadi representasi vektor yang dapat digunakan untuk pencarian berbasis vektor (vector search). Proses embedding ini memungkinkan LlamaIndex untuk melakukan pengambilan informasi dengan lebih akurat dan efisien dari berbagai jenis data, sehingga model LLM yang digunakan dapat menghasilkan jawaban atau respons yang lebih relevan dan kontekstual.
Embedding dimensi berapa yang digunakan oleh llama index ?
Dimensi embedding yang digunakan oleh LlamaIndex tergantung pada model embedding yang diintegrasikan oleh pengguna. LlamaIndex sendiri tidak menentukan dimensi embedding secara spesifik, melainkan menggunakan dimensi yang berasal dari model embedding yang digunakan. Berikut penjelasan lebih rinci mengenai dimensi embedding di LlamaIndex:
Dimensi Embedding Berdasarkan Model yang Digunakan
1. OpenAI Embeddings
— Model embedding dari OpenAI yang umum digunakan di LlamaIndex, seperti `text-embedding-ada-002`, menghasilkan embedding dengan dimensi 1536.
— Model lainnya seperti `text-similarity-davinci-001` memiliki dimensi dimensi 12288.
2. Hugging Face Transformers
— Jika menggunakan model embedding dari Hugging Face seperti `sentence-transformers` atau `BERT`, dimensi embedding dapat bervariasi tergantung model yang dipilih:
— Model `distilbert-base-nli-stsb-mean-tokens`: dimensi 768.
— Model `all-mpnet-base-v2`: dimensi 768.
— Model `sentence-transformers/paraphrase-MiniLM-L6-v2`: dimensi 384.
— Model `sentence-transformers/msmarco-bert-base-dot-v5`: dimensi 768.
— Model-model ini menghasilkan embedding dengan dimensi yang lebih rendah dibandingkan model OpenAI, namun tetap efektif untuk banyak aplikasi.
3. Local Embedding Models
— Jika menggunakan model embedding lokal seperti GPT-J atau LLaMA (dengan model embedding), dimensi embedding dapat disesuaikan berdasarkan konfigurasi model tersebut.
— Misalnya, beberapa model LLaMA menghasilkan embedding dengan dimensi dimensi 4096 atau lebih tinggi, tergantung pada jumlah layer dan parameter model yang digunakan.
4. Custom Embeddings
— LlamaIndex juga memungkinkan pengguna untuk menggunakan custom embeddings dari model yang diinginkan. Ini berarti dimensi embedding bisa sangat bervariasi tergantung pada implementasi custom tersebut.
Menentukan Dimensi Embedding di LlamaIndex
- LlamaIndex tidak memaksa pengguna untuk menggunakan dimensi embedding tertentu. Ketika pengguna membuat indeks menggunakan LlamaIndex, mereka hanya perlu menentukan model embedding yang akan digunakan. Dimensi embedding akan mengikuti spesifikasi dari model tersebut secara otomatis.
- Dimensi embedding harus konsisten antara proses pembuatan indeks (indexing) dan pencarian (retrieval). Misalnya, jika indeks dibuat dengan embedding berdimensi 1536, maka query yang digunakan untuk pencarian juga harus dikonversi ke embedding berdimensi 1536 agar hasilnya valid.
Mengapa Dimensi Embedding Penting?
- Tingkat Representasi: Semakin tinggi dimensi embedding, semakin banyak informasi yang dapat diwakili oleh vektor tersebut. Namun, dimensi yang lebih tinggi juga berarti lebih banyak memori dan waktu komputasi yang diperlukan untuk pencarian dan pembandingan.
- Kinerja Pencarian: Dimensi yang terlalu tinggi dapat menyebabkan overfitting atau kesulitan dalam pencarian vektor (dikenal sebagai curse of dimensionality). Oleh karena itu, pemilihan dimensi embedding yang tepat harus disesuaikan dengan kebutuhan spesifik aplikasi.
Dimensi embedding di LlamaIndex bervariasi tergantung pada model embedding yang digunakan, dan tidak ada satu nilai standar yang ditetapkan oleh LlamaIndex. Contoh dimensi embedding yang sering digunakan adalah:
- 1536 untuk `text-embedding-ada-002` (OpenAI).
- 768 untuk banyak model `sentence-transformers` dari Hugging Face.
- 12288 untuk model `davinci` dari OpenAI.
Pengguna dapat memilih model embedding sesuai kebutuhan aplikasi dan memastikan bahwa dimensi embedding konsisten antara proses indexing dan retrieval.
Vector database apa saja yang dapat digunakan llamaindex ?
LlamaIndex mendukung integrasi dengan berbagai vector database untuk menyimpan dan melakukan pencarian vektor secara efisien. Vector database ini digunakan untuk memfasilitasi pencarian berbasis vektor (vector search), yang sangat penting untuk aplikasi seperti retrieval-augmented generation (RAG) atau pencarian kontekstual berbasis vektor. Berikut adalah beberapa vector database yang dapat digunakan bersama LlamaIndex:
Vector Database yang Didukung oleh LlamaIndex
1. FAISS (Facebook AI Similarity Search)
— FAISS adalah pustaka open-source yang dikembangkan oleh Facebook AI untuk melakukan pencarian vektor dengan cepat. FAISS mendukung berbagai metode pengindeksan dan pencarian yang efisien, seperti k-means clustering, IVF (Inverted File Index), dan HNSW (Hierarchical Navigable Small World).
— FAISS biasanya digunakan secara lokal (on-premises) untuk memproses data vektor dalam skala besar dengan kinerja tinggi.
2. Pinecone
— Pinecone adalah layanan vector database berbasis cloud yang menawarkan pencarian vektor, penyimpanan, dan pengelolaan vektor dengan latensi rendah dan kinerja tinggi. Pinecone mendukung pencarian berbasis vektor seperti similarity search dan nearest neighbor search.
— Pinecone memungkinkan pengguna untuk menyimpan vektor embedding dalam indeks yang dapat diskalakan dengan mudah di cloud, serta menyediakan API yang sederhana untuk integrasi dengan LlamaIndex.
3. Weaviate
— Weaviate adalah vector database open-source yang dirancang untuk pencarian berbasis vektor dan penyimpanan data yang terkait dengan informasi teks. Weaviate mendukung pencarian kontekstual dan mengintegrasikan AI models serta external storage backends untuk melakukan pencarian vektor dengan efisien.
— Weaviate juga mendukung plugin untuk berbagai model embedding, memungkinkan integrasi yang fleksibel dengan LLM dan LlamaIndex.
4. Milvus
— Milvus adalah vector database open-source yang dirancang untuk mengelola dan melakukan pencarian vektor dalam skala besar. Milvus mendukung berbagai algoritma pencarian seperti IVF, HNSW, dan PQ (Product Quantization) untuk meningkatkan kecepatan pencarian.
— Milvus dapat digunakan bersama LlamaIndex untuk menyimpan vektor embedding dan memfasilitasi pencarian berbasis kesamaan (similarity search).
5. Vespa
— Vespa adalah mesin pencarian vektor yang mendukung pencarian berbasis vektor dan pencarian teks tradisional. Vespa sering digunakan untuk aplikasi seperti pencarian semantik dan sistem rekomendasi.
— Dengan kemampuan pengindeksan dan pencarian berbasis vektor, Vespa dapat diintegrasikan dengan LlamaIndex untuk memberikan hasil pencarian yang lebih kontekstual.
6. Qdrant
— Qdrant adalah vector database open-source yang dirancang untuk pencarian vektor berbasis HNSW. Qdrant menyediakan API yang mendukung pencarian berbasis vektor dan clustering, serta menawarkan fitur pengelolaan vektor yang mudah.
— Qdrant juga mendukung integrasi dengan berbagai framework seperti LlamaIndex untuk pencarian dan penyimpanan vektor yang efisien.
7. Chroma
— Chroma adalah vector database yang populer di komunitas open-source, dirancang untuk integrasi yang mudah dengan LLM dan framework seperti LlamaIndex. Chroma memungkinkan pencarian vektor dengan latensi rendah serta penyimpanan vektor embedding dalam skala besar.
— Chroma dapat digunakan sebagai backend untuk menyimpan dan mengambil vektor embedding yang dihasilkan oleh LlamaIndex.
8. Elasticsearch dengan Vector Search Plugin
— Elasticsearch adalah database pencarian berbasis teks yang mendukung pencarian vektor melalui plugin atau ekstensi seperti `kNN Search`. Dengan plugin ini, Elasticsearch dapat melakukan pencarian kesamaan vektor yang mirip dengan vector database lainnya.
— LlamaIndex dapat menggunakan Elasticsearch untuk penyimpanan dan pencarian embedding dalam konteks data teks dan dokumen yang terstruktur.
9. Zilliz Cloud
— Zilliz Cloud adalah versi terkelola dari Milvus yang menawarkan penyimpanan dan pencarian vektor berbasis cloud. Dengan Zilliz, pengguna dapat menjalankan pencarian vektor skala besar tanpa perlu khawatir tentang pengelolaan infrastruktur lokal.
— Zilliz Cloud cocok digunakan bersama LlamaIndex jika pengguna menginginkan solusi pencarian vektor yang terkelola sepenuhnya.
Kriteria Pemilihan Vector Database untuk LlamaIndex
Dalam memilih vector database untuk LlamaIndex, ada beberapa kriteria yang dapat dipertimbangkan:
1. Skalabilitas: Seberapa besar data yang akan diindeks dan disimpan? Pilih vector database yang mendukung pengelolaan data skala besar seperti Milvus, Pinecone, atau Weaviate.
2. Latensi Pencarian: Apakah aplikasi Anda membutuhkan latensi rendah? Pinecone dan Milvus menawarkan latensi pencarian yang rendah dan performa tinggi.
3. Integrasi dengan LlamaIndex: Sebagian besar vector database yang disebutkan di atas memiliki integrasi yang baik dengan LlamaIndex dan mendukung API standar untuk komunikasi.
4. Kemudahan Penggunaan dan Deployment: Jika Anda ingin menghindari pengelolaan infrastruktur lokal, layanan cloud seperti Pinecone atau Zilliz Cloud bisa menjadi pilihan yang tepat.
LlamaIndex mendukung integrasi dengan berbagai vector database seperti FAISS, Pinecone, Weaviate, Milvus, Vespa, Qdrant, Chroma, Elasticsearch (dengan plugin), dan Zilliz Cloud. Pemilihan vector database yang tepat bergantung pada kebutuhan spesifik aplikasi Anda, seperti skalabilitas, latensi, dan kemudahan integrasi.
Apa persamaan dan perbedaan antara llamaindex dengan langchain ?
LlamaIndex dan LangChain adalah dua framework populer yang digunakan dalam pengembangan aplikasi yang memanfaatkan Large Language Models (LLMs). Meskipun keduanya memiliki beberapa kesamaan dalam fungsionalitas dan tujuan penggunaannya, ada perbedaan signifikan yang menjadikan masing-masing lebih cocok untuk situasi tertentu. Berikut adalah penjelasan lengkap mengenai persamaan dan perbedaan antara LlamaIndex dan LangChain:
Persamaan Antara LlamaIndex dan LangChain
1. Dukungan untuk Integrasi LLMs:
— Kedua framework mendukung integrasi dengan berbagai LLM, baik model berbasis cloud seperti OpenAI GPT-3/4, Cohere, dan Anthropic Claude, maupun model open-source yang dapat dijalankan secara lokal seperti LLaMA, GPT-J, atau GPT-NeoX.
2. Fokus pada Aplikasi RAG (Retrieval-Augmented Generation):
— LlamaIndex dan LangChain mendukung arsitektur RAG, yang menggabungkan pencarian (retrieval) dan generasi (generation). Ini memungkinkan LLM untuk menjawab pertanyaan atau memberikan respons berdasarkan informasi dari data eksternal yang diambil (retrieved).
3. Integrasi dengan Berbagai Sumber Data:
— Keduanya memungkinkan pengguna untuk mengintegrasikan berbagai sumber data seperti PDF, teks, database SQL, API eksternal, dan file lain ke dalam alur kerja LLM.
— Baik LlamaIndex maupun LangChain memiliki kemampuan untuk mengambil data dari sumber-sumber tersebut dan menggunakannya sebagai konteks bagi LLM untuk memberikan respons yang lebih akurat.
4. Pembuatan Indeks untuk Pencarian Efisien:
— Kedua framework mendukung pembuatan indeks dari data eksternal yang dapat digunakan untuk pencarian berbasis vektor, sehingga mempercepat proses pencarian dan pengambilan informasi yang relevan.
5. Dukungan untuk Pencarian Berbasis Vektor:
— LlamaIndex dan LangChain mendukung pencarian berbasis vektor menggunakan vector database seperti FAISS, Pinecone, Weaviate, Milvus, atau Chroma.
6. API dan Integrasi Modular:
— Keduanya memiliki arsitektur modular, yang memungkinkan integrasi dengan berbagai API, alat, dan plugin eksternal. Ini memudahkan pengguna untuk menambahkan model, penyimpanan, atau alat pencarian tambahan tanpa perubahan besar pada kode utama.
Perbedaan Antara LlamaIndex dan LangChain
1. Tujuan Utama:
— LlamaIndex (sebelumnya dikenal sebagai GPT Index):
— LlamaIndex dirancang khusus untuk menghubungkan LLM dengan data eksternal. Fokus utamanya adalah pada pembuatan dan pemeliharaan indeks dari berbagai sumber data, yang kemudian dapat digunakan untuk retrieval atau pencarian informasi.
— LlamaIndex lebih kuat dalam hal pemrosesan data eksternal, pembuatan indeks, dan interaksi dengan data yang tidak terstruktur, seperti dokumen besar, PDF, dan file teks.
— LangChain:
— LangChain dirancang untuk membangun end-to-end pipelines yang lebih luas dan kompleks. Ini mencakup pengembangan seluruh alur kerja aplikasi yang menggunakan LLM, termasuk interaksi antar model, pengolahan data, pencarian vektor, dan pelacakan sesi percakapan (conversation tracking).
— LangChain memiliki cakupan yang lebih luas untuk membangun aplikasi berbasis LLM, seperti chatbot, aplikasi question answering, pembuatan agen (agent creation), dan lain-lain. LangChain juga dapat digunakan untuk mengelola konteks percakapan dan memelihara memori antar sesi.
2. Pengelolaan Indeks Data:
— LlamaIndex:
— Fokus utama LlamaIndex adalah pada pembuatan indeks data dan penyimpanan embedding untuk memudahkan pencarian informasi dari data eksternal. Ini menjadikan LlamaIndex sangat cocok untuk aplikasi yang membutuhkan pencarian dan pengambilan informasi secara efisien dari sumber data besar.
— LlamaIndex menawarkan berbagai strategi pembuatan indeks, seperti `TreeIndex`, `KeywordTableIndex`, dan `VectorIndex`, yang masing-masing memiliki kelebihan tersendiri untuk pencarian dan pengambilan data.
— LangChain:
— LangChain tidak terfokus pada pembuatan indeks, tetapi dapat mengintegrasikan indeks yang dibuat oleh LlamaIndex atau alat lain. Sebagai gantinya, LangChain lebih fokus pada pembuatan chains dan pipelines untuk memproses data dari berbagai sumber, mengelola alur kerja LLM, dan menghubungkan model-model yang berbeda.
3. Kemampuan Pembuatan Agen dan Alur Kerja LLM:
— LangChain:
— LangChain memiliki kemampuan bawaan untuk membuat agent, yaitu entitas yang dapat melakukan tindakan secara otomatis berdasarkan informasi yang diterima. Agents ini dapat digunakan untuk melakukan tugas yang lebih kompleks, seperti pengambilan keputusan, mengakses API eksternal, atau mengelola proses multi-langkah.
— LangChain memiliki berbagai jenis chains (alur kerja) seperti `LLMChain`, `QAChain`, `ConversationalChain`, dan lain-lain, yang memungkinkan pengguna untuk menggabungkan berbagai langkah dalam interaksi dengan LLM dan data eksternal.
— LlamaIndex:
— LlamaIndex tidak memiliki konsep agen atau chains yang terintegrasi. LlamaIndex lebih berfokus pada pembuatan indeks dan pengambilan informasi dari data eksternal, yang kemudian dapat dihubungkan ke model LLM.
4. Memori dan Pelacakan Percakapan:
— LangChain:
— LangChain mendukung memory management dan pelacakan percakapan, yang sangat berguna untuk aplikasi berbasis chatbot atau dialog. Ini memungkinkan LangChain untuk menyimpan konteks percakapan dan menggunakannya dalam interaksi selanjutnya.
— LlamaIndex:
— LlamaIndex tidak memiliki fitur pelacakan percakapan atau memori. Fungsinya lebih terfokus pada pencarian informasi yang efisien dari indeks yang dibuat.
5. Integrasi dengan Tools dan Plugin:
— LangChain:
— LangChain mendukung integrasi dengan berbagai alat dan plugin seperti WolframAlpha untuk kalkulasi, SerpAPI untuk pencarian web, dan plugin lain yang memperluas kemampuan agen untuk melakukan tindakan yang lebih beragam.
— LlamaIndex:
— LlamaIndex lebih terfokus pada integrasi dengan sumber data seperti PDF, file teks, atau database. Integrasi dengan alat atau plugin biasanya dilakukan melalui integrasi LLM eksternal atau framework seperti LangChain.
6. Use Case yang Disarankan:
— LlamaIndex:
— Ideal untuk kasus penggunaan yang membutuhkan pemrosesan dan pengambilan informasi dari data eksternal dengan skala besar, seperti aplikasi question answering berbasis dokumen, pencarian dalam dokumen, atau sistem rekomendasi berbasis teks.
— LangChain:
— Cocok untuk membangun aplikasi LLM yang lebih kompleks seperti chatbot multi-langkah, agen otomatis, interactive QA systems, atau aplikasi yang membutuhkan pelacakan memori percakapan dan interaksi yang dinamis dengan API eksternal.
LlamaIndex dan LangChain memiliki tujuan dan fokus yang berbeda, meskipun keduanya dapat digunakan bersama dalam berbagai kasus penggunaan. LlamaIndex lebih cocok untuk pembuatan indeks dan pencarian data eksternal yang efisien, sementara LangChain lebih berfokus pada pembuatan pipeline alur kerja yang kompleks dan agen yang dapat melakukan tugas-tugas otomatis berdasarkan data dan model LLM. Pengguna seringkali menggabungkan keduanya: menggunakan LlamaIndex untuk indexing dan retrieval data, dan menggunakan LangChain untuk mengelola alur kerja dan interaksi yang lebih kompleks dengan LLM.
Tech stack apa yang digunakan oleh llamaindex ?
LlamaIndex (sebelumnya dikenal sebagai GPT Index) menggunakan beberapa teknologi dan pustaka yang berfokus pada pemrosesan bahasa alami, integrasi dengan LLM, pembuatan indeks, dan pencarian berbasis vektor. Berikut adalah tech stack utama yang digunakan oleh LlamaIndex:
Tech Stack Utama yang Digunakan oleh LlamaIndex
1. Bahasa Pemrograman:
— Python
— LlamaIndex dibangun menggunakan bahasa pemrograman Python, yang merupakan bahasa utama untuk pengembangan aplikasi AI dan pemrosesan bahasa alami (NLP). Python dipilih karena kemampuannya untuk integrasi dengan berbagai pustaka AI, dukungan komunitas yang kuat, dan kompatibilitas dengan framework ML/AI lainnya.
2. Framework dan Pustaka Python:
— Pandas dan NumPy
— Digunakan untuk pengolahan data, manipulasi array, dan operasi matematis yang efisien dalam pemrosesan data dari berbagai sumber.
- scikit-learn
— Pustaka ini digunakan untuk implementasi algoritma pencarian dan pengelompokan (clustering), seperti `Nearest Neighbors` dan algoritma pembelajaran mesin lainnya.
- Tqdm
— Digunakan untuk menampilkan progress bar ketika memproses data dalam jumlah besar, sehingga pengguna dapat memantau proses yang sedang berlangsung.
3. Pustaka NLP dan Integrasi LLM:
— Transformers (Hugging Face)
— LlamaIndex mendukung integrasi dengan model-model `Transformers` dari Hugging Face, seperti BERT, RoBERTa, GPT-2, dan GPT-3, serta model-model lainnya yang tersedia di platform Hugging Face. `Transformers` memungkinkan pengguna untuk melakukan tokenisasi, embedding, dan inferensi model bahasa alami.
- OpenAI API
— LlamaIndex terintegrasi dengan OpenAI API untuk menggunakan model LLM seperti GPT-3, GPT-3.5, dan GPT-4. Ini memungkinkan LlamaIndex untuk menggunakan model generatif besar dari OpenAI untuk pemrosesan bahasa alami dan interaksi berbasis konteks.
- LangChain
— Meskipun LlamaIndex adalah proyek yang berdiri sendiri, ia sering digunakan bersama dengan LangChain. LlamaIndex dapat terintegrasi dengan LangChain untuk menghubungkan data eksternal dengan LLM yang lebih kompleks dan membangun alur kerja interaktif yang lebih luas.
4. Vector Database:
— FAISS (Facebook AI Similarity Search)
— LlamaIndex mendukung integrasi dengan FAISS, sebuah pustaka open-source yang dikembangkan oleh Facebook AI Research untuk pencarian dan pengindeksan vektor dengan kinerja tinggi. FAISS digunakan untuk pencarian berbasis vektor dan pengindeksan data dengan cepat.
- Pinecone
— Pinecone adalah layanan vector database berbasis cloud yang terintegrasi dengan LlamaIndex untuk melakukan penyimpanan dan pencarian vektor berbasis kesamaan. Pinecone mendukung pencarian berbasis vektor dengan latensi rendah dan dapat diskalakan secara cloud-native.
- Weaviate
— Weaviate adalah vector database open-source yang digunakan untuk pencarian dan penyimpanan vektor embedding. Weaviate mendukung berbagai plugin untuk integrasi dengan LLM dan model embedding.
- Milvus
— Milvus adalah vector database open-source yang dirancang untuk pencarian dan pengelolaan vektor dalam skala besar. LlamaIndex dapat dihubungkan dengan Milvus untuk melakukan pencarian berbasis kesamaan (similarity search).
- Chroma
— Chroma adalah vector database yang digunakan untuk menyimpan vektor embedding dan melakukan pencarian vektor dengan latensi rendah. Chroma mendukung integrasi dengan LLM untuk melakukan pencarian kontekstual dan retrieval yang efisien.
5. Pustaka untuk Pembacaan Dokumen:
— PyPDF2 atau PyMuPDF
— LlamaIndex menggunakan pustaka seperti PyPDF2 atau PyMuPDF untuk membaca dan memproses dokumen PDF, yang merupakan salah satu format dokumen yang paling sering diindeks.
- python-docx
— Digunakan untuk memproses file Microsoft Word (.docx) sehingga isi dokumen dapat diambil dan diubah menjadi vektor embedding.
- BeautifulSoup
— Pustaka ini digunakan untuk memproses HTML dan XML, memungkinkan LlamaIndex untuk mengindeks konten dari halaman web atau dokumen yang terstruktur dalam format HTML/XML.
6. Penyimpanan dan Pengelolaan Data:
— SQLite
— SQLite dapat digunakan sebagai penyimpanan data lokal untuk menyimpan metadata dan informasi terkait indeks. Ini cocok untuk aplikasi dengan skala data yang lebih kecil.
- JSON dan YAML
— LlamaIndex sering menggunakan format JSON dan YAML untuk menyimpan konfigurasi dan metadata dari indeks yang dibuat, sehingga memudahkan pemeliharaan dan pertukaran data antar modul.
7. Model Embedding:
— Sentence Transformers
— LlamaIndex mendukung model embedding dari `Sentence Transformers` yang menyediakan embedding teks berkualitas tinggi untuk berbagai bahasa. `Sentence Transformers` digunakan untuk menghasilkan embedding yang digunakan dalam pencarian berbasis vektor.
- OpenAI Embeddings
— LlamaIndex mendukung model embedding dari OpenAI seperti `text-embedding-ada-002` yang menghasilkan vektor embedding dengan dimensi 1536, cocok untuk pencarian berbasis vektor dalam skala besar.
- Custom Embeddings
— Pengguna dapat menggunakan model embedding khusus yang diintegrasikan melalui API atau model yang dijalankan secara lokal.
Ekosistem dan Kompatibilitas LlamaIndex
LlamaIndex memiliki kompatibilitas yang baik dengan ekosistem AI/NLP yang lebih luas, termasuk integrasi dengan model-model LLM dari penyedia cloud (OpenAI, Cohere, dan Anthropic) serta model-model lokal yang tersedia di Hugging Face atau model lain yang dapat diakses melalui API REST.
LlamaIndex juga sering digunakan bersama LangChain untuk membangun alur kerja aplikasi yang lebih kompleks, di mana LangChain berperan sebagai manajer alur kerja dan LlamaIndex berperan sebagai penyedia indeks dan pengambilan data.
Tech stack LlamaIndex terdiri dari berbagai pustaka Python, integrasi dengan LLM seperti OpenAI dan Transformers, dukungan untuk vector database seperti FAISS, Pinecone, dan Weaviate, serta alat-alat untuk memproses dokumen dan data eksternal. Kombinasi tech stack ini memungkinkan LlamaIndex untuk melakukan indexing, pencarian berbasis vektor, dan integrasi dengan LLM secara efisien, sehingga menjadi alat yang sangat berguna dalam pengembangan aplikasi NLP dan RAG (Retrieval-Augmented Generation).
Berapa size pdf yang di manage? dalam artian kompleksitas ?
Dalam LlamaIndex (sebelumnya dikenal sebagai GPT Index), ukuran dan kompleksitas PDF yang dapat diolah bergantung pada beberapa faktor, seperti kapasitas penyimpanan teks di backend LLM, cara dokumen dipecah menjadi bagian-bagian (chunking), serta jenis pemrosesan yang digunakan (synchronous vs. asynchronous).
Secara umum, berikut adalah beberapa poin yang bisa menjadi acuan untuk memahami bagaimana LlamaIndex menangani PDF:
1. Ukuran File PDF:
- Tidak ada batasan langsung terhadap ukuran file PDF, tetapi file yang sangat besar (> 100 MB) mungkin menyebabkan keterbatasan pada memori dan waktu pemrosesan. Oleh karena itu, disarankan untuk membatasi ukuran file pada level yang lebih kecil atau melakukan pembagian dokumen.
2. Jumlah Halaman PDF:
- Dokumen dengan jumlah halaman besar dapat dipecah menjadi chunk yang lebih kecil. LlamaIndex biasanya bekerja dengan pemecahan dokumen per paragraf atau beberapa paragraf, sehingga dokumen dengan ratusan hingga ribuan halaman masih bisa diolah, asalkan dilakukan chunking yang efisien.
3. Kompleksitas Konten:
- Dokumen dengan konten yang kompleks, seperti tabel, gambar, atau konten multi-kolom, mungkin memerlukan preprocessing tambahan (misalnya, menggunakan pustaka seperti `PyMuPDF` atau `pdfplumber` untuk mengekstrak informasi dengan lebih presisi). Konten multi-kolom atau tabel juga bisa menyebabkan kesulitan dalam pemrosesan karena tata letak yang rumit.
4. Batas Token LLM:
- Model LLM memiliki batas token tertentu (misalnya, 4,096 token untuk GPT-3.5 dan 8,192 token untuk GPT-4). Karena itu, LlamaIndex biasanya membagi teks hasil ekstraksi dari PDF ke dalam beberapa chunk yang sesuai dengan batasan token tersebut sebelum melakukan query atau index.
5. Optimalisasi Performa:
- Untuk dokumen yang besar dan kompleks, LlamaIndex menggunakan strategi seperti `Recursive Document Splitting` atau `Tree-based Indexing` untuk menangani konten yang besar tanpa menyebabkan bottleneck pada performa sistem.
Contoh Implementasi:
Misalnya, jika kita ingin mengindeks PDF dengan 500 halaman dan banyak diagram serta tabel, kita bisa:
1. Menggunakan `Document Splitter` untuk membagi PDF berdasarkan paragraf.
2. Menentukan metode chunking (misalnya, `split_by_length` atau `split_by_section`).
3. Mengatur `chunk_size_limit` agar tetap di bawah batas token yang bisa diterima oleh LLM.
Dengan strategi-strategi ini, LlamaIndex bisa menangani PDF yang kompleks sekalipun dengan ukuran yang relatif besar, asalkan dilakukan penyesuaian pada proses chunking dan indexing.