LangChain என்பது பெரிய மொழி மாதிரிகளின் (LLMs) ஆற்றலைப் பயன்படுத்துவதற்காக உருவாக்கப்பட்ட ஒரு அதிநவீன மற்றும் வலுவான கருவியாகும்.
இந்த எல்எல்எம்கள் குறிப்பிடத்தக்க திறன்களைக் கொண்டிருக்கின்றன மற்றும் பரந்த அளவிலான பணிகளைத் திறமையாகச் சமாளிக்க முடியும். இருப்பினும், ஆழமான டொமைன் நிபுணத்துவத்தை விட அவர்களின் பலம் அவர்களின் பொது இயல்பில் உள்ளது என்பதை கவனத்தில் கொள்ள வேண்டும். GPT-4 அறிமுகப்படுத்தப்பட்டதிலிருந்து அதன் புகழ் வேகமாக வளர்ந்துள்ளது.
எல்எல்எம்கள் பல்வேறு பணிகளைக் கையாள்வதில் சிறந்து விளங்கினாலும், குறிப்பிட்ட பதில்களை வழங்குவது அல்லது ஆழ்ந்த கள அறிவு தேவைப்படும் பணிகளைச் சமாளிப்பது போன்றவற்றில் அவை வரம்புகளை எதிர்கொள்ளக்கூடும். உதாரணமாக, மருத்துவம் அல்லது சட்டம் போன்ற சிறப்புத் துறைகளில் கேள்விகளுக்குப் பதிலளிக்க அல்லது பணிகளைச் செய்ய LLMஐப் பயன்படுத்துவதைக் கவனியுங்கள்.
இந்தத் துறைகளைப் பற்றிய பொதுவான விசாரணைகளுக்கு LLM நிச்சயமாக பதிலளிக்க முடியும் என்றாலும், சிறப்பு அறிவு அல்லது நிபுணத்துவம் தேவைப்படும் விரிவான அல்லது நுணுக்கமான பதில்களை வழங்குவதற்கு அது போராடலாம்.
ஏனென்றால், எல்.எல்.எம்கள் பல்வேறு மூலங்களிலிருந்து பரந்த அளவிலான உரைத் தரவுகளில் பயிற்சியளிக்கப்படுகின்றன, அவை வடிவங்களைக் கற்கவும், சூழலைப் புரிந்துகொள்ளவும் மற்றும் ஒத்திசைவான பதில்களை உருவாக்கவும் உதவுகின்றன. இருப்பினும், அவர்களின் பயிற்சியானது பொதுவாக அந்தத் துறைகளில் உள்ள மனித வல்லுனர்களைப் போலவே டொமைன்-குறிப்பிட்ட அல்லது சிறப்பு அறிவைப் பெறுவதை உள்ளடக்குவதில்லை.
எனவே, LangChain, LLM களுடன் இணைந்து, பரந்த அளவிலான பணிகளுக்கு ஒரு விலைமதிப்பற்ற கருவியாக இருக்கும்போது, சில சூழ்நிலைகளில் ஆழமான டொமைன் நிபுணத்துவம் இன்னும் அவசியமாக இருக்கலாம் என்பதை அங்கீகரிப்பது முக்கியம். சிறப்பு அறிவைக் கொண்ட மனித வல்லுநர்கள் தேவையான ஆழம், நுணுக்கமான புரிதல் மற்றும் LLMகளின் திறன்களுக்கு அப்பாற்பட்ட சூழல் சார்ந்த நுண்ணறிவுகளை வழங்க முடியும்.
LangChain இன் ஆவணங்களைப் பார்க்க நாங்கள் அறிவுறுத்துகிறோம் அல்லது மகிழ்ச்சியா அதன் வழக்கமான பயன்பாட்டு நிகழ்வுகளைப் பற்றிய முழுமையான புரிதலுக்கான களஞ்சியம். இந்த மூட்டையின் பெரிய படத்தைப் பெறுவது கடுமையாக அறிவுறுத்தப்படுகிறது.
இது எப்படி வேலை செய்கிறது?
LangChain இன் நோக்கம் மற்றும் வேலையைப் புரிந்து கொள்ள, ஒரு நடைமுறை உதாரணத்தைக் கருத்தில் கொள்வோம். GPT-4 ஈர்க்கக்கூடிய பொது அறிவைக் கொண்டுள்ளது மற்றும் பரந்த அளவிலான கேள்விகளுக்கு நம்பகமான பதில்களை வழங்க முடியும் என்பதை நாங்கள் அறிவோம்.
எவ்வாறாயினும், தனிப்பட்ட ஆவணம், புத்தகம், PDF கோப்பு அல்லது தனியுரிம தரவுத்தளம் போன்ற எங்கள் சொந்தத் தரவிலிருந்து குறிப்பிட்ட தகவலை நாங்கள் விரும்பினால் என்ன செய்வது?
LangChain எங்களை இணைக்க அனுமதிக்கிறது a பெரிய மொழி மாதிரி எங்கள் சொந்த தரவு ஆதாரங்களுக்கு GPT-4 போன்றது. இது அரட்டை இடைமுகத்தில் உரையின் துணுக்கை ஒட்டுவதற்கு அப்பாற்பட்டது. அதற்கு பதிலாக, எங்கள் சொந்த தரவுகளால் நிரப்பப்பட்ட முழு தரவுத்தளத்தையும் நாம் குறிப்பிடலாம்.
நாங்கள் விரும்பிய தகவலைப் பெற்றவுடன், குறிப்பிட்ட செயல்களை மேற்கொள்வதில் LangChain நமக்கு உதவ முடியும். உதாரணமாக, குறிப்பிட்ட விவரங்கள் அடங்கிய மின்னஞ்சலை அனுப்புமாறு நாம் அதற்கு அறிவுறுத்தலாம்.
இதை அடைய, LangChain ஐப் பயன்படுத்தி பைப்லைன் அணுகுமுறையைப் பின்பற்றுகிறோம். முதலில், நாம் விரும்பும் ஆவணத்தை எடுத்துக்கொள்கிறோம் மொழி மாதிரி குறிப்பு மற்றும் அதை சிறிய துண்டுகளாக பிரிக்க. இந்த துண்டுகள் பின்னர் உட்பொதிவுகளாக சேமிக்கப்படுகின்றன, அவை திசையன் தரவுத்தளத்தில், உரையின் திசையன் பிரதிநிதித்துவங்கள்.
இந்த அமைப்பின் மூலம், நிலையான பைப்லைனைப் பின்பற்றும் மொழி மாதிரி பயன்பாடுகளை நாம் உருவாக்கலாம்: ஒரு பயனர் ஆரம்பக் கேள்வியைக் கேட்கிறார், அது மொழி மாதிரிக்கு அனுப்பப்படும். கேள்வியின் திசையன் பிரதிநிதித்துவம் திசையன் தரவுத்தளத்தில் ஒரு ஒற்றுமை தேடலைச் செய்யப் பயன்படுகிறது, இது தொடர்புடைய தகவல்களைப் பெறுகிறது.
இந்த துகள்கள் மொழி மாதிரிக்கு மீண்டும் வழங்கப்படுகின்றன, இது ஒரு பதிலை வழங்க அல்லது விரும்பிய செயலை எடுக்க உதவுகிறது.
LangChain ஆனது, தரவு-அறிவுள்ள பயன்பாடுகளின் வளர்ச்சியை எளிதாக்குகிறது, ஏனெனில் ஒரு வெக்டார் ஸ்டோரில் நம்முடைய சொந்தத் தரவைக் குறிப்பிடலாம், மேலும் அவை கேள்விகளுக்குப் பதிலளிப்பதைத் தாண்டி செயல்களை மேற்கொள்ளலாம். டி
அவர் பல நடைமுறை பயன்பாட்டு நிகழ்வுகளைத் திறக்கிறார், குறிப்பாக தனிப்பட்ட உதவியில், ஒரு பெரிய மொழி மாதிரி விமானங்களை முன்பதிவு செய்வது, பணத்தை மாற்றுவது அல்லது வரி தொடர்பான விஷயங்களில் உதவுவது போன்ற பணிகளைக் கையாள முடியும்.
கூடுதலாக, புதிய பாடங்களைப் படிப்பதற்கும் கற்றுக்கொள்வதற்கும் உள்ள தாக்கங்கள் குறிப்பிடத்தக்கவை, ஏனெனில் ஒரு மொழி மாதிரியானது முழு பாடத்திட்டத்தையும் குறிப்பிடலாம் மற்றும் கற்றல் செயல்முறையை விரைவுபடுத்தலாம். குறியீட்டு முறை, தரவு பகுப்பாய்வு மற்றும் தரவு அறிவியல் ஆகியவை இந்த முன்னேற்றங்களால் பெரிதும் பாதிக்கப்படும் என்று எதிர்பார்க்கப்படுகிறது.
வாடிக்கையாளர் தகவல் அல்லது சந்தைப்படுத்தல் தரவு போன்ற தற்போதுள்ள நிறுவன தரவுகளுடன் பெரிய மொழி மாதிரிகளை இணைப்பது மிகவும் உற்சாகமான வாய்ப்புகளில் ஒன்றாகும். Meta இன் API அல்லது Google இன் API போன்ற மேம்பட்ட APIகளுடன் இந்த ஒருங்கிணைப்பு தரவு பகுப்பாய்வு மற்றும் தரவு அறிவியலில் அதிவேக முன்னேற்றத்தை உறுதியளிக்கிறது.
ஒரு வலைப்பக்கத்தை எவ்வாறு உருவாக்குவது (டெமோ)
தற்போது, Langchain பைதான் மற்றும் ஜாவாஸ்கிரிப்ட் தொகுப்புகளாக கிடைக்கிறது.
LangChain கருத்தை செயல்படுத்த, Streamlit, LangChain மற்றும் OpenAI GPT-3 மாடலைப் பயன்படுத்தி ஒரு டெமான்ஸ்ட்ரேஷன் வெப் ஆப்ஸை உருவாக்கலாம்.
ஆனால் முதலில், Streamlit, LangChain மற்றும் OpenAI உள்ளிட்ட சில சார்புகளை நிறுவ வேண்டும்.
முன்நிபந்தனைகள்
ஸ்ட்ரீம்லிட்: தரவு அறிவியல் தொடர்பான வலை பயன்பாடுகளை உருவாக்குவதற்கான பிரபலமான பைதான் தொகுப்பு
OpenAI: OpenAI இன் GPT-3 மொழி மாதிரிக்கான அணுகல் தேவை.
இந்த சார்புகளை நிறுவ, cmd இல் பின்வரும் கட்டளைகளைப் பயன்படுத்தவும்:
pip install streamlit
pip install langchain
pip install openai
தொகுப்புகளை இறக்குமதி செய்யவும்
OpenAI, LangChain மற்றும் Streamlit போன்ற தேவையான தொகுப்புகளை இறக்குமதி செய்வதன் மூலம் தொடங்குகிறோம். எங்கள் மொழி மாதிரி சங்கிலிகள் LangChain இலிருந்து மூன்று வகுப்புகளைப் பயன்படுத்தி வரையறுக்கப்பட்டு செயல்படுத்தப்படுகின்றன: LLMChain, SimpleSequentialChain மற்றும் PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
அடிப்படை அமைப்பு
எங்கள் திட்டத்தின் கட்டமைப்பு அடிப்படையானது ஸ்ட்ரீம்லிட் தொடரியல் பயன்படுத்தி அமைக்கப்பட்டது. பயன்பாட்டிற்கு “உண்மை என்ன: எளிய தொடர் சங்கிலியைப் பயன்படுத்துதல்” என்ற தலைப்பை வழங்கியுள்ளோம், மேலும் பயன்பாட்டின் உத்வேகமாக செயல்பட்ட 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 அமைப்புகளை விரைவாக உருவாக்குவதற்கும் பயன்படுத்துவதற்கும் ஒரு சிறந்த கருவியாக அமைகிறது.
ஒரு பதில் விடவும்