Ստեղծեք RAG | B4N1

Ստեղծեք RAG

3 months ago · b4n1 Read time: 4 min

Նվագախմբի գործիքների կիրառում AI-ի վրա աշխատող ծրագրային ճարտարապետության համար

Ներածություն

AI-ով աշխատող ծրագրային ճարտարապետության աճող պահանջարկը հանգեցրել է տարբեր նվագախմբային գործիքների մշակմանը, որոնք թույլ են տալիս Արհեստական ինտելեկտի (AI) և մեքենայական ուսուցման (ML) կարողությունների անխափան ինտեգրումը ծրագրային համակարգերում: Այս հոդվածում մենք կուսումնասիրենք AI-ի վրա հիմնված ծրագրային ճարտարապետության ներդրումը, օգտագործելով նվագախմբային գործիքներ, ինչպիսիք են LangChain-ը և DSPy-ը՝ կենտրոնանալով RAG-ի (պատճառաբանման և գործողությունների գրաֆիկի) և LLM-ի (Large Language Model) հնարավորությունների ինտեգրման վրա՝ ընդարձակման, կատարողականության և անվտանգության համար:

Ի՞նչ են նվագախմբի գործիքները:

Նվագախմբի գործիքները ծրագրային շրջանակներ են, որոնք հնարավորություն են տալիս ավտոմատացնել բարդ աշխատանքային հոսքերը և գործընթացները՝ ինտեգրելով բազմաթիվ ծառայություններ, հավելվածներ և համակարգեր: Դրանք կենտրոնացված հարթակ են ապահովում տարբեր բաղադրիչների միջև փոխազդեցությունները կառավարելու և համակարգելու համար՝ ապահովելով առաջադրանքների արդյունավետ և մասշտաբային կատարումը:

LangChain. Python-ի վրա հիմնված նվագախմբի գործիք

LangChain-ը բաց կոդով Python գրադարան է, որն ապահովում է AI-ի վրա աշխատող ծրագրային ճարտարապետության կառուցման համապարփակ շրջանակ: Այն առաջարկում է մի շարք առանձնահատկություններ, ներառյալ.

  • RAG (Reasoning and Action Graph) Ինտեգրում. LangChain-ն ապահովում է ներկառուցված RAG-ի իրականացում, որը հնարավորություն է տալիս ստեղծել բարդ հիմնավորման և գործողությունների գրաֆիկներ, որոնք կարող են օգտագործվել AI-ի վրա հիմնված աշխատանքային հոսքերը մոդելավորելու և իրականացնելու համար:
  • LLM (Large Language Model) Ինտեգրում. LangChain-ն աջակցում է LLM-ների ինտեգրմանը, ինչպիսիք են LLaMA-ն և BERT-ը, բնական լեզվի մշակման և գեներացման առաջադրանքների համար:
  • Ծավալայնություն և կատարողականություն. LangChain-ը նախագծված է լայնածավալ արհեստական ​​ինտելեկտի ծանրաբեռնվածությունը կարգավորելու համար՝ ապահովելով առաջադրանքների արդյունավետ և մասշտաբային կատարումը:

** AI-ի վրա հիմնված ծրագրային ճարտարապետության իրականացում LangChain-ի հետ**

AI-ի վրա հիմնված ծրագրային ճարտարապետության ներդրումը LangChain-ի միջոցով ցուցադրելու համար, եկեք դիտարկենք չաթ-բոտի մի պարզ օրինակ, որն օգտագործում է RAG՝ օգտատերերի հարցումները պատճառաբանելու և պատասխաններ առաջացնելու համար:

«Պիթոն». ներմուծման լանգշղթա langchain.chains-ից ներմուծում llm

rag = langchain.RAG( անուն = "chatbot_rag", հանգույցներ=[ {"name": "greeting", "text": "Բարև ձեզ, ինչպե՞ս կարող եմ օգնել ձեզ?"}, {"name": "ցտեսություն", "text": "Ցտեսություն, հաճելի էր քեզ հետ զրուցելը"}, ], եզրեր=[ {"from": "greeting", "to": "Ցտեսություն", "condition": "user_says_goodbye"}, ], )

