Подготовка данных для нейронной сети

На волне шумихи вокруг GPT-3 появилось желание покапаться во внутреннем устройстве нейронных сетей и попробовать написать сеть для классификации текстов по категориям/тэгам. Это первая заметка из серии, речь в ней пойдет о предварительной подготовке данных. Зачем необходима подготовка данных? Текстовые данные не могут быть использованы напрямую в моделях машинного обучения, так как в нейронах используются простые математические функции которые работают с числовыми данными. Для подготовки текстовых данных используют так называемое кодирование слов - это преобразование текстовых данных в числовые (векторные) представления, которые затем можно использовать для машинного обучения. Существует много способов кодирования, вот некоторые из них: ...

11 февраля 2023 · 7 минут · coyotle

Живая синхронизация заметок Obsidian

Доступна обновленная инструкция по настройке плагина и CouchDB Для тех кто не в курсе, Obsidian - кроссплатформенная программа для ведения заметок в markdown формате, которую можно использовать для создания личной базы знаний или вашего «второго мозга» по методу Zettelkasten. Как работает метод можно почитать по ссылке. На самом деле Obsidian не обязательно использовать именно как «второй мозг», это просто удобная программа для ведения заметок с большим количеством плагинов. Один минус - Obsidian из коробки поддерживает синхронизацию заметок только через собственный платный сервис. Из плюсов - вся база хранится в виде обычных md файлов которые можно синхронизировать между устройствами через облачные сервисы. У меня изначально синхронизировалось через NextCloud, но в мобильном клиенте NC постоянно возникают конфликты, которые надо разрешать руками. Вообще мобильный клиент да и сам nextcoud бесят, может кто-то знает альтернативы? ...

4 февраля 2023 · 3 минуты · coyotle

Автоматизация сборки и публикации блога Hugo

В предыдущей заметке мы установили Drone CI, в этой настроим автоматическую сборку и публикацию блога при пуше в git-репозиторий. После настройки Drone и авторизации в нем вы должны увидеть доступные вам репозитории. Для того чтобы Drone начал обрабатывать пайплайны необходимо активировать репозиторий. Для это в секции Repositories заходим в нужный репозиторий и нажамаем Activate repository. На странице настроек можно отключить вебхуки которые будут отслеживаться, настроить режим приватности, максимальное время выполнения пайплайна и название файла в котором Drone будет искать описание пайплайна (по умолчанию .drone.yml). Нажимаем Save changes. ...

2 февраля 2023 · 4 минуты · coyotle

Drone CI

В продолжение заметки “У нас есть github дома” добавим к нашему окружению систему автоматического тестирования и доставки ПО Drone CI. Документацию можно почитать тут https://docs.drone.io/. Из плюсов Drone по сравнению с Jenkins: простота установки, настройки и сопровождения, не надо изучать groovy, всё пишется на yaml. Drone CI состоит из двух сервисов: собственно Drone и ранеров которые будут выполнять необходимые задачи, в даном случае ранеры используют докер хост системы для запуска задач. Сам drone не имеет базы пользователей и использует OAuth внешней системы для авторизации пользователей. Для настройки OAuth перейдите в раздел user/settings/applications на вашем экземпляре forgejo/gitea и в подразделе Authorized OAuth2 Applications создайте новое приложение. В поле Redirect URI укажите адрес вашего drone сервера, например https://drone.example.ru/login. После создания приложения скопируйте client id и secret, они понадобятся ниже. ...

27 января 2023 · 2 минуты · coyotle

Обновление маршрутов

Надоело вручную обновлять на роутере список маршрутов для блокировки запрещенных сайтов. Я дополнительно блокировал не всё подряд, а буквально несколько сайтов, но всё равно надоело, поэтому написал небольшой скрипт для автоматизации рутины. Интерфейс tun0 терминирует все подключения в /dev/null если что. Скрипт скачивает список адресов которые надо заблокировать с https://antifilter.download/ в файл ipsum_new и немного фильтрует чтобы избежать подстановок, сравнивает с предыдущей версией списка в ipsum_cur и помещает разницу в ipsum_diff. Затем берём разницу и добавляем или удаляем маршрут в таблице маршрутизации в зависимости от знака + или - в diff-файле. В конце скрипта замещаем текущий ipsum_cur новым файлом. ...

23 января 2023 · 2 минуты · coyotle

Крайний из нас

Я попытался посмотреть первую серию The Last Of Us. Тут можно поставить точку т.к. предыдущее предложение содержит всю нужную информацию. Меж тем оценки у сериала зашкаливают 9.4 на imdb, 8.7 на кинопоиск. У меня только два вопроса: голливуд действительно стал так ненавидеть красивых женщин или диктат повестки и страх перед культурой отмены довёл до вот этого и второй вопрос, кто все эти люди, которые ставят говну посредственному кино такие высокие оценки? ...

19 января 2023 · 2 минуты · coyotle

Литературные часы

Мой СДВГ заставил меня несколько дней посвятить написанию небольшого проекта “литературные часы”, которые показывают время используя цитаты из книг. Вдохновился я вот этим и этим. В англоязычной версии литературные часы основаны на базе цитат которую изначально собрала газета The Guardian. В 2011 году они попросили своих читателей присылать цитаты из книг, в которых упоминается время. Цитаты планировали использовать в постройке инсталляцию для литературного фестиваля. Таким образом, на их веб-сайте есть две версии списка 1 и 2, объединенный и дополненный список англоязычных цитат можно найти тут. ...

18 января 2023 · 2 минуты · coyotle

У нас есть github дома

В этой заметке не буду обсуждать вопрос зачем поднимать свой git-сервер, а не использовать github/gitlab/codeberg или даже sourceforge. Как развернуть свой легкий git сервер Начнем с того, что самый простой способ - это создать git --bare init репозиторий на вашем сервере и написать обычные скрипты для выполнения автоматических задач. Собственно этот блог собирался скриптом который запускался в cron, делал git pull репозитория с кодом блога, а потом собирал и публиковал результат. ...

10 января 2023 · 3 минуты · coyotle

ИИ, назад в будущее

Департамент образования Нью-Йорка запретил доступ к чат-боту ChatGPT в сетях и на устройствах гос школ города. Отдельные школы смогут запросить доступ к ChatGPT если они занимаются изучением ИИ. “Инструмент не развивает навыки критического мышления” - заявила чиновник отдела образования. Также международная конференция по машинному обучению (ICML) запретила учёным представлять статьи, созданные с помощью больших языковых моделей. В то же время Microsoft объявила, что до апреля 2023 года запустит версию поисковика Bing с системой ИИ на основе ChatGPT. Microsoft надеется, что это позволит им стать более конкурентой по отношению к поиску Google. Компания выступает одним из крупнейших инвесторов OpenAI с 2019 года (см. Новый дивный мир). ...

6 января 2023 · 2 минуты · coyotle

Шорткоды в Hugo

Шорткоды (shortcodes) - позволяют вставлять в markdown страницы заготовленные html блоки и передавать им параметры. В Hugo уже есть набор готовых шорткодов (см. документацию), которые позволяют например вставлять видео youtube или vimeo. Следующий шорткод вставит в страницу iframe с youtube с указанными параметрами id и autoplay: {{< youtube id="hzWl_j__KFU" autoplay="false" >}} Параметры бывают позиционными и именованными. ...

6 января 2023 · 2 минуты · coyotle