LangChain er háþróað og öflugt tól þróað til að virkja kraft stórra tungumálalíkana (LLM).
Þessir LLM hafa ótrúlega getu og geta tekist á við margs konar verkefni á skilvirkan hátt. Hins vegar er mikilvægt að hafa í huga að styrkur þeirra liggur í almennu eðli þeirra frekar en ítarlegri sérfræðiþekkingu á lénum. Vinsældir þess hafa vaxið hratt síðan GPT-4 kom á markað.
Þó LLMs skari vel í að takast á við ýmis verkefni, gætu þeir staðið frammi fyrir takmörkunum þegar kemur að því að veita ákveðin svör eða takast á við verkefni sem krefjast djúpstæðrar lénsþekkingar. Íhugaðu til dæmis að nota LLM til að svara spurningum eða framkvæma verkefni á sérsviðum eins og læknisfræði eða lögfræði.
Þó að LLM geti vissulega svarað almennum fyrirspurnum um þessi svið, gæti það átt erfitt með að bjóða ítarlegri eða blæbrigðaríkari svör sem krefjast sérhæfðrar þekkingar eða sérfræðiþekkingar.
Þetta er vegna þess að LLMs eru þjálfaðir á miklu magni textagagna frá ýmsum aðilum, sem gerir þeim kleift að læra mynstur, skilja samhengi og búa til heildstæð svör. Hins vegar felur þjálfun þeirra yfirleitt ekki í sér lénssértæka eða sérhæfða þekkingaröflun í sama mæli og sérfræðingar manna á þessum sviðum.
Þess vegna, á meðan LangChain, í tengslum við LLMs, getur verið ómetanlegt tæki fyrir margs konar verkefni, er mikilvægt að viðurkenna að djúp lénsþekking gæti samt verið nauðsynleg við ákveðnar aðstæður. Mannlegir sérfræðingar með sérhæfða þekkingu geta veitt nauðsynlega dýpt, blæbrigðaríkan skilning og samhengissértæka innsýn sem gæti verið umfram getu LLMs eingöngu.
Við ráðleggjum að skoða skjöl LangChain eða GitHub geymsla til að fá ítarlegri skilning á dæmigerðum notkunartilvikum þess. Það er eindregið ráðlagt að fá stærri mynd af þessu búnti.
Hvernig virkar það?
Til að skilja tilgang og vinnu LangChain skulum við íhuga hagnýtt dæmi. Okkur er ljóst að GPT-4 hefur áhrifamikla almenna þekkingu og getur veitt áreiðanleg svör við ýmsum spurningum.
Hins vegar, hvað ef við viljum sérstakar upplýsingar úr okkar eigin gögnum, svo sem persónulegu skjali, bók, PDF skjal eða sérgagnagrunni?
LangChain gerir okkur kleift að tengja a stórt mállíkan eins og GPT-4 til okkar eigin gagnagjafa. Það gengur lengra en einfaldlega að líma textabrot inn í spjallviðmót. Þess í stað getum við vísað í heilan gagnagrunn fylltan með okkar eigin gögnum.
Þegar við höfum fengið þær upplýsingar sem óskað er eftir getur LangChain aðstoðað okkur við að grípa til ákveðinna aðgerða. Til dæmis getum við gefið henni fyrirmæli um að senda tölvupóst sem inniheldur ákveðnar upplýsingar.
Til að ná þessu fylgjum við leiðsluaðferð með LangChain. Fyrst tökum við skjalið sem við viljum fá tungumálamódel til að vísa til og skipta því í smærri bita. Þessir bitar eru síðan geymdir sem innfellingar, sem eru það vektormyndir textans, í vektorgagnagrunni.
Með þessari uppsetningu getum við smíðað tungumálalíkanforrit sem fylgja stöðluðu leiðslukerfi: notandi spyr upphafsspurningar sem síðan er send á tungumálalíkanið. Vigurframsetning spurningarinnar er notuð til að framkvæma líkindaleit í vektorgagnagrunninum, til að sækja viðeigandi upplýsingar.
Þessir bitar eru síðan færðir aftur í tungumálalíkanið, sem gerir því kleift að svara eða grípa til viðeigandi aðgerða.
LangChain auðveldar þróun forrita sem eru meðvituð um gögn, þar sem við getum vísað til okkar eigin gagna í vektorverslun, og ekta, þar sem þau geta gripið til aðgerða umfram það að svara spurningum. T
hann opnar fyrir fjölda hagnýtra notkunartilvika, sérstaklega í persónulegri aðstoð, þar sem stórt tungumálalíkan getur séð um verkefni eins og að bóka flug, millifæra peninga eða aðstoða við skattatengd mál.
Auk þess eru áhrifin fyrir nám og nám í nýjum greinum mikilvæg þar sem tungumálalíkan getur vísað í heila námskrá og flýtt fyrir námsferlinu. Búist er við að kóðun, gagnagreining og gagnavísindi verði einnig fyrir miklum áhrifum af þessum framförum.
Einn af mest spennandi möguleikanum er að tengja stór tungumálalíkön við núverandi fyrirtækisgögn, svo sem upplýsingar um viðskiptavini eða markaðsgögn. Þessi samþætting við háþróaða API eins og Meta's API eða Google's API lofar veldishraða framfarir í gagnagreiningum og gagnavísindum.
Hvernig á að búa til vefsíðu (demo)
Eins og er er Langchain fáanlegt sem Python og JavaScript pakkar.
Við getum búið til sýnikennsluvefforrit sem notar Streamlit, LangChain og OpenAI GPT-3 líkanið til að innleiða LangChain hugmyndina.
En fyrst verðum við að setja upp nokkra ósjálfstæði, þar á meðal Streamlit, LangChain og OpenAI.
Forkröfur
Straumlýst: Vinsæll Python pakki til að búa til vefforrit sem tengjast gagnavísindum
OpenAI: Aðgangur að GPT-3 tungumálalíkani OpenAI er nauðsynlegur.
Til að setja upp þessar ósjálfstæði, notaðu eftirfarandi skipanir í cmd:
pip install streamlit
pip install langchain
pip install openai
Flytja inn pakka
Við byrjum á því að flytja inn nauðsynlega pakka, svo sem OpenAI, LangChain og Streamlit. Tungumálalíkanakeðjur okkar eru skilgreindar og framkvæmdar með því að nota þrjá flokka frá LangChain: LLMChain, SimpleSequentialChain og PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Grunnupplýsingar
Uppbyggingargrundvöllur verkefnisins okkar var síðan settur upp með Streamlit setningafræði. Við gáfum appinu titilinn „What's TRUE: Using Simple Sequential Chain“ og innihéltum merkingartengil á GitHub geymsluna sem þjónaði sem innblástur appsins.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Front-End búnaður
Við settum upp appið með fáum viðeigandi upplýsingum, með einföldum Streamlit setningafræði:
# 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")
Til að bæta við framendagræjum
Ennfremur þurfum við að útvega inntaksgræju til að leyfa notendum okkar að setja inn allar spurningar.
# 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?",
)
Allt búið! Keðjurnar eru komnar í gang!
Við notum ýmsar rekstrarkeðjur ásamt SimpleSequentialChain
til að svara fyrirspurn notandans. Keðjurnar eru framkvæmdar í eftirfarandi röð þegar notandinn velur "Tell me about it"
hnappur:
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
: sem er fyrsta skrefið í pípunni okkar, fær spurningu notandans sem inntak og úttak. Fyrirspurn notandans þjónar sem sniðmát keðjunnar.- Byggt á yfirlýsingu sem tengist spurningunni, sem
assumptions_chain
býr til punktalista yfir forsendur með því að nota úttakið fráquestion_chain
sem inntak. TheLLMChain
ogOpenAI
líkan frá LangChain var notað til að smíða yfirlýsinguna. Notandanum er falið að búa til lista yfir þær forsendur sem gerðar voru til að framleiða yfirlýsinguna með því að nota sniðmátið fyrir þessa keðju. - Byggt á útkomu frá
question_chain
ogassumptions_chain
erfact_checker_chain
býr til lista yfir fullyrðingar í formi punkta. Kröfurnar eru framleiddar með því að notaOpenAI
fyrirmynd ogLLMChain
frá LangChain. Notandanum er falið að ákvarða hvort hver fullyrðing sé rétt eða röng og rökstyðja þær sem eru. - The
answer_chain
notar úttakið fráquestion_chain
,assumptions_chain
ogfact_checker_chain
sem inntak til að búa til svar við spurningu notandans með því að nota gögnin sem fyrri keðjurnar framleiddu. Sniðmátið fyrir þessa keðju biður um að notandinn svari fyrstu fyrirspurninni með því að nota þær staðreyndir sem voru búnar til. - Til að veita fullkomið svar við fyrirspurn notandans byggt á upplýsingum sem framleiddar eru af fyrri keðjum, samþættum við þessar keðjur inn í heildarkeðjuna. Eftir að keðjurnar eru kláraðar notum við
st.success()
til að sýna notanda lausnina.
Niðurstaða
Við getum einfaldlega hlekkjað saman mismunandi tungumálamódelaðgerðir til að búa til flóknari leiðslur með því að nota SimpleSequentialChain
mát LangChain. Fyrir margs konar NLP forrit, þar á meðal spjallbotna, spurninga-og-svar kerfi og tungumálaþýðingartæki, gæti þetta verið mjög gagnlegt.
Ljómi LangChain er að finna í getu þess til að draga saman, sem gerir notandanum kleift að einbeita sér að núverandi málefni frekar en sérstöðu tungumálalíkana.
LangChain gerir ferlið við að búa til háþróuð tungumálalíkön notendavænni með því að bjóða upp á forþjálfuð líkön og úrval af sniðmátum.
Það gefur þér möguleika á að fínstilla tungumálalíkönin með því að nota eigin gögn, sem gerir það einfalt að sérsníða tungumálalíkönin. Þetta gerir kleift að þróa nákvæmari, lénssértæk líkön sem, fyrir tiltekið starf, standa sig betur en þjálfuð líkön.
The SimpleSequentialChain
mát og aðrir eiginleikar LangChain gera það að áhrifaríku tæki til að þróa fljótt og dreifa háþróuðum NLP kerfum.
Skildu eftir skilaboð