Ստեղծեք LLM

llm = llm.LLM( անուն = "chatbot_llm", մոդել = "լամա", max_tokens=100, )

Ստեղծեք չաթ բոտերի շղթա

շղթա = langchain.Chain( անուն = "chatbot_chain", llm=llm, լաթ = լաթ, )

Փորձարկեք չաթբոտը

user_input = «Բարև, ինչպե՞ս եք»: պատասխան = chain.run (user_input) տպել (պատասխան)


**DSPy՝ ժանգի վրա հիմնված նվագախմբի գործիք**
-----------------------------------------

DSPy-ն Rust-ի վրա հիմնված նվագախմբային գործիք է, որն ապահովում է բարձր կատարողականություն և մասշտաբային շրջանակ՝ արհեստական ինտելեկտով աշխատող ծրագրային ճարտարապետություն կառուցելու համար: Այն առաջարկում է մի շարք առանձնահատկություններ, ներառյալ.

* **RAG (Reasoning and Action Graph) ինտեգրում**. DSPy-ն ապահովում է RAG-ի ներկառուցված իրականացում, որը հնարավորություն է տալիս ստեղծել բարդ հիմնավորման և գործողությունների գրաֆիկներ, որոնք կարող են օգտագործվել AI-ի վրա հիմնված աշխատանքային հոսքերը մոդելավորելու և իրականացնելու համար:
* **LLM (Large Language Model) Ինտեգրում**. DSPy-ն աջակցում է LLM-ների ինտեգրմանը, ինչպիսիք են LLaMA-ն և BERT-ը, բնական լեզվի մշակման և գեներացման առաջադրանքների համար:
* **Ծավալելիություն և կատարողականություն**. DSPy-ն նախագծված է լայնածավալ արհեստական ​​ինտելեկտի ծանրաբեռնվածությունը կարգավորելու համար՝ ապահովելով առաջադրանքների արդյունավետ և մասշտաբային կատարումը:

**ԱԻ-ի վրա հիմնված ծրագրային ճարտարապետության իրականացում DSPy-ի հետ**
--------------------------------------------------------

AI-ի վրա հիմնված ծրագրային ճարտարապետության իրականացումը DSPy-ի միջոցով ցուցադրելու համար եկեք դիտարկենք չաթ-բոտի մի պարզ օրինակ, որն օգտագործում է RAG՝ օգտատերերի հարցումները պատճառաբանելու և պատասխաններ առաջացնելու համար:

`` ժանգ
օգտագործել dspy::chain;
օգտագործել dspy::llm;

// Ստեղծեք RAG
թող rag = շղթա::RAG::նոր(
    «chatbot_rag»,
    vec![
        շղթա::Հանգույց::new(«ողջույն», «Բարև, ինչպե՞ս կարող եմ օգնել քեզ»),
        chain::Node::new(«ցտեսություն», «Ցտեսություն, հաճելի էր քեզ հետ զրուցելը»),
    ],
    vec![
        chain::Edge::new(«ողջույն», «ցտեսություն», «user_says_goodbye»),
    ],
);

// Ստեղծել LLM
թող llm = llm::LLM::նոր(
    «chatbot_llm»,
    «լամա»,
    100,
);

// Ստեղծեք չաթ բոտերի շղթա
թող շղթա = շղթա::Շղթա::նոր(
    «chatbot_chain»,
    llm,
    լաթ,
);

// Փորձարկել չաթբոտը
let user_input = "Բարև, ինչպե՞ս ես";
թող պատասխան = chain.run (user_input);
println!("{}", պատասխան);

Թոփ 5-10 ամենաշատ օգտագործվող հրամաններ/հատվածներ

