Пишем GPT в 60 строк NumPy (окончание, 2/2)

В первой части поста мы начали реализацию с нуля GPT всего в 60 строках numpy.
Во завершающей части мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.

Высокоуровневый язык программирования


Этот проект родился после беседы с друзьями об инвестициях в недвижимость. Обсуждали, как выгодно купить квартиру, паркинг или келлер под сдачу и выгодно ли вообще.
Я решил проанализировать рынок продажи и аренды гаражей и парковочных мест своего города. Квартиры – слишком дорогие объекты для инвестиций, а что касается гаражей и паркингов – тут «вход» гораздо меньше, и на аренду вроде бы всегда есть спрос.

Как думает искусственный интеллект? Попробовать разобраться в его логике можно в игре от менторов AI Talent Hub, онлайн-магистратуры Napoleon IT и ИТМО, и студентов ИТМО «Отгадай слово». За два месяца в нее сыграли уже более 107 тысяч уникальных пользователей, а количество подписчиков одноименного телеграм-канала увеличилось до 5 000.
Что делает игру такой популярной, как проект окупился без затрат на продвижение и рекламы на сайте, а также почему при работе с ИИ не избежать ошибок? Рассказываем в статье.
Переписали виртуальную машину на новый DSL
И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.
В качестве примера, можно посмотреть на попытку добавления register-based интерпретатора. Другой пример, что часто два опкода идут вместе и выполняются последовательно большую часть времени. Например, LOAD_CONST и RETURN_VALUE. Для оптимизации, можно добавить новый опкод этой операции. Вместо двух действий он будет выполнять одно. На частых задачах получится неплохая прибавка к производительности.
Еще один пример: опкод CALL_FUNCTION. Сам по себе довольно медленный. У него есть целая семья оптимизаций, например специализация CALL_FUNCTION_ISINSTANCE, когда мы выкидываем промежуточный слой и сразу вызываем C-реализацию isinstance. Минус в том, что Python богатый и динамически типизированный язык. В runtime может что-то поменяться и мы получим замедление — придется сваливаться обратно на общий путь опкода CALL_FUNCTION.

Вокруг так много фреймворков для инференса нейронных сетей, что сложно понять, какой именно подойдет тебе лучше всего. Я решил, что реализую одну и ту же задачу на нескольких разных технологиях. Так и родился этот туториал по Nvidia Triton Inference Server.

Python - элегантный язык программирования. Но у него есть слабые стороны. Иногда Python не так элегантен, как должен быть.
Например, когда нам нужно выйти из вложенных циклов.

Это был типичный подмосковный ЖК, коих сотни. Именно в таком ЖК произошла история, описанная в этой статье. В конце написал что есть еще некоторые идеи и вот руки дошли и до одной из них.
Все мы знаем что домах 1.5 тыс. домов довольно важно иметь хоть какой-то справочник по квартирам для быстрой связи с собственниками или проживающими. Обычно это exel табличка в виде НОМЕР КВ. - НОМЕР. Но у нас есть бот всеобъемлющий все чаты ЖК, поэтому я решил пойти своим путем.
Для начала я подумал какие данные можно собрать, а какие наверное не стоит. Учитывая что имена и номера - это конфиденциальные данные человека, которые я не имею права хранить, формат хранения такой:
дом-секция-этаж-квартира-имя-id-авто
где:
Имя - ник или при его отсутствии имя в телеграмме. Благо python любезно может реализовывать такие логические выражения очень просто. Также нужно учесть что многие пользователи телеграмма не заполняют поле last_name и просто оставляют его пустым. в таком случае будет передаваться None. Учитывая все вышеперечисленные проблемы я рекомендую использовать вот такой формат:

Данная статья является вольным переводом статьи на medium.com, плюсом от себя реализация API ChatGPT в Телеграм боте.
Тема как написать телеграм бота уже довольно тривиальная, статей в интернете полно, поэтому тут я затронул это дело не так глубоко, ниже выложу ссылки на исходный код, разобраться будет не сложно. Основным мотивом написания статьи послужил тот факт, что ChatGPT не доступен в ряде стран, в том числе в России, и хотелось сделать его по настоящему общедоступным.
Готовый/работающий телеграм бот ChatGPT доступен тут.
На вопрос "Кто ты?" сама нейросеть отвечает примерно следующее "Я - ChatGPT, крупнейшая языковая модель, созданная OpenAI. Я разработана для обработки естественного языка и могу помочь вам ответить на вопросы, обсудить темы или предоставить информацию на различные темы".
Другими словами, по моему субъективному мнению нейросеть затачивается в первую очередь для поддержки разговора, в идеале показать, что там сидит живой человек, а не обученная AI модель. Поэтому когда будете играть с чатом не забывайте об этом, не следует ожидать от чата достоверных и точных данных, или глубокого смысла, сейчас она не об этом, пока еще не об этом.
Итак, как получить доступ к сервису ChatGPT из запрещенных стран написано в статье на хабре, хочу обратить ваше внимание, что будет необходимо сперва создать gmail почту с подтверждением по СМС на иностранный номер телефона, затем при регистрации на сайте ChatGPT также подтвердить номер телефона по СМС, и эти два номера телефона совсем не обязательно должны быть одинаковыми, поэтому сервисы по продаже номеров мобильных телефонов на одну смс вполне годятся.

Недавно выпала задача по развертке копий основного Zabbix-server на несколько машин, дабы хранить конфиги на разных серверах, да и еще всунуть это в CI/CD GitLab.
В общем, подробно описал свое решение со ссылкой на репозиторий.

