LangChain adalah kerangka kerja orkestrasi sumber terbuka untuk pengembangan aplikasi yang menggunakan model bahasa besar (LLM). Tersedia dalam pustaka berbasis Python dan Javascript, alat bantu dan API LangChain menyederhanakan proses pembuatan aplikasi berbasis LLM seperti chatbot dan agen virtual.
LangChain berfungsi sebagai antarmuka umum bagi hampir semua LLM, menyediakan lingkungan pengembangan terpusat untuk membangun aplikasi LLM dan mengintegrasikannya dengan sumber data eksternal dan alur kerja peranti lunak. Pendekatan berbasis modul LangChain memungkinkan pengembang dan ilmuwan data untuk secara dinamis membandingkan berbagai prompt dan bahkan model dasar yang berbeda dengan kebutuhan minimal untuk menulis ulang kode. Lingkungan ini modular juga memungkinkan program yang menggunakan beberapa LLM. Misalnya, sebuah aplikasi yang menggunakan satu LLM untuk memahami pertanyaan pengguna dan LLM lainnya untuk menulis respons.
Diluncurkan oleh Harrison Chase pada Oktober 2022, LangChain menikmati peningkatan popularitas yang luar biasa: pada Juni 2023, LangChain merupakan proyek sumber terbuka dengan pertumbuhan tercepat di Github.1 Bertepatan dengan peluncuran penting ChatGPT OpenAI pada bulan berikutnya, LangChain telah memainkan peran penting dalam menjadikan AI generatif lebih mudah diakses oleh para peminat setelah popularitasnya yang meluas.
LangChain dapat memfasilitasi sebagian besar contoh penggunaan untuk LLM dan pemrosesan bahasa alami (NLP), seperti chatbot, pencarian cerdas, menjawab pertanyaan, layanan peringkasan, atau bahkan agen virtual yang mampu melakukan otomatisasi proses robotik.
LLMs adalah model statistik yang telah dilatih sebelumnya, bukan aplikasi standalone. Untuk memenuhi tujuannya, LLMs harus dipasangkan dengan aplikasi tertentu dan, dalam beberapa kasus, sumber data spesifik.
Misalnya, Chat-GPT bukan LLM: ini adalah aplikasi chatbot yang, bergantung pada versi yang Anda pilih, menggunakan model bahasa GPT-3.5 atau GPT-4. Meskipun model GPT yang menafsirkan input pengguna dan menyusun respons bahasa alami, itu adalah aplikasi yang (antara lain) menyediakan antarmuka bagi pengguna untuk mengetik dan membaca dan desain UX yang mengatur pengalaman chatbot. Pada tingkat perusahaan, Chat-GPT bukanlah hanya aplikasi yang menggunakan model GPT: Microsoft menggunakan GPT-4 untuk memberdayakan Bing Chat.
Selain itu, meskipun model dasar (seperti yang mendukung LLM) telah dilatih sebelumnya pada kumpulan data yang sangat besar, model ini tidak bersifat serba tahu. Jika tugas tertentu membutuhkan akses ke informasi kontekstual tertentu, seperti dokumentasi internal atau keahlian domain, LLM harus terhubung ke sumber data eksternal tersebut. Bahkan untuk mencerminkan kesadaran waktu nyata terhadap peristiwa terkini, model Anda membutuhkan informasi eksternal: data internal model hanya diperbarui hingga periode waktu saat model Anda dilatih.
Demikian juga, jika tugas AI generatif tertentu memerlukan akses ke alur kerja perangkat lunak eksternal—misalnya, jika Anda ingin agen virtual Anda berintegrasi dengan Slack—maka Anda akan memerlukan cara untuk mengintegrasikan LLM dengan API untuk peranti lunak itu.
Meskipun integrasi ini umumnya dapat dicapai dengan kode manual sepenuhnya, kerangka kerja orkestrasi seperti LangChain dan portofolio produk AI IBM watsonx sangat menyederhanakan prosesnya. Integrasi ini juga membuatnya lebih mudah untuk bereksperimen dengan LLM yang berbeda untuk membandingkan hasil, karena model yang berbeda dapat ditukar dengan perubahan minimal pada kode.
Inti dari LangChain adalah sebuah lingkungan pengembangan yang merampingkan pemrograman aplikasi LLM melalui penggunaan abstraksi: penyederhanaan kode dengan merepresentasikan satu proses atau lebih yang kompleks sebagai sebuah komponen bernama yang merangkum semua langkah konstituennya.
Abstraksi merupakan elemen umum dalam kehidupan sehari-hari dan bahasa. Sebagai contoh, "π" memungkinkan kita untuk merepresentasikan rasio panjang keliling lingkaran dengan diameternya tanpa harus menuliskan angka yang tak terbatas. Demikian pula, termostat memungkinkan kita untuk mengontrol suhu di rumah kita tanpa perlu memahami sirkuit yang rumit, kita hanya perlu mengetahui bagaimana pengaturan termostat yang berbeda menghasilkan suhu yang berbeda.
LangChain pada dasarnya adalah sebuah pustaka abstraksi untuk Python dan Javascript, yang merepresentasikan langkah-langkah dan konsep umum yang diperlukan untuk bekerja dengan model bahasa. Komponen modular ini-seperti fungsi dan kelas objek-berfungsi sebagai blok bangunan program AI generatif. Mereka dapat "dirantai" bersama untuk membuat aplikasi, meminimalkan jumlah kode dan pemahaman yang baik yang diperlukan untuk menjalankan tugas-tugas NLP yang kompleks. Meskipun pendekatan abstrak LangChain dapat membatasi sejauh mana programmer pakar dapat menyesuaikan aplikasi dengan baik, pendekatan ini memberdayakan spesialis dan pendatang baru untuk bereksperimen dan membuat prototipe dengan cepat.
Hampir semua LLM dapat digunakan di LangChain. Mengimpor model bahasa ke LangChain mudah, asalkan Anda memiliki kunci API. Kelas LLM dirancang untuk menyediakan antarmuka standar untuk semua model.
Sebagian besar penyedia LLM akan meminta Anda untuk membuat akun agar menerima kunci API. Beberapa API ini - terutama untuk model sumber tertutup yang eksklusif, seperti yang ditawarkan oleh OpenAI atau Anthropic - mungkin memiliki biaya terkait.
Banyak model sumber terbuka, seperti BLOOM dari BigScience, LLaMa dari Meta AI dan Flan-T5 dari Google, dapat diakses melalui Hugging Face (tautan berada di luar ibm.com). IBM watsonx, melalui kemitraannya dengan Hugging Face, juga menawarkan rangkaian model sumber terbuka yang telah dikurasi. Membuat akun pada salah satu layanan akan memungkinkan Anda untuk membuat kunci API untuk salah satu model yang ditawarkan oleh penyedia tersebut.
LangChain tidak terbatas pada model dasar yang siap pakai: kelas CustomLLM (tautan berada di luar ibm.com) memungkinkan pembungkus LLM khusus. Demikian pula, Anda dapat menggunakan API IBM watsonx dan SDK Python, yang mencakup integrasi LangChain, untuk membangun aplikasi di LangChain dengan model yang telah Anda latih atau sesuaikan untuk kebutuhan spesifik Anda menggunakan kelas WatsonxLLM (dan ID proyek spesifik model).
Prompt adalah instruksi yang diberikan kepada LLM. "Seni" membuat prompt yang efektif membawa konteks yang diperlukan LLM untuk memahami input dan mengatur output yang paling berguna bagi Anda sering disebut rekayasa prompt.
Kelas PromptTemplate di LangChain memformalkan komposisi prompt tanpa perlu secara manual mengodekan konteks dan kueri secara manual. Elemen-elemen penting dari sebuah prompt juga dimasukkan sebagai kelas formal, seperti input_variabel. Dengan demikian, templat perintah dapat berisi dan mereproduksi konteks, instruksi (seperti "jangan gunakan istilah teknis"), serangkaian contoh untuk memandu responsnya (dalam apa yang disebut "prompting dengan beberapa contoh"), format keluaran yang ditentukan, atau pertanyaan terstandardisasi yang harus dijawab. Anda dapat menyimpan dan memberi nama templat prompt yang terstruktur secara efektif dan dengan mudah menggunakannya kembali sesuai kebutuhan.
Meskipun semua elemen ini dapat dikodekan secara manual, modul PromptTemplate memberdayakan integrasi yang lancar dengan fitur LangChain lainnya, seperti rantai eponim.
Sesuai dengan namanya, rantai adalah inti dari alur kerja LangChain. Mereka menggabungkan LLM dengan komponen lain, membuat aplikasi dengan menjalankan urutan fungsi.
Rantai-rantai yang paling dasar adalah LLMChain. Rantai ini hanya memanggil model dan meminta templat untuk model tersebut. Misalnya, bayangkan Anda menyimpan prompt sebagai “examplePrompt” dan ingin menjalankannya terhadap Flan-T5. Anda dapat mengimpor LLMChain dari langchain.chains, kemudian tentukan chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt). Untuk menjalankan rantai untuk input yang diberikan, Anda cukup memanggil chain_example.run("input").
Untuk menggunakan output dari satu fungsi sebagai input untuk fungsi berikutnya, Anda dapat menggunakan SimpleSequentialChain. Setiap fungsi dapat menggunakan prompts yang berbeda, alat yang berbeda, parameter atau model yang berbeda, sesuai dengan kebutuhan Anda.
Untuk mencapai tugas tertentu, LLM akan membutuhkan akses ke sumber data eksternal tertentu yang tidak termasuk dalam kumpulan data pelatihannya, seperti dokumen internal, email, atau kumpulan data. LangChain secara kolektif mengacu pada dokumentasi eksternal seperti "indeks".
LangChain menawarkan berbagai macam pemuat dokumen untuk aplikasi pihak ketiga (tautan berada di luar ibm.com). Hal ini memungkinkan impor data dengan mudah dari berbagai sumber seperti layanan penyimpanan file (seperti Dropbox, Google Drive, dan Microsoft OneDrive), konten web (seperti YouTube, PubMed atau URL tertentu), alat kolaborasi (seperti Airtable, Trello, Figma, dan Notion), basis data (seperti Pandas, MongoDB, dan Microsoft), serta banyak lagi.
Tidak seperti database terstruktur "tradisional", basis data vektor mewakili titik data dengan mengubahnya menjadi penyematan vektor: representasi numerik dalam bentuk vektor dengan jumlah dimensi yang tetap, sering kali mengelompokkan titik data terkait menggunakan metode pembelajaran tanpa pengawasan. Hal ini memungkinkan kueri latensi rendah, bahkan untuk kumpulan data yang sangat besar, yang sangat meningkatkan efisiensi. Penanaman vektor juga menyimpan metadata setiap vektor, sehingga meningkatkan kemungkinan pencarian.
LangChain menyediakan integrasi untuk lebih dari 25 metode penyematan yang berbeda, serta lebih dari 50 penyimpanan vektor yang berbeda (baik yang di-host di cloud maupun lokal).
Untuk meningkatkan kecepatan dan mengurangi kebutuhan komputasi, sering kali bijaksana untuk membagi dokumen teks yang besar menjadi bagian yang lebih kecil. TextSplitters LangChain memecah teks menjadi potongan-potongan kecil yang bermakna secara semantik, yang kemudian dapat digabungkan menggunakan metode dan parameter yang Anda pilih.
Setelah sumber-sumber pengetahuan eksternal dihubungkan, model harus dapat dengan cepat mengambil dan mengintegrasikan informasi yang relevan sesuai kebutuhan. Seperti watsonx, LangChain menawarkan generasi dengan dukungan pengambilan data (RAG): modul pengambil menerima kueri string sebagai input dan mengembalikan daftar Dokumensebagai output.
LLM, secara default, tidak memiliki memori jangka panjang tentang percakapan sebelumnya (kecuali riwayat obrolan tersebut digunakan sebagai input untuk kueri). LangChain memecahkan masalah ini dengan utilitas sederhana untuk menambahkan memori ke sebuah sistem, dengan pilihan mulai dari menyimpan keseluruhan semua percakapan hingga menyimpan ringkasan percakapan sejauh ini hingga menyimpan n pertukaran terbaru.
Agen LangChain dapat menggunakan model bahasa yang diberikan sebagai "mesin penalaran" untuk menentukan tindakan mana yang harus diambil. Saat membangun rantai untuk agen, inputnya meliputi:
Terlepas dari kekuatan dan keserbagunaannya yang digembar-gemborkan, LLM memiliki keterbatasan penting: yaitu, kurangnya informasi terkini, kurangnya keahlian khusus dalam bidang tertentu, dan kesulitan umum dengan matematika.
Alat bantu LangChain (tautan berada di luar ibm.com) merupakan seperangkat fungsi yang memberdayakan agen-agen LangChain untuk berinteraksi dengan informasi dunia nyata dalam rangka memperluas atau meningkatkan layanan yang dapat disediakannya. Contoh alat LangChain yang menonjol meliputi:
Wolfram Alpha: menyediakan akses ke fungsi komputasi dan visualisasi data yang kuat, memungkinkan kemampuan matematika yang canggih.
Google Penelusuran: menyediakan akses ke Google Penelusuran, melengkapi aplikasi dan agen dengan informasi secara real time.
OpenWeatherMap: mengambil informasi cuaca.
Wikipedia: menyediakan akses yang efisien ke informasi dari artikel-artikel Wikipedia.
Dirilis pada musim gugur 2023, LangSmith bertujuan untuk menjembatani kesenjangan antara kemampuan pembuatan prototipe yang dapat diakses yang membuat LangChain terkenal dan membangun aplikasi LLM berkualitas produksi.
LangSmith menyediakan alat untuk memantau, mengevaluasi, dan men-debug aplikasi, termasuk kemampuan untuk secara otomatis melacak semua panggilan model untuk menemukan kesalahan dan menguji kinerja di bawah konfigurasi model yang berbeda. Visibilitas ini bertujuan untuk memberdayakan aplikasi yang lebih kuat dan hemat biaya.
LangChain bersifat sumber terbuka dan gratis untuk digunakan: kode sumber tersedia untuk diunduh di Github (tautan berada di luar ibm.com).
LangChain juga dapat diinstal pada Python dengan perintah pip sederhana: pip install langchain. Untuk menginstal semua dependensi LangChain (bukan hanya yang Anda anggap perlu), Anda dapat menjalankan perintah pip install langchain[all].
Banyak tutorial langkah demi langkah yang tersedia dari ekosistem komunitas LangChain yang lebih besar dan dokumentasi resmi di docs.langchain.com (tautan berada di luar ibm.com).
Aplikasi yang dibuat dengan LangChain memberikan utilitas yang luar biasa untuk berbagai contoh penggunaan, mulai dari tugas-tugas menjawab pertanyaan dan pembuatan teks yang mudah hingga solusi yang lebih kompleks yang menggunakan LLM sebagai "mesin penalaran".
Jelajahi pustaka model dasar IBM di portfolio watsonx untuk menskalakan AI generatif untuk bisnis Anda dengan percaya diri.
Gunakan AI di bisnis Anda keahlian AI terdepan di industri dan portofolio solusi dari IBM.
Rancang ulang alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.
Temukan IBM Granite, rangkaian model AI kami yang terbuka, berkinerja, dan tepercaya, yang dirancang untuk bisnis dan dioptimalkan untuk menskalakan aplikasi AI Anda. Jelajahi opsi bahasa, kode, deret waktu, dan batasan.
Pelajari cara memilih model dasar AI yang paling sesuai untuk contoh penggunaan Anda.
Jelajahi artikel, blog, dan tutorial di IBM Developer untuk memperdalam pemahaman Anda tentang LLM.
Pelajari cara terus mendorong tim untuk meningkatkan kinerja model dan unggul dalam persaingan dengan menggunakan teknik dan infrastruktur AI terbaru.
Jelajahi nilai model dasar tingkat perusahaan yang memberikan kepercayaan, kinerja, dan manfaat hemat biaya untuk semua industri.
Pelajari cara menggabungkan AI generatif, machine learning, dan model dasar ke dalam operasi bisnis Anda untuk meningkatkan kinerja.
Baca lebih dari 2.000 organisasi yang kami survei tentang inisiatif AI mereka untuk mengetahui hal yang berhasil, yang tidak, dan cara Anda bisa maju.
1 The fastest-growing open-source startups in Q2 2023 (tautan berada di luar ibm.com), Runa Capital, 2023