LangChain ھڪڙو جديد ۽ مضبوط اوزار آھي جيڪو وڏي ٻوليءَ جي ماڊلز (LLMs) جي طاقت کي استعمال ڪرڻ لاءِ تيار ڪيو ويو آھي.
اهي LLMs قابل ذڪر صلاحيتون آهن ۽ موثر طريقي سان ڪمن جي وسيع صف کي حل ڪري سگهن ٿيون. بهرحال، اهو نوٽ ڪرڻ ضروري آهي ته انهن جي طاقت انهن جي عام فطرت ۾ آهي بلڪه ان جي اندر جي ڊومين ماهر جي ڀيٽ ۾. GPT-4 جي تعارف کان وٺي ان جي مقبوليت تيزي سان وڌي وئي آهي.
جڏهن ته LLMs مختلف ڪمن کي سنڀالڻ ۾ شاندار آهن، انهن کي شايد حدن کي منهن ڏيڻو پوي ٿو جڏهن اهو مخصوص جواب مهيا ڪرڻ يا ڪمن کي منهن ڏيڻ لاء اچي ٿو جنهن کي ڊوم ڊومين جي ڄاڻ جي ضرورت آهي. غور ڪريو، مثال طور، سوالن جا جواب ڏيڻ يا خاص شعبن جهڙوڪ دوا يا قانون جي اندر ڪم ڪرڻ لاءِ LLM استعمال ڪرڻ.
جڏهن ته LLM انهن شعبن بابت عام سوالن جو جواب ڏئي سگهي ٿو، اهو شايد وڌيڪ تفصيلي يا غير معمولي جواب پيش ڪرڻ لاء جدوجهد ڪري سگهي ٿو جيڪي خاص علم يا ماهر جي ضرورت هونديون آهن.
اهو ئي سبب آهي ته LLMs کي تربيت ڏني وئي آهي متنوع ذريعن کان متن جي ڊيٽا جي وسيع مقدار تي، انهن کي نمونن کي سکڻ، مفهوم کي سمجهڻ، ۽ مربوط جواب پيدا ڪرڻ جي قابل بڻائي. بهرحال، انهن جي تربيت ۾ عام طور تي ڊومين-مخصوص يا خاص علم حاصل ڪرڻ شامل نه آهي ساڳئي حد تائين انهن شعبن ۾ انساني ماهرن وانگر.
تنهن ڪري، جڏهن ته LangChain، LLMs سان گڏ، ڪمن جي وسيع رينج لاءِ هڪ انمول اوزار ٿي سگهي ٿو، اهو سمجهڻ ضروري آهي ته ڪجهه خاص حالتن ۾ اڃا به گہرے ڊومين جي ماهر هجڻ ضروري آهي. خاص علم سان گڏ انساني ماهر ضروري کوٽائي، نفيس سمجھ، ۽ حوالي سان مخصوص بصيرت مهيا ڪري سگھن ٿا جيڪي شايد اڪيلو LLMs جي صلاحيتن کان ٻاهر هجن.
اسان LangChain جي دستاويزن کي ڏسڻ جي صلاح ڏينداسين يا GitHub ان جي عام استعمال جي ڪيسن جي وڌيڪ مڪمل سمجھڻ لاءِ مخزن. اهو سختي سان صلاح ڏني وئي آهي ته هن بنڊل جي وڏي تصوير حاصل ڪريو.
اهو ڪم ڪيئن آهي؟
LangChain جي مقصد ۽ ڪم کي سمجهڻ لاء، اچو ته هڪ عملي مثال تي غور ڪريو. اسان کي خبر آهي ته GPT-4 شاندار عام ڄاڻ رکي ٿو ۽ ڪيترن ئي سوالن جا قابل اعتماد جواب ڏئي سگهي ٿو.
تنهن هوندي، جيڪڏهن اسان پنهنجي ڊيٽا مان مخصوص معلومات چاهيون ٿا، جهڙوڪ ذاتي دستاويز، ڪتاب، PDF فائل، يا ملڪيت واري ڊيٽابيس؟
LangChain اسان کي ڳنڍڻ جي اجازت ڏئي ٿو a وڏي ٻولي ماڊل GPT-4 وانگر اسان جي پنهنجي ڊيٽا جي ذريعن ڏانهن. اهو صرف هڪ چيٽ انٽرفيس ۾ متن جو هڪ ٽڪرو پيسٽ ڪرڻ کان ٻاهر آهي. ان جي بدران، اسان هڪ مڪمل ڊيٽابيس جو حوالو ڪري سگهون ٿا جيڪو اسان جي پنهنجي ڊيٽا سان ڀريل آهي.
هڪ دفعو اسان گهربل معلومات حاصل ڪريون ٿا، LangChain اسان جي مدد ڪري سگھي ٿو خاص ڪارناما وٺڻ ۾. مثال طور، اسان ان کي هدايت ڪري سگھون ٿا ته هڪ اي ميل موڪليو جنهن ۾ ڪجهه تفصيل شامل آهن.
هن کي حاصل ڪرڻ لاء، اسان LangChain استعمال ڪندي پائپ لائن جي طريقي جي پيروي ڪندا آهيون. پهرين، اسان اهو دستاويز وٺون ٿا جيڪو اسان چاهيون ٿا ٻولي ماڊل حوالو ڏيڻ ۽ ان کي ننڍن حصن ۾ ورهائڻ. اهي ٽڪرا وري ايمبيڊنگ جي طور تي ذخيرو ٿيل آهن، جيڪي آهن متن جي ویکٹر نمائندگي، هڪ ویکٹر ڊيٽابيس ۾.
هن سيٽ اپ سان، اسان ٻولي ماڊل ايپليڪيشنون ٺاهي سگهون ٿا جيڪي معياري پائپ لائن جي پيروي ڪندا آهن: هڪ صارف هڪ ابتدائي سوال پڇي ٿو، جيڪو پوء ٻوليء جي ماڊل ڏانهن موڪليو ويو آهي. سوال جي ویکٹر جي نمائندگي ویکٹر ڊيٽابيس ۾ هڪجهڙائي جي ڳولا ڪرڻ لاءِ استعمال ڪئي ويندي آهي، معلومات جي لاڳاپيل حصن کي ٻيهر حاصل ڪندي.
اهي ٽڪرا وري ٻولي ماڊل ڏانهن موٽايا ويندا آهن، ان کي جواب ڏيڻ يا گهربل ڪارروائي ڪرڻ جي قابل بڻائي.
LangChain ايپليڪيشنن جي ترقي کي آسان بڻائي ٿو جيڪي ڊيٽا کان واقف آهن، جيئن اسان پنهنجي ڊيٽا کي ویکٹر اسٽور ۾ حوالي ڪري سگهون ٿا، ۽ مستند، جيئن اهي سوالن جي جوابن کان ٻاهر ڪم ڪري سگهن ٿيون. ٽي
هن جي عملي استعمال جي ڪيسن جي ڪثرت کي کوليندو آهي، خاص طور تي ذاتي مدد ۾، جتي هڪ وڏي ٻولي ماڊل ڪمن کي سنڀالي سگهي ٿو جهڙوڪ پروازن جي بکنگ، پئسا منتقل ڪرڻ، يا ٽيڪس سان لاڳاپيل معاملن ۾ مدد ڪرڻ.
اضافي طور تي، نون مضمونن جي مطالعي ۽ سکيا جا اثر اهم آهن، ڇاڪاڻ ته هڪ ٻولي ماڊل هڪ مڪمل نصاب جو حوالو ڏئي سگهي ٿو ۽ سکيا جي عمل کي تيز ڪري سگهي ٿو. ڪوڊنگ، ڊيٽا جي تجزيو، ۽ ڊيٽا سائنس پڻ توقع ڪئي وئي آهي ته انهن ترقيات کان تمام گهڻو متاثر ٿيندو.
سڀ کان وڌيڪ دلچسپ امڪانن مان هڪ وڏي ٻولي ماڊلز کي موجوده ڪمپني ڊيٽا سان ڳنڍي رهيو آهي، جهڙوڪ ڪسٽمر جي معلومات يا مارڪيٽنگ ڊيٽا. هي انضمام ترقي يافته APIs جهڙوڪ Meta's API يا گوگل جي API سان ڊيٽا اينالائيٽڪس ۽ ڊيٽا سائنس ۾ تيز رفتار ترقي جو واعدو ڪري ٿو.
ويب پيج ڪيئن ٺاهيو (ڊيمو)
في الحال، Langchain Python ۽ JavaScript پيڪيجز طور موجود آهي.
اسان 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 مان ٽن طبقن کي استعمال ڪندي بيان ڪيو ويو آهي: LLMCchain، SimpleSequentialChain، ۽ PromptTemplate.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
بنيادي سيٽ اپ
اسان جي منصوبي جو بنيادي بنياد وري Streamlit نحو استعمال ڪندي رکيو ويو. اسان ايپ کي عنوان ڏنو ”ڇا صحيح آهي: استعمال ڪندي سادي ترتيب واري زنجير“ ۽ شامل ڪيو هڪ مارڪ ڊائون لنڪ GitHub مخزن لاءِ جيڪو ايپ جي الهام جي طور تي ڪم ڪيو.
import streamlit as st
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
فرنٽ-اينڊ ويجيٽس
اسان سادي 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")
اڳيون-آخر ويجٽ شامل ڪرڻ لاءِ
وڌيڪ، اسان کي هڪ ان پٽ ويجيٽ مهيا ڪرڻ جي ضرورت آهي ته جيئن اسان جي صارفين کي ڪنهن به سوال ۾ داخل ٿيڻ جي اجازت ڏين.
# 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 سسٽم کي جلدي ترقي ۽ ترتيب ڏيڻ لاءِ هڪ مؤثر اوزار بڻائين ٿيون.
جواب ڇڏي وڃو