Уводзіны
Інтэграцыя штучнага інтэлекту (AI) у праграмныя прыкладанні зрабіла рэвалюцыю ў нашым падыходзе да вырашэння праблем, прыняцця рашэнняў і аўтаматызацыі. Аднак па меры таго, як прыкладанні, якія кіруюцца штучным інтэлектам, становяцца ўсё больш складанымі, патрэба ў бяспечнай і маштабаванай архітэктуры стала актуальнай праблемай. У гэтым артыкуле мы даследуем ўзаемасувязь штучнага інтэлекту, распрацоўкі праграмнага забеспячэння і DevOps, з асаблівым акцэнтам на выкарыстанні інструментаў аркестрацыі, такіх як DSPy і LangChain, для інтэграцыі агентаў штучнага інтэлекту ў канвееры DevOps.
Праблемы архітэктуры праграмнага забеспячэння, кіраванай штучным інтэлектам
Праграмныя прыкладанні, якія кіруюцца штучным інтэлектам, ствараюць унікальныя праблемы для інжынераў-праграмістаў і каманд DevOps. Сярод асноўных праблем:
- Маштабаванасць: мадэлі штучнага інтэлекту патрабуюць значных вылічальных рэсурсаў, што можа прывесці да праблем з маштабаванасцю ў вытворчых асяроддзях.
- Бяспека: мадэлі штучнага інтэлекту могуць быць уразлівыя да нападаў, такіх як атручванне даных і атакі інверсіі мадэляў.
- Інтэграцыя: мадэлі штучнага інтэлекту неабходна інтэграваць з існуючымі праграмнымі сістэмамі, што можа быць складанай задачай.
- Маніторынг і тэхнічнае абслугоўванне: Мадэлі штучнага інтэлекту патрабуюць пастаяннага кантролю і тэхнічнага абслугоўвання, каб яны заставаліся дакладнымі і надзейнымі.
Інструменты аркестрацыі: DSPy і LangChain
Інструменты аркестрацыі, такія як DSPy і LangChain, дазваляюць вырашыць гэтыя праблемы, дазваляючы інтэграваць агенты штучнага інтэлекту ў канвееры DevOps. Гэтыя інструменты забяспечваюць аснову для стварэння, разгортвання і кіравання мадэлямі AI, забяспечваючы бяспечную і маштабаваную архітэктуру для прыкладанняў, якія кіруюцца AI.
DSPy
DSPy - гэта інструмент аркестроўкі з адкрытым зыходным кодам, створаны на аснове Python. Ён забяспечвае просты і інтуітыўна зразумелы API для стварэння, разгортвання і кіравання мадэлямі штучнага інтэлекту. DSPy падтрымлівае шырокі спектр структур AI, у тым ліку TensorFlow, PyTorch і scikit-learn.
LangChain
LangChain - яшчэ адзін інструмент аркестроўкі з адкрытым зыходным кодам, які забяспечвае аснову для стварэння, разгортвання і кіравання мадэлямі штучнага інтэлекту. LangChain пабудаваны на аснове Rust і забяспечвае высокапрадукцыйны API для інтэграцыі агентаў штучнага інтэлекту ў канвееры DevOps.
Укараненне бяспечнай і маштабаванай архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту з DSPy
У гэтым раздзеле мы разгледзім просты прыклад рэалізацыі бяспечнай і маштабаванай архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту з дапамогай DSPy.
Прыклад: стварэнне простай мадэлі штучнага інтэлекту з DSPy
Давайце разгледзім просты прыклад пабудовы мадэлі машыннага навучання з дапамогай DSPy. Мы будзем выкарыстоўваць бібліятэку scikit-learn для стварэння мадэлі лінейнай рэгрэсіі.
імпартаваць dspy як dsp
з sklearn.linear_model імпартаваць LinearRegression
з sklearn.datasets імпартаваць load_diabetes
# Загрузіце набор даных дыябету
набор даных = load_diabetes()
# Падзяліце набор даных на наборы для навучання і тэставання
X_train, X_test, y_train, y_test = dsp.split_dataset(dataset.data, dataset.target, test_size=0,2)
# Пабудуйце мадэль лінейнай рэгрэсіі
мадэль = LinearRegression()
# Навучанне мадэлі на навучальных дадзеных
model.fit(X_train, y_train)
# Ацаніце мадэль па дадзеных тэставання
дакладнасць = model.score(X_тэст, y_тэст)
print(f"Дакладнасць мадэлі: {дакладнасць:.2f}")
Гэты блок кода дэманструе, як пабудаваць простую мадэль машыннага навучання з дапамогай DSPy. Мы загружаем набор даных дыябету, разбіваем яго на наборы для навучання і тэставання, будуем мадэль лінейнай рэгрэсіі, навучаем яго на дадзеных навучання і ацэньваем яго дакладнасць на дадзеных тэставання.
Укараненне бяспечнай і маштабаванай архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту з дапамогай LangChain
У гэтым раздзеле мы разгледзім просты прыклад рэалізацыі бяспечнай і маштабаванай архітэктуры праграмнага забеспячэння на базе штучнага інтэлекту з дапамогай LangChain.
Прыклад: стварэнне простай мадэлі штучнага інтэлекту з дапамогай LangChain
Давайце разгледзім просты прыклад пабудовы мадэлі машыннага навучання з дапамогай LangChain. Мы будзем выкарыстоўваць бібліятэку TensorFlow для стварэння мадэлі нейронавай сеткі.
выкарыстоўваць langchain як lc;
выкарыстоўваць tensorflow::prelude::*;
// Вызначце простую мадэль нейронавай сеткі
мадэль fn(уваход: &Тэнзар) -> Тэнзар {
няхай выхад = input.matmul(&Tensor::new(1, 1));
выхад
}
// Стварэнне агента LangChain
няхай агент = lc::Агент::новы(мадэль);
// Вызначыць набор даных
няхай набор дадзеных = lc::Набор даных::новы(vec![
lc::Example::new(vec![1.0, 2.0], vec![3.0]),
lc::Example::new(vec![4.0, 5.0], vec![6.0]),
]);
// Навучанне мадэлі на наборы даных
agent.train(&dataset);
// Ацаніце мадэль на наборы дадзеных
няхай дакладнасць = agent.evaluate(&dataset);
println!("Дакладнасць мадэлі: {}", дакладнасць);
Гэты блок кода дэманструе, як пабудаваць простую мадэль машыннага навучання з дапамогай LangChain. Мы вызначаем простую мадэль нейронавай сеткі, ствараем агента LangChain, вызначаем набор даных, навучаем мадэль на наборы даных і ацэньваем яе дакладнасць на наборы даных.
5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў
Вось 5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў для DSPy і LangChain:
DSPy
dsp.split_dataset(data, target, test_size=0.2): падзяляе набор даных на навучальны і тэставы наборы.dsp.build_model(model_name, model_params): будуе мадэль машыннага навучання з выкарыстаннем названай мадэлі і параметраў.dsp.train_model(model, data): навучанне мадэлі машыннага навучання на ўказаных даных.dsp.evaluate_model(model, data): ацэньвае прадукцыйнасць мадэлі машыннага навучання на ўказаных даных.dsp.deploy_model(model, server_url): разгортвае мадэль машыннага навучання на паказаным URL-адрасе сервера.
LangChain
lc::Agent::new(model): стварае агента LangChain з выкарыстаннем вызначанай мадэлі.lc::Dataset::new(examples): стварае набор даных LangChain з выкарыстаннем указаных прыкладаў.lc::train(agent, dataset): навучанне агента LangChain на ўказаным наборы даных.lc::evaluate(agent, dataset): Ацэньвае прадукцыйнасць агента LangChain на ўказаным наборы даных.lc::deploy(agent, server_url): разгортвае агент LangChain на паказаным URL-адрасе сервера.
Візуалізацыя
Вось простая візуалізацыя архітэктуры праграмнага забеспячэння, кіраванай штучным інтэлектам, з выкарыстаннем Chart.js:
const ctx = document.getElementById('myChart').getContext('2d');
const chart = new Chart(ctx, {
тып: 'бар',
дадзеныя: {
пазнакі: ['Час навучання', 'Час высновы', 'Дакладнасць мадэлі'],
наборы дадзеных: [{
пазнака: 'DSPy',
даныя: [10, 5, 90],
backgroundColor: 'rgba(255, 99, 132, 0,2)',
borderColor: 'rgba(255, 99, 132, 1)',
шырыня мяжы: 1
}, {
пазнака: 'LangChain',
даныя: [8, 6, 92],
backgroundColor: 'rgba(54, 162, 235, 0,2)',
borderColor: 'rgba(54, 162, 235, 1)',
шырыня мяжы: 1
}]
},
параметры: {
маштабы: {
y: {
beginAtZero: праўда
}
}
}
});
Гэты блок кода стварае простую гістаграму з дапамогай Chart.js для візуалізацыі прадукцыйнасці DSPy і LangChain.
Выснова
У гэтым артыкуле мы даследавалі ўзаемасувязь штучнага інтэлекту, распрацоўкі праграмнага забеспячэння і DevOps, з асаблівым акцэнтам на выкарыстанні інструментаў аркестроўкі, такіх як DSPy і LangChain, для інтэграцыі агентаў штучнага інтэлекту ў канвееры DevOps. Мы прадэманстравалі, як рэалізаваць бяспечную і маштабаваную архітэктуру праграмнага забеспячэння на базе штучнага інтэлекту з выкарыстаннем DSPy і LangChain, і далі просты прыклад пабудовы мадэлі машыннага навучання з выкарыстаннем кожнага інструмента. Мы таксама прадставілі 5-10 найбольш часта выкарыстоўваюцца каманд/фрагментаў для кожнага інструмента і простую візуалізацыю архітэктуры праграмнага забеспячэння, кіраванай штучным інтэлектам, з дапамогай Chart.js.