Sukurkite RAG | B4N1

Sukurkite RAG

3 months ago · b4n1 Read time: 4 min

Orkestravimo įrankių panaudojimas dirbtiniu intelektu paremtai programinės įrangos architektūrai

Įvadas

Didėjanti dirbtiniu intelektu pagrįstos programinės įrangos architektūros paklausa paskatino sukurti įvairius orkestravimo įrankius, kurie leidžia sklandžiai integruoti dirbtinio intelekto (AI) ir mašininio mokymosi (ML) galimybes į programinės įrangos sistemas. Šiame straipsnyje mes išnagrinėsime DI pagrįstos programinės įrangos architektūros įgyvendinimą naudojant orkestravimo įrankius, tokius kaip LangChain ir DSPy, daugiausia dėmesio skirdami RAG (Reasoning and Action Graph) ir LLM (didelės kalbos modelio) galimybėms, kad būtų padidintas mastelio keitimas, našumas ir saugumas.

Kas yra orkestravimo įrankiai?

Orkestravimo įrankiai yra programinės įrangos sistemos, leidžiančios automatizuoti sudėtingas darbo eigas ir procesus integruojant kelias paslaugas, programas ir sistemas. Jie suteikia centralizuotą platformą skirtingų komponentų sąveikai valdyti ir koordinuoti, užtikrinant efektyvų ir keičiamą užduočių vykdymą.

LangChain: Python pagrindu sukurtas orkestravimo įrankis

„LangChain“ yra atvirojo kodo „Python“ biblioteka, kuri suteikia visapusišką AI pagrįstos programinės įrangos architektūros kūrimo sistemą. Jis siūlo daugybę funkcijų, įskaitant:

  • RAG (Reasoning and Action Graph) integravimas: „LangChain“ suteikia integruotą RAG diegimą, leidžiantį sukurti sudėtingas samprotavimo ir veiksmų diagramas, kurios gali būti naudojamos dirbtinio intelekto pagrįstoms darbo eigoms modeliuoti ir vykdyti.
  • LLM (didelės kalbos modelio) integravimas: „LangChain“ palaiko LLM, pvz., LLaMA ir BERT, integravimą natūralios kalbos apdorojimo ir generavimo užduotims atlikti.
  • Mastelio keitimas ir našumas: „LangChain“ sukurta valdyti didelio masto AI darbo krūvius, užtikrinant efektyvų ir keičiamą užduočių vykdymą.

** Dirbtiniu intelektu pagrįstos programinės įrangos architektūros diegimas naudojant „LangChain“**

Norėdami pademonstruoti dirbtiniu intelektu pagrįstos programinės įrangos architektūros įgyvendinimą naudojant „LangChain“, panagrinėkime paprastą pokalbių roboto, kuris naudoja RAG vartotojų užklausoms pagrįsti ir atsakymams generuoti, pavyzdį.

importuoti langchain
iš langchain.chains import llm


rag = langchain.RAG(
    name="chatbot_rag",
    mazgai=[
        {"name": "pasveikinimas", "text": "Sveiki, kaip galiu jums padėti?"},
        {"name": "sudie", "text": "Sudie, buvo malonu su jumis kalbėtis."},
    ],
    briaunos=[
        {"from": "pasveikinimas", "kam": "sudie", "condition": "user_says_goodbye"},
    ],
)

# Sukurkite LLM
llm = llm.LLM(
    name="chatbot_llm",
    modelis = "lama",
    max_tokens=100,
)

# Sukurkite pokalbių roboto grandinę
grandinė = langchain.Chain(
    name="chatbot_chain",
    llm = llm,
    skuduras = skuduras,
)

# Išbandykite pokalbių robotą
user_input = "Sveiki, kaip sekasi?"
atsakymas = chain.run(user_input)
spausdinti (atsakymas)

DSPy: rūdžių pagrindu sukurtas orkestravimo įrankis

DSPy yra „Rust“ pagrindu sukurtas orkestravimo įrankis, suteikiantis didelio našumo ir keičiamo dydžio sistemą kuriant AI valdomą programinės įrangos architektūrą. Jis siūlo daugybę funkcijų, įskaitant:

  • RAG (Reasoning and Action Graph) integravimas: DSPy suteikia integruotą RAG diegimą, leidžiantį sukurti sudėtingas samprotavimo ir veiksmų diagramas, kurios gali būti naudojamos dirbtinio intelekto pagrįstoms darbo eigoms modeliuoti ir vykdyti.
  • LLM (didelės kalbos modelio) integravimas: DSPy palaiko LLM, pvz., LLaMA ir BERT, integravimą natūralios kalbos apdorojimo ir generavimo užduotims atlikti.
  • Mastelio keitimas ir našumas: DSPy yra skirtas didelio masto AI darbo krūviams valdyti, užtikrinant efektyvų ir keičiamo dydžio užduočių vykdymą.

** DI pagrįstos programinės įrangos architektūros diegimas naudojant DSPy**

