Обзор Браузера Dia
Dia — это новый веб-браузер, разработанный компанией The Browser Company, ранее известной по продукту Arc. В отличие от своего предшественника(который они закрыли), Dia ориентирован на максимально простое и привычное взаимодействие, но с интеграцией AI. Кстати данный браузер вы не установите на мак на процессоре Intel, только на M чипы. И браузер не работает из РФ. Вы просто не залогинились в аккаунт.
Для проверки откуда вы его запускаете браузер использует сервис LaunchDarkly, который и дает комманду на установку флагов в браузере и проверяет запуск.
Я решил немного потрогать их алфа версию и отпишусь по особенностям и что нашел.
На чем основан?
Кратко:Chromium Engine Version 138.0.7204.101
Подсмотрим в /Applications/Dia.app/Contents/Info.plist
SDK Used: macOS 15.2 (macOS Sequoia beta)
Minimum OS: macOS 14.0 (Sonoma)
Также обновления с адреса https://releases.diabrowser.com/BoostBrowser-updates.xml проверяются каждые 8 часов.
AI Ассистент
— Встроенный ИИ-ассистент: Чат-бот интегрирован прямо в адресную строку
Из РФ ассистент не работает корректно, мы получаем ошибку:
authenticationFailed(AuthClient.AccountServiceError (code: AuthClient.AccountServiceErrorCode.restrictedCountry, message: nil))
Но если вы не в РФ, то все работает отлично
Ассистенту можно задать вопрос про контент на странице:
- Выбирать несколько элементов или несколько вкладок и уточнить необходимые вам детали, я вот попросил выбрать лучший роутер и сравнить их:
Что под копотом?
Расширения и фреемворки
Посмотрим какие расширения у нас стоят из коробки в браузере.
Открываем страницу : chrome://extensions-internals, которая нас редектит на dia://extensions-internals/ и подсматриваем в json. Что у нас есть:
- Web Store — Аналог Chrome Web Store, адаптирован под Arc/Dia
- Arc internal extension — Внутренняя логика браузера
- Chromium PDF Viewer — Просмотр PDF
- Google Hangouts — Интеграция с Google Hangouts
Посмотрим фреемворки приложении:
cd /Applications/Dia.app/Contents/Frameworks
- ArcCore.framework — Основное ядро браузера Arc — управление интерфейсом, вкладками, Spaces и т.д.
- GRDB.framework — Локальное хранение данных через SQLite (история, закладки, настройки и т.п.).
- libAIInfra.dylib — Внутренняя библиотека.
- libAIInfraTestBindings.dylib — Судя по названию для отладки и тестирования либы
libAIInfra. - Lottie.framework — Анимаций в интерфейсе (например, при переключении между вкладками).
- Sentry.framework — Сбор краш-репортов
- Sparkle.framework — Автоматическое обновление приложения на macOS.
Содержимое ./Resources/
Посмотрим что у нас по ресурсам? Что интересно бандлы до сих пор имеют преффиксы в названиях сторого творения компании ARC..
- ADK_ADK.bundle и ARCClients_BlockListClient.bundle AdBlock встренный из интересного, есть вот такая структура:
"id": "ua",
"display_name": "RU AdList",
"type": "regional",
И большой список адресов. Я их себе скачал, засуну в свой AdGuard DNS
- ARCClients_AppRestartClient.bundle Перезапускалка браузера. Внутри короткий sh скипт, который мониторит запуск браузера
- AIInfra_LocalClassification.bundle Модуль отвечающий за локальную классификацию данных с помощью искусственного интеллекта. У нас лежит файл vocab.txt в котором у нас словарь токенизатора возможно для DistilBERT. Интересно что есть слова: russia,russian
- swift-transformers_Hub.bundle Реализация Hugging Face Transformers на Swift.Для работы с NLP-моделями локально.
- OnDeviceLoRAadaptors.bundle LoRA — метод дообучения LLM,т.е есть возможность адаптировать модели под конкретные задачи без полного переобучения В директории OnDeviceLoRAadaptors.bundle конфигурационный файл модели DistilBERT - config.json:
{
"_name_or_path": "distilbert-base-uncased",
"activation": "gelu",
"architectures": [
"DistilBertForSequenceClassification"
],
"attention_dropout": 0.1,
"dim": 768,
"dropout": 0.1,
"hidden_dim": 3072,
"id2label": {
"0": "LABEL_0",
"1": "LABEL_1",
"2": "LABEL_2"
},
"initializer_range": 0.02,
"label2id": {
"LABEL_0": 0,
"LABEL_1": 1,
"LABEL_2": 2
},
"max_position_embeddings": 512,
"model_type": "distilbert",
"n_heads": 12,
"n_layers": 6,
"pad_token_id": 0,
"qa_dropout": 0.1,
"seq_classif_dropout": 0.2,
"sinusoidal_pos_embds": false,
"tie_weights_": true,
"torch_dtype": "float16",
"transformers_version": "4.44.2",
"vocab_size": 30522
}_name_or_path:"distilbert-base-uncased"Модель основана на предобученном DistilBERT (без регистра букв, английская версия).model_type:"distilbert"-Тип архитектуры — дистиллированный BERT.architectures:["DistilBertForSequenceClassification"]Модель предназначена для классификации текстаvocab_size:30522Размер словаря (количество уникальных токенов).torch_dtype:"float16"Используется половинная точность (FP16) для экономии памяти и ускорения вычислений.dim:768Размерность эмбеддингов (векторное представление токенов).hidden_dim:3072Размерность скрытого слоя в feed-forward сети (внутри трансформера).n_layers: Количество слоёв трансформера (в оригинальном BERT — 12, тут в 2 раза меньше).n_heads:12Количество голов внимания (attention heads) в механизме self-attention.max_position_embeddings:512Максимальная длина входной последовательности (в токенах).
Также рядом с конфигом у нас лежат и веса и LoRA-адаптеры:
Resources ls cmd_t_router_adapter_model_overrides.safetensors cmd_t_router_adapter_model.safetensors cmd_t_router_classification_head_overrides.safetensors cmd_t_router_classification_head.safetensors config.json distilBERTbase_part1.safetensors distilBERTbase_part2.safetensors sensitive_content_adapter_model.safetensors sensitive_content_classification_head.safetensors skills_adapter_model.safetensors skills_classifier_head.safetensors
- mlx-swift_Cmlx.bundle MLX — фреймворк для работы с машинным обучением на Apple Silicon, т.е он нужен для ускорения вычислений для AI-моделей на Mac.
- swift-transformers.Hub.resources Нужен для работы gpt2 и seq2seq моделями, об этом нам накают файлы: gpt2_tokenizer_config.json и t5_tokenizer_config.json
- ARCClients_Integrations.bundle и ARCClients_LiveDataClient.bundle Интеграция с различными сервисами, а именно: Получение транскриптов и метаданных видео в Youtube, работа с Notion, Google Docs и т.д. Прям лежат скрипты, можно подсмотреть.