Tha LangChain na inneal ùr-nodha agus làidir a chaidh a leasachadh gus cumhachd nam Modalan Cànain Mòr (LLMn) a chleachdadh.
Tha comasan iongantach aig na LLMn sin agus faodaidh iad dèiligeadh gu h-èifeachdach ri raon farsaing de ghnìomhan. Ach, tha e cudromach toirt fa-near gu bheil an neart na laighe anns an nàdar choitcheann aca seach eòlas fearainn domhainn. Tha am mòr-chòrdte air fàs gu luath bho chaidh GPT-4 a thoirt a-steach.
Fhad ‘s a tha LLMn air leth math air a bhith a’ làimhseachadh diofar ghnìomhan, dh’ fhaodadh gum bi crìochan aca nuair a thig e gu bhith a’ toirt seachad freagairtean sònraichte no a’ dèiligeadh ri gnìomhan a dh’ fheumas eòlas domhainn air fearann. Beachdaich, mar eisimpleir, air LLM a chleachdadh gus ceistean a fhreagairt no gnìomhan a dhèanamh taobh a-staigh raointean sònraichte leithid leigheas no lagh.
Ged as urrainn don LLM freagairt a thoirt do cheistean coitcheann mu na raointean sin, dh’ fhaodadh gum bi e doirbh freagairtean nas mionaidiche no nas mionaidiche a thabhann a dh’ fheumas eòlas no eòlas sònraichte.
Tha seo air sgàth gu bheil LLMn air an trèanadh air tòrr mòr dàta teacsa bho dhiofar thùsan, a’ toirt cothrom dhaibh pàtrain ionnsachadh, co-theacsa a thuigsinn, agus freagairtean ciallach a ghineadh. Ach, mar as trice chan eil an trèanadh aca a’ toirt a-steach togail eòlas a tha sònraichte don raon no eòlas sònraichte chun na h-aon ìre ri eòlaichean daonna anns na raointean sin.
Mar sin, ged a dh’ fhaodadh LangChain, ann an co-bhonn le LLMn, a bhith na inneal luachmhor airson raon farsaing de ghnìomhan, tha e cudromach aithneachadh gum faodadh eòlas fearainn domhainn a bhith fhathast riatanach ann an suidheachaidhean sònraichte. Faodaidh eòlaichean daonna le eòlas sònraichte an doimhneachd riatanach, tuigse adhartach, agus seallaidhean co-theacsa sònraichte a thoirt seachad a dh’ fhaodadh a bhith nas fhaide na comasan LLMn a-mhàin.
Tha sinn a’ comhairleachadh coimhead air docs LangChain no GitHub ionad-tasgaidh airson tuigse nas mionaidiche air na cùisean cleachdaidh àbhaisteach aige. Thathas a’ moladh gu làidir dealbh nas motha fhaighinn den phasgan seo.
Ciamar a tha e ag obair?
Gus adhbhar agus obair LangChain a thuigsinn, beachdaichidh sinn air eisimpleir practaigeach. Tha sinn mothachail gu bheil eòlas coitcheann drùidhteach aig GPT-4 agus gun urrainn dhuinn freagairtean earbsach a thoirt do raon farsaing de cheistean.
Ach, dè ma tha sinn ag iarraidh fiosrachadh sònraichte bhon dàta againn fhèin, leithid sgrìobhainn pearsanta, leabhar, faidhle PDF, no stòr-dàta seilbhe?
Leigidh LangChain leinn ceangal a modail cànain mòr leithid GPT-4 ris na stòran dàta againn fhèin. Tha e a’ dol nas fhaide na dìreach a bhith a’ cuir seachad criomag de theacsa gu eadar-aghaidh cabadaich. An àite sin, is urrainn dhuinn iomradh a thoirt air stòr-dàta iomlan air a lìonadh leis an dàta againn fhèin.
Cho luath ‘s a gheibh sinn am fiosrachadh a tha thu ag iarraidh, faodaidh LangChain ar cuideachadh le bhith a’ gabhail gnìomhan sònraichte. Mar eisimpleir, is urrainn dhuinn stiùireadh a thoirt dha post-d a chuir anns a bheil mion-fhiosrachadh sònraichte.
Gus seo a choileanadh, bidh sinn a 'leantainn dòigh-obrach loidhne-phìoban a' cleachdadh LangChain. An toiseach, gabhaidh sinn an sgrìobhainn a tha sinn ag iarraidh modail cànain airson iomradh a thoirt air agus a roinn ann am pìosan nas lugha. Bidh na pìosan sin an uairsin air an stòradh mar fhigheachan, a tha riochdachaidhean vector den teacsa, ann an Stòr-dàta Vector.
Leis an stèidheachadh seo, is urrainn dhuinn tagraidhean modail cànain a thogail a bhios a’ leantainn loidhne-phìoban àbhaisteach: bidh neach-cleachdaidh a’ faighneachd ceist thùsail, a thèid an uairsin chun mhodail cànain. Bithear a’ cleachdadh riochdachadh vectar na ceist gus sgrùdadh coltachd a dhèanamh ann an Stòr-dàta Vector, a’ faighinn na pìosan fiosrachaidh iomchaidh air ais.
Thèid na pìosan sin an uair sin a thoirt air ais don mhodail cànain, a’ toirt cothrom dha freagairt a thoirt seachad no an gnìomh a tha thu ag iarraidh a dhèanamh.
Bidh LangChain a’ comasachadh leasachadh thagraidhean a tha mothachail air dàta, oir is urrainn dhuinn iomradh a thoirt air an dàta againn fhèin ann an stòr vectar, agus dearbhte, oir is urrainn dhaibh gnìomhan a dhèanamh nas fhaide na bhith a’ freagairt cheistean. T
bidh e a’ fosgladh grunn chùisean cleachdaidh pragtaigeach, gu sònraichte ann an taic phearsanta, far an urrainn do mhodail cànain mòr gnìomhan a làimhseachadh leithid tursan-adhair a chuir air dòigh, airgead a ghluasad, no cuideachadh le cùisean co-cheangailte ri cìsean.
A bharrachd air an sin, tha a’ bhuaidh a th’ aig a bhith ag ionnsachadh agus ag ionnsachadh chuspairean ùra cudromach, oir faodaidh modal cànain iomradh a thoirt air clàr-obrach iomlan agus am pròiseas ionnsachaidh a luathachadh. Thathas an dùil cuideachd gum bi buaidh mhòr aig na h-adhartasan sin air còdadh, mion-sgrùdadh dàta, agus saidheans dàta.
Is e aon de na cothroman as inntinniche a bhith a’ ceangal mhodalan cànain mòra ri dàta companaidh a th’ ann mar-thà, leithid fiosrachadh teachdaiche no dàta margaidheachd. Tha an aonachadh seo le APIan adhartach leithid API Meta no API Google a’ gealltainn adhartas mòr ann an anailis dàta agus saidheans dàta.
Mar a thogas tu duilleag-lìn (Demo)
An-dràsta, tha Langchain ri fhaighinn mar phasgan Python agus JavaScript.
Is urrainn dhuinn App Lìn taisbeanaidh a chruthachadh a’ cleachdadh Streamlit, LangChain, agus modal OpenAI GPT-3 gus bun-bheachd LangChain a bhuileachadh.
Ach an toiseach, feumaidh sinn beagan eisimeileachd a stàladh, nam measg Streamlit, LangChain, agus OpenAI.
Ro-riatanasan
Sruth-litrichean: Pasgan Python mòr-chòrdte airson tagraidhean lìn co-cheangailte ri saidheans dàta a chruthachadh
Fosgail AI: Tha feum air cothrom air modal cànain GPT-3 OpenAI.
Gus na h-eisimeileachd sin a stàladh, cleachd na h-òrdughan a leanas ann an cmd:
pip install streamlit
pip install langchain
pip install openai
Cuir a-steach pacaidean
Bidh sinn a’ tòiseachadh le bhith a’ toirt a-steach na pacaidean a tha a dhìth, leithid OpenAI, LangChain, agus Streamlit. Tha na slabhraidhean modail cànain againn air am mìneachadh agus air an cur an gnìomh a’ cleachdadh trì clasaichean bho LangChain: LLMChain, SimpleSequentialChain, agus PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Set bunaiteach
Chaidh bunait structarail ar pròiseact an uairsin a chuir suas a’ cleachdadh co-chòrdadh Streamlit. Thug sinn an tiotal “Dè tha TRUE: A’ cleachdadh Slabhraidh Seicheamhach Sìmplidh" don app agus thug sinn a-steach ceangal comharrachaidh gu stòr GitHub a bha na bhrosnachadh don aplacaid.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Widgets deireadh-aghaidh
Stèidhich sinn an aplacaid le glè bheag de dh'fhiosrachadh iomchaidh, a 'cleachdadh co-chòrdadh sìmplidh Streamlit:
# 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")
Gus widgets deireadh aghaidh a chur ris
A bharrachd air an sin, feumaidh sinn widget cuir a-steach a thoirt seachad gus leigeil le ar luchd-cleachdaidh ceistean sam bith a chuir a-steach.
# 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?",
)
Uile dèanta! Tha na slabhraidhean ag obair!
Bidh sinn a’ cleachdadh diofar shreathan obrachaidh còmhla ri SimpleSequentialChain
gus freagairt a thoirt do cheist an neach-cleachdaidh. Tha na slabhraidhean air an coileanadh san t-sreath a leanas nuair a thaghas an neach-cleachdaidh an "Tell me about it"
putan:
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
: a tha mar a 'chiad cheum anns an loidhne-phìoban againn, a' faighinn ceist an neach-cleachdaidh mar chur-a-steach agus toradh. Tha ceist an neach-cleachdaidh mar theamplaid na slabhraidh.- Stèidhichte air aithris ceangailte ris a’ cheist, tha an
assumptions_chain
a’ gineadh liosta de bharailean puingean-puing a’ cleachdadh toradh bhonquestion_chain
mar chur a-steach. Tha anLLMChain
agusOpenAI
chaidh modail bho LangChain a chleachdadh gus an aithris a thogail. Tha e mar dhleastanas air an neach-cleachdaidh liosta a chruthachadh de na barailean a chaidh a dhèanamh gus an aithris a thoirt gu buil a’ cleachdadh an teamplaid airson an t-sreath seo. - Stèidhichte air na toraidhean bho na
question_chain
agusassumptions_chain
, a 'fact_checker_chain
a’ gineadh liosta de dhearbhaidhean ann an cruth puingean peileir. Tha tagraidhean air an toirt a-mach a’ cleachdadh anOpenAI
modail agusLLMChain
bho LangChain. Tha e mar dhleastanas air an neach-cleachdaidh dearbhadh a bheil gach tagradh ceart no ceàrr agus a’ toirt seachad fìreanachadh airson an fheadhainn a tha. - Tha
answer_chain
cleachdadh na toraidhean bho naquestion_chain
,assumptions_chain
, agusfact_checker_chain
mar chur-a-steach gus freagairt a chruthachadh do cheist an neach-cleachdaidh a’ cleachdadh an dàta a chaidh a thoirt a-mach leis na slabhraidhean roimhe. Tha an teamplaid airson an t-sreath seo ag iarraidh gun freagair an neach-cleachdaidh a’ chiad cheist a’ cleachdadh na fìrinnean a chaidh a chruthachadh. - Gus am freagairt mu dheireadh a thoirt do cheasnachadh an neach-cleachdaidh stèidhichte air an fhiosrachadh a thug na slabhraidhean a-mach roimhe, bidh sinn ag amalachadh na slabhraidhean sin a-steach don t-sreath iomlan. Às deidh na slabhraidhean a chrìochnachadh, bidh sinn a 'cleachdadh
st.success()
gus am fuasgladh a shealltainn don neach-cleachdaidh.
Co-dhùnadh
Is urrainn dhuinn dìreach gnìomhan modail cànain eadar-dhealaichte a cheangal ri chèile gus pìoban nas toinnte a chruthachadh le bhith a’ cleachdadh an SimpleSequentialChain
modal de LangChain. Airson measgachadh farsaing de thagraidhean NLP, a’ toirt a-steach chatbots, siostaman ceist is freagairt, agus innealan eadar-theangachaidh cànain, dh’ fhaodadh seo a bhith gu math cuideachail.
Tha soilleireachd LangChain ri lorg na chomas a bhith a’ tarraing às, a leigeas leis an neach-cleachdaidh fòcas a chuir air a’ chùis làithreach seach air mion-fhiosrachadh modaladh cànain.
Tha LangChain a’ dèanamh a’ phròiseas airson modalan cànain sòlaimte a chruthachadh nas fhasa a chleachdadh le bhith a’ tabhann mhodalan ro-thrèanadh agus taghadh de theamplaidean.
Tha e a’ toirt cothrom dhut na modalan cànain a ghleusadh a’ cleachdadh an dàta aca fhèin, ga dhèanamh furasta na modalan cànain a ghnàthachadh. Tha seo a’ toirt comas do mhodalan nas mionaidiche, a tha sònraichte don àrainn, a bhith air an leasachadh a tha, airson obair shònraichte, a’ coileanadh nas fheàrr na na modalan trèanaidh.
Tha SimpleSequentialChain
modal agus feartan eile de LangChain ga dhèanamh na inneal èifeachdach airson siostaman NLP sòlaimte a leasachadh agus a chleachdadh gu luath.
Leave a Reply