Впровадження великих мовних моделей на периферії
- 26 травня 2026
- Люсі Хаттерслі
У цей «Maker Monday» камера Raspberry Pi AI Camera знайомиться з великими мовними моделями. Сьогоднішній посібник підготувала редакторка офіційного журналу Raspberry Pi Official Magazine Люсі Хаттерслі.
(Так, ми знаємо, що сьогодні вівторок, але вчора у Великій Британії ми насолоджувалися чудовим і незвично сонячним святковим понеділком, і, як ми розуміємо, у США теж було свято. Тому ми продовжуємо «Maker Monday» ще на один день, щоб не довелося чекати майже цілий тиждень до наступного.)
Великі мовні моделі (LLM) відкривають нові інтуїтивні можливості взаємодії з технологіями. Від природних розмов із чат-ботами до узагальнення великих документів — великі мовні моделі чудово справляються з розумінням і створенням тексту, що нагадує людську мову.
Що відбувається, коли ми поєднуємо можливості великих мовних моделей (LLM) з камерою Raspberry Pi AI? Таке поєднання відкриває нові можливості для взаємодії фізичного світу розпізнавання зображень з інтелектуальними системами, що керуються мовою.
Ці нові потужні системи називаються моделями «зору-мови» (VLM). Такий підхід дозволяє створювати системи, які описують фізичний світ і аналізують його за допомогою природної мови. При цьому не потрібно передавати відеопотік у хмару, що допомагає зберегти конфіденційність знятого матеріалу та полегшити дотримання вимог GDPR.
У цьому посібнику ми розглянемо один із способів реалізації цього завдання за допомогою камери Raspberry Pi AI Camera. Наш підхід полягає в тому, що камера Raspberry Pi AI Camera постійно надсилає до великої мовної моделі (LLM) запити, що містять метадані. Цей підхід проілюстровано на малюнку 1.
Налаштування камери з штучним інтелектом
Переконайтеся, що ваша камера Raspberry Pi AI підключена до Raspberry Pi. Перш ніж розпочинати, переконайтеся, що на вашому Raspberry Pi встановлено найновіше програмне забезпечення. Для оновлення виконайте таку команду:
$ sudo apt update && sudo apt full-upgrade
Під час запуску камера з штучним інтелектом повинна завантажити прошивку для виконання на датчик IMX500. Щоб встановити ці файли прошивки на ваш Raspberry Pi, виконайте таку команду:
$ sudo apt install imx500-all
Камера Raspberry Pi з штучним інтелектом виконує основну роботу: модель штучного інтелекту виявляє об’єкти, розпізнає візерунки та генерує метадані на сенсорі, такі як {Cat (0.76), Box (0.81)}.
Замість потокової передачі необробленого відео в хмару система може виводити результати інференції у вигляді метаданих, що дозволяє значно зменшити обсяг даних, які передаються в хмару або до інших систем. Це особливо корисно в умовах обмеженої пропускної здатності або високої вартості передачі даних. Це означає, що камера надає структуровану інформацію у вигляді результатів інференції, наприклад мітки, обмежувальні рамки та показники достовірності. Потім ці дані передаються до великої мовної моделі (LLM), яка перетворює структуровані дані виявлення на зрозумілі для людини резюме та контекстну інформацію.
Фрагмент коду (01_aicam_to_llm.py), наведений у кінці цієї статті, можна адаптувати до ваших потреб. Він передає метадані з камери Raspberry Pi AI до великої мовної моделі (LLM) за допомогою OpenAI. Щоб запустити його, вам потрібно встановити modlib та бібліотеку OpenAI, а потім отримати власний API-ключ для OpenAI.
Давайте налаштуємо код. Спочатку скопіюйте всі файли з нашого облікового запису на GitHub.
$ git clone https://github.com/lucyhattersley/aicam_llm.git
Загляньте туди за допомогою команди ls, і ви побачите приклади коду для всіх наших проєктів. Багато файлів містять однаковий код із різними підказками. Ми сподіваємося, що ви в підсумку використаєте один із вихідних файлів коду зі своєю власною підказкою.
Нам потрібно створити віртуальне середовище, щоб ми могли додати пакети OpenAI та Application Module Library (modlib).
$ python -m venv env
І запустимо наше віртуальне середовище:
$ source env/bin/activate
Використовуйте pip для встановлення modlib та openai:
$ pip install modlib openai
Тепер відредагуйте файл і додайте свій ключ API. Для цього ми скористаємося IDE Thonny:
$ thonny 01_aicam_to_llm.py
Введіть свій ключ API у 8-му рядку, замінивши <OPENAI_API_KEY> на ключ у прямих лапках, щоб він виглядав так:
client = OpenAI(api_key="abcde012345")
Збережіть файл і закрийте Thonny.
Тепер запустіть файл за допомогою команди:
$ python 01_aicam_to_llm.py
Під час першого виконання цієї операції відбудеться завантаження прошивки через мережу. Зачекайте, поки файл завантажиться (приблизно 30 секунд). Після цього на дисплеї з’явиться текстовий опис того, що відображається у видошукачі:
LLM summary: At 16:33:29,
The camera detected several objects with their respective confidence scores.
The detected objects include:
**Persons**: 3 instances with confidence scores of 0.44, 0.38, and 0.32.
**Books**: 2 instances with confidence scores of 0.44 and 0.32.
**Potted plant**: 1 instance with a confidence score of 0.38.
**Dining table**: 1 instance with a confidence score of 0.38.
**Cup**: 1 instance with a confidence score of 0.32.
**Bowl**: 1 instance with a confidence score of 0.32.
This suggests a setting likely involving people, reading materials, and dining or relaxation items./
Підсумок LLM: О 16:33:29
камера виявила кілька об’єктів із відповідними показниками впевненості.
Серед виявлених об’єктів:
**Люди**: 3 випадки з показниками впевненості 0,44, 0,38 та 0,32.
**Книги**: 2 випадки з коефіцієнтами впевненості 0,44 та 0,32.
**Кімнатна рослина**: 1 випадок з коефіцієнтом впевненості 0,38.
**Обідній стіл**: 1 випадок з показником впевненості 0,38.
**Чашка**: 1 випадок з показником впевненості 0,32.
**Миска**: 1 випадок з показником впевненості 0,32.
Це вказує на обстановку, в якій, ймовірно, присутні люди, матеріали для читання та предмети, пов'язані з трапезою або відпочинком.
Ми можемо налаштувати цю програму для розпізнавання різних об’єктів, змінивши підказку в 23-му рядку нашого коду. У наступних програмах ця підказка змінюється для виконання різних завдань.
- 01a_smart_home.py
- 01b_retail_shelf.py
- 01c_factory_floor.py
Перегляньте ці програми за допомогою Thonny або іншої IDE на ваш вибір і зверніть увагу на повідомлення в 23-му рядку.
Спостерігач за «розумним будинком»
На камері Raspberry Pi AI ми запускаємо модель розпізнавання об’єктів для виявлення об’єктів, що нас цікавлять, таких як люди та домашні тварини, отримуючи результати у вигляді даних, що містять клас та рівень впевненості, наприклад:
{"detections": ["Person (0.92)", "Cat (0.87)", "Box (0.82)"]}
Потім камера Raspberry Pi AI Camera надсилає цю інформацію до LLM, який обробляє отримані дані. Запит у рядку 23 має такий вигляд:
prompt = f"You have access to a smart camera in the living room of my home. At {time.strftime('%H:%M:%S')}, the camera detected: {labels}"
При виконанні цей код створює зручне оновлення:
At 14:23, one person is in the living room with the cat. A box is in the room as well.
Моніторинг торговельних полиць
За допомогою камери Raspberry Pi AI, яка здійснює моніторинг полиці, торгового автомата або холодильника, ми можемо використовувати модель розпізнавання об’єктів для виявлення товарів, за якими хочемо стежити. Потім можна додати функцію, яка визначатиме, на якій полиці або в якому ряду знаходяться ці товари. Ми надсилаємо LLM результати розпізнавання разом із запитом:
prompt = f"You have access to a smart camera in a vending machine. At {time.strftime('%H:%M:%S')}, the camera detected: {labels} Provide information on the stock levels of the vending machine."
І LLM генерує звіт:
"Four soda bottles are left in row three — stock may need replenishing soon."
Наглядач за виробничим цехом
Камера Raspberry Pi AI перевіряє, чи носять працівники захисне спорядження. У цій ситуації ми можемо додати ще трохи логіки обробки даних, щоб зіставити людей із сигнальними жилетами та переконатися, що вони їх носять. Запит у 23-му рядку нашого коду такий:
prompt = f"You have access to a smart camera in a warehouse. At {time.strftime('%H:%M:%S')}, the camera detected: {labels} Provide information if people are wearing highvis jackets."
Потім метадані передаються до великої мови (LLM), яка формує повідомлення у природній мові:
Warning: one worker is not wearing a high-vis.
Як бачимо, запит у 23-му рядку нашого коду можна адаптувати до найрізноманітніших завдань за допомогою природної мови.