RAG жасаңыз | B4N1

RAG жасаңыз

3 months ago · b4n1 Read time: 4 min

Leveraging Orchestration Tools for AI-Powered Software Architecture

Кіріспе

Жасанды интеллект (AI) және Machine Learning (ML) мүмкіндіктерін бағдарламалық жүйелерге үздіксіз біріктіруге мүмкіндік беретін AI-мен жұмыс істейтін бағдарламалық жасақтаманың архитектурасына сұраныстың артуы әртүрлі оркестрлік құралдардың дамуына әкелді. Бұл мақалада біз кеңейтілген масштабтау, өнімділік және қауіпсіздік үшін RAG (Reasoning and Action Graph) және LLM (Үлкен тіл үлгісі) мүмкіндіктерін біріктіруге назар аудара отырып, LangChain және DSPy сияқты оркестрлік құралдарды пайдалана отырып, AI басқаратын бағдарламалық жасақтама архитектурасын енгізуді зерттейміз.

Оркестрлік құралдар дегеніміз не?

Оркестрлеу құралдары - бұл бірнеше қызметтерді, қолданбаларды және жүйелерді біріктіру арқылы күрделі жұмыс процестері мен процестерін автоматтандыруға мүмкіндік беретін бағдарламалық құрал. Олар тапсырмалардың тиімді және ауқымды орындалуын қамтамасыз ететін әртүрлі құрамдас бөліктер арасындағы өзара әрекеттесуді басқару және үйлестіру үшін орталықтандырылған платформаны қамтамасыз етеді.

LangChain: Python негізіндегі оркестрлік құрал

LangChain is an open-source Python library that provides a comprehensive framework for building AI-powered software architecture. Ол бірқатар мүмкіндіктерді ұсынады, соның ішінде:

  • RAG (Reasoning and Action Graph) интеграциясы: LangChain AI басқаратын жұмыс үрдістерін модельдеу және орындау үшін пайдаланылуы мүмкін күрделі пайымдаулар мен әрекет графиктерін жасауға мүмкіндік беретін кірістірілген RAG іске асыруды қамтамасыз етеді.
  • LLM (Large Language Model) интеграциясы: LangChain табиғи тілді өңдеу және генерациялау тапсырмалары үшін LLaMA және BERT сияқты LLM интеграциясын қолдайды.
  • ** Масштабтау және өнімділік**: LangChain тапсырмалардың тиімді және масштабталатын орындалуын қамтамасыз ететін ауқымды AI жұмыс жүктемелерін өңдеуге арналған.

Implementing AI-Driven Software Architecture with LangChain

LangChain көмегімен AI басқаратын бағдарламалық жасақтаманың архитектурасын іске асыруды көрсету үшін пайдаланушы сұраулары туралы ой қозғау және жауаптарды жасау үшін RAG пайдаланатын чатботтың қарапайым мысалын қарастырайық.

langchain импорттау
langchain.chains импорт llm


rag = langchain.RAG(
    name="chatbot_rag",
    nodes=[
        {"name": "greeting", "text": "Hello, how can I help you?"},
        {"name": "goodbye", "text": "Goodbye, it was nice chatting with you."},
    ],
    edges=[
        {"from": "greeting", "to": "goodbye", "condition": "user_says_goodbye"},
    ],
)

# Create an LLM
llm = llm.LLM(
    name="chatbot_llm",
    model="llama",
    max_tokens=100,
)

# Create a chatbot chain
chain = langchain.Chain(
    name="chatbot_chain",
    llm=lm,
    rag=rag,
)

# Test the chatbot
user_input = "Сәлеметсіз бе, қалыңыз қалай?"
жауап = chain.run(user_input)
басып шығару (жауап)

DSPy: тотқа негізделген оркестрлік құрал

DSPy is a Rust-based orchestration tool that provides a high-performance and scalable framework for building AI-powered software architecture. Ол бірқатар мүмкіндіктерді ұсынады, соның ішінде:

  • RAG (Reasoning and Action Graph) интеграциясы: DSPy AI басқаратын жұмыс процестерін модельдеу және орындау үшін пайдаланылуы мүмкін күрделі негіздемелер мен әрекет графиктерін жасауға мүмкіндік беретін кірістірілген RAG іске асыруды қамтамасыз етеді.
  • LLM (Large Language Model) интеграциясы: DSPy табиғи тілді өңдеу және генерациялау тапсырмалары үшін LLaMA және BERT сияқты LLM интеграциясын қолдайды.
  • Scalability and Performance: DSPy is designed to handle large-scale AI workloads, providing efficient and scalable execution of tasks.