Ահա LangChain-ի և DSPy-ի համար առավել հաճախ օգտագործվող հրամաններից և հատվածներից մի քանիսը.

  • LangChain:
    • «langchain.RAG()»: Ստեղծում է նոր RAG օրինակ:
    • «langchain.LLM()»: Ստեղծում է նոր LLM օրինակ:
    • «langchain.Chain()»: Ստեղծում է նոր շղթայի օրինակ:
    • «rag.run()»: Գործարկում է RAG-ը և առաջացնում պատասխան:
    • llm.run(): Գործարկում է LLM-ը և առաջացնում պատասխան:
  • DSPy:
    • dspy::chain::RAG::new(): Ստեղծում է նոր RAG օրինակ:
    • dspy::llm::LLM::new(): Ստեղծում է նոր LLM օրինակ:
    • dspy::chain::Chain::new(): Ստեղծում է նոր շղթայի օրինակ:
    • `chain.run()`` գործարկում է շղթան և առաջացնում պատասխան:

Վիզուալիզացիա

Ահա RAG և LLM հնարավորությունների պարզ պատկերացում՝ օգտագործելով Chart.js.

`` Javascript const ctx = document.getElementById('myChart').getContext('2d'); const գծապատկեր = new Chart(ctx, { տեսակը՝ «բար», տվյալներ՝ { պիտակներ՝ ['RAG', 'LLM'], տվյալների հավաքածուներ՝ [{ պիտակ՝ «կարողություններ», տվյալներ՝ [10, 20], ֆոնի գույնը՝ [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', ], եզրագույն: [ 'rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', ], սահմանի լայնությունը՝ 1 }] }, տարբերակներ՝ { կշեռքներ: { y: { startAtZero: ճշմարիտ } } } });


**Եզրակացություն**
---------------

Եզրափակելով, LangChain-ը և DSPy-ը հզոր նվագախմբային գործիքներ են, որոնք հնարավորություն են տալիս իրականացնել AI-ի վրա հիմնված ծրագրային ճարտարապետություն՝ օգտագործելով RAG և LLM հնարավորությունները: Օգտագործելով այս գործիքները՝ մշակողները կարող են ստեղծել մասշտաբային, արդյունավետ և անվտանգ ծրագրային համակարգեր, որոնք կարող են կառավարել բարդ արհեստական ​​ինտելեկտի ծանրաբեռնվածությունը: Իրենց հեշտ օգտագործման և ճկունությամբ LangChain-ը և DSPy-ն իդեալական ընտրություն են AI-ով աշխատող ծրագրային ճարտարապետություն կառուցելու համար:

** Առաջարկություններ **
--------------------

Ելնելով այս հոդվածի քննարկումից՝ ահա որոշ առաջարկություններ մշակողների համար, ովքեր ցանկանում են իրականացնել AI-ի վրա հիմնված ծրագրային ճարտարապետություն՝ օգտագործելով LangChain և DSPy.

* Սկսեք սովորելով LangChain-ի և DSPy-ի հիմունքները, ներառյալ նրանց RAG և LLM հնարավորությունները:
* Փորձեք պարզ օրինակներով, ինչպիսին է չաթբոտի օրինակը, որպեսզի զգաք, թե ինչպես են աշխատում գործիքները:
* Աստիճանաբար անցեք ավելի բարդ նախագծերի, ինչպիսիք են առաջարկությունների համակարգի կամ բնական լեզվի մշակման խողովակաշարի կառուցումը:
* Օգտագործեք 5-10 ամենաշատ օգտագործվող հրամաններ/հատվածներ բաժինը՝ որպես ընդհանուր հրամանների և հատվածների ուղեցույց:
* Պատկերացրեք ձեր RAG և LLM հնարավորությունները՝ օգտագործելով Chart.js՝ տարբեր բաղադրիչների միջև փոխհարաբերությունները ավելի լավ հասկանալու համար:

Հետևելով այս առաջարկություններին, ծրագրավորողները կարող են բացել LangChain-ի և DSPy-ի ողջ ներուժը և կառուցել AI-ով աշխատող ծրագրային ճարտարապետություն, որը կարող է կարգավորել բարդ աշխատանքային ծանրաբեռնվածությունը և ապահովել բացառիկ կատարողականություն և մասշտաբայնություն:

Have Questions?

Let's Talk

Contact me on LinkedIn