LangChain लार्ज लँग्वेज मॉडेल्स (LLMs) च्या सामर्थ्याचा उपयोग करण्यासाठी विकसित केलेले एक अत्याधुनिक आणि मजबूत साधन आहे.
या LLM मध्ये उल्लेखनीय क्षमता आहेत आणि ते कार्यांच्या विस्तृत श्रेणीला कार्यक्षमतेने हाताळू शकतात. तथापि, हे लक्षात घेणे महत्त्वाचे आहे की त्यांची ताकद सखोल डोमेन कौशल्याऐवजी त्यांच्या सामान्य स्वरूपामध्ये असते. GPT-4 सुरू झाल्यापासून त्याची लोकप्रियता झपाट्याने वाढली आहे.
एलएलएम विविध कार्ये हाताळण्यात उत्कृष्ट असताना, विशिष्ट उत्तरे प्रदान करण्यासाठी किंवा सखोल डोमेन ज्ञान आवश्यक असलेल्या कार्यांना सामोरे जाण्यासाठी त्यांना मर्यादा येऊ शकतात. उदाहरणार्थ, प्रश्नांची उत्तरे देण्यासाठी किंवा औषध किंवा कायदा यासारख्या विशिष्ट क्षेत्रात कार्ये करण्यासाठी LLM चा वापर करा.
जरी एलएलएम या क्षेत्रांबद्दलच्या सामान्य चौकशीला नक्कीच प्रतिसाद देऊ शकते, परंतु विशेष ज्ञान किंवा कौशल्याची आवश्यकता असलेल्या अधिक तपशीलवार किंवा सूक्ष्म उत्तरे देण्यासाठी ते संघर्ष करू शकतात.
याचे कारण असे की LLM ला विविध स्त्रोतांकडून मोठ्या प्रमाणात मजकूर डेटावर प्रशिक्षण दिले जाते, ज्यामुळे ते नमुने शिकण्यास, संदर्भ समजून घेण्यास आणि सुसंगत प्रतिसाद निर्माण करण्यास सक्षम करतात. तथापि, त्यांच्या प्रशिक्षणामध्ये सामान्यत: त्या क्षेत्रातील मानवी तज्ञांप्रमाणे डोमेन-विशिष्ट किंवा विशेष ज्ञान संपादन समाविष्ट नसते.
त्यामुळे, लँगचेन, LLM च्या संयोगाने, कार्यांच्या विस्तृत श्रेणीसाठी एक अमूल्य साधन असू शकते, तरीही काही विशिष्ट परिस्थितींमध्ये सखोल डोमेन कौशल्य आवश्यक असू शकते हे ओळखणे महत्त्वाचे आहे. विशेष ज्ञान असलेले मानवी तज्ञ आवश्यक खोली, सूक्ष्म समज आणि संदर्भ-विशिष्ट अंतर्दृष्टी प्रदान करू शकतात जे एकट्या LLM च्या क्षमतेच्या पलीकडे असू शकतात.
आम्ही LangChain च्या डॉक्सकडे पाहण्याचा सल्ला देऊ किंवा GitHub रिपॉजिटरी त्याच्या विशिष्ट वापर प्रकरणांच्या अधिक सखोल समजून घेण्यासाठी. या बंडलचे मोठे चित्र मिळविण्यासाठी जोरदार सल्ला दिला जातो.
हे कस काम करत?
LangChain चा उद्देश आणि कार्य समजून घेण्यासाठी, एक व्यावहारिक उदाहरण पाहू. आम्हाला माहिती आहे की GPT-4 चे सामान्य ज्ञान प्रभावी आहे आणि ते विविध प्रश्नांची विश्वसनीय उत्तरे देऊ शकतात.
तथापि, आम्हाला आमच्या स्वतःच्या डेटामधून विशिष्ट माहिती हवी असल्यास, जसे की वैयक्तिक दस्तऐवज, पुस्तक, PDF फाइल किंवा मालकीचा डेटाबेस?
LangChain आम्हाला कनेक्ट करण्याची परवानगी देते मोठ्या भाषेचे मॉडेल आमच्या स्वतःच्या डेटाच्या स्रोतांप्रमाणे GPT-4. हे चॅट इंटरफेसमध्ये मजकूराचा स्निपेट पेस्ट करण्यापलीकडे जाते. त्याऐवजी, आम्ही आमच्या स्वतःच्या डेटाने भरलेल्या संपूर्ण डेटाबेसचा संदर्भ घेऊ शकतो.
एकदा आम्ही इच्छित माहिती प्राप्त केल्यानंतर, LangChain आम्हाला विशिष्ट कृती करण्यात मदत करू शकते. उदाहरणार्थ, आम्ही काही तपशील असलेला ईमेल पाठवण्याची सूचना देऊ शकतो.
हे साध्य करण्यासाठी, आम्ही LangChain वापरून पाइपलाइन पद्धतीचा अवलंब करतो. प्रथम, आम्हाला हवा असलेला कागदपत्र घेतो भाषा मॉडेल संदर्भ देण्यासाठी आणि लहान भागांमध्ये विभागणे. हे भाग नंतर एम्बेडिंग म्हणून साठवले जातात, जे आहेत वेक्टर डेटाबेसमध्ये मजकूराचे वेक्टर प्रतिनिधित्व.
या सेटअपसह, आम्ही मानक पाइपलाइनचे अनुसरण करणारे भाषा मॉडेल अनुप्रयोग तयार करू शकतो: वापरकर्ता प्रारंभिक प्रश्न विचारतो, जो नंतर भाषा मॉडेलकडे पाठविला जातो. प्रश्नाचे वेक्टर प्रतिनिधित्व वेक्टर डेटाबेसमध्ये समानता शोध करण्यासाठी, माहितीचे संबंधित भाग पुनर्प्राप्त करण्यासाठी वापरले जाते.
हे भाग नंतर भाषा मॉडेलमध्ये परत दिले जातात, ते उत्तर देण्यासाठी किंवा इच्छित कृती करण्यास सक्षम करतात.
LangChain डेटा-जागरूक असलेल्या ऍप्लिकेशन्सच्या विकासास सुलभ करते, कारण आम्ही वेक्टर स्टोअरमध्ये आमच्या स्वतःच्या डेटाचा संदर्भ देऊ शकतो आणि अस्सल, कारण ते प्रश्नांची उत्तरे देण्यापलीकडे कृती करू शकतात. ट
त्याच्यामुळे व्यावहारिक उपयोगाची अनेक प्रकरणे उघडली जातात, विशेषत: वैयक्तिक सहाय्यामध्ये, जेथे एक मोठे भाषा मॉडेल फ्लाइट बुक करणे, पैसे हस्तांतरित करणे किंवा कर-संबंधित बाबींमध्ये मदत करणे यासारखी कामे हाताळू शकते.
याव्यतिरिक्त, नवीन विषयांचा अभ्यास करणे आणि शिकणे यासाठीचे परिणाम महत्त्वपूर्ण आहेत, कारण भाषा मॉडेल संपूर्ण अभ्यासक्रमाचा संदर्भ देऊ शकते आणि शिकण्याची प्रक्रिया वेगवान करू शकते. कोडिंग, डेटा विश्लेषण आणि डेटा विज्ञान देखील या प्रगतीमुळे मोठ्या प्रमाणावर प्रभावित होण्याची अपेक्षा आहे.
ग्राहक माहिती किंवा मार्केटिंग डेटा यासारख्या विद्यमान कंपनी डेटाशी मोठ्या भाषेतील मॉडेल्सला जोडणे ही सर्वात रोमांचक संभावनांपैकी एक आहे. Meta's API किंवा Google's API सारख्या प्रगत API सह हे एकत्रीकरण डेटा विश्लेषण आणि डेटा विज्ञान मध्ये घातांकीय प्रगतीचे वचन देते.
वेबपेज कसे तयार करावे (डेमो)
सध्या, Langchain Python आणि JavaScript पॅकेजेस म्हणून उपलब्ध आहे.
LangChain संकल्पना लागू करण्यासाठी आम्ही Streamlit, LangChain आणि OpenAI GPT-3 मॉडेलचा वापर करून प्रात्यक्षिक वेब अॅप तयार करू शकतो.
परंतु प्रथम, आम्ही स्ट्रीमलिट, लँगचेन आणि ओपनएआयसह काही अवलंबित्व स्थापित केले पाहिजेत.
पूर्व-आवश्यकता
प्रवाहित: डेटा विज्ञान-संबंधित वेब अॅप्लिकेशन तयार करण्यासाठी एक लोकप्रिय पायथन पॅकेज
OpenAI: OpenAI च्या GPT-3 भाषा मॉडेलमध्ये प्रवेश आवश्यक आहे.
या अवलंबित्व स्थापित करण्यासाठी, cmd मध्ये खालील आदेश वापरा:
pip install streamlit
pip install langchain
pip install openai
पॅकेजेस आयात करा
आम्ही OpenAI, LangChain आणि Streamlit सारखी आवश्यक पॅकेजेस आयात करून सुरुवात करतो. आमची भाषा मॉडेल साखळी LangChain मधील तीन वर्ग वापरून परिभाषित आणि कार्यान्वित केली जाते: LLMCchain, SimpleSequentialChain आणि PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
मूलभूत सेटअप
आमच्या प्रकल्पाचा संरचनात्मक आधार नंतर स्ट्रीमलिट वाक्यरचना वापरून ठेवला गेला. आम्ही अॅपला “What's TRUE: Using Simple Sequential Chain” असे शीर्षक दिले आहे आणि GitHub रेपॉजिटरीची मार्कडाउन लिंक समाविष्ट केली आहे जी अॅपची प्रेरणा म्हणून काम करते.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
फ्रंट-एंड विजेट्स
साध्या स्ट्रीमलिट वाक्यरचना वापरून आम्ही काही संबंधित माहितीसह अॅप सेट केले:
# 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")
फ्रंट-एंड विजेट्स जोडण्यासाठी
पुढे, आमच्या वापरकर्त्यांना कोणतेही प्रश्न प्रविष्ट करण्याची परवानगी देण्यासाठी आम्हाला इनपुट विजेट प्रदान करणे आवश्यक आहे.
# 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?",
)
पूर्ण झाले! साखळ्या उठल्या आहेत आणि चालू आहेत!
आम्ही एकत्रितपणे ऑपरेशनच्या विविध साखळी वापरतो SimpleSequentialChain
वापरकर्त्याच्या प्रश्नाला उत्तर देण्यासाठी. जेव्हा वापरकर्ता निवडतो तेव्हा साखळी खालील क्रमाने चालते "Tell me about it"
बटण:
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
: जी आमच्या पाइपलाइनची पहिली पायरी आहे, वापरकर्त्याचे प्रश्न इनपुट आणि आउटपुट म्हणून प्राप्त करते. वापरकर्त्याची क्वेरी साखळीचे टेम्पलेट म्हणून काम करते.- प्रश्नाशी जोडलेल्या विधानावर आधारित, द
assumptions_chain
पासून आउटपुट वापरून गृहितकांची बुलेट-पॉइंट सूची व्युत्पन्न करतेquestion_chain
इनपुट म्हणून. दLLMChain
आणिOpenAI
LangChain मधील मॉडेल विधान तयार करण्यासाठी वापरले होते. या साखळीसाठी टेम्प्लेट वापरून विधान तयार करण्यासाठी केलेल्या गृहितकांची सूची तयार करण्याचे काम वापरकर्त्याला दिले जाते. - च्या आउटपुटवर आधारित
question_chain
आणिassumptions_chain
,fact_checker_chain
बुलेट पॉइंट्सच्या स्वरूपात दाव्याची सूची तयार करते. वापरून दावे तयार केले जातातOpenAI
मॉडेल आणिLLMChain
LangChain कडून. वापरकर्त्याला प्रत्येक दावा अचूक आहे की चुकीचा आहे हे ठरवण्याचे आणि जे आहेत त्यांना समर्थन देण्याचे काम दिले जाते. - अगोदर निर्देश केलेल्या बाबीसंबंधी बोलताना
answer_chain
पासून आउटपुट वापरतेquestion_chain
,assumptions_chain
आणिfact_checker_chain
आधीच्या साखळीद्वारे उत्पादित डेटा वापरून वापरकर्त्याच्या प्रश्नाला प्रतिसाद तयार करण्यासाठी इनपुट म्हणून. या साखळीसाठी टेम्पलेट विनंती करते की वापरकर्त्याने तयार केलेल्या तथ्यांचा वापर करून पहिल्या क्वेरीला प्रतिसाद द्यावा. - आधीच्या साखळ्यांद्वारे उत्पादित केलेल्या माहितीच्या आधारे वापरकर्त्याच्या चौकशीला अंतिम प्रतिसाद देण्यासाठी, आम्ही या साखळ्या एकंदर साखळीत समाकलित करतो. साखळी पूर्ण झाल्यानंतर, आम्ही वापरतो
st.success()
वापरकर्त्याला उपाय दर्शविण्यासाठी.
निष्कर्ष
वापरून अधिक क्लिष्ट पाइपलाइन तयार करण्यासाठी आम्ही वेगवेगळ्या भाषा मॉडेल क्रिया एकत्र करू शकतो SimpleSequentialChain
LangChain चे मॉड्यूल. चॅटबॉट्स, प्रश्न-उत्तर प्रणाली आणि भाषा भाषांतर साधनांसह विविध प्रकारच्या NLP अनुप्रयोगांसाठी, हे खूप उपयुक्त ठरू शकते.
LangChain चे तेज त्याच्या अमूर्त क्षमतेमध्ये आढळते, जे वापरकर्त्याला भाषेच्या मॉडेलिंगच्या वैशिष्ट्यांऐवजी वर्तमान समस्येवर लक्ष केंद्रित करण्यास सक्षम करते.
LangChain पूर्व-प्रशिक्षित मॉडेल्स आणि टेम्पलेट्सची निवड ऑफर करून अत्याधुनिक भाषा मॉडेल तयार करण्याची प्रक्रिया अधिक वापरकर्ता-अनुकूल बनवते.
हे तुम्हाला भाषा मॉडेल्सचा स्वतःचा डेटा वापरून फाइन-ट्यून करण्याचा पर्याय देते, ज्यामुळे भाषा मॉडेल्स कस्टमाइझ करणे सोपे होते. हे अधिक अचूक, डोमेन-विशिष्ट मॉडेल विकसित करण्यास सक्षम करते जे, दिलेल्या नोकरीसाठी, प्रशिक्षित मॉडेल्सपेक्षा जास्त कामगिरी करतात.
अगोदर निर्देश केलेल्या बाबीसंबंधी बोलताना SimpleSequentialChain
LangChain चे मॉड्यूल आणि इतर वैशिष्ट्ये हे अत्याधुनिक NLP प्रणाली जलद विकसित आणि तैनात करण्यासाठी एक प्रभावी साधन बनवतात.
प्रत्युत्तर द्या