Ivan Begtin
8.03K subscribers
1.72K photos
3 videos
101 files
4.42K links
I write about Open Data, Data Engineering, Government, Privacy, Digital Preservation and other gov related and tech stuff.

Founder of Dateno https://dateno.io

Telegram @ibegtin
Facebook - https://facebook.com/ibegtin
Secure contacts ivan@begtin.tech
Download Telegram
Помимо данных о маршрутах, о которых я ранее писал [1], есть немало узкоспециализированных источников структурированных данных, не очень то полезных для дата аналитиков и data scientist'ов, но полезных кому то ещё. Например, это данные о 3D моделях, майндмапы и какое-то число других результатов активностей распространяемых в форматах с машиночитаемым экспортом.

Их немало, но применение ограничено и области специфические. Куда интереснее всё становится когда мы переходим от восприятия поиска данных не через призму их обнаружения (discover), а через призму их извлечения и создания (extract). Данные есть и их много внутри чего-то что само по себе данными не является: веб-страниц, PDF файлов, офисных документов и иных документов разметки.

К примеру, бесконечное число таблиц находится в научных статьях и их препринтах, или в публичных отчетах компаний, или в нормативных документах и отчетах госорганов. Иногда (редко) эти таблицы легко извлекаются тэгами в разметке, чаще они представлены в виде изображений. Есть такая очень прикладная задача и даже датасеты по извлечению таких таблиц. У IBM есть датасет FinTabNet [2] с большой коллекцией таблиц извлеченных из отчетов компаний из списка S&P 500. Есть несколько десятков исследователей в мире работающих только над темой автоматического аннотирования подобных таблиц, и есть успехи в этой работе.

Так почему бы не взять один из общедоступных алгоритмов извлечения и не прикрутить к поисковой системе вроде нашего Dateno и не получить сотни миллионов таблиц для индексирования? Вот это уже на 100% вопрос масштаба. Документов в мире значительно больше чем общедоступных данных (за исключением биоинформатики, физики частиц и спутниковых снимков). При этом нужна инфраструктура чтобы хранить первичные документы, обрабатывать их и готовить таблицы. Поисковик превратится из базы метаданных в крупнейшую базу данных, из маршрутизатора на сайты с первоисточниками, в замкнутую на себя экосистему.

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

И всегда важно помнить что это очень много маленьких датасетов, в то время как для data science, к примеру, нужны хорошо размеченные "большие данные".

Ссылки:
[1] https://t.me/begtin/5616
[2] https://developer.ibm.com/data/fintabnet/

#opendata #data #thoughts #datasets #dateno
Поднакопилось какое-то количество мыслей про доступность/открытость данных и дата инженерию, прежде чем писать по каждой мысли отдельный текст, изложу тезисами:

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

- самое сложное - это производство данных и ещё сложнее производство хороших данных. Создавая Dateno одной из мыслей было хотя бы частично решить задачу нахождения данных индексируя основных производителей. Но это не решает проблему отсутствия данных. Как поощрять их создание? Конкурсы для волонтеров? Datathon'ы ? Вопрос открытый.

- геоданные очень прикольная штука когда они очищены и приведены в удобную форму. Можно, например, довольно быстро сделать геопортал Армении на базе TerriaJS и интегрировать туда данные из нашего портала открытых данных data.opendata.am даже сейчас пара сотен слоёв данных наберётся из открытых источников и результат даже будет вполне симпатичен и открыт. Стоит ли делать его с учётом скорого обновления maparmenia.am (не отовсюду и не всегда доступен, неизвестно чем будет после обновления) ? Стоит ли делать такой портал для других стран?