Применение искусственного интеллекта и машинного обучения в задачах промышленности не настолько распространено, как в других сферах и отраслях экономики вроде банкинга, ритейла, телекома. При этом современные промышленные объекты часто генерируют и собирают большое количество данных, а методы машинного обучения обеспечивают эффективное использование этих данных для решения различных устоявшихся типовых задач: выявления неисправностей и отказов, прогноз качества продукции, определения остаточного срока службы оборудования и многих других.
Как раз про решение одной из типовых задач - задачи определения остаточного ресурса я и рассказывал на конференции https://datastart.ru в ноябре 2022 года, а также на митапе ИИшницы “ИИ в индустрии”, откуда даже сохранилось видео. В этом посте я соберу, структурирую и немного дополню информацию из докладов.

Рынок интернета вещей растет значительными темпами и разработка кода для микроконтроллеров важна для любых проектов, где подразумевается наличие какого‑либо вспомогательного оборудования или носимого устройства. Для разработки программного обеспечения под встраиваемые микроконтроллеры сейчас (кроме C/C++) можно использовать многие другие технологии (например, TinyGo, Dart/Flutter, Rust), так же как и Python в наборе библиотек MicroPython, который работает как со своей платой (pyboard), так и с другими микроконтроллерами (например платами на процессорах ESP8266 или STM32). В этой статье мы рассмотрим общие подходы к разработке и тестированию программного обеспечения для микроконтроллеров с использованием Python.

В этой статье мы кратко рассмотрим технологию, которая лежит в основе ChatGPT — эмбеддинги, и напишем простой интеллектуальный поиск по кодовой базе проекта.

Парсинг лучших статей дня с habr
Всем привет, сегодня я расскажу, как можно довольно просто написать парсер на примере сайта habr для сбора лучших статей дня в виде json файла, в формате, "Название статьи": "ссылка".

Являясь постоянным посетителем Хабра довольно долгий период времени, стал свидетелем того, как многие сегодня уже обыденные технологии были предметом острого внимания на ресурсе в период их появления.
Еще совсем недавно 3D-печать будоражила умы читателей, завораживала своей перспективностью, открывала широкие возможности для творчества, но была недоступна для простого обывателя. Сейчас 3D-принтер можно легко приобрести на китайском рынке по приемлемой цене. Технология 3D-печати не прекратила своего развития. Меняются способы печати, появляются более скоростные модели принтеров. Но сама технология стала привычным для нас явлением.
Немного позднее грянула эпоха IoT и ресурс запестрел статьями про интернет вещей. Автоматизация быта человека привела к появлению множества умных устройств, а их интеграция в единую систему приблизила нас к будущему еще на один шаг, породив концепцию умного дома. Своевременное появление линейки микроконтроллеров от фирмы Espressif Systems с поддержкой Wi-Fi также способствовало бурному развитию IoT. Сегодня любой желающий может купить умное устройство в магазине или собрать его самостоятельно, ознакомившись с инструкциями из интернета.
В последнее время очень популярна тема машинного обучения. Темпы её развития настолько стремительны, что мы не успеваем отследить этапы её развития. Ещё вчера мы умилялись общению с голосовым помощником, а сегодня ставим задачи генерации изображений высокого качества или просим сгенерировать программный код на основе краткого технического задания. Мы уже привыкли что бытовая техника понимает голосовые команды, камеры и телефоны автоматически распознают лица и накладывают нужные нам фильтры, социальные сети или информационные порталы выдают точные и нужные нам рекомендации. И за все этим стоит работа армии незаменимых помощников - моделей машинного обучения, на обучение которых было потрачено и ещё будет потрачено огромное количество человеко-часов, аппаратных ресурсов и терабайт данных. И все эти технологические достижения в совокупности дают нам отличную возможность не только быть их потребителями, а созидать и творить, реализовывать свои самые смелые идеи.

В этой статье, а вернее целой истории, я хотел бы поделиться своим путем становления в качестве разработчика на Python и рассказать о некоторых идеях и советах, которые я усвоил за это время. Начиная с моих первых проектов и заканчивая моей текущей деятельностью, я поделюсь накопленным опытом и попробую осветить проблемы, с которыми я столкнулся на своем пути. Кого-то данная статься вдохновит начать свой собственный путь в разработке, а кому-то будет интересно прочитать историю успешного кейса входа и закрепления в ИТ.

60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Наверное странная идея — нарисовать диаграмму миграций проекта Django. Вроде как — а зачем? Но если у Вас некий достаточно большой и достаточно старый проект, да еще над которым постоянно работает хотя бы небольшая команда — разобраться в зависимостях миграций становится уже сложновато.
Ну и так — полезно понять, как можно автоматически выбрать из проекта структуру миграций и построить из них диаграмму. Причем — автоматически. Что бы можно было это делать в любой нужный момент.

Аналитик-экономист Саша устроилась на новую работу, у неё не было навыков программирования. В описании вакансии умение писать код не требовалось. Программирование преследовало экономиста в школе и университете. Саша старательно отмахивалась от написания кода, но избежать кодинга не вышло.
В Сашин первый день предыдущий сотрудник оставил три скрипта на Python для подготовки отчетности, уволился и сменил номер телефона. Ближайших срок сдачи отчетности – через месяц. Запуска кода было недостаточно для подготовки отчетов, нужно адаптировать скрипт под запрос руководителя.
Статья описывает ошибки, которые совершила Саша при изучение Python, и пути исправления этих ошибок. Статья расскажет об экстремальном опыте погружения в программирование на Python: анализ данных и визуализацию. Вот как это было…
Привет, Хаброжители!