ترقي يافته سافٽ ويئر ڊولپمينٽ ورڪ فلوز لاءِ LLMs سان RAG کي ضم ڪرڻ | B4N1

ترقي يافته سافٽ ويئر ڊولپمينٽ ورڪ فلوز لاءِ LLMs سان RAG کي ضم ڪرڻ

9 months ago · b4n1 Read time: 5 min

** بهتر ڪيل سافٽ ويئر ڊولپمينٽ ورڪ فلوز لاءِ LLMs سان RAG کي ضم ڪرڻ**

تعارف

سافٽ ويئر ڊولپمينٽ جو نظارو تيزيءَ سان ترقي ڪري رهيو آهي، مصنوعي ذهانت (AI)، مشين لرننگ (ML)، ۽ قدرتي ٻولي پروسيسنگ (NLP) جي ترقيءَ سان. ٻه اهم ٽيڪنالاجيون جيڪي اسان جي سافٽ ويئر جي ترقيءَ ۾ انقلاب آڻينديون آهن، اهي آهن Retrieval-Augmented Generation (RAG) ۽ Large Language Models (LLMs). هن آرٽيڪل ۾، اسان ڳولينداسين RAG جي انضمام کي LLMs سان سافٽ ويئر انجنيئرنگ جي عمل کي منظم ڪرڻ، ڪوڊ جي پيداوار کي بهتر ڪرڻ، ۽ ڊولپر جي پيداوار کي وڌائڻ لاء.

** ريٽريول-آگمينٽڊ جنريشن (RAG) ڇا آهي؟**

RAG هڪ ٽيڪنڪ آهي جيڪا حاصل ڪرڻ جي طاقتن کي گڏ ڪري ٿي ۽ نسل جي بنياد تي اين ايل پي جي طريقن سان. ان ۾ متن جي وڏي ذخيري مان لاڳاپيل معلومات حاصل ڪرڻ ۽ نئين متن جي نسل کي وڌائڻ لاءِ استعمال ڪرڻ شامل آهي. اهو طريقو NLP ڪمن جي مختلف قسمن ۾ انتهائي اثرائتو ثابت ٿيو آهي، جنهن ۾ سوالن جا جواب، متن جو خلاصو، ۽ ڪوڊ جنريشن شامل آهن.

** ڇا آهن وڏي ٻولي جا ماڊل (LLMs)؟**

LLMs هڪ قسم جو عصبي نيٽ ورڪ آهي جنهن کي پروسيس ڪرڻ ۽ انسان جهڙي ٻولي ٺاهڻ لاءِ ٺاهيو ويو آهي. اهي عام طور تي تربيت يافته آهن ٽيڪسٽ جي وڏي ڊيٽا سيٽن تي ۽ خاص ڪمن جهڙوڪ ٻولي جي ترجمي، ٽيڪسٽ اختصار، ۽ ڪوڊ جنريشن لاءِ ٺيڪ ٿي سگهن ٿا. LLMs ڪيترن ئي NLP ڪمن ۾ جديد ترين نتيجا حاصل ڪيا آھن ۽ وڏي پيماني تي ايپليڪيشنن ۾ استعمال ڪيا ويا آھن جھڙوڪ چيٽ بوٽس، ورچوئل اسسٽنٽ، ۽ ٻوليءَ جي ترجمي واري نظام ۾.

** بهتر ڪيل سافٽ ويئر ڊولپمينٽ ورڪ فلوز لاءِ LLMs سان RAG کي ضم ڪرڻ**

LLMs سان RAG جو انضمام اسان جي سافٽ ويئر کي ترقي ڪرڻ جي طريقي ۾ انقلاب آڻڻ جي صلاحيت رکي ٿو. حاصل ڪرڻ جي بنياد تي ۽ نسل جي بنياد تي طريقن جي قوتن کي گڏ ڪرڻ سان، RAG LLMs کي وڌيڪ صحيح ۽ لاڳاپيل ڪوڊ پيدا ڪرڻ ۾ مدد ڪري سگھن ٿا. اهو ڊولپر جي پيداوار، ڪوڊ جي معيار، ۽ مجموعي طور تي سافٽ ويئر ڊولپمينٽ ورڪ فلوز ۾ اهم سڌارن جي ڪري سگھي ٿو.

** آرڪيسٽريشن جا اوزار: LangChain ۽ DSPy**

LLMs سان RAG کي ضم ڪرڻ لاءِ، اسان کي آرڪيسٽريشن ٽولز جي ضرورت آھي جيڪي ڊيٽا جي وهڪري کي منظم ڪري سگھن ۽ RAG ۽ LLM حصن جي عمل کي ڪنٽرول ڪري سگھن. ٻه مشهور آرڪيسٽريشن اوزار جيڪي هن مقصد لاء استعمال ڪري سگهجن ٿيون LangChain ۽ DSPy.

Langchain

LangChain هڪ کليل ذريعو Python لائبريري آهي جيڪا RAG تي ٻڌل ايپليڪيشنن جي تعمير لاءِ هڪ سادي ۽ وجداني API مهيا ڪري ٿي. اهو ڊولپرز کي آساني سان RAG کي LLMs ۽ ٻين NLP حصن سان ضم ڪرڻ جي اجازت ڏئي ٿو طاقتور سافٽ ويئر ڊولپمينٽ ورڪ فلوز ٺاهڻ لاءِ.

DSPy

DSPy هڪ ٻي اوپن سورس پٿون لائبريري آهي جيڪا RAG تي ٻڌل ايپليڪيشنن جي تعمير لاءِ اعليٰ سطحي API مهيا ڪري ٿي. اهو ٺهيل آهي LLMs ۽ ٻين NLP حصن سان بغير ڪنهن ڪم جي ڪم ڪرڻ لاءِ، ان کي LLMs سان RAG کي ضم ڪرڻ لاءِ هڪ مثالي انتخاب بڻايو ويو آهي.