- особенность доступности данных в России что всё что на сайтах госорганов названо "открытыми данными" таковыми не является, или бесполезно, или не обновлялось от 4 до 8 лет. Создать портал открытых данных без гос-ва не так сложно, сколь сложно его держать актуальным и с тем что его надо обновлять. Перезапуск темы открытых данных в России так чтобы данные были востребованы? Ха! Самое очевидное - машиночитаемые нормативные документы и первичные нормативные документы и тексты для машинного обучения, систематизация научных данных и их агрегация и много-много-много датасетов. Это не дорого, этим некому заниматься внутри гос-ва и не похоже что появится кто-то в ближайшие годы. Но если федералы всё же запустят новую версию data.gov.ru то точно сделаем альтернативу ему, больше и лучше, просто чтобы все знали что они не умеют;)

- веб архивация, цифровая архивация находится в кризисе. Причин много, и они нарастают. Во первых многие страны огораживаются, как РФ от поисковых ботов, во вторых информации производится сильно больше чем раньше, волонтеров и НКО недостаточно, далее контент тяжелеет, далее всё больше контента в соцсетях с авторизацией и пэйволов, инструменты устаревают, соцсети блокируют доступ к контенту, а в некоторых странах нет даже политики сохранения даже ключевого контента.

#opendata #data #thoughts #webarchives #geodata
Чем с больше данных тем больше потребности в их эффективном сжатии. Из любопытных продуктов на эту тему:
- llama-zip - LLM-powered lossless compression tool, как уже понятно использует языковую модель LLAMA для сжатия текстов на английском языке. Работает только с текстами, сжимает как-то совсем неимоверно судя по примерам. Хочется дождаться его внешнего тестирования и сравнений с другими.
- ts_zip архиватор от Fabrice Bellard работающий с помощью встроенной языковой модели RWKV 169M v4 . Автор известен тем что создал NNCP, компрессор и прекомпрессор на основе нейросетей и побеждающий несколько лет в конкурсе Large Text Compression Benchmark

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

1. Если у данных есть предопределённые схемы то самый эффективный способ их отдавать - это Parquet.
2. Если хранение данных вообще ничем не ограничено, то сохранять в JSONL
3. Если данные нужны для аналитики и их хочется сохранять сжатыми, то форматы gz, br, xz, zst, lz4 и bz2 если их обрабатывать в Clickhouse и в формате gz если в DuckDB. Фактически надо использовать сжатие GZip'ом при всех его недостатках.
4. Для холодного хранения можно сжимать чем угодно дающим хорошее сжатие, например xz, bz2 или 7z


#thoughts #compression #data #datatools
В продолжение размышлений вслух:
1. О дешёвой дата инженерии. Посмотрел на днях некоторое количество курсов по data engineering и убеждаюсь что даже когда они про современный стек данных они не про оптимизацию бюджетов. После них можно понимать конкретные инструменты, иногда даже не только инструменты, но и общие принципы, но ответить на вопрос "А как сделать тоже самое только в 100 раз дешевле?" не получится. Может свой курс сделать типа cheap data engineering crush course? Навеяно чтением статей по создаю дешёвых data pipelines из говна и палок duckdb и cron с observability только уровня операционной системы.

2. О соцсетях. Из профессиональных соцсетей где есть что почитать LinkedIn вышел в лидеры с большим отрывом. Facebook превратился в бесконечный поток бытовухи, политоты и всех форм убийства времени, Twitter/X почти уже тоже. Остаются LinkedIn, Medium и Substack. А также какое-то количество профессиональных рассылок. По крайней мере в тех policy and engineering темах которые меня лично интересуют.

3. О веб архивации. По сути работа с веб-архивами это нишевая дата-инженерная отрасль. WARC файлы можно и нужно воспринимать как legacy big data, неудобные устаревшие форматы/контейнеры для неструктурированных данных, устаревшие стандарты и многое другое. Плюс технические и концептуальные вопросы краулинга контента. Очень хочется наличия современного инструментального стека, но тема настолько нишевая и настолько недофинансированная что непонятно откуда ему взяться. Непонятно кто такое может профинансировать. Человечество, в принципе, очень небрежно относится к тому что после него останется, во всех смыслах.

