Ivan Begtin
9.12K subscribers
2.7K photos
5 videos
116 files
5.55K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and etc.

CTO&Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Email ivan@begtin.tech

Ads/promotion agent: @k0shk
Download Telegram
NVIDIA выложили в открытый доступ BioNeMo Agent Toolkit инструментарий для работы специалистов-биоинформатиков с ИИ агентами. Это не LLM модель, не программный продукт, а коллекция большого числа файлов навыков (SKILL.md), документации и примеров кода оптимизированное под Claude, Codex и Nemotron и инфраструктуру сервисов NVIDIA. Все под лицензиями Apache 2.0 и CC-BY-4.0


По сути это не то чтобы радикально новый, но всё же новый подход к документированию API и сервисов. Каждый файл SKILL.md сопровождается документацией к эндпоинтам API и примерами использования с дополнительными описаниями как с ними работать.

Общаясь со спецами по биоинформатике я уже не первый раз слышу что они используют специализированные ИИ инструменты, но ощущают что от всех них откажутся в сторону general LLM, учитывая как те развиваются. Пример с NVIDIA тоже показателен. Не разработка отдельного закрытого продукта, многие из которых есть на рынке, а встраивание в собственную экосистему и экосистему Anthropic и OpenAI

#opensource #ai #biotech
👍71🔥1
Для тех кто любит работать с данными, я недавно залил обновления в два репозитория:
- iterabledata библиотека для Python для чтения условно любых файлов и баз данных в итеративном режиме в том числе в потоковом режиме с экономией памяти
- undatum утилита для командной строки для манипуляции условно любыми дата файлами, их конверсии, чтении данных, анализу и документированию. Внутри используется как раз библиотека iterabledata

В чем особенность этих релизов.

В iterabledata исправлена возможность записи в форматы Avro, Orc и Lance. Не самые большие изменения, но повышающие удобство работы с библиотекой.

А утилита undatum была радикально обновлена с переводом большей части функций на работу через iterabledata и отказа от части внутреннего кода. Теперь работает преобразование файлов всех форматов которые поддерживает iterabledata - это более 100 форматов.

Сами инструменты были вдохновлены утилитами xsv и qsv и были написаны для того чтобы можно было удобным образом работать с изначально с JSONl/NDJSON файлами сжатыми любым способом, а далее с форматами вроде Parquet, ORC и остальные.

Вообще у меня не так много времени остается на программирование в последнее время, это скорее как хобби, но хобби полезное.

#opensource #datatools #dataengineering
1🔥14👍114
Подборка полезных ссылок про данные, технологии и не только:
- Onyxia платформа от французского института статистики INSEE для организации работы команды data science. Помогает разворачивать разные открытые продукты под задачи: тетрадки Jupyter, R Studio и многие другие с акцентом на статистические данные и не только. Предназначена для обучения студентов в первую очередь
- miller аналог AWK для CSV файлов, позволяет их удобно форматировать с командной строки.
- tad настольный редактор для табличных файлов, в первую очередь это файлы CSV и Parquet, но также поддерживает и базы sqlite и duckdb. Из минусов - не обновлялся около года
- uPlot одна из наиболее быстрых и легковесных библиотек визуализации больших объемов данных временных рядов.

#opensource #datatools
🔥43👍3
Ещё немного про утилиту с открытым кодом для работы с данными undatum которую я когда-то разработал и потихоньку развиваю. Это не коммерческий продукт, а скорее вспомогательный инструмент когда надо что-то поделать с данными в командной строке и эти данные не просто плоские CSV файлы, а что-то посложнее.

Я приводил в пример ее использование для преобразования файлов, а вот дополнительные примеры того как ее можно применять.

Быстрое API на основе файла с данными

Предположим есть файл CSV, JSONl, Parquet или еще какой-то и его содержанию надо быстро дать доступ кому-то внешнему, но передавать файл/файлы целиком нельзя по какой-либо причине.

Очень простая и быстрая команда
undatum api run data.jsonl

Автоматически проанализирует файл и запустит веб-сервер с доступом к данным через REST API и возможностью фильтрации по его полям. Из плюсов - минимум усилий. Из минусов - в нем нет сейчас какой-то сложной программной логике поиска по полям и тд., только полный или частичный мэтчинг.

В итоге получается неидеальное, зато очень быстро развертываемое API которое можно выставлять внешним пользователям.

Быстрое документирование дата файлов

Когда есть некий файл с данными к нему нет дополнительной информации, а очень надо быстро в нем разобраться, то генератор Markdown документации

В самом простом виде выглядит как
undatum ai doc data.csv

выводит на экран итоговый Markdown текст

Более продвинутый
undatum ai doc —blocks general,schema,quality,examples,codebook —format json —language Russian data.csv

Создает документацию в формате JSON с Markdown блоками перечисленными списком и на русском языке.

Загрузка данных в NoSQL/SQL базы данных

Команда ingest изначально делалась для продвинутого импорта данных в MongoDB и Elasticsearch и идея в том чтобы на вход получить файл и строку подключения в базе данных после чего загрузить содержимое в выбранную таблицу/коллекцию/индекс

Пример команды
undatum ingest data.jsonl https://elasticsearch:9200 myindex myindex --dbtype elasticsearch --api-key YOUR_API_KEY --doc-id id

В чем важная особенность undatum от специализированных инструментов которые умеют это же? В поддержке любых сжатых файлов .xz, .gz, .zst, .lz4, .bz2 и так далее. Потому что хранить данные в чистом NDJSON или CSV - это прямо таки очень неэффективно. Особенно когда это много слепков коллекции из MongoDB или индекса Elasticsearch.

#opensource #datatools #data
👍122🔥2
OmniRoute локальный маршрутизатор запросов к ИИ провайдерам умеющий работать с большим их количеством, сейчас это 231 провайдер в том числе с теми которые дают бесплатные квоты. Позиционируется как инструмент сильной оптимизации потребления токенов, позволяет сократить их благодаря сжатию RTK + Caveman.

Что характерно даже поддерживают одного из российских провайдеров - gigachat (можно увидеть в общем списке), но собственно и только. Того же Яндекс'а к примеру тут нет почему-то.

Плюс обещают прозрачную интеграцию с 1proxy и возможность обхода блокировок из стран которым некоторые AI провайдеры не дают доступа (Россия, Иран, Куба, Китай и тд.).

На чем зарабатывают непонятно, думаю что монетизацию включат позже и привяжут как раз к сервисам прокси или экономии токенов.

Выглядит как очень полезный инструмент еще и из-за встроенной аналитики потребления, так что надо пробовать на практике. Если все работает как обещано - ценное дополнение к техническому стеку.

#opensource #ai #tools
5👍32
В качестве регулярных напоминаний коллекция библиотек и инструментов с открытым кодом к которым я приложил свою руку и которые могут быть полезны многим работающим с данными:
- qddate библиотека для Python быстрого парсинга дат написанных на множестве языков и во множестве форматов. Не такой широкий охват форматов как у dateutil, но гораздо более высокая скорость парсинга.
- newsworker библиотека и инструмент на Python для извлечения новостей из веб страниц. Например, когда надо подписаться на сайт через RSS, а RSS ленты нет. Понимает множество форматов дат используя qddate и динамически идентифицирует новостные блоки.
- russiannames база данных и парсер Python для разного рода написания ФИО принятых в российской практике. В базе десятки тысяч имен и отчеств и сотни тысяч фамилий
- undatum утилита командной строки для работы с датасетами в форматах CSV, JSONl, Parquet и сотне других форматах. Умеет преобразовывать данные и проводить с ними различные операции. Эдакий швейцарский нож для работы с данными с командной строки
- metawarc утилита по извлечению метаданных из файлов веб-архивов (WARC). Умеет извлекать метаданные из офисных файлов, PDF, изображений и тд.
- plainrussian сервис проверки простоты текстов на русском языке используя формулы читабельности адаптированные под русский язык. Код самого сервиса и формул для расчета
- iterabledata библиотека для Python для чтения и записи практически всех существующих форматов файлов с данными. Используется в утилите undatum
- internacia-db дата продукт в виде датасета по всем странам и макрорегионам во множестве форматов и покрытием всего мира и многими метаданными по каждой территории

#opensource #datatools #tools
👍13🔥644
newsworker-missing-features-audit.pdf
286.1 KB
Помните я писал подход к разработке через режим
set the goal → analyze + analyze + analyze → review → design → plan → execute → (repeat tests till conditions met) → verify

где прежде чем приступаешь к изменениям в коде запускаешь неоднократный анализ имеющегося.

Я регулярно тестирую новые LLM модели и агентские сервисы на разных репозиториях запросами именно на их полноты и подготовки роадмапов. Эдакий внешний ревью архитектуры, кода и перспектив продукта.

Примеры такого анализа на коммерческих репозиториях показать я не могу, а вот почему бы не показать пример анализа открытого кода. Все та же библиотека и инструмент newsworker о которой я ранее писал и которая умеет преобразовывать страницы без RSS/Atom в RSS/Atom и другие новостные ленты.

В этом примере я запросил у агента Z.ai и модель GLM-5.2 провести аудит репозитория и составить перечень нехватающих функций и роадмап по их внедрению.

Результат более чем удовлетворительный. Не идеальный, но таким он и не может быть, но экономящий время и через несколько корректировочных вводных позволяющий превратить этот открытый продукт в более удобный инструмент.

Причем разные инструменты и LLM дают разные результаты. Хороший итоговый анализ является сводным и дополненным личными архитектурными комментариями видения продукта.

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

#opensource #ai #coding
👍7421💊1
В продолжение моих размышлений про чтение новостей и инструменты для этого, я на этих выходных чуть потратил времени и сделал в библиотеке newsworker очень давнюю идею шаблонов извлечения новостей.

Оригинальная идея инструмента была в том что алгоритм идентифицировал новостные блоки и даты динамически, каждый раз прогоняя веб страницу через кластеризацию и идентификацию дат по сотням шаблонам. Это хотя и ускорено, но все таки не самый оптимальный способ извлечения контента.

Идея была в том чтобы по итогам анализа страницы создавать псевдокод/конфиг и потом уже по нему извлекать контент. В общем-то ничего сверх сложного, но и. не настолько просто чтобы можно было сделать быстро. Сейчас, с помощью ИИ агентов для разработки все сильно ускорилось.

Так что в последней версии newsworker появилось две команды analyze и extract где первая создает спецификацию, а вторая по спецификации извлекает новости.

Второе важное изменение - это команда serve запускающая инструмент в серверном режиме, можно по эндпоинту передавать ссылку на веб страницу и получать RSS/Atom ленту на выходе. Тем самым можно интегрировать с любой RSS читалкой и развернуть этот сервер у себя локально или где-то в сети. Сервер по умолчанию работает через спецификации поэтому потребление CPU и памяти в нем минимизировано.

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

#opensource
👍85🔥31
datannur свежее ПО каталога данных с открытым кодом под MIT лицензией. На самом деле является каталогом метаданных и работает через сканирование локальных папок с дата файлами на диске на основе которых создаются их профили, извлекаются колонки/переменные, считается статистика и так далее. И даже есть ассистент отвечающий на вопросы про эти метаданные/данные.

Проект любопытный, но ИМХО автор совсем не понимает своих предполагаемых пользователей и переусложняет то что надо, наоборот, упрощать.

Тем не менее хорошие идеи там тоже есть и посмотрим куда автор свой проект будет развивать.

#opensource #opendata #datacatalogs
👍2🤔1
Allemannsdata коллекция MCP сервисов для 24 API/сервисов открытых норвежских данных. Хотелось бы сказать что сделано норвежским правительством/министерством цифры, но нет, это инициатива одного разработчика.

Дело полезное, но еще лучше когда будет официальное чтобы точно быть уверенными что будет стабильно работать.

А вообще вот вам пример потестить навыки, берете открытое госAPI или большой датасет и делаете над ним открытый MCP сервис. Почему нет?

#opensource #API #AI
👍4