Jadual Kandungan[Sembunyi][Tunjukkan]
LangChain ialah alat canggih dan teguh yang dibangunkan untuk memanfaatkan kuasa Model Bahasa Besar (LLM).
LLM ini mempunyai keupayaan yang luar biasa dan boleh menangani pelbagai tugas dengan cekap. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kekuatan mereka terletak pada sifat umum mereka dan bukannya kepakaran domain yang mendalam. Popularitinya telah berkembang pesat sejak pengenalan GPT-4.
Walaupun LLM cemerlang dalam mengendalikan pelbagai tugas, mereka mungkin menghadapi batasan dalam menyediakan jawapan khusus atau menangani tugas yang memerlukan pengetahuan domain yang mendalam. Pertimbangkan, sebagai contoh, menggunakan LLM untuk menjawab soalan atau melaksanakan tugas dalam bidang khusus seperti perubatan atau undang-undang.
Walaupun LLM pasti boleh menjawab pertanyaan umum tentang bidang ini, ia mungkin sukar untuk menawarkan jawapan yang lebih terperinci atau bernuansa yang memerlukan pengetahuan atau kepakaran khusus.
Ini kerana LLM dilatih mengenai sejumlah besar data teks daripada sumber yang pelbagai, membolehkan mereka mempelajari corak, memahami konteks dan menjana respons yang koheren. Walau bagaimanapun, latihan mereka biasanya tidak melibatkan pemerolehan pengetahuan khusus domain atau khusus pada tahap yang sama seperti pakar manusia dalam bidang tersebut.
Oleh itu, walaupun LangChain, bersama-sama dengan LLM, boleh menjadi alat yang tidak ternilai untuk pelbagai tugas, adalah penting untuk menyedari bahawa kepakaran domain yang mendalam mungkin masih diperlukan dalam situasi tertentu. Pakar manusia dengan pengetahuan khusus boleh memberikan kedalaman yang diperlukan, pemahaman bernuansa dan cerapan khusus konteks yang mungkin di luar kemampuan LLM sahaja.
Kami menasihati anda untuk melihat dokumen LangChain atau GitHub repositori untuk pemahaman yang lebih teliti tentang kes penggunaan tipikalnya. Adalah dinasihatkan untuk mendapatkan gambaran yang lebih besar tentang berkas ini.
Bagaimanakah ia berfungsi?
Untuk memahami tujuan dan kerja LangChain, mari kita pertimbangkan contoh praktikal. Kami sedar bahawa GPT-4 mempunyai pengetahuan am yang mengagumkan dan boleh memberikan jawapan yang boleh dipercayai kepada pelbagai soalan.
Walau bagaimanapun, bagaimana jika kita mahukan maklumat khusus daripada data kita sendiri, seperti dokumen peribadi, buku, fail PDF atau pangkalan data proprietari?
LangChain membolehkan kami menyambung a model bahasa yang besar seperti GPT-4 kepada sumber data kami sendiri. Ia lebih daripada sekadar menampal coretan teks ke dalam antara muka sembang. Sebaliknya, kami boleh merujuk keseluruhan pangkalan data yang diisi dengan data kami sendiri.
Sebaik sahaja kami memperoleh maklumat yang dikehendaki, LangChain boleh membantu kami dalam mengambil tindakan tertentu. Sebagai contoh, kami boleh mengarahkannya untuk menghantar e-mel yang mengandungi butiran tertentu.
Untuk mencapai matlamat ini, kami mengikuti pendekatan saluran paip menggunakan LangChain. Pertama, kami mengambil dokumen yang kami mahu model bahasa untuk merujuk dan membahagikannya kepada ketulan yang lebih kecil. Ketulan ini kemudiannya disimpan sebagai benam, iaitu perwakilan vektor teks, dalam Pangkalan Data Vektor.
Dengan persediaan ini, kami boleh membina aplikasi model bahasa yang mengikut saluran paip standard: pengguna bertanya soalan awal, yang kemudiannya dihantar ke model bahasa. Perwakilan vektor soalan digunakan untuk melakukan carian persamaan dalam Pangkalan Data Vektor, mendapatkan semula cebisan maklumat yang berkaitan.
Potongan ini kemudiannya disalurkan kembali kepada model bahasa, membolehkannya memberikan jawapan atau mengambil tindakan yang diingini.
LangChain memudahkan pembangunan aplikasi yang mengetahui data, kerana kami boleh merujuk data kami sendiri di kedai vektor, dan sahih, kerana mereka boleh mengambil tindakan di luar menjawab soalan. T
beliau membuka banyak kes penggunaan praktikal, terutamanya dalam bantuan peribadi, di mana model bahasa yang besar boleh mengendalikan tugas seperti menempah penerbangan, memindahkan wang atau membantu dengan perkara berkaitan cukai.
Selain itu, implikasi untuk belajar dan mempelajari subjek baharu adalah penting, kerana model bahasa boleh merujuk keseluruhan sukatan pelajaran dan mempercepatkan proses pembelajaran. Pengekodan, analisis data dan sains data juga dijangka akan sangat dipengaruhi oleh kemajuan ini.
Salah satu prospek yang paling menarik ialah menghubungkan model bahasa yang besar kepada data syarikat sedia ada, seperti maklumat pelanggan atau data pemasaran. Penyepaduan dengan API lanjutan seperti Meta's API atau Google's API menjanjikan kemajuan eksponen dalam analisis data dan sains data.
Cara Membina Halaman Web (Demo)
Pada masa ini, Langchain tersedia sebagai Pakej Python dan JavaScript.
Kami boleh mencipta Apl Web demonstrasi menggunakan Streamlit, LangChain, dan model OpenAI GPT-3 untuk melaksanakan konsep LangChain.
Tetapi pertama, kita mesti memasang beberapa kebergantungan, termasuk Streamlit, LangChain, dan OpenAI.
Pra-syarat
Streamlit: Pakej Python yang popular untuk mencipta aplikasi web berkaitan sains data
OpenAI: Akses kepada model bahasa GPT-3 OpenAI diperlukan.
Untuk memasang kebergantungan ini, gunakan arahan berikut dalam cmd:
pip install streamlit
pip install langchain
pip install openai
Pakej Import
Kami bermula dengan mengimport pakej yang diperlukan, seperti OpenAI, LangChain dan Streamlit. Rantaian model bahasa kami ditakrifkan dan dilaksanakan menggunakan tiga kelas daripada LangChain: LLMChain, SimpleSequentialChain dan PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Persediaan Asas
Asas struktur projek kami kemudiannya disediakan menggunakan sintaks Streamlit. Kami memberi apl itu tajuk "Apa yang BENAR: Menggunakan Rangkaian Jujukan Mudah" dan menyertakan pautan turun harga ke repositori GitHub yang menjadi inspirasi apl.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widget Hadapan
Kami menyediakan apl dengan sedikit maklumat yang berkaitan, menggunakan sintaks Streamlit mudah:
# If an API key has been provided, create an OpenAI language model instance
if API:
llm = OpenAI(temperature=0.7, openai_api_key=API)
else:
# If an API key hasn't been provided, display a warning message
st.warning("Enter your OPENAI API-KEY. Get your OpenAI API key from [here](https://platform.openai.com/account/api-keys).\n")
Untuk menambah widget bahagian hadapan
Selanjutnya, kami perlu menyediakan widget input untuk membolehkan pengguna kami memasukkan sebarang soalan.
# Add a text input box for the user's question
user_question = st.text_input(
"Enter Your Question : ",
placeholder = "Cyanobacteria can perform photosynthetsis , are they considered as plants?",
)
Semua selesai! Rantaian sedang berjalan!
Kami menggunakan pelbagai rangkaian operasi bersama-sama dengan SimpleSequentialChain
untuk menjawab pertanyaan pengguna. Rantaian dijalankan dalam urutan berikut apabila pengguna memilih "Tell me about it"
butang:
if st.button("Tell me about it", type="primary"):
# Chain 1: Generating a rephrased version of the user's question
template = """{question}\n\n"""
prompt_template = PromptTemplate(input_variables=["question"], template=template)
question_chain = LLMChain(llm=llm, prompt=prompt_template)
# Chain 2: Generating assumptions made in the statement
template = """Here is a statement:
{statement}
Make a bullet point list of the assumptions you made when producing the above statement.\n\n"""
prompt_template = PromptTemplate(input_variables=["statement"], template=template)
assumptions_chain = LLMChain(llm=llm, prompt=prompt_template)
assumptions_chain_seq = SimpleSequentialChain(
chains=[question_chain, assumptions_chain], verbose=True
)
# Chain 3: Fact checking the assumptions
template = """Here is a bullet point list of assertions:
{assertions}
For each assertion, determine whether it is true or false. If it is false, explain why.\n\n"""
prompt_template = PromptTemplate(input_variables=["assertions"], template=template)
fact_checker_chain = LLMChain(llm=llm, prompt=prompt_template)
fact_checker_chain_seq = SimpleSequentialChain(
chains=[question_chain, assumptions_chain, fact_checker_chain], verbose=True
)
# Final Chain: Generating the final answer to the user's question based on the facts and assumptions
template = """In light of the above facts, how would you answer the question '{}'""".format(
user_question
)
template = """{facts}\n""" + template
prompt_template = PromptTemplate(input_variables=["facts"], template=template)
answer_chain = LLMChain(llm=llm, prompt=prompt_template)
overall_chain = SimpleSequentialChain(
chains=[question_chain, assumptions_chain, fact_checker_chain, answer_chain],
verbose=True,
)
# Running all the chains on the user's question and displaying the final answer
st.success(overall_chain.run(user_question))
question_chain
: yang merupakan langkah pertama dalam saluran paip kami, menerima soalan pengguna sebagai input dan output. Pertanyaan pengguna berfungsi sebagai templat rantai.- Berdasarkan pernyataan yang dikaitkan dengan soalan, the
assumptions_chain
menjana senarai bullet-point andaian menggunakan output daripadaquestion_chain
sebagai input. TheLLMChain
andOpenAI
model dari LangChain digunakan untuk membina pernyataan. Pengguna ditugaskan untuk membuat senarai andaian yang dibuat untuk menghasilkan pernyataan menggunakan templat untuk rantaian ini. - Berdasarkan keluaran daripada
question_chain
andassumptions_chain
, yangfact_checker_chain
menghasilkan senarai penegasan dalam bentuk titik peluru. Tuntutan dihasilkan menggunakanOpenAI
model danLLMChain
daripada LangChain. Pengguna ditugaskan untuk menentukan sama ada setiap dakwaan adalah tepat atau salah dan memberikan justifikasi bagi tuntutan tersebut. - .
answer_chain
menggunakan output daripadaquestion_chain
,assumptions_chain
, danfact_checker_chain
sebagai input untuk mencipta respons kepada soalan pengguna menggunakan data yang dihasilkan oleh rantaian terdahulu. Templat untuk rantaian ini meminta pengguna menjawab pertanyaan pertama menggunakan fakta yang telah dibuat. - Untuk memberikan respons muktamad kepada pertanyaan pengguna berdasarkan maklumat yang dihasilkan oleh rantaian terdahulu, kami menyepadukan rantaian ini ke dalam rantaian keseluruhan. Selepas rantai selesai, kami gunakan
st.success()
untuk menunjukkan kepada pengguna penyelesaiannya.
Kesimpulan
Kita hanya boleh merangkaikan tindakan model bahasa yang berbeza untuk mencipta saluran paip yang lebih rumit dengan menggunakan SimpleSequentialChain
modul LangChain. Untuk pelbagai jenis aplikasi NLP, termasuk chatbots, sistem soal jawab dan alat terjemahan bahasa, ini mungkin sangat membantu.
Kecemerlangan LangChain didapati dalam kapasitinya untuk abstrak, yang membolehkan pengguna menumpukan perhatian pada isu semasa dan bukannya spesifik pemodelan bahasa.
LangChain menjadikan proses mencipta model bahasa yang canggih lebih mesra pengguna dengan menawarkan model pra-latihan dan pilihan templat.
Ia memberi anda pilihan untuk memperhalusi model bahasa menggunakan data mereka sendiri, menjadikannya mudah untuk menyesuaikan model bahasa. Ini membolehkan pembangunan model khusus domain yang lebih tepat yang, untuk kerja tertentu, mengatasi model terlatih.
. SimpleSequentialChain
modul dan ciri lain LangChain menjadikannya alat yang berkesan untuk membangunkan dan menggunakan sistem NLP yang canggih dengan cepat.
Sila tinggalkan balasan anda