4. О мобильной слежке. Странно отсутствие масштабных сложных исследований/расследований про мобильную слежку противоборствующими сторонами. Хотя бы для Android'а где это проще. Например, какие мобильные приложения созданные в Турции или связанные с Азербайджаном или включают трекеры из этих стран используются в Армении. Или какие мобильные приложения аффилированные с Украиной используются в РФ и наоборот, какие приложения передающие инфу в РФ используются на Украине. Или Иран vs Израиль к примеру. Можно ещё посмотреть на грань противостояния Китай против США и Австралии и многое другое. Туда же можно ещё немало мировых конфликтов включить, за исключением тех где совсем цифровых сервисов нет. В принципе это про то надо принимать как факт что все коммерческие данные в конкретных юрисдикциях доступны спецслужбам этих стран. А может быть всё это есть, просто очень непублично;)

#thoughts
К вопросу о том сколько в мире общедоступных / открытых данных, приведу цифры чуть более приближенные к настоящим оценкам.

Всего в индексе Dateno сейчас 2 миллиона CSV файлов. Из них 144 тысячи файлов уже собраны и выгружены, на них обучаются алгоритмы и отрабатываются инструменты для выявления семантических типов, конвертации, преобразования форматов и тд. Всего эти файлы в несжатом виде составляют 697ГБ. Итого 697 ГБ / 144 * 2000 получается ~ 9.7 терабайта. Это только из проиндексированных каталогов данных и только CSV файлы. Кроме них ещё немало файлов XLS и XLSX, JSON, XML и многих других.

Ещё цифры:
- половина хранения, около 350ГБ - это 300 крупнейших CSV файлов. Наибольшие достигают размера в 11ГБ в несжатом виде
- крупнейшие датасеты выкладывают французы, канадцы, британцы и американцы на своих национальных порталах открытых данных

Если создавать архив хотя бы самых очевидных файлов в наиболее распространённых форматах потребуется порядка 100-500 ТБ хранения, конечно с оговорками что данные можно хранить сжатыми, с тем что если хранить несколько версий то старые версии можно класть в холодное хранилище и с тем что можно почистить дубликаты, но порядки примерно понятны. Большие отличия начинают возникать при хранении научных и спутниковых датасетов.

И добавлю что работа с таким бесконечным числом дата файлов вскрывает порой самые неожиданные технические челленджи. Например, то что нет функции из коробки по определению что содержание файла CSV файл. Даже если в каталоге данных написано что он CSV, на входе может быть ZIP или GZip файл с CSV внутри, HTML файл если файл уже удалили, ошибка в виде JSON ответа когда по какой-то причине сервер не отдаёт файл и так далее. Но если сервер не выдал ошибку, если файл лежит в хранилище, то лучший способ определить его формат - это прочитать и разобрать из него несколько строк. А встроенные идентификаторы формата не работают. У класса csv.Sniffer в Python слишком много ошибок False Positive (FAR), у duckdb полностью отсутствует поддержка не UTF-8 кодировок, Magika от Google выдаёт слишком много ошибок , как FAR, так и FRR. Приходится делать собственные простые инструменты.

#opendata #dateno #thoughts
Отвлекаясь от темы данных, немного о самоорганизации. Много лет, больше 15 у меня жизнь была организована по принципу zero inbox это когда каждое письмо во входящих было задачей, а далее день начинался с разбора почты. Правило нарушилось после ковида и, с перерывами на небольшие попытки чистить почту, к июню накопилось 1200+ писем.

Сегодня, наконец-то, удалось всё привести в порядок. Ура! Осталось 4 письма, все из которых являются именно задачами.

