potongan LlamaIndex: Tingkatkan Aplikasi LLM Anda dengan Data Khusus dengan Mudah - Unite.AI
Terhubung dengan kami

Kecerdasan Buatan

LlamaIndex: Tingkatkan Aplikasi LLM Anda dengan Data Khusus dengan Mudah

mm
Updated on
Indeks Llama

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 keserbagunaannya, pertanyaan yang sering diajukan berkisar pada integrasi sempurna 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 mewakili salah satu pendekatan tersebut, yang terdiri dari penyesuaian bobot model untuk menggabungkan pengetahuan dari kumpulan data tertentu. Namun, proses ini bukannya tanpa tantangan. Hal ini memerlukan upaya besar dalam persiapan data, ditambah dengan prosedur pengoptimalan yang sulit, sehingga memerlukan keahlian pembelajaran mesin pada tingkat tertentu. Selain itu, implikasi finansialnya bisa sangat signifikan, terutama ketika menangani kumpulan data yang 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 cepat. Selain itu, pembelajaran dalam konteks mungkin tidak selalu tepat atau dapat diandalkan seperti penyesuaian, terutama ketika berhadapan dengan data yang sangat terspesialisasi atau teknis. Pra-pelatihan model mengenai berbagai teks internet tidak menjamin pemahaman tentang jargon atau konteks tertentu, sehingga dapat menghasilkan keluaran yang tidak akurat atau tidak relevan. Hal ini menjadi masalah terutama jika data pribadi berasal dari domain atau industri khusus.

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.

Indeks Lama

Indeks Lama

Itu dimulai oleh Jerry Liu, mantan ilmuwan riset Uber. Saat bereksperimen dengan GPT-3 pada musim gugur lalu, Liu memperhatikan keterbatasan model dalam menangani data pribadi, seperti file pribadi. Pengamatan ini menjadi awal 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):

Indeks Llama RAG

Indeks Llama RAG

RAG adalah proses dua kali lipat yang dirancang untuk menggabungkan LLM dengan data khusus, sehingga meningkatkan kapasitas model untuk memberikan respons yang lebih tepat dan terinformasi. Prosesnya terdiri dari:

  • Tahap Pengindeksan: Ini adalah fase persiapan dimana landasan penciptaan basis pengetahuan diletakkan.
INDEKS Indeks Llama

Pengindeksan LlamaIndex

  • Tahap Kueri: Di sini, basis pengetahuan dijelajahi untuk mencari konteks yang relevan untuk membantu LLM dalam menjawab pertanyaan.
TAHAP QUERY LlamaIndex

Tahap Kueri LlamaIndex

Perjalanan Pengindeksan dengan LlamaIndex:

  • Konektor Data: Bayangkan konektor data sebagai paspor data Anda ke LlamaIndex. Mereka membantu mengimpor data dari berbagai sumber dan format, merangkumnya menjadi representasi 'Dokumen' yang sederhana. Konektor data dapat ditemukan dalam LlamaHub, repositori sumber terbuka yang berisi pemuat data. Loader ini dibuat untuk kemudahan integrasi, memungkinkan pengalaman plug-and-play dengan aplikasi LlamaIndex apa pun.
pusat lama

Pusat LlamaIndex (https://llamahub.ai/)

  • 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 Data: Pasca penyerapan data, LlamaIndex membantu mengindeks data ini ke dalam format yang dapat diambil. Di balik layar, ia membedah dokumen mentah menjadi representasi perantara, menghitung penyematan vektor, dan menyimpulkan metadata. Di antara indeks, 'VectorStoreIndex' sering kali 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 terdapat “simpul” seperti yang dibahas di atas. Mari kita coba memahami indeks LlamaIndex beserta mekanisme dan penerapannya.

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 dan text-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 dan llama2-chat-13B untuk pembuatan teks, dan BAAI/bge-small-en untuk pengambilan dan penyematan.
  • Untuk menggunakan LlamaCPP, ikuti panduan instalasi yang disediakan. Pastikan untuk menginstal llama-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 ini skrip Python sederhana untuk menunjukkan bagaimana Anda dapat menanyakan halaman web untuk mendapatkan wawasan spesifik:

!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.
Buku Catatan Indeks Google Colab Llama

Buku Catatan Indeks Google Colab Llama

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 tergantung 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 Anda. Ini tidak hanya memfasilitasi beberapa contoh ChatGPT dan LlamaIndex tetapi juga memperluas fungsionalitas dengan memungkinkan pembangunan agen multi-tugas. Misalnya, dengan Langchain, Anda dapat membuat agen yang mampu mengeksekusi kode Python sambil melakukan pencarian Google secara bersamaan. Singkatnya, meskipun LlamaIndex unggul dalam penanganan data, Langchain mengatur berbagai alat untuk memberikan solusi holistik.

Karya Seni Logo LlamaIndex dibuat menggunakan Midjourney

Karya Seni Logo LlamaIndex dibuat menggunakan tengah perjalanan

Saya telah menghabiskan lima tahun terakhir membenamkan diri dalam dunia Machine Learning dan Deep Learning yang menakjubkan. Semangat dan keahlian saya telah membuat saya berkontribusi pada lebih dari 50 proyek rekayasa perangkat lunak yang beragam, dengan fokus khusus pada AI/ML. Keingintahuan saya yang berkelanjutan juga menarik saya ke Natural Language Processing, bidang yang ingin saya jelajahi lebih jauh.