Norėdami parodyti dirbtiniu intelektu pagrįstos programinės įrangos architektūros įgyvendinimą naudojant DSPy, panagrinėkime paprastą pokalbių roboto, kuris naudoja RAG vartotojų užklausoms pagrįsti ir atsakymams generuoti, pavyzdį.

naudoti dspy::chain;
naudokite dspy::llm;

// Sukurkite RAG
tegul rag = grandinė::SKUDRAS::nauja(
    "chatbot_rag",
    vec![
        grandinė::Node::new("pasveikinimas", "Sveiki, kaip galiu jums padėti?"),
        grandinė::Node::new("sudie", "sudie, buvo malonu su jumis pabendrauti."),
    ],
    vec![
        grandinė::Edge::new("pasveikinimas", "sudie", "vartotojas_says_sudie"),
    ],
);

// Sukurkite LLM
tegul llm = llm::LLM::naujas (
    "chatbot_llm",
    "lama",
    100,
);

// Sukurkite pokalbių roboto grandinę
tegul grandinė = grandinė::Grandinė::nauja(
    "chatbot_chain",
    llm,
    skuduras,
);

// Išbandykite pokalbių robotą
let user_input = "Sveiki, kaip sekasi?";
tegul atsakymas = chain.run(user_input);
println!("{}", atsakymas);

5–10 dažniausiai naudojamų komandų / fragmentų

Štai keletas dažniausiai naudojamų „LangChain“ ir „DSPy“ komandų ir fragmentų:

  • LangChain:
    • langchain.RAG(): sukuria naują RAG egzempliorių.
    • langchain.LLM(): sukuria naują LLM egzempliorių.
    • langchain.Chain(): sukuria naują grandinės egzempliorių.
    • rag.run(): paleidžia RAG ir generuoja atsakymą.
    • llm.run(): paleidžia LLM ir generuoja atsakymą.
  • DSPy:
    • dspy::chain::RAG::new(): sukuria naują RAG egzempliorių.
    • dspy::llm::LLM::new(): sukuria naują LLM egzempliorių.
    • dspy::chain::Chain::new(): sukuria naują grandinės egzempliorių.
    • chain.run(): paleidžia grandinę ir generuoja atsakymą.

Vizualizacija

Štai paprastas RAG ir LLM galimybių vizualizavimas naudojant Chart.js:

const ctx = document.getElementById('mano diagrama').getContext('2d');
const diagrama = new Chart(ctx, {
    tipas: "baras",
    duomenys: {
        etiketės: ['RAG', 'LLM'],
        duomenų rinkiniai: [{
            etiketė: „Galimybės“,
            duomenys: [10, 20],
            fono spalva: [
                „rgba(255, 99, 132, 0,2)“,
                „rgba(54, 162, 235, 0,2)“,
            ],
            borderColor: [
                „rgba(255, 99, 132, 1)“,
                „rgba(54, 162, 235, 1)“,
            ],
            kraštinės plotis: 1
        }]
    },
    parinktys: {
        svarstyklės: {
            y: {
                beginAtZero: tiesa
            }
        }
    }
});

Išvada

Apibendrinant galima pasakyti, kad „LangChain“ ir „DSPy“ yra galingi orkestravimo įrankiai, leidžiantys diegti AI valdomą programinės įrangos architektūrą naudojant RAG ir LLM galimybes. Naudodami šiuos įrankius kūrėjai gali sukurti keičiamo dydžio, našias ir saugias programinės įrangos sistemas, kurios gali susidoroti su sudėtingais AI darbo krūviais. Dėl savo naudojimo paprastumo ir lankstumo „LangChain“ ir „DSPy“ yra idealus pasirinkimas kuriant AI valdomą programinės įrangos architektūrą.

Rekomendacijos

Remiantis šiame straipsnyje aptarta diskusija, pateikiame keletą rekomendacijų kūrėjams, norintiems įdiegti AI valdomą programinės įrangos architektūrą naudojant „LangChain“ ir „DSPy“:

  • Pradėkite mokydamiesi LangChain ir DSPy pagrindų, įskaitant jų RAG ir LLM galimybes.
  • Eksperimentuokite su paprastais pavyzdžiais, pvz., pokalbių roboto pavyzdžiu, kad suprastumėte, kaip veikia įrankiai.
  • Palaipsniui pereikite prie sudėtingesnių projektų, tokių kaip rekomendacijų sistemos ar natūralios kalbos apdorojimo vamzdyno kūrimas.
  • Naudokite 5–10 dažniausiai naudojamų komandų / fragmentų skyrių kaip įprastų komandų ir fragmentų vadovą.
  • Vizualizuokite savo RAG ir LLM galimybes naudodami Chart.js, kad geriau suprastumėte skirtingų komponentų ryšius.

Laikydamiesi šių rekomendacijų, kūrėjai gali išnaudoti visą „LangChain“ ir „DSPy“ potencialą ir sukurti dirbtiniu intelektu pagrįstą programinės įrangos architektūrą, kuri gali susidoroti su sudėtingais darbo krūviais ir užtikrinti išskirtinį našumą bei mastelį.


Have Questions?

Let's Talk

Contact me on LinkedIn