Implementing AI-Driven Software Architecture with DSPy

DSPy көмегімен AI басқаратын бағдарламалық жасақтаманың архитектурасын іске асыруды көрсету үшін пайдаланушы сұраулары туралы ойлау және жауаптарды жасау үшін RAG пайдаланатын чатботтың қарапайым мысалын қарастырайық.

use dspy::chain;
dspy::llm пайдаланыңыз;

// Create a RAG
болсын шүберек = тізбек::RAG::new(
    "chatbot_rag",
    vec![
        chain::Node::new("greeting", "Hello, how can I help you?"),
        chain::Node::new("goodbye", "Goodbye, it was nice chatting with you."),
    ],
    vec![
        chain::Edge::new("greeting", "goodbye", "user_says_goodbye"),
    ],
);

// LLM жасау
let llm = llm::LLM::new(
    "chatbot_llm",
    «лама»,
    100,
);

// Чатбот тізбегін жасаңыз
тізбек = тізбек::Тізбек::жаңа(
    "chatbot_chain",
    ллм,
    шүберек,
);

// Чатботты сынау
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(): тізбекті іске қосады және жауапты жасайды.

визуализация

Мұнда Chart.js көмегімен RAG және LLM мүмкіндіктерінің қарапайым визуализациясы берілген:

const ctx = document.getElementById('myChart').getContext('2d');
const диаграмма = жаңа диаграмма(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
        }]
    },
    опциялар: {
        таразы: {
            ж: {
                beginAtZero: шын
            }
        }
    }
});

Қорытынды

Қорытындылай келе, LangChain және DSPy - бұл RAG және LLM мүмкіндіктерін пайдалана отырып, AI басқаратын бағдарламалық жасақтама архитектурасын жүзеге асыруға мүмкіндік беретін қуатты оркестрлік құралдар. Осы құралдарды пайдалана отырып, әзірлеушілер күрделі AI жұмыс жүктемелерін өңдей алатын ауқымды, өнімді және қауіпсіз бағдарламалық қамтамасыз ету жүйелерін жасай алады. Пайдаланудың қарапайымдылығы мен икемділігімен LangChain және DSPy AI-мен жұмыс істейтін бағдарламалық жасақтама архитектурасын құру үшін тамаша таңдау болып табылады.

Ұсыныстар

Осы мақаладағы талқылау негізінде LangChain және DSPy көмегімен AI басқаратын бағдарламалық жасақтаманың архитектурасын енгізгісі келетін әзірлеушілерге арналған кейбір ұсыныстар:

  • LangChain және DSPy негіздерін, соның ішінде олардың RAG және LLM мүмкіндіктерін үйренуден бастаңыз.
  • Құралдардың қалай жұмыс істейтінін сезіну үшін чатбот мысалы сияқты қарапайым мысалдармен тәжірибе жасаңыз.
  • Ұсыныс жүйесін немесе табиғи тілді өңдеу құбырын құру сияқты күрделі жобаларға біртіндеп көшіңіз.
  • Ең көп қолданылатын 5-10 пәрмендер/үзінділер бөлімін жалпы пәрмендер мен үзінділер үшін анықтамалық нұсқаулық ретінде пайдаланыңыз.
  • Әртүрлі құрамдастардың арасындағы қарым-қатынастарды жақсырақ түсіну үшін Chart.js арқылы RAG және LLM мүмкіндіктерін елестетіңіз.

Осы ұсыныстарды орындау арқылы әзірлеушілер LangChain және DSPy мүмкіндіктерін толық аша алады және күрделі жұмыс жүктемелерін өңдей алатын және ерекше өнімділік пен ауқымдылықты қамтамасыз ететін AI-мен жұмыс істейтін бағдарламалық жасақтама архитектурасын құра алады.


Have Questions?

Let's Talk

Contact me on LinkedIn