LangChain એ લાર્જ લેંગ્વેજ મોડલ્સ (LLM) ની શક્તિનો ઉપયોગ કરવા માટે વિકસાવવામાં આવેલ એક અદ્યતન અને મજબૂત સાધન છે.
આ LLM નોંધપાત્ર ક્ષમતાઓ ધરાવે છે અને કાર્યક્ષમતાથી વિશાળ શ્રેણીના કાર્યોનો સામનો કરી શકે છે. જો કે, એ નોંધવું અગત્યનું છે કે તેમની શક્તિ ઊંડાણપૂર્વકની ડોમેન કુશળતાને બદલે તેમના સામાન્ય સ્વભાવમાં રહેલી છે. GPT-4ની રજૂઆત બાદ તેની લોકપ્રિયતા ઝડપથી વધી છે.
જ્યારે એલએલએમ વિવિધ કાર્યોને સંભાળવામાં શ્રેષ્ઠ છે, ત્યારે ચોક્કસ જવાબો પ્રદાન કરવા અથવા ગહન ડોમેન જ્ઞાનની જરૂર હોય તેવા કાર્યોનો સામનો કરવાની વાત આવે ત્યારે તેઓને મર્યાદાઓનો સામનો કરવો પડી શકે છે. દાખલા તરીકે, દવાઓ અથવા કાયદા જેવા વિશિષ્ટ ક્ષેત્રોમાં પ્રશ્નોના જવાબ આપવા અથવા કાર્યો કરવા માટે એલએલએમનો ઉપયોગ કરવાનો વિચાર કરો.
જ્યારે LLM ચોક્કસપણે આ ક્ષેત્રો વિશેની સામાન્ય પૂછપરછનો જવાબ આપી શકે છે, તે વધુ વિગતવાર અથવા સૂક્ષ્મ જવાબો પ્રદાન કરવા માટે સંઘર્ષ કરી શકે છે જે વિશિષ્ટ જ્ઞાન અથવા કુશળતાની જરૂર હોય છે.
આનું કારણ એ છે કે એલએલએમને વિવિધ સ્ત્રોતોમાંથી વિશાળ માત્રામાં ટેક્સ્ટ ડેટા પર તાલીમ આપવામાં આવે છે, જે તેમને પેટર્ન શીખવા, સંદર્ભ સમજવા અને સુસંગત પ્રતિભાવો જનરેટ કરવામાં સક્ષમ બનાવે છે. જો કે, તેમની તાલીમમાં સામાન્ય રીતે તે ક્ષેત્રોમાં માનવ નિષ્ણાતોની જેમ ડોમેન-વિશિષ્ટ અથવા વિશિષ્ટ જ્ઞાન સંપાદનનો સમાવેશ થતો નથી.
તેથી, જ્યારે LangChain, LLMs સાથે જોડાણમાં, કાર્યોની વ્યાપક શ્રેણી માટે અમૂલ્ય સાધન બની શકે છે, તે ઓળખવું મહત્વપૂર્ણ છે કે ચોક્કસ પરિસ્થિતિઓમાં ઊંડા ડોમેન કુશળતા હજુ પણ જરૂરી હોઈ શકે છે. વિશિષ્ટ જ્ઞાન ધરાવતા માનવ નિષ્ણાતો જરૂરી ઊંડાણ, સૂક્ષ્મ સમજ અને સંદર્ભ-વિશિષ્ટ આંતરદૃષ્ટિ પ્રદાન કરી શકે છે જે એકલા એલએલએમની ક્ષમતાઓથી બહાર હોઈ શકે છે.
અમે લેંગચેનના દસ્તાવેજો જોવાની સલાહ આપીશું અથવા GitHub તેના લાક્ષણિક ઉપયોગના કેસોની વધુ સંપૂર્ણ સમજ માટે ભંડાર. આ બંડલનું મોટું ચિત્ર મેળવવાની ભારપૂર્વક સલાહ આપવામાં આવે છે.
તે કેવી રીતે કામ કરે છે?
LangChain ના હેતુ અને કાર્યને સમજવા માટે, ચાલો એક વ્યવહારુ ઉદાહરણ જોઈએ. અમે જાણીએ છીએ કે GPT-4 પ્રભાવશાળી સામાન્ય જ્ઞાન ધરાવે છે અને તે પ્રશ્નોની વિશાળ શ્રેણીના વિશ્વસનીય જવાબો આપી શકે છે.
જો કે, જો આપણે વ્યક્તિગત દસ્તાવેજ, પુસ્તક, પીડીએફ ફાઇલ અથવા માલિકીનો ડેટાબેઝ જેવા આપણા પોતાના ડેટામાંથી ચોક્કસ માહિતી જોઈએ તો શું?
LangChain અમને કનેક્ટ કરવાની પરવાનગી આપે છે વિશાળ ભાષા મોડેલ જેમ કે અમારા પોતાના ડેટાના સ્ત્રોતો માટે GPT-4. તે ચેટ ઈન્ટરફેસમાં ટેક્સ્ટના સ્નિપેટને પેસ્ટ કરવા કરતાં પણ આગળ વધે છે. તેના બદલે, અમે અમારા પોતાના ડેટાથી ભરેલા સમગ્ર ડેટાબેઝનો સંદર્ભ આપી શકીએ છીએ.
એકવાર અમે ઇચ્છિત માહિતી મેળવી લઈએ, પછી LangChain અમને ચોક્કસ પગલાં લેવામાં મદદ કરી શકે છે. દાખલા તરીકે, અમે તેને અમુક વિગતો ધરાવતો ઈમેલ મોકલવા માટે સૂચના આપી શકીએ છીએ.
આ હાંસલ કરવા માટે, અમે LangChain નો ઉપયોગ કરીને પાઇપલાઇન અભિગમને અનુસરીએ છીએ. પ્રથમ, આપણે જે દસ્તાવેજ જોઈએ છે તે લઈએ છીએ ભાષા મોડેલ સંદર્ભ આપવા અને તેને નાના ભાગોમાં વિભાજીત કરવા. આ હિસ્સાને પછી એમ્બેડિંગ્સ તરીકે સંગ્રહિત કરવામાં આવે છે, જે છે વેક્ટર ડેટાબેઝમાં ટેક્સ્ટની વેક્ટર રજૂઆત.
આ સેટઅપ સાથે, અમે ભાષા મોડેલ એપ્લિકેશન બનાવી શકીએ છીએ જે પ્રમાણભૂત પાઇપલાઇનને અનુસરે છે: વપરાશકર્તા પ્રારંભિક પ્રશ્ન પૂછે છે, જે પછી ભાષા મોડેલ પર મોકલવામાં આવે છે. પ્રશ્નના વેક્ટર પ્રતિનિધિત્વનો ઉપયોગ વેક્ટર ડેટાબેઝમાં સમાનતા શોધ કરવા માટે થાય છે, માહિતીના સંબંધિત હિસ્સાને પુનઃપ્રાપ્ત કરી શકાય છે.
આ હિસ્સાને પછી ભાષા મોડેલમાં પાછા આપવામાં આવે છે, તેને જવાબ આપવા અથવા ઇચ્છિત પગલાં લેવા સક્ષમ બનાવે છે.
લેંગચેન એપ્લીકેશનના વિકાસની સુવિધા આપે છે જે ડેટાથી વાકેફ છે, કારણ કે આપણે વેક્ટર સ્ટોરમાં આપણો પોતાનો ડેટા સંદર્ભિત કરી શકીએ છીએ, અને અધિકૃત છે, કારણ કે તેઓ પ્રશ્નોના જવાબ આપવા ઉપરાંત પગલાં લઈ શકે છે. ટી
તેના વ્યવહારુ ઉપયોગના ઘણા બધા કિસ્સાઓ ખોલે છે, ખાસ કરીને વ્યક્તિગત સહાયમાં, જ્યાં એક વિશાળ ભાષા મોડેલ ફ્લાઇટ્સ બુક કરવા, નાણાં ટ્રાન્સફર કરવા અથવા ટેક્સ-સંબંધિત બાબતોમાં સહાયતા જેવા કાર્યોને સંભાળી શકે છે.
વધુમાં, નવા વિષયોના અભ્યાસ અને શીખવા માટેની અસરો નોંધપાત્ર છે, કારણ કે એક ભાષા મોડેલ સમગ્ર અભ્યાસક્રમનો સંદર્ભ આપી શકે છે અને શીખવાની પ્રક્રિયાને ઝડપી બનાવી શકે છે. કોડિંગ, ડેટા પૃથ્થકરણ અને ડેટા વિજ્ઞાન પણ આ પ્રગતિઓથી ખૂબ પ્રભાવિત થવાની અપેક્ષા છે.
સૌથી રોમાંચક સંભાવનાઓમાંની એક મોટી ભાષાના મોડલને હાલના કંપની ડેટા સાથે જોડવી છે, જેમ કે ગ્રાહક માહિતી અથવા માર્કેટિંગ ડેટા. Meta's API અથવા Google's API જેવા અદ્યતન API સાથેનું આ એકીકરણ ડેટા એનાલિટિક્સ અને ડેટા વિજ્ઞાનમાં ઘાતાંકીય પ્રગતિનું વચન આપે છે.
વેબપેજ કેવી રીતે બનાવવું (ડેમો)
હાલમાં, લેંગચેન પાયથોન અને જાવાસ્ક્રિપ્ટ પેકેજીસ તરીકે ઉપલબ્ધ છે.
અમે LangChain કોન્સેપ્ટને અમલમાં મૂકવા માટે સ્ટ્રીમલિટ, લેંગચેન અને OpenAI GPT-3 મોડલનો ઉપયોગ કરીને ડેમોસ્ટ્રેશન વેબ એપ બનાવી શકીએ છીએ.
પરંતુ પ્રથમ, આપણે સ્ટ્રીમલિટ, લેંગચેન અને ઓપનએઆઈ સહિત કેટલીક નિર્ભરતાઓ ઇન્સ્ટોલ કરવી જોઈએ.
પૂર્વ-આવશ્યકતાઓ
સ્ટ્રીમલાઇટ: ડેટા સાયન્સ-સંબંધિત વેબ એપ્લિકેશન બનાવવા માટે લોકપ્રિય પાયથોન પેકેજ
OpenAI: OpenAI ના GPT-3 ભાષા મોડેલની ઍક્સેસ જરૂરી છે.
આ નિર્ભરતાને ઇન્સ્ટોલ કરવા માટે, cmd માં નીચેના આદેશોનો ઉપયોગ કરો:
pip install streamlit
pip install langchain
pip install openai
આયાત પેકેજો
અમે OpenAI, LangChain અને Streamlit જેવા જરૂરી પેકેજો આયાત કરીને શરૂઆત કરીએ છીએ. અમારી ભાષા મોડલ સાંકળોને લેંગચેનમાંથી ત્રણ વર્ગોનો ઉપયોગ કરીને વ્યાખ્યાયિત અને ચલાવવામાં આવે છે: 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
લેંગચેઈનના મોડલનો ઉપયોગ સ્ટેટમેન્ટ બનાવવા માટે કરવામાં આવ્યો હતો. વપરાશકર્તાને ધારણાઓની સૂચિ બનાવવાનું કામ સોંપવામાં આવ્યું છે જે આ સાંકળ માટે નમૂનાનો ઉપયોગ કરીને નિવેદન બનાવવા માટે કરવામાં આવી હતી. - માંથી આઉટપુટ પર આધારિત
question_chain
અનેassumptions_chain
,fact_checker_chain
બુલેટ પોઈન્ટના સ્વરૂપમાં નિવેદનોની યાદી બનાવે છે. નો ઉપયોગ કરીને દાવાઓ બનાવવામાં આવે છેOpenAI
મોડેલ અનેLLMChain
લેંગચેનમાંથી. દરેક દાવા સચોટ છે કે ખોટો છે તે નક્કી કરવાનું અને જે છે તે માટે વાજબીપણું પ્રદાન કરવાનું કામ વપરાશકર્તાને સોંપવામાં આવ્યું છે. - આ
answer_chain
ના આઉટપુટનો ઉપયોગ કરે છેquestion_chain
,assumptions_chain
, અનેfact_checker_chain
અગાઉની સાંકળો દ્વારા ઉત્પાદિત ડેટાનો ઉપયોગ કરીને વપરાશકર્તાના પ્રશ્નનો પ્રતિભાવ બનાવવા માટેના ઇનપુટ્સ તરીકે. આ સાંકળ માટેનો નમૂનો વિનંતી કરે છે કે વપરાશકર્તા બનાવેલ તથ્યોનો ઉપયોગ કરીને પ્રથમ ક્વેરીનો જવાબ આપે. - અગાઉની સાંકળો દ્વારા ઉત્પાદિત માહિતીના આધારે વપરાશકર્તાની પૂછપરછનો અંતિમ પ્રતિસાદ આપવા માટે, અમે આ સાંકળોને એકંદર સાંકળમાં એકીકૃત કરીએ છીએ. સાંકળો પૂર્ણ થયા પછી, અમે ઉપયોગ કરીએ છીએ
st.success()
વપરાશકર્તાને ઉકેલ બતાવવા માટે.
ઉપસંહાર
નો ઉપયોગ કરીને વધુ જટિલ પાઇપલાઇન્સ બનાવવા માટે અમે વિવિધ ભાષા મોડેલ ક્રિયાઓને એકસાથે સાંકળી શકીએ છીએ SimpleSequentialChain
લેંગચેનનું મોડ્યુલ. ચેટબોટ્સ, પ્રશ્ન-જવાબ સિસ્ટમ્સ અને ભાષા અનુવાદ સાધનો સહિત NLP એપ્લિકેશન્સની વિશાળ વિવિધતા માટે, આ ખૂબ મદદરૂપ થઈ શકે છે.
લેંગચેનની દીપ્તિ તેની અમૂર્ત ક્ષમતામાં જોવા મળે છે, જે વપરાશકર્તાને ભાષા મોડેલિંગની વિશિષ્ટતાઓને બદલે વર્તમાન મુદ્દા પર ધ્યાન કેન્દ્રિત કરવા સક્ષમ બનાવે છે.
LangChain પૂર્વ-પ્રશિક્ષિત મોડેલો અને નમૂનાઓની પસંદગી ઓફર કરીને અત્યાધુનિક ભાષા મોડલ બનાવવાની પ્રક્રિયાને વધુ વપરાશકર્તા મૈત્રીપૂર્ણ બનાવે છે.
તે તમને ભાષા મોડલ્સને તેમના પોતાના ડેટાનો ઉપયોગ કરીને ફાઇન-ટ્યુન કરવાનો વિકલ્પ આપે છે, જે ભાષાના મોડલ્સને કસ્ટમાઇઝ કરવાનું સરળ બનાવે છે. આ વધુ સચોટ, ડોમેન-વિશિષ્ટ મોડલ્સના વિકાસને સક્ષમ કરે છે, જે આપેલ જોબ માટે, પ્રશિક્ષિત મોડલ્સને પાછળ રાખી દે છે.
આ SimpleSequentialChain
મોડ્યુલ અને LangChain ની અન્ય વિશેષતાઓ તેને અત્યાધુનિક NLP સિસ્ટમને ઝડપથી વિકસાવવા અને જમાવવા માટે અસરકારક સાધન બનાવે છે.
એક જવાબ છોડો