Seperti yang saya sebutkan di artikel sebelumnya, mengembangkan Fabrice AI ternyata jauh lebih kompleks dari yang diharapkan, memaksa saya untuk mengeksplorasi berbagai pendekatan yang berbeda.
Pendekatan Awal: Indeks Llama – Pencarian Vektor
Upaya pertama saya dalam meningkatkan kemampuan pencarian Fabrice AI adalah dengan menggunakan Llama Index untuk pencarian vektor. Konsepnya sederhana: ambil konten dari blog saya, ubah menjadi dokumen Langchain, lalu ubah menjadi dokumen Llama. Dokumen Llama ini kemudian disimpan dalam indeks vektor, sehingga saya dapat menanyakan indeks ini untuk mendapatkan informasi yang relevan.
Namun, ketika saya mulai menguji sistem, terlihat jelas bahwa pendekatan ini tidak memberikan hasil seperti yang saya harapkan. Secara khusus, ketika saya bertanya kepada sistem dengan pertanyaan yang penuh konteks seperti “Apa kesalahan terbesar yang dilakukan oleh para pendiri marketplace?”, AI gagal memberikan jawaban yang berarti. Alih-alih mengambil konten bernuansa yang saya tahu tertanam dalam data, AI malah memberikan jawaban yang tidak relevan atau tidak lengkap.
Kegagalan awal ini membuat saya mempertimbangkan kembali pendekatan saya. Saya menyadari bahwa menyimpan konten dalam indeks vektor saja tidak cukup; mekanisme pencarian perlu memahami konteks dan nuansa pertanyaan yang diajukan. Kesadaran ini merupakan pelajaran pertama dari banyak pelajaran yang akan membentuk evolusi Fabrice AI.
Menyimpan Pengetahuan: Penyimpanan dan Pengambilan Dokumen MongoDB
Dengan mempertimbangkan keterbatasan pendekatan Indeks Llama, saya selanjutnya menjelajahi penyimpanan dokumen Llama di MongoDB. Skema fleksibel MongoDB dan struktur berorientasi dokumennya tampak seperti solusi yang menjanjikan untuk mengelola beragam jenis konten yang telah saya kumpulkan selama bertahun-tahun.
Rencananya adalah untuk menciptakan pengalaman pencarian yang lebih dinamis dan responsif. Namun, pendekatan ini dengan cepat mengalami masalah. Fungsionalitas pencarian, yang saya perkirakan akan lebih tangguh, ternyata tidak berfungsi seperti yang diharapkan. Kueri yang seharusnya menghasilkan dokumen yang relevan malah tidak menghasilkan hasil atau konten yang tidak relevan.
Kemunduran ini membuat saya frustrasi, tetapi juga menggarisbawahi pelajaran penting: metode penyimpanan sama pentingnya dengan strategi pencarian. Saya mulai mempertimbangkan opsi lain, seperti memanfaatkan MongoDB Atlas untuk pencarian vektor, yang berpotensi memberikan ketepatan dan skalabilitas yang saya butuhkan. Namun, sebelum menggunakan alternatif ini, saya ingin mengeksplorasi pendekatan lain untuk menentukan apakah ada solusi yang lebih efektif.
Retriever Metadata dan Penyimpan Vektor: Mencari Kekhususan
Salah satu jalan berikutnya yang saya jelajahi adalah penggunaan retriever metadata yang dikombinasikan dengan penyimpanan vektor. Ide di balik pendekatan ini adalah untuk mengkategorikan beragam informasi di dalam Fabrice AI dan kemudian mengambil jawaban berdasarkan kategori ini. Dengan menyusun data dengan metadata, saya berharap dapat meningkatkan kemampuan AI untuk memberikan jawaban yang spesifik dan tepat sasaran.
Namun, metode ini juga memiliki keterbatasan. Meskipun tampak menjanjikan di permukaan, AI kesulitan untuk memberikan tanggapan yang akurat untuk semua jenis pertanyaan. Misalnya, ketika saya bertanya, “Apakah penulis optimis?” Sistem gagal menafsirkan pertanyaan tersebut dalam konteks konten yang relevan. Alih-alih memberikan analisis yang mendalam berdasarkan metadata, sistem hanya memberikan jawaban yang tidak jelas atau bahkan tidak ada sama sekali.
Pendekatan ini mengajarkan saya pelajaran berharga tentang pentingnya konteks dalam AI. Tidaklah cukup hanya dengan mengkategorikan informasi; AI juga harus memahami bagaimana kategori-kategori ini berinteraksi dan saling tumpang tindih untuk membentuk pemahaman yang kohesif tentang konten. Tanpa pemahaman yang mendalam ini, metode pencarian yang paling canggih sekalipun bisa gagal.
Menyusun Pengetahuan: Indeks RangkumanPohon (SummaryTreeIndex)
Ketika saya terus menyempurnakan AI Fabrice, saya bereksperimen dengan membuat SummaryTreeIndex. Pendekatan ini bertujuan untuk meringkas semua dokumen ke dalam format pohon, yang memungkinkan AI menavigasi ringkasan ini dan mengambil informasi yang relevan berdasarkan struktur konten.
Idenya adalah dengan meringkas dokumen, AI dapat dengan cepat mengidentifikasi poin-poin penting dan menjawab pertanyaan dengan informasi yang ringkas dan akurat. Namun, metode ini juga menghadapi tantangan yang signifikan. AI kesulitan untuk memberikan jawaban yang berarti untuk pertanyaan yang rumit, seperti “Bagaimana cara membuat keputusan penting dalam hidup?” Alih-alih mengambil dari konten yang kaya dan bernuansa yang tersimpan di dalam rangkuman, respons AI sering kali dangkal atau tidak lengkap.
Pengalaman ini menggarisbawahi sulitnya menyeimbangkan keluasan dan kedalaman dalam AI. Meskipun ringkasan dapat memberikan gambaran umum tingkat tinggi, namun sering kali ringkasan tidak memiliki konteks terperinci yang diperlukan untuk menjawab pertanyaan yang lebih kompleks. Saya menyadari bahwa solusi yang efektif perlu mengintegrasikan konten yang terperinci dan ringkasan tingkat tinggi, yang memungkinkan AI untuk memanfaatkan keduanya sesuai kebutuhan.
Inilah sebabnya mengapa dalam versi AI Fabrice yang saat ini ditayangkan, saya meminta AI memberikan ringkasan jawabannya terlebih dahulu, sebelum membahas lebih detail.
Memperluas Cakrawala: Indeks Grafik Pengetahuan
Menyadari keterbatasan metode sebelumnya, saya beralih ke pendekatan yang lebih canggih: Knowledge Graph Index. Pendekatan ini melibatkan pembuatan grafik pengetahuan dari teks yang tidak terstruktur, sehingga memungkinkan AI untuk terlibat dalam kueri berbasis entitas. Tujuannya adalah untuk menciptakan pemahaman yang lebih dinamis dan saling berhubungan tentang konten, yang memungkinkan AI Fabrice menjawab pertanyaan yang kompleks dan penuh konteks dengan lebih efektif.
Terlepas dari janji-janjinya, Knowledge Graph Index juga menghadapi rintangan yang signifikan. AI kesulitan untuk menghasilkan hasil yang akurat, terutama untuk pertanyaan yang membutuhkan pemahaman mendalam tentang konteksnya. Misalnya, ketika ditanya, “Berapa valuasi Seed & Seri A yang adil?” AI sekali lagi gagal memberikan jawaban yang relevan, menyoroti kesulitan dalam mengintegrasikan teks yang tidak terstruktur ke dalam grafik pengetahuan yang koheren.
Pendekatan ini, meskipun pada akhirnya tidak berhasil, memberikan wawasan penting tentang tantangan penggunaan grafik pengetahuan dalam AI. Kompleksitas data dan kebutuhan akan konteks yang tepat berarti bahwa grafik pengetahuan yang dibangun dengan baik pun bisa kesulitan untuk memberikan hasil yang diinginkan. Satu lagi kekurangan dari Knowledge Graph Index adalah kecepatannya yang lambat. Waktu respons untuk mendapatkan dokumen terkait sangat tinggi dibandingkan dengan indeks penyimpanan vektor.
Mengevaluasi kembali Data: Gemini
Setelah beberapa kali mengalami kegagalan, saya memutuskan untuk mengambil pendekatan yang berbeda dengan memanfaatkan AI Google, Gemini. Idenya adalah untuk membuat kumpulan data dari file JSON-CSV dan kemudian melatih model khusus LLM menggunakan data ini. Saya berharap dengan menggunakan data terstruktur dan model pelatihan yang kuat, saya dapat mengatasi beberapa tantangan yang mengganggu upaya sebelumnya.
Namun, pendekatan ini juga mengalami kesulitan. Proses pelatihan terhenti karena format data yang salah, yang mencegah model dilatih secara efektif. Kemunduran ini menggarisbawahi pentingnya integritas data dalam pelatihan AI. Tanpa data yang diformat dan terstruktur dengan benar, bahkan model yang paling canggih sekalipun dapat gagal bekerja seperti yang diharapkan.
Pengalaman ini membuat saya mempertimbangkan potensi penggunaan BigQuery untuk menyimpan data JSON, menyediakan platform yang lebih terukur dan dapat diandalkan untuk mengelola kumpulan data besar yang diperlukan untuk melatih Fabrice AI secara efektif.
Menggabungkan Kekuatan: Dokumen Langchain dengan Pinecone
Terlepas dari tantangan yang dihadapi sejauh ini, saya bertekad untuk menemukan solusi yang memungkinkan Fabrice AI untuk menyimpan dan mengambil pengetahuan secara efektif. Tekad ini membuat saya bereksperimen dengan dokumen Langchain dan Pinecone. Pendekatan yang dilakukan adalah dengan membuat penyimpanan vektor Pinecone menggunakan dokumen Langchain dan penyematan OpenAI, kemudian mengambil dokumen yang paling mirip berdasarkan kueri.
Metode ini menunjukkan hasil yang menjanjikan, terutama ketika kueri menyertakan judul dokumen. Misalnya, ketika ditanya, “Apa kunci kebahagiaan?”, AI dapat mengambil dan meringkas konten yang relevan secara akurat. Namun, masih ada keterbatasan, terutama ketika kueri tidak memiliki kata kunci atau judul yang spesifik.
Pendekatan ini menunjukkan potensi penggabungan teknologi yang berbeda untuk meningkatkan kinerja AI. Dengan mengintegrasikan dokumen Langchain dengan penyimpanan vektor Pinecone, saya dapat meningkatkan relevansi dan keakuratan respons AI, meskipun dengan beberapa keterbatasan.
Mencapai Konsistensi: Pembangun GPT OpenAI
Setelah menjelajahi berbagai metode dan teknologi, saya beralih ke Open AI’s GPT Builder untuk mengkonsolidasikan dan menyempurnakan pengetahuan yang tersimpan di dalam Fabrice AI. Dengan mengunggah semua konten ke dalam basis pengetahuan GPT, saya bertujuan untuk menciptakan platform yang lebih konsisten dan andal untuk mengambil dan berinteraksi dengan pengetahuan saya.
Pendekatan ini terbukti menjadi salah satu yang paling sukses, dengan AI yang mampu memberikan hasil yang lebih baik di berbagai pertanyaan. Kunci keberhasilan ini adalah integrasi semua pengetahuan ke dalam satu sistem yang kohesif, yang memungkinkan AI untuk memanfaatkan seluruh konten saat menjawab pertanyaan.
Seperti yang disebutkan dalam posting saya sebelumnya, saya tidak dapat menjalankannya di situs web saya, dan hanya tersedia untuk pelanggan berbayar Chat GPT yang saya rasa terlalu membatasi. Selain itu, meskipun lebih baik, saya masih tidak menyukai kualitas jawabannya dan tidak nyaman untuk merilisnya ke publik.
Penyempurnaan Akhir: Asisten GPT Menggunakan Model 4o
Bagian terakhir dari teka-teki dalam mengembangkan Fabrice AI adalah pengenalan Asisten GPT menggunakan Model 4o. Pendekatan ini merupakan puncak dari semua yang telah saya pelajari selama proyek berlangsung. Dengan memanfaatkan basis data vektor dan menyempurnakan petunjuknya, saya bertujuan untuk mencapai tingkat akurasi dan pemahaman kontekstual setinggi mungkin dalam respons AI.
Metode ini melibatkan pengunggahan semua pengetahuan yang telah saya kumpulkan ke dalam basis data vektor, yang kemudian digunakan sebagai fondasi untuk interaksi AI. Basis data vektor memungkinkan AI untuk melakukan pencarian yang lebih canggih, mengambil informasi berdasarkan makna semantik dari pertanyaan daripada hanya mengandalkan pencocokan kata kunci. Hal ini menandai kemajuan yang signifikan dibandingkan pendekatan sebelumnya, memungkinkan AI untuk lebih memahami dan merespons pertanyaan yang kompleks dan bernuansa.
Salah satu inovasi utama dari pendekatan ini adalah penyempurnaan petunjuk yang cermat.
Dengan membuat dan menguji berbagai pertanyaan yang berbeda secara cermat, saya dapat memandu AI untuk memberikan jawaban yang lebih akurat dan relevan.
Hal ini tidak hanya melibatkan penyesuaian kata-kata dari pertanyaan, tetapi juga bereksperimen dengan berbagai cara untuk menyusun pertanyaan untuk mendapatkan respons terbaik.
Hasilnya sangat mengesankan.
AI sekarang mampu menangani berbagai macam pertanyaan dengan akurasi yang tinggi, bahkan ketika pertanyaan-pertanyaan tersebut bersifat terbuka atau membutuhkan pemahaman yang mendalam tentang konteks.
Misalnya, ketika ditanya, “Bagaimana cara membuat keputusan paling penting dalam hidup Anda?”
AI memberikan jawaban yang komprehensif dan berwawasan luas, dengan memanfaatkan berbagai sumber dan perspektif untuk memberikan respons yang menyeluruh.
Keberhasilan ini merupakan puncak dari ratusan jam kerja dan eksperimen yang tak terhitung jumlahnya. Hal ini menunjukkan bahwa, dengan kombinasi teknologi dan penyempurnaan yang tepat, adalah mungkin untuk menciptakan AI yang tidak hanya dapat menyimpan dan mengambil informasi secara efektif, tetapi juga berinteraksi dengan informasi tersebut dengan cara yang bermakna. Pengembangan Asisten GPT menggunakan Model 4o menandai titik di mana Fabrice AI benar-benar menjadi miliknya sendiri, mencapai tingkat kecanggihan dan akurasi yang saya bayangkan sejak awal. API GPT Assistants kemudian diintegrasikan ke dalam blog saya untuk memungkinkan pengguna akhir berinteraksi dengan Fabrice AI seperti yang Anda lihat di blog saat ini.
Merefleksikan Perjalanan
Proses pengembangan Fabrice AI menyoroti kompleksitas bekerja dengan AI, terutama dalam hal memahami dan mengontekstualisasikan informasi. Hal ini mengajarkan saya bahwa tidak ada jalan pintas dalam pengembangan AI-setiap langkah, setiap pengulangan, dan setiap percobaan adalah bagian penting dari perjalanan menuju penciptaan sesuatu yang benar-benar efektif.
Ke depannya, saya bersemangat untuk terus menyempurnakan dan mengembangkan Fabrice AI. Seperti yang telah disebutkan di postingan sebelumnya, saya akan meninjau kembali pertanyaan-pertanyaan yang diajukan untuk melengkapi basis pengetahuan yang masih kurang. Saya juga berharap pada akhirnya dapat merilis versi interaktif yang terlihat dan terdengar seperti saya yang dapat Anda ajak bicara.