Unda RAG | B4N1

Unda RAG

3 months ago · b4n1 Read time: 5 min

Zana za Ochestration za kutumia kwa Usanifu wa Programu Inayoendeshwa na AI

Utangulizi

Kuongezeka kwa mahitaji ya usanifu wa programu inayoendeshwa na AI kumesababisha uundaji wa zana mbalimbali za ochestration zinazowezesha ujumuishaji usio na mshono wa uwezo wa Akili Bandia (AI) na Kujifunza kwa Mashine (ML) kwenye mifumo ya programu. Katika makala haya, tutachunguza utekelezaji wa usanifu wa programu zinazoendeshwa na AI kwa kutumia zana za uimbaji kama vile LangChain na DSPy, tukilenga kujumuisha uwezo wa RAG (Kutoa Sababu na Kitendo) na LLM (Mfano wa Lugha Kubwa) kwa uboreshaji, utendakazi na usalama.

Zana za Okestration ni nini?

Zana za upangaji ni mifumo ya programu inayowezesha utendakazi otomatiki wa utiririshaji wa kazi na michakato tata kwa kuunganisha huduma nyingi, programu na mifumo. Wanatoa jukwaa kuu la kudhibiti na kuratibu mwingiliano kati ya vipengee tofauti, kuhakikisha utekelezaji mzuri na mbaya wa majukumu.

LangChain: Zana ya Ochestration yenye Msingi wa Python

LangChain ni maktaba ya Python ya chanzo-wazi ambayo hutoa mfumo mpana wa kujenga usanifu wa programu unaoendeshwa na AI. Inatoa anuwai ya huduma, pamoja na:

  • RAG (Kutoa Sababu na Grafu ya Kitendo) Muunganisho: LangChain hutoa utekelezaji uliojengewa ndani wa RAG, unaowezesha uundaji wa grafu changamano za hoja na vitendo ambazo zinaweza kutumika kuiga na kutekeleza mtiririko wa kazi unaoendeshwa na AI.
  • LLM (Muundo wa Lugha Kubwa) Muunganisho: LangChain inasaidia ujumuishaji wa LLM, kama vile LLaMA na BERT, kwa usindikaji wa lugha asilia na kazi za uundaji.
  • Scalability na Utendaji: LangChain imeundwa kushughulikia mzigo mkubwa wa kazi wa AI, ikitoa utekelezaji bora na wa hatari wa majukumu.

Utekelezaji wa Usanifu wa Programu Inayoendeshwa na AI na LangChain

Ili kuonyesha utekelezaji wa usanifu wa programu zinazoendeshwa na AI kwa kutumia LangChain, hebu tuchunguze mfano rahisi wa chatbot ambayo hutumia RAG kusababu kuhusu maswali ya watumiaji na kutoa majibu.

kuagiza langchain
kutoka langchain.chains kuagiza llm


rag = langchain.RAG(
    jina="chatbot_rag",
    nodi=[
        {"name": "greeting", "text": "Hujambo, ninaweza kukusaidia vipi?"},
        {"name": "kwaheri", "text": "Kwaheri, ilikuwa nzuri kuzungumza nawe."},
    ],
    kingo=[
        {"from": "greeting", "to": "kwaheri", "condition": "mtumiaji_anasema_kwaheri"},
    ],
)

# Unda LLM
llm = llm.LLM(
    jina="chatbot_llm",
    model="llama",
    max_tokens=100,
)

# Unda mnyororo wa mazungumzo
mnyororo = langchain.Chain(
    jina="chatbot_chain",
    llm=llm,
    tamba=chakavu,
)

# Jaribu chatbot
user_input = "Habari, habari?"
majibu = chain.run(mtumiaji_input)
chapa (jibu)

DSPy: Zana ya Okestration yenye Kutu

DSPy ni zana ya ochestration yenye msingi wa Kutu ambayo hutoa utendaji wa hali ya juu na mfumo wa scalable wa kujenga usanifu wa programu unaoendeshwa na AI. Inatoa anuwai ya huduma, pamoja na:

  • RAG (Kutoa Sababu na Grafu ya Kitendo) Muunganisho: DSPy hutoa utekelezaji uliojengewa ndani wa RAG, unaowezesha uundaji wa grafu changamano za hoja na vitendo ambazo zinaweza kutumika kuiga na kutekeleza mtiririko wa kazi unaoendeshwa na AI.
  • LLM (Muundo wa Lugha Kubwa) Muunganisho: DSPy inasaidia ujumuishaji wa LLM, kama vile LLaMA na BERT, kwa usindikaji wa lugha asilia na kazi za uundaji.
  • Uwezo na Utendaji: DSPy imeundwa kushughulikia mzigo mkubwa wa kazi wa AI, ikitoa utekelezaji bora na wa hatari wa majukumu.

Kutekeleza Usanifu wa Programu Inayoendeshwa na AI na DSPy

