Впровадження безпечної та масштабованої архітектури програмного забезпечення на основі штучного інтелекту за допомогою інструментів оркестровки | B4N1

Впровадження безпечної та масштабованої архітектури програмного забезпечення на основі штучного інтелекту за допомогою інструментів оркестровки

6 months ago · b4n1 Read time: 4 min

Вступ

Інтеграція штучного інтелекту (AI) у програмні додатки революціонізувала наш підхід до вирішення проблем, прийняття рішень і автоматизації. Однак, оскільки додатки, керовані штучним інтелектом, стають дедалі складнішими, потреба в безпечній і масштабованій архітектурі стала гострою проблемою. У цій статті ми дослідимо взаємодію штучного інтелекту, розробки програмного забезпечення та DevOps, з особливим наголосом на використанні інструментів оркестровки, таких як DSPy та LangChain, для інтеграції агентів штучного інтелекту в конвеєри DevOps.

Проблеми архітектури програмного забезпечення, керованої ШІ

Програмні додатки, керовані штучним інтелектом, створюють унікальні виклики для інженерів програмного забезпечення та команд DevOps. Деякі з ключових проблем включають:

  • Масштабованість: моделі ШІ вимагають значних обчислювальних ресурсів, що може призвести до проблем масштабованості у виробничих середовищах.
  • Безпека: моделі штучного інтелекту можуть бути вразливими до таких атак, як отруєння даних і атаки інверсії моделі.
  • Інтеграція: моделі ШІ потрібно інтегрувати з існуючими програмними системами, що може бути складним завданням.
  • Моніторинг і технічне обслуговування: моделі зі штучним інтелектом вимагають постійного моніторингу та обслуговування, щоб забезпечити їх точність і надійність.

Інструменти оркестровки: DSPy і LangChain

Інструменти оркестровки, такі як DSPy і LangChain, забезпечують вирішення цих проблем, дозволяючи інтегрувати агенти ШІ в конвеєри DevOps. Ці інструменти забезпечують основу для створення, розгортання та керування моделями ШІ, забезпечуючи безпечну та масштабовану архітектуру для додатків, керованих ШІ.

DSPy

DSPy — це інструмент оркестровки з відкритим кодом, створений на основі Python. Він надає простий та інтуїтивно зрозумілий API для створення, розгортання та керування моделями ШІ. DSPy підтримує широкий спектр AI-фреймворків, включаючи TensorFlow, PyTorch і scikit-learn.

LangChain

LangChain — ще один інструмент оркестровки з відкритим вихідним кодом, який забезпечує структуру для створення, розгортання та керування моделями AI. 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)

# Побудуйте модель лінійної регресії
модель = Лінійна регресія()

# Навчання моделі на навчальних даних
model.fit(X_train, y_train)

# Оцініть модель на основі даних тестування
accuracy = model.score(X_test, y_test)
print(f"Точність моделі: {точність:.2f}")

Цей блок коду демонструє, як створити просту модель машинного навчання за допомогою DSPy. Ми завантажуємо набір даних діабету, розбиваємо його на набори для навчання та тестування, будуємо модель лінійної регресії, навчаємо її на даних навчання та оцінюємо її точність на основі даних тестування.

Впровадження безпечної та масштабованої архітектури програмного забезпечення на основі штучного інтелекту за допомогою LangChain

У цьому розділі ми розглянемо простий приклад реалізації захищеної та масштабованої архітектури програмного забезпечення на основі ШІ за допомогою LangChain.

Приклад: створення простої моделі ШІ за допомогою LangChain

Розглянемо простий приклад побудови моделі машинного навчання за допомогою LangChain. Ми будемо використовувати бібліотеку TensorFlow для побудови моделі нейронної мережі.

використовувати langchain як lc;
використовуйте tensorflow::prelude::*;

// Визначити просту модель нейронної мережі
модель fn (вхід: &Tensor) -> Tensor {
    let output = input.matmul(&Tensor::new(1, 1));
    вихід
}

// Створення агента LangChain
let agent = lc::Agent::new(model);

// Визначити набір даних
let dataset = lc::Dataset::new(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(&набір даних);

// Оцінка моделі на наборі даних
let accuracy = 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-адресою сервера.

Візуалізація

Ось проста візуалізація керованої AI архітектури програмного забезпечення за допомогою Chart.js:

const ctx = document.getElementById('myChart').getContext('2d');
const chart = new Chart(ctx, {
    type: 'бар',
    дані: {
        мітки: ['Час навчання', 'Час висновку', 'Точність моделі'],
        набори даних: [{
            мітка: 'DSPy',
            дані: [10, 5, 90],
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgba(255, 99, 132, 1)',
            borderWidth: 1
        }, {
            мітка: "LangChain",
            дані: [8, 6, 92],
            backgroundColor: 'rgba(54, 162, 235, 0.2)',
            borderColor: 'rgba(54, 162, 235, 1)',
            borderWidth: 1
        }]
    },
    параметри: {
        ваги: {
            y: {
                beginAtZero: правда
            }
        }
    }
});

Цей блок коду створює просту гістограму за допомогою Chart.js для візуалізації продуктивності DSPy і LangChain.

Висновок

У цій статті ми досліджували взаємодію штучного інтелекту, розробки програмного забезпечення та DevOps, приділяючи особливу увагу використанню інструментів оркестровки, таких як DSPy та LangChain, для інтеграції агентів штучного інтелекту в конвеєри DevOps. Ми продемонстрували, як реалізувати безпечну та масштабовану архітектуру програмного забезпечення, керовану штучним інтелектом, за допомогою DSPy та LangChain, і надали простий приклад побудови моделі машинного навчання за допомогою кожного інструменту. Ми також надали 5-10 найбільш використовуваних команд/фрагментів для кожного інструменту та просту візуалізацію архітектури програмного забезпечення, керованого ШІ, за допомогою Chart.js.


Have Questions?

Let's Talk

Contact me on LinkedIn