newsmode
search
Меню
arrow_back Назад

Raspberry-LLM - Making My Raspberry Pico a Little Smarter

auto_awesomeКраткое саммари

Юджин Ян описывает свой эксперимент raspberry-llm: Raspberry Pico с e-ink экраном, который получает RSS-ленты WSJ и HackerNews, обращается к сторонним LLM API и генерирует контент в разных стилях — от рифм в духе Доктора Сьюза до фейковых цитат знаменитостей и троллинговых комментариев в духе HackerNews. Проект начался с рифмованных часов и постепенно разросся. Главным вызовом стала работа всего с 8 КБ памяти на Micro Python, из-за чего привычные библиотеки вроде json и xmltodict оказались недоступны. Автору пришлось парсить RSS-ленты посимвольно, отслеживать потребление памяти на каждом шаге и активно использовать gc.collect(). Код доступен на GitHub — достаточно склонировать репозиторий и прописать свои Wi-Fi и OpenAI credentials в secrets.py.

Raspberry-LLM — как я сделал свой Raspberry Pico немного умнее

[ llm 🛠 ] · 2 мин чтения

Продолжая свои эксперименты с большими языковыми моделями, я задумался, как их можно использовать в условиях ограниченных ресурсов — например, в бытовой технике или на Raspberry Pico. Мне также было любопытно, насколько хорошо они справляются с генерацией контента в определённом стиле (скажем, Доктора Сьюза), с юмором (фейковые цитаты из WSJ) и с токсичными высказываниями (комментарии троллей с HackerNews).

Чтобы удовлетворить своё любопытство, я собрал raspberry-llm (Github). Это простой Raspberry Pico с e-ink экраном, который обращается к RSS-лентам WSJ и HackerNews, дёргает сторонние LLM API и генерирует контент. Всё началось с рифмующихся часов, а дальше… ну, сами увидите.

• • •

Кто-то LLM применяет, чтоб целые рынки взрывать,

Кто-то плагины к ChatGPT мастерит, чтоб границы менять.

А я тут с Raspberry Pi сижу, ни шатко, ни валко,

И стилем Доктора Сьюза новости пересказать пытаюсь жалко.

Иногда выходит остроумно, не зря,

Фейковые цитаты звёзд сочиняет, бля.

Может прикинуться троллем с HackerNews,

Кидаться злыми комментами, будто бы он не лез.

Всё началось с того, чтоб время сказать умело,

С маленькой странностью, с рифмой — несмело.

• • •

В целом это был забавный опыт — учиться работать всего с 8 КБ памяти(!) и Micro Python. Из-за ограничений по памяти привычные библиотеки (например, json, xmltodict) на Pico недоступны. Да даже если бы и были, я всё равно не смог бы загрузить всю RSS-ленту в память целиком, чтобы потом распарсить её через xmltodict.parse().

В итоге пришлось парсить RSS-ленты посимвольно, разбираться, сколько памяти потребляется на каждом шаге, и активно вызывать gc.collect(). А ещё было интересно научиться рисовать на e-ink экране (вспомогательные функции сделали это проще, чем я ожидал).

Чтобы попробовать самому, склонируйте этот GitHub-репозиторий и пропишите свои данные Wi-Fi и OpenAI в secrets.py.

Промпт для OG-картинки в MidJourney: «An e-ink display connected to a raspberry pi displaying some text –ar 2:1»

Если этот материал оказался полезным, ссылайтесь на него так:

Yan, Ziyou. (Apr 2023). Raspberry-LLM - Making My Raspberry Pico a Little Smarter. eugeneyan.com. https://eugeneyan.com/writing/raspberry-llm/.

или

@article{yan2023raspberry, title = {Raspberry-LLM - Making My Raspberry Pico a Little Smarter}, author = {Yan, Ziyou}, journal = {eugeneyan.com}, year = {2023}, month = {Apr}, url = {https://eugeneyan.com/writing/raspberry-llm/} }



Присоединяйтесь к 11 800+ читателям, получающим новости о machine learning, RecSys, LLM и инженерии.