🚀 Как ускорить Python в 3 раза при запуске в WebAssembly
|
WebAssembly дает возможность: - Выполнять Python код прямо в браузере – это открывает путь к созданию веб-приложений, написанных полностью на Python, без необходимости использовать JavaScript.
- Изолировать и безопасно выполнять сторонний код.
- Переносить Python-программы между различными платформами и архитектурами.
- Запускать Python-скрипты на устройствах с ограниченными ресурсами (встроенные системы и гаджеты IoT).
Но есть одна ложка дегтя: производительность Python-программ в WebAssembly оставляет желать лучшего. Эту проблему теперь можно решить с помощью компилятора py2wasm, который преобразует Python-программы в WebAssembly (Wasm), не используя нативный интерпретатор. В результате производительность Python-кода значительно увеличивается – по данным разработчиков, в 3 раза. |
Компилятор py2wasm ускоряет выполнение Python-кода почти в 3 раза |
Автор этой публикации давно ждал появления простейшего локального сервера с автоматической перезагрузкой для разработки небольших веб-проектов. В Python, разумеется, есть сервер, его можно запустить командой python -m http.server. Но автоматическую перезагрузку приложения (как встроенные серверы Django или Flask) этот сервер не выполняет. Автору же нужно было простейшее решение, для которого не надо было бы устанавливать целый фреймворк. В итоге энтузиаст создал простой однофайловый веб-сервер, в котором есть все, что нужно, для локальной разработки: Сервер - Это простой HTTP-сервер на Python, который слушает порт 5000 по умолчанию и обрабатывает входящие соединения в отдельных потоках.
- Сервер обрабатывает HTTP-запросы на файлы, отдавая их содержимое, а также создает WebSocket соединения.
Автоматическая перезагрузка - Для мониторинга изменений файлов в текущей директории и подпапках используется API inotify.
- При любом изменении файла (создание, модификация, удаление) всем подключенным клиентам отправляется сообщение "reload" через WebSocket.
WebSocket связь - При запросе HTML файла сервер внедряет в него JavaScript код, который устанавливает WebSocket соединение с сервером по пути /websocket.
- Код на JavaScript перезагружает страницу в браузере при получении сообщения "reload" через WebSocket.
|
Как построить RAG-систему с нуля
|
RAG – самая популярная технология для повышения точности и релевантности ответов LLM. С помощью этого подхода модели можно дать доступ к любым данным, которых она не знает. Новый курс freeCodeCamp покажет, как это сделать – в нем рассматриваются все компоненты систем RAG, техники индексации, извлечения и генерации на основе запросов, а также новейшие разработки в этой области: - Вводная часть – объяснение общей концепции и архитектуры RAG-систем.
- Индексация – процесс создания индекса из набора документов для последующего эффективного поиска релевантной информации.
- Извлечение – получение соответствующих документов из индекса на основе запроса пользователя.
- Генерация – этап создания окончательного ответа на запрос на основе извлеченных документов с помощью языковой модели.
- Перевод запроса – различные подходы к преобразованию начального запроса в формат, удобный для компонентов извлечения и генерации.
- Маршрутизация – процесс определения, какие модули системы RAG следует задействовать для обработки конкретного запроса.
- Построение запроса – методы формирования запроса к индексу на основе исходного запроса пользователя.
- Использование нескольких представлений документов в индексе.
- RAPTOR – алгоритм индексации с применением ранжирования для извлечения релевантных фрагментов.
- ColBERT – метод совместного поиска и обучения для индексирования.
- CRAG – комбинированный подход к извлечению и генерации.
- Адаптивный RAG – динамическое обучение и настройка компонентов RAG для конкретных задач и данных.
- Будущее RAG – перспективы развития архитектуры и технологии.
|
Как запустить Llama 3 локально
| Meta* недавно выпустила мощную языковую модель Llama 3*, которая сопоставима с самыми продвинутыми проприетарными LLM. И ее можно запускать локально, с помощью инструмента Ollama, без необходимости подключаться к облачным сервисам. В этом видео объясняется, как использовать Ollama для работы с различными языковыми моделями, в частности с Llama 2* и Llama 3*. Также будет продемонстрирован веб-интерфейс проекта и показано, как запускать модели с помощью Ollama и взаимодействовать с ними, используя Python. |
Как сделать браузерную игру на Django и HTMX
|
Туториал показывает поэтапную разработку лайт-версии популярной игры Connect Four («Четыре в ряд»). Фишка этого проекта – рендеринг и сохранение состояния на стороне сервера. На фронтенде вместо JavaScript используется HTMX. | Как в кино: фантастическое улучшение качества изображений
|
SUPIR (Scaling-UP Image Restoration) – опенсорсный ИИ-инструмент для улучшения качества и повышения разрешения изображений. Для работы SUPIR требуются Python и FFmpeg. Основные возможности: - Загрузка изображений через графический интерфейс.
- Управление с помощью промптов.
- Восстановление деталей, удаление шумов и артефактов с исходного изображения.
- Значительное увеличение разрешения изображений.
- Пакетная обработка множества изображений одновременно.
- Поддержка ваших собственных моделей.
- Подробнее об установке, настройке и использовании SUPIR – в этом видео:
|
Как сделать базу данных с графическим интерфейсом
|
В этом туториале создается настольное приложение для управления данными, в котором можно добавлять, просматривать, обновлять и удалять записи с информацией о сотрудниках с помощью графического интерфейса и базы данных SQLite (без ORM). Чтобы у приложения был более современный и привлекательный вид, помимо Tkinter используются виджеты ttk и customtkinter. Этот проект отлично подходит для начинающих питонистов – здесь подробно разбираются все этапы разработки: Настройка проекта - Создание нового проекта в Visual Studio Code.
- Установка необходимых библиотек.
- Импорт необходимых модулей.
Подключение к базе данных SQLite - Создание соединения с базой данных Employee.db.
- Создание таблицы EMPLOYEES для хранения данных сотрудников.
Создание главного окна приложения - Использование customtkinter для оформления интерфейса.
- Размещение фреймов и других элементов в окне.
- Добавление меток и полей ввода для ID, имени, возраста и должности сотрудника.
- Создание кнопок Сохранить, Обновить, Очистить и Удалить.
- Назначение соответствующих функций для каждой кнопки.
Использование Treeview для отображения данных - Настройка стиля и столбцов Treeview.
- Функции для вставки, удаления и обновления данных в Treeview.
Реализация основных функций - insert для добавления новых сотрудников;
- clear для очистки полей ввода;
- delete для удаления сотрудника из базы;
- update для обновления данных существующего сотрудника;
- get_data для получения данных выбранной строки в Treeview;
- отображение данных в Treeview при запуске программы;
- сохранение изменений в базу данных SQLite.
|
Использование customtkinter помогает сделать GUI более интересным |
На этом все, до встречи через неделю! *Llama 2 и Llama 3 принадлежат компании Meta, деятельность которой признана экстремистскими и запрещена на территории РФ. |
|
|
Вы получили это письмо, потому что подписались на нашу рассылку. Если вы больше не хотите получать наши письма, нажмите здесь.
|
|
|
|