И, в который раз, я никак не могу упустить вниманием тот факт что до сих пор нигде не видел удобных автоматизированных email assistant'ов. Там даже ИИ необязательно для его эффективности. Но подход должен быть совершенно нестандартным.
1. Все письма которые информационные/рассылки легко идентифицируются их можно и нужно автоматически складывать в отдельную группу и создавать по ним ежесуточный/еженедельный дайджест.
2. Письмам можно автоматически присваивать теги и давать возможность отфильтровывать и группировать по этим тегам.
3. Куча дополнительных метаданных можно автоматически извлекать из писем и присваивать тегами или группировать. Например,
- письма от адресатов которые ранее Вам не писали
- письма от коллег
- наименования компаний из которых пишут отправители
- письма от контрагентов (по списку компаний/доменов)
4. Для гиков должен быть SQL интерфейс для фильтрации почты. Об этом я как-то уже писал

В современном мире быстрых сообщений часто почта выглядит как архаизм/анахронизм/неизбежное зло, но в корпоративном мире она никуда не исчезла и не исчезнет ещё скоро.

#selforg #email #thoughts #ideas
У меня есть регулярные аналитические задачи которые я решаю и которым сложно обучать других, не потому что нет людей способных к ним, а потому что они нетиповые и требуют опыта довольно длительного в разных областях. Это задачи по data discovery, обнаружению данных и систематизации источников. В каком-то смысле Dateno как поисковик, а до того каталоги каталогов данных появились как отражение этих задач. Потому что данные регулярно необходимо искать, находить, систематизировать и описывать.

Так вот в этих задачах ключевым является то что при всём развитии каталогизации данных за последние пару десятилетий слишком часто приходится сводить информацию из сотен полуструктурированных или неструктурированных источников и в таких задачах Dateno (пока что) мало помогает.

Вот примеры вопросов, выдуманные конечно, но близкие, таких задач.
1. Энергопотребление по странам Ближнего Востока
2. Индикаторы экономического роста и ёмкости рынка по странам Южной Африки
3. Реальная ценовая инфляция в Юго-Восточной Азии

И такого довольно много. В том числе по России, и пост-советским странам.

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

Следующий шаг - это data sources (источники данных) которые практически всегда зависят от списка дата стейкхолдеров и которые могут варьироваться от специальных порталов, до веб сайтов и отчетов международных организаций.

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

Всё это не творчество, а весьма структурированный процесс, результат которого, по сути, идёт в основу ТЗ на дата продукт.

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

Что я могу сказать точно так то что для всех областей data discovery инструментов нехватает. Dateno закрывает некоторые поисковые задачи, но не аналитические. GPT подобные инструменты не помогают в решении поиска данных когда данных нет. Но, возможно, инструменты подспорья аналитика могут быть куда как более структурированными и решать если не типовые задачи, то реализовывать типовые подсказки для их решения.

#thoughts #dateno
К вопросу об AI и больших языковых моделях, я на днях тестировал несколько LLM'ок вопросами в форме "дай мне расходы бюджета города N по по месяцам с января по май 2024 года". И пока ни один из них не дал такого расклада со ссылкой на первоисточник документа бюджета города. Только на новости на сайте мэрии и новостных агентств.

В этом важное ограничение всех этих инструментов - у них нет доступа к огромным базам данных на которых можно строить аналитику. Я вот сомневаюсь что Bloomberg или S&P Global откроют свои базы для OpenAI или чего-то подобного, если только это не будет какое-то стратегическое партнерство. А вот применение ИИ к макропрогнозированию и работе с экономическими данными - это будет реальный прорыв для одних и катастрофа для других.

Поэтому одно из самых интересных направлений которые я вижу - это связывание языковых моделей с очень специальными большими банками данных и создание новых продуктов в этих областях.

А от AI краулеров почти все СМИ и иные контентные сайты начнут стремительно закрываться. И требовать убирать их контент из индексов этих AI моделей. Потому что бизнес модель контентных сайтов через рекламу или подписку скоро начнет стремительно рушится.

#ai #data #thoughts
В последнее время у меня было несколько разговоров с разными людьми, но все на одну и ту же тему что открытые данные тесно связаны с развитием свобод и демократии и что без них их не существует или становится меньше.