ڪوڊ جو مثال: LangChain استعمال ڪندي RAG کي LLMs سان ضم ڪرڻ

ھتي ھڪڙو سادو ڪوڊ مثال آھي جيڪو ظاھر ڪري ٿو RAG کي LLMs سان ڪيئن ضم ڪيو وڃي LangChain استعمال ڪندي: ``پٿون langchain درآمد ڪريو langchain.chains کان RAGChain درآمد ڪريو

rag_model = langchain.RAG( index=langchain.Index( نالو = "my_index" دستاويز=["دستاويز1"، "دستاويز2"، "دستاويز3"]، ) retriever=langchain.Retriever( نالو = "my_retriever" ماڊل="my_retriever_model"، ) generator = langchain. جنريٽر ( نالو = "my_generator" ماڊل = "my_generator_model" ) )

ايل ايل ايم ماڊل جي وضاحت ڪريو

llm_model = langchain.LLM( نالو = "my_llm" ماڊل = "my_llm_model" )

هڪ RAG زنجير ٺاهيو

rag_chain = RAGChain( نالو = "my_rag_chain" ماڊل = rag_model, llm=llm_model, )

ڪوڊ ٺاهڻ لاء RAG زنجير استعمال ڪريو

ڪوڊ = rag_chain.generate( input_text="هڪ فنڪشن لکو جيڪو ٻن عددن کي انپٽ طور وٺي ۽ انهن جي رقم واپس ڪري، )

پرنٽ (ڪوڊ) `` هي ڪوڊ مثال ڏيکاري ٿو ته ڪيئن LangChain استعمال ڪندي هڪ RAG ماڊل جي وضاحت ڪرڻ، هڪ LLM ماڊل جي وضاحت، هڪ RAG زنجير ٺاهيو، ۽ ڪوڊ ٺاهڻ لاءِ زنجير استعمال ڪريو.

مٿين 5-10 سڀ کان وڌيڪ استعمال ٿيل ڪمانڊ/ٽڪرا

هتي آهن مٿيون 5-10 سڀ کان وڌيڪ استعمال ٿيل ڪمانڊ / ٽڪڙا RAG کي LLMs سان ضم ڪرڻ لاءِ LangChain ۽ DSPy استعمال ڪندي:

  1. langchain.RAG(): هڪ RAG ماڊل مثال ٺاهي ٿو.
  2. langchain.Index(): دستاويزن کي محفوظ ڪرڻ ۽ حاصل ڪرڻ لاءِ هڪ انڊيڪس مثال ٺاهي ٿو.
  3. langchain.Retriever(): لاڳاپيل دستاويز ٻيهر حاصل ڪرڻ لاءِ ٻيهر حاصل ڪرڻ وارو مثال ٺاهي ٿو.
  4. langchain.Generator(): نئين ٽيڪسٽ ٺاهڻ لاءِ جنريٽر مثال ٺاهي ٿو.
  5. langchain.LLM(): هڪ ايل ايل ايم ماڊل مثال ٺاهي ٿو.
  6. RAGChain(): هڪ RAG زنجير مثال ٺاهي ٿو.
  7. rag_chain.generate(): ڪوڊ ٺاهڻ لاءِ RAG زنجير استعمال ڪري ٿو.
  8. llm_model.generate(): ڪوڊ ٺاهڻ لاءِ LLM ماڊل استعمال ڪري ٿو.
  9. index.add_document(): انڊيڪس ۾ هڪ دستاويز شامل ڪري ٿو.
  10. retriever.retrieve(): retriever استعمال ڪندي لاڳاپيل دستاويز ٻيهر حاصل ڪري ٿو.

تصوير

هتي چارٽ.js استعمال ڪندي RAG ۽ LLM اجزاء جو هڪ تصور آهي: جيسن { "قسم": "بار"، "ڊيٽا": { "labels": ["RAG"، "LLM"], "ڊيٽا سيٽس": [ { "label": "اجزاء", "ڊيٽا": [10، 20]، "backgroundcolor": ["#4CAF50", "#FF9800"] } ] }، "اختيارن": { "عنوان": { "display": سچ، "text": "RAG ۽ LLM اجزاء" }، "ترازو": { "yAxes": [ { "display": سچ، "beginAtZero": سچ } ] } } } `` هي نقشو ڏيکاري ٿو اجزاء جو تعداد RAG ۽ LLM ماڊلز ۾.

اختتام

LLMs سان RAG جو انضمام اسان جي سافٽ ويئر کي ترقي ڪرڻ جي طريقي ۾ انقلاب آڻڻ جي صلاحيت رکي ٿو. حاصل ڪرڻ جي بنياد تي ۽ نسل جي بنياد تي طريقن جي قوتن کي گڏ ڪرڻ سان، RAG LLMs کي وڌيڪ صحيح ۽ لاڳاپيل ڪوڊ پيدا ڪرڻ ۾ مدد ڪري سگھن ٿا. اهو ڊولپر جي پيداوار، ڪوڊ جي معيار، ۽ مجموعي طور تي سافٽ ويئر ڊولپمينٽ ورڪ فلوز ۾ اهم سڌارن جي ڪري سگھي ٿو. آرڪيسٽريشن ٽولز جهڙوڪ LangChain ۽ DSPy سان، ڊولپرز آساني سان RAG کي LLMs ۽ ٻين NLP حصن سان ضم ڪري سگھن ٿا طاقتور سافٽ ويئر ڊولپمينٽ ورڪ فلوز ٺاهڻ لاءِ.


Have Questions?

Let's Talk

Contact me on LinkedIn