Стварыце RAG | B4N1

Стварыце RAG

3 months ago · b4n1 Read time: 4 min

Выкарыстанне інструментаў аркестрацыі для архітэктуры праграмнага забеспячэння на базе AI

Уводзіны

Рост попыту на архітэктуру праграмнага забеспячэння на аснове штучнага інтэлекту прывёў да распрацоўкі розных інструментаў аркестроўкі, якія дазваляюць бесперашкодна інтэграваць магчымасці штучнага інтэлекту (AI) і машыннага навучання (ML) у праграмныя сістэмы. У гэтым артыкуле мы вывучым рэалізацыю архітэктуры праграмнага забеспячэння, кіраванай штучным інтэлектам, з выкарыстаннем такіх інструментаў аркестроўкі, як LangChain і DSPy, з упорам на інтэграцыю магчымасцей RAG (Reasoning and Action Graph) і LLM (Large Language Model) для павышэння маштабаванасці, прадукцыйнасці і бяспекі.

Што такое інструменты аркестроўкі?

Інструменты аркестрацыі - гэта праграмныя структуры, якія дазваляюць аўтаматызаваць складаныя працоўныя працэсы і працэсы шляхам інтэграцыі шматлікіх сэрвісаў, прыкладанняў і сістэм. Яны забяспечваюць цэнтралізаваную платформу для кіравання і каардынацыі ўзаемадзеяння паміж рознымі кампанентамі, забяспечваючы эфектыўнае і маштабаванае выкананне задач.

LangChain: інструмент аркестроўкі на аснове Python

LangChain - гэта бібліятэка Python з адкрытым зыходным кодам, якая забяспечвае ўсебаковую структуру для стварэння архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту. Ён прапануе шэраг функцый, у тым ліку:

  • Інтэграцыя RAG (Графік разважанняў і дзеянняў): LangChain забяспечвае ўбудаваную рэалізацыю RAG, якая дазваляе ствараць складаныя графікі разважанняў і дзеянняў, якія можна выкарыстоўваць для мадэлявання і выканання працоўных працэсаў, кіраваных штучным інтэлектам.
  • Інтэграцыя LLM (Large Language Model): LangChain падтрымлівае інтэграцыю LLM, такіх як LLaMA і BERT, для задач апрацоўкі і генерацыі натуральнай мовы.
  • Маштабаванасць і прадукцыйнасць: LangChain прызначаны для апрацоўкі буйнамаштабных працоўных нагрузак штучнага інтэлекту, забяспечваючы эфектыўнае і маштабаванае выкананне задач.

Укараненне архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту з дапамогай LangChain

Каб прадэманстраваць рэалізацыю архітэктуры праграмнага забеспячэння, кіраванай штучным інтэлектам, з выкарыстаннем LangChain, давайце разгледзім просты прыклад чат-бота, які выкарыстоўвае RAG, каб разважаць аб запытах карыстальнікаў і ствараць адказы.

імпарт Langchain
з langchain.chains імпартаваць llm


