LangChain ni zana ya kisasa na thabiti iliyotengenezwa ili kutumia nguvu za Miundo Kubwa ya Lugha (LLMs).
LLM hizi zina uwezo wa ajabu na zinaweza kushughulikia kwa ufanisi safu mbalimbali za kazi. Hata hivyo, ni muhimu kutambua kwamba nguvu zao ziko katika asili yao ya jumla badala ya ujuzi wa kina wa kikoa. Umaarufu wake umeongezeka kwa kasi tangu kuanzishwa kwa GPT-4.
Ingawa LLM hufaulu katika kushughulikia kazi mbalimbali, zinaweza kukabiliana na vikwazo linapokuja suala la kutoa majibu mahususi au kushughulikia kazi zinazohitaji maarifa ya kina ya kikoa. Fikiria, kwa mfano, kutumia LLM kujibu maswali au kufanya kazi katika nyanja maalum kama vile dawa au sheria.
Ingawa kwa hakika LLM inaweza kujibu maswali ya jumla kuhusu nyanja hizi, inaweza kutatizika kutoa majibu ya kina zaidi au ya kina ambayo yanahitaji ujuzi au utaalamu maalum.
Hii ni kwa sababu LLM zimefunzwa kuhusu kiasi kikubwa cha data ya maandishi kutoka vyanzo mbalimbali, na kuziwezesha kujifunza ruwaza, kuelewa muktadha, na kutoa majibu madhubuti. Hata hivyo, mafunzo yao kwa kawaida hayahusishi upataji wa maarifa maalum ya kikoa au maalum kwa kiwango sawa na wataalamu wa kibinadamu katika nyanja hizo.
Kwa hivyo, ingawa LangChain, kwa kushirikiana na LLMs, inaweza kuwa zana ya thamani sana kwa anuwai ya kazi, ni muhimu kutambua kwamba utaalamu wa kina wa kikoa bado unaweza kuwa muhimu katika hali fulani. Wataalamu wa kibinadamu walio na ujuzi maalum wanaweza kutoa kina kinachohitajika, uelewa mdogo, na maarifa ya muktadha mahususi ambayo yanaweza kuwa nje ya uwezo wa LLM pekee.
Tunapendekeza uangalie hati za LangChain au GitHub hazina kwa uelewa kamili zaidi wa kesi zake za kawaida za utumiaji. Inashauriwa sana kupata picha kubwa ya kifungu hiki.
Inafanyaje kazi?
Ili kuelewa madhumuni na kazi ya LangChain, hebu tuchunguze mfano wa vitendo. Tunafahamu kuwa GPT-4 ina maarifa ya jumla ya kuvutia na inaweza kutoa majibu ya kuaminika kwa anuwai ya maswali.
Hata hivyo, vipi ikiwa tunataka maelezo mahususi kutoka kwa data yetu wenyewe, kama vile hati ya kibinafsi, kitabu, faili ya PDF, au hifadhidata ya umiliki?
LangChain inaruhusu sisi kuunganisha a mfano wa lugha kubwa kama GPT-4 kwa vyanzo vyetu vya data. Huenda zaidi ya kubandika kijisehemu cha maandishi kwenye kiolesura cha gumzo. Badala yake, tunaweza kurejelea hifadhidata nzima iliyojazwa na data yetu wenyewe.
Mara tu tunapopata taarifa tunayotaka, LangChain inaweza kutusaidia katika kuchukua hatua mahususi. Kwa mfano, tunaweza kuiagiza kutuma barua pepe iliyo na maelezo fulani.
Ili kufikia hili, tunafuata njia ya bomba kwa kutumia LangChain. Kwanza, tunachukua hati tunayotaka mfano wa lugha kurejelea na kuigawanya katika vipande vidogo. Vipande hivi basi huhifadhiwa kama upachikaji, ambavyo ni uwakilishi wa vekta wa maandishi, katika Hifadhidata ya Vekta.
Kwa usanidi huu, tunaweza kuunda programu za muundo wa lugha zinazofuata mkondo wa kawaida: mtumiaji anauliza swali la kwanza, ambalo linatumwa kwa muundo wa lugha. Uwakilishi wa vekta ya swali hutumika kutafuta mfanano kwenye Hifadhidata ya Vekta, kupata sehemu muhimu za habari.
Visehemu hivi hurejeshwa kwa modeli ya lugha, na kuiwezesha kutoa jibu au kuchukua hatua inayotakikana.
LangChain hurahisisha uundaji wa programu zinazofahamu data, kwani tunaweza kurejelea data yetu wenyewe katika duka la vekta, na halisi, kwani zinaweza kuchukua hatua zaidi ya kujibu maswali. T
yake hufungua kesi nyingi za utumiaji wa vitendo, haswa katika usaidizi wa kibinafsi, ambapo muundo mkubwa wa lugha unaweza kushughulikia kazi kama vile kuhifadhi nafasi za ndege, kuhamisha pesa, au kusaidia maswala yanayohusiana na ushuru.
Zaidi ya hayo, athari za kusoma na kujifunza masomo mapya ni muhimu, kwani modeli ya lugha inaweza kurejelea silabasi nzima na kuharakisha mchakato wa kujifunza. Usimbaji, uchanganuzi wa data, na sayansi ya data pia inatarajiwa kuathiriwa sana na maendeleo haya.
Mojawapo ya matarajio ya kufurahisha zaidi ni kuunganisha miundo ya lugha kubwa kwa data iliyopo ya kampuni, kama vile maelezo ya wateja au data ya uuzaji. Ujumuishaji huu na API za kina kama vile API ya Meta au API ya Google huahidi maendeleo makubwa katika uchanganuzi wa data na sayansi ya data.
Jinsi ya kuunda ukurasa wa wavuti (Demo)
Kwa sasa, Langchain inapatikana kama Python na JavaScript Packages.
Tunaweza kuunda onyesho la Programu ya Wavuti kwa kutumia Streamlit, LangChain, na modeli ya OpenAI GPT-3 ili kutekeleza dhana ya LangChain.
Lakini kwanza, lazima tusakinishe vitegemezi vichache, ikiwa ni pamoja na Streamlit, LangChain, na OpenAI.
Mahitaji ya awali
Sawazisha: Kifurushi maarufu cha Python cha kuunda programu za wavuti zinazohusiana na sayansi
OpenAI: Ufikiaji wa muundo wa lugha wa OpenAI wa GPT-3 unahitajika.
Ili kusakinisha tegemezi hizi, tumia amri zifuatazo katika cmd:
pip install streamlit
pip install langchain
pip install openai
Ingiza Vifurushi
Tunaanza kwa kuleta vifurushi vinavyohitajika, kama vile OpenAI, LangChain, na Streamlit. Misururu yetu ya miundo ya lugha inafafanuliwa na kutekelezwa kwa kutumia madarasa matatu kutoka LangChain: LLMChain, SimpleSequentialChain, na PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Kuweka Msingi
Msingi wa kimuundo wa mradi wetu uliwekwa kwa kutumia syntax ya Uboreshaji. Tuliipa programu jina la "Nini UKWELI: Kutumia Msururu Rahisi wa Kufuatana" na tukajumuisha kiungo cha kuweka alama kwenye hazina ya GitHub ambacho kilitumika kama msukumo wa programu.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
Wijeti za Mbele
Tunasanidi programu tukiwa na taarifa chache muhimu, kwa kutumia sintaksia rahisi ya Kuhuisha:
# 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")
Ili kuongeza wijeti za mbele
Zaidi ya hayo, tunahitaji kutoa wijeti ya ingizo ili kuruhusu watumiaji wetu kuuliza maswali yoyote.
# 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?",
)
Yote yamekamilika! Minyororo iko juu na kukimbia!
Tunaajiri minyororo mbalimbali ya uendeshaji pamoja na SimpleSequentialChain
kujibu swali la mtumiaji. Minyororo inafanywa kwa mlolongo ufuatao wakati mtumiaji anachagua "Tell me about it"
button:
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
: ambayo ni hatua ya kwanza katika bomba letu, inapokea swali la mtumiaji kama pembejeo na matokeo. Hoja ya mtumiaji hutumika kama kiolezo cha mnyororo.- Kulingana na taarifa iliyounganishwa na swali, the
assumptions_chain
hutengeneza orodha ya vidokezo vya mawazo kwa kutumia pato kutoka kwaquestion_chain
kama pembejeo. TheLLMChain
naOpenAI
mfano kutoka LangChain ulitumiwa kuunda taarifa. Mtumiaji ana jukumu la kuunda orodha ya mawazo ambayo yalifanywa ili kutoa taarifa kwa kutumia kiolezo cha msururu huu. - Kulingana na matokeo kutoka kwa
question_chain
naassumptions_chain
,fact_checker_chain
huzalisha orodha ya madai katika mfumo wa pointi za risasi. Madai yanatolewa kwa kutumiaOpenAI
mfano naLLMChain
kutoka LangChain. Mtumiaji ana jukumu la kuamua ikiwa kila dai ni sahihi au si sahihi na kutoa uhalali kwa wale ambao ni sahihi. - The
answer_chain
hutumia matokeo kutoka kwaquestion_chain
,assumptions_chain
, nafact_checker_chain
kama pembejeo za kuunda jibu la swali la mtumiaji kwa kutumia data iliyotolewa na minyororo ya awali. Kiolezo cha msururu huu kinaomba kwamba mtumiaji ajibu swali la kwanza kwa kutumia ukweli ambao uliundwa. - Ili kutoa jibu la mwisho kwa swali la mtumiaji kulingana na maelezo yaliyotolewa na misururu ya awali, tunaunganisha minyororo hii kwenye msururu wa jumla. Baada ya minyororo kukamilika, tunatumia
st.success()
kumwonyesha mtumiaji suluhisho.
Hitimisho
Tunaweza kuunganisha kwa urahisi vitendo vya modeli tofauti za lugha ili kuunda njia ngumu zaidi kwa kutumia SimpleSequentialChain
moduli ya LangChain. Kwa aina mbalimbali za programu za NLP, ikiwa ni pamoja na chatbots, mifumo ya maswali na majibu, na zana za kutafsiri lugha, hii inaweza kusaidia sana.
Uzuri wa LangChain unapatikana katika uwezo wake wa kufikirika, ambao humwezesha mtumiaji kuzingatia suala la sasa badala ya mahususi ya uundaji wa lugha.
LangChain hufanya mchakato wa kuunda miundo ya lugha ya hali ya juu ifae watumiaji zaidi kwa kutoa miundo iliyofunzwa mapema na uteuzi wa violezo.
Inakupa chaguo kurekebisha miundo ya lugha kwa kutumia data yao wenyewe, na kuifanya iwe rahisi kubinafsisha miundo ya lugha. Hii huwezesha uundaji wa miundo sahihi zaidi, maalum ya kikoa ambayo, kwa kazi fulani, inashinda miundo iliyofunzwa.
The SimpleSequentialChain
moduli na vipengele vingine vya LangChain huifanya kuwa chombo madhubuti cha kuendeleza na kupeleka mifumo ya kisasa ya NLP.
Acha Reply