Ili kuonyesha utekelezaji wa usanifu wa programu zinazoendeshwa na AI kwa kutumia DSPy, hebu tuchunguze mfano rahisi wa chatbot ambayo hutumia RAG kusababu kuhusu maswali ya watumiaji na kutoa majibu.

tumia dSpy :: mnyororo;
tumia dSpy::llm;

// Unda RAG
acha rag = mnyororo::RAG::mpya(
    "chatbot_rag",
    vec![
        chain::Node::new("salamu", "Habari, ninaweza kukusaidiaje?"),
        chain::Node::new("kwaheri", "Kwaheri, ilikuwa nzuri kuzungumza nawe."),
    ],
    vec![
        chain::Edge::mpya("salamu", "kwaheri", "mtumiaji_anasema_kwaheri"),
    ],
);

// Unda LLM
acha llm = llm::LLM::mpya(
    "chatbot_llm",
    "lama",
    100,
);

// Unda msururu wa gumzo
acha mnyororo = mnyororo::Chain::mpya(
    "chatbot_chain",
    llm,
    tamba,
);

// Jaribu chatbot
let user_input = "Habari, habari?";
ruhusu majibu = chain.run (mtumiaji_input);
println!("{}", jibu);

Amri/Vijisehemu 5-10 Bora Zaidi

Hapa kuna baadhi ya amri na vijisehemu vinavyotumiwa sana kwa LangChain na DSPy:

  • LangChain:
    • langchain.RAG(): Inaunda mfano mpya wa RAG.
    • langchain.LLM(): Huunda mfano mpya wa LLM.
    • langchain.Chain(): Inaunda mfano mpya wa mnyororo.
    • rag.run(): Huendesha RAG na kutoa jibu.
    • llm.run(): Huendesha LLM na kutoa jibu.
  • DSPy:
    • dspy::chain::RAG::new(): Inaunda mfano mpya wa RAG.
    • dspy::llm::LLM::new(): Inaunda mfano mpya wa LLM.
    • dspy::chain::Chain::new(): Inaunda mfano mpya wa msururu.
    • chain.run(): Huendesha msururu na kutoa jibu.

Taswira

Huu hapa ni taswira rahisi ya uwezo wa RAG na LLM kwa kutumia Chart.js:

const ctx = document.getElementById('myChart').getContext('2d');
const chart = Chati mpya (ctx, {
    aina: 'bar',
    data: {
        lebo: ['RAG', 'LLM'],
        seti za data: [{
            lebo: 'Uwezo',
            data: [10, 20],
            Rangi ya asili: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
            ],
            mpakaRangi: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
            ],
            Upana wa mpaka: 1
        }]
    },
    chaguzi: {
        mizani: {
            y: {
                startAtZero: kweli
            }
        }
    }
});

Hitimisho

Kwa kumalizia, LangChain na DSPy ni zana zenye nguvu za ochestration zinazowezesha utekelezaji wa usanifu wa programu inayoendeshwa na AI kwa kutumia uwezo wa RAG na LLM. Kwa kutumia zana hizi, wasanidi programu wanaweza kuunda mifumo ya programu inayoweza kubadilika, inayofanya kazi na salama ambayo inaweza kushughulikia mzigo mgumu wa AI. Kwa urahisi wa matumizi na kubadilika kwao, LangChain na DSPy ni chaguo bora kwa ajili ya kujenga usanifu wa programu unaoendeshwa na AI.

Mapendekezo

Kulingana na majadiliano katika makala hii, hapa kuna baadhi ya mapendekezo kwa watengenezaji ambao wanataka kutekeleza usanifu wa programu inayoendeshwa na AI kwa kutumia LangChain na DSPy:

  • Anza kwa kujifunza misingi ya LangChain na DSPy, ikijumuisha uwezo wao wa RAG na LLM.
  • Jaribu kwa mifano rahisi, kama vile mfano wa gumzo, ili kuhisi jinsi zana zinavyofanya kazi.
  • Hatua kwa hatua endelea kwa miradi ngumu zaidi, kama vile kuunda mfumo wa mapendekezo au bomba la kuchakata lugha asilia.
  • Tumia sehemu ya Amri/Vijisehemu 5-10 vya Juu Vinavyotumika kama mwongozo wa maagizo na vijisehemu vya kawaida.
  • Onyesha uwezo wako wa RAG na LLM kwa kutumia Chart.js ili kupata ufahamu bora wa mahusiano kati ya vipengele tofauti.

Kwa kufuata mapendekezo haya, watengenezaji wanaweza kufungua uwezo kamili wa LangChain na DSPy na kujenga usanifu wa programu inayoendeshwa na AI ambayo inaweza kushughulikia mzigo wa kazi ngumu na kutoa utendaji wa kipekee na scalability.


Have Questions?

Let's Talk

Contact me on LinkedIn