ануча = langchain.RAG(
    імя = "chatbot_rag",
    вузлы=[
        {"name": "greeting", "text": "Прывітанне, чым я магу вам дапамагчы?"},
        {"name": "да пабачэння", "text": "Да пабачэння, было прыемна з вамі пагутарыць."},
    ],
    краю=[
        {"from": "прывітанне", "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: інструмент аркестроўкі на аснове Rust

DSPy - гэта інструмент аркестроўкі на аснове Rust, які забяспечвае высокапрадукцыйную і маштабаваную структуру для стварэння архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту. Ён прапануе шэраг функцый, у тым ліку:

  • Інтэграцыя RAG (Графік разважанняў і дзеянняў): DSPy забяспечвае ўбудаваную рэалізацыю RAG, што дазваляе ствараць складаныя графікі разважанняў і дзеянняў, якія можна выкарыстоўваць для мадэлявання і выканання працоўных працэсаў, кіраваных штучным інтэлектам.
  • Інтэграцыя LLM (Large Language Model): DSPy падтрымлівае інтэграцыю LLM, такіх як LLaMA і BERT, для задач апрацоўкі і генерацыі натуральнай мовы.
  • Маштабаванасць і прадукцыйнасць: DSPy распрацаваны для апрацоўкі буйнамаштабных нагрузак штучнага інтэлекту, забяспечваючы эфектыўнае і маштабаванае выкананне задач.

Укараненне архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту з DSPy

Каб прадэманстраваць рэалізацыю архітэктуры праграмнага забеспячэння, кіраванай штучным інтэлектам, з выкарыстаннем DSPy, давайце разгледзім просты прыклад чат-бота, які выкарыстоўвае RAG для разважанняў аб запытах карыстальнікаў і стварэння адказаў.

выкарыстоўваць dspy::chain;
выкарыстоўваць dspy::llm;

// Стварыць RAG
няхай rag = chain::RAG::new(
    "chatbot_rag",
    vec![
        chain::Node::new("прывітанне", "Прывітанне, чым я магу вам дапамагчы?"),
        chain::Node::new("да пабачэння", "да пабачэння, было прыемна з вамі пагутарыць."),
    ],
    vec![
        chain::Edge::new("прывітанне", "да пабачэння", "user_says_goodbye"),
    ],
);

// Стварэнне LLM
няхай llm = llm::LLM::new(
    "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:

const ctx = document.getElementById('myChart').getContext('2d');
const chart = new Chart(ctx, {
    тып: 'бар',
    дадзеныя: {
        этыкеткі: ['RAG', 'LLM'],
        наборы дадзеных: [{
            пазнака: «Магчымасці»,
            дадзеныя: [10, 20],
            фонавы колер: [
                'rgba(255, 99, 132, 0,2)',
                'rgba(54, 162, 235, 0,2)',
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
            ],
            шырыня мяжы: 1
        }]
    },
    параметры: {
        маштабы: {
            y: {
                beginAtZero: праўда
            }
        }
    }
});

Выснова

У заключэнне, LangChain і DSPy - гэта магутныя інструменты аркестроўкі, якія дазваляюць рэалізаваць архітэктуру праграмнага забеспячэння, кіраваную штучным інтэлектам, з выкарыстаннем магчымасцей RAG і LLM. Выкарыстоўваючы гэтыя інструменты, распрацоўшчыкі могуць ствараць маштабуемую, прадукцыйную і бяспечную праграмную сістэму, якая можа апрацоўваць складаныя нагрузкі штучнага інтэлекту. Дзякуючы прастаце выкарыстання і гнуткасці, LangChain і DSPy з'яўляюцца ідэальным выбарам для стварэння архітэктуры праграмнага забеспячэння на базе AI.

Рэкамендацыі

Грунтуючыся на абмеркаванні ў гэтым артыкуле, вось некалькі рэкамендацый для распрацоўшчыкаў, якія жадаюць рэалізаваць архітэктуру праграмнага забеспячэння, арыентаваную на штучны інтэлект, з выкарыстаннем LangChain і DSPy:

  • Пачніце з вывучэння асноў LangChain і DSPy, уключаючы іх магчымасці RAG і LLM.
  • Эксперыментуйце з простымі прыкладамі, такімі як прыклад чат-бота, каб зразумець, як працуюць інструменты.
  • Паступова пераходзьце да больш складаных праектаў, такіх як стварэнне сістэмы рэкамендацый або канвеера апрацоўкі натуральнай мовы.
  • Карыстайцеся раздзелам "5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў" у якасці даведачнага кіраўніцтва па агульных камандах і фрагментах.
  • Уявіце свае магчымасці RAG і LLM з дапамогай Chart.js, каб лепш зразумець ўзаемасувязі паміж рознымі кампанентамі.

Выконваючы гэтыя рэкамендацыі, распрацоўшчыкі могуць раскрыць увесь патэнцыял LangChain і DSPy і пабудаваць архітэктуру праграмнага забеспячэння на базе штучнага інтэлекту, якая можа апрацоўваць складаныя працоўныя нагрузкі і забяспечваць выключную прадукцыйнасць і маштабаванасць.


Have Questions?

Let's Talk

Contact me on LinkedIn