Хотя такая связь и есть, но из того что я много лет наблюдаю не только по РФ, но и по другим странам я вижу гораздо большую связь с устойчивостью государства, экономикой и качеством госуправления, которые, часто, высоки именно в развитых демократиях, но, при этом в демократиях бедных, к примеру, тема открытых данных не развита или на 100% зависит от внешних грантов.

В то время как внутренние инициативы по открытости данных есть в самых разных странах: Китае, Вьетнаме, Катаре, ОАЭ, Казахстане, Таиланде и даже в России в каком-то виде. Это те страны которые, к примеру, по Democracy Matrix [1] относятся к автократиям.

Про каждую страну можно не одну статью написать почему это так, и почему в этих странах, не входящих в ОЭСР или Open Government Partnership есть довольно продвинутые инициативы, законы, порталы и научные проекты про открытые данные и на их основе.

Почему так происходит? Что общего в этих странах?

У меня нет универсального ответа на этот вопрос, но есть несколько гипотез:
1. Вне зависимости от политического руководства страны не оспаривается нигде тезис что работа госаппарата по созданию и распределению общественного блага. По мере роста числа квалифицированных пользователей данными сотрудники госорганов как минимум часть своей работы раскрывают как данные просто потому что требуются дополнительные усилия чтобы эти материалы публиковать неудобным образом (в закрытых немашиночитаемых форматах).
2. Даже в авторитарных странах есть публичная коммуникация государства с гражданами и по мере нарастания госрасходов на информатизацию, раскрытие части данных является ответом на общественные запросы: "Зачем Вы потратили на это столько денег?", "Какая с этого польза гражданам?"
3. Коммуникация с местным и международным цифровым бизнесом, привлечение зарубежных инвесторов, демонстрация открытости рынка. В авторитарных странах чаще на порталах открытых данных речь идёт о коммуникации с бизнесом.
4. Развитие науки, создание проектов с раскрытием открытых научных данных
5. Демонстрация того что "вы называете нас авторитарными, а посмотрите, у нас качество госуправления и открытость повыше вашей"
6. Демонстрация устойчивости государства: "Мы сильные и устойчивые, нам нечего скрывать, наша открытость нас не пугает"

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

А есть и взгляд с другой стороны. Когда инициативы по открытости закрываются с невнятной коммуникацией ( Россия ) или когда вместо портала открытых данных есть портал закрытых данных только для граждан и с получением не более чем по 100 записей за раз (Казахстан), такие инициативы не говорят об устойчивости гос-ва, они дают только сигналы: "Мы боимся!", "Мы не умеем этим управлять!".

А я ещё не раз напишу с примерами о том как данные публикуют в недемократических государствах.

Ссылки:
[1] https://www.democracymatrix.com/ranking

#opendata #data #thoughts
К вопросу о каталогах данных, которые я изучаю вот уже много лет, в особенности каталоги общедоступных и открытых данных, чем больше я наблюдаю рынок, экосистему и тд. в том числе относительно больших каталогов данных, тем больше убеждаюсь что весь этот рынок за очень короткое время может перемешать Microsoft или, с меньшей вероятностью, Gitlab, реализовав в Github/Gitlab такое понятие как репозиторий данных.

По сути и так огромное число датасетов публикуют через Git, особенно научные репозитории выкладывают на Github, а на размещённое там уже дают ссылки с какого нибудь Zenodo.

Причём сделать дата репозитории Microsoft может сделать очень дешёвым образом.
1. Добавить атрибут data к репозиториям с данными, чтобы их можно было бы выделить в поиске.
2. Добавить спецификацию в YAML с метаданными датасета/датасетов в этом репозитории. За основу можно взять DCAT.

К счастью или к сожалению, ничего такого они не делают и, как следствие, своего поиска по данным у Microsoft нет. Но если бы сделали то Github было бы проще индексировать с помощью Dateno.

#opendata #datasets #microsoft #github #thoughts