Процес розробки
Ця сторінка містить загальну схему того, як ви фактично використовуєте SiMa.ai Neat у повсякденному житті. Кожен крок веде до більш детальної сторінки, коли ви будете готові.
Цикл
Типовий цикл розробки Neat виглядає так:
- Встановлення — отримайте пак ет
sima-neatі, за бажанням, бібліотекуpyneatдля Python на вашому хості або пристрої. - Спробуйте Hello Neat — переконайтеся, що бібліотека правильно підключена, скомпілювавши мінімальний приклад.
- Оберіть скомпільовану модель — Neat використовує скомпільований архів моделі (
.tar.gz, який часто називають MPK). Використовуйте один із Model Zoo або скомпілюйте власний за допомогою Model Compiler. - Створіть
Model/Graph/Run— завантажте модель, створіть граф і виконайте його, використовуючи найкоротший шлях у середовищі виконання, який відповідає вимогам завдання. - Запустіть і перевірте — надайте вхідні дані, отримайте вихідні дані та використовуйте
GraphReport/MeasureReportдля перевірки поведінки. - Вдосконалюйте навички за допомогою навчальних матеріалів — переходьте від простого виконання окремих обчислень до створення конвеєрів, моделей із кількома вхідними даними, графів із кількома потоками та систем обробки помилок, придатних для використання у виробничому середовищі.
- Розгорні ть — встановіть зв’язок між вашою програмою та встановленою бібліотекою Neat на цільовому пристрої.
Оберіть модель, граф або запустіть.
Почніть з найменшої площі, яка дозволяє виконати завдання. Ви завжди зможете збільшити її, коли застосунок матиме більше функцій.
| Якщо вам потрібно... | Почніть з | Чому? | Наступна зупинка. |
|---|---|---|---|
| Запустіть один скомпільований зразок моделі один раз. | Model.run(...) | Найкоротший шлях від артефакту до тензорів на виході. | Запуск першої моделі |
| Запустіть модель на підключеній платі Modalix PCIe. | pcie::Model / pyneatpcie.Model | Обробка даних на стороні хоста без створення спеціалізованої програми для картки. | Спільна обробка PCIe |
| Перегляньте зразок контра кту або маршрут. | Model | Характеристики, метадані та інформація про маршрут показують, які дані модель приймає та генерує. | Модель |
| Додайте модель до схеми застосунку. | Graph | Надає імена вхідним і вихідним даним, об’єднує вузли та забезпечує чітке визначення топології. | Граф |
| Використовуйте один і той самий граф протягом певного періоду часу. | graph.build(...) → Run | Надає можливість керувати режимами «штовхання/тягнення», «заповнення/опорожнення», здійснювати вимірювання та визначати політику черги. | Запуск графа |
| Активуйте кілька потоків або прагніть до максимальної пропускної здатності. | RunOptions + вимірювання | Для оптимізації пропускної здатності необхідно налаштувати політику черги, лічильники відхилених пакетів та зібрати дані для кожного потоку. | Налаштування пропускної здатності та глибини черги |
Якщо це ваш перший практичний курс, почніть з перевірки перед початком, наведеної в Навчальні матеріали, а потім запустіть одну модель, перш ніж додавати компоненти для роботи з графом.
Основні поняття в стислому викладі.
Сторінки, присвячені процесу розробки, детально розглядають кожен із цих етапів. Узагальнена інформація:
- Модель — завантажте скомпільований пакет моделі та зробіть його доступним як виконуваний модуль.
- Копроцесор PCIe — запустіть скомпільовану модель на підключеній PCIe-карті Modalix з хост-застосунку.
- Модель генеративного штучного інтелекту. — запускайте генеративні моделі безпосередньо або надавайте до них доступ через HTTP.
- Тензор і зразок. — корисне навантаження та метадані, що передаються між етапами.
- Запуск / здійснення обчислень — виконайте синхронно (
run) або асинхронно (push/pull). - Граф — об’єднуйте етапи моделі, вузли, вхідні та вихідні дані в графічну схему застосунку.
- Запустіть граф. — створіть граф у межах активного
Run, а потім виконайте операції над ним: додавайте, видаляйте, аналізуйте, вимірюйте та налаштовуйте пропускну здатність. - Вузол — це базова складова графа.
Якщо ви хочете спочатку ознайомитися лише з однією сторінкою, почніть з розділу Запуск / Огляд процесу обчислень, оскільки він об’єднує Model, Graph і Run в єдину систему.
Куди піти далі?
Покрокова інструкція для нових користувачів:
- Neat SDK — встановіть Neat SDK, під’єднайте DevKit і запустіть на апаратному забезпеченні з
dk. - Створити — збірка Neat з вихідного коду за допомогою
build.sh(процес розробки для учасників). - Привіт, Neat! — мінімальний застосунок CMake, який використовує встановлену бібліотеку.
- Навчальні матеріали — це серія навчальних матеріалів, що охоплює етапи від створення «першої моделі» до розробки «виробничого конвеєра».
Довідкові матеріали, які знадобляться, коли вам потрібна більш глибока інформація:
- Запуск / здійснення обчислень — поетапний розгляд концепцій, що входять до
Model,Graph,Run, вузлів та вхідних/вихідних даних. - Довідник з C++ — повний набір API для встановлених заголовків.
- Довідник з Python — довідник щодо зв’язувань
pyneat.
Що ви пишете і що пропонує Neat.
Neat відповідає за середовище виконання: завантаження моделі, перевірку, побудову конвеєра, планування, завершення роботи та діагностику. Ви відповідаєте за код програми, який об’єднує вхідні дані з вихідними та реагує на результати. Межа визначається публічним API у include/, який вважається стабільним — ви можете оновити Neat без переписування вашої програми.
Якщо ви запам’ятали лише три рядки коду з Neat, запам’ятайте ці:
simaai::neat::Model model(mpk_path);
simaai::neat::TensorList outputs = model.run(input_tensors, /*timeout_ms=*/2000);
simaai::neat::Mapping view = outputs[0].map_read(); // inspect the output bytes
Усе інше в цій документації — графі, обробники, асинхронні черги та багатопотокові програми — є розширенням основної концепції, що складається з трьох рядків.