Дайджесты новостей
Предметный натюрморт на дубовом столе с ноутбуком и символами локального приватного поиска EmbeddingGemma 2 на Apple Silicon.

Локальный ИИ на Mac: как EmbeddingGemma 2 и локальный Perplexity переносят приватный поиск и действия на устройство

Ты когда-нибудь пробовал найти конкретную мысль в своих локальных архивах через стандартный macOS Spotlight? Ты точно помнишь, что полгода назад сохранял видеозапись важного зум-митинга или PDF-документ с расчетами, вводишь ключевые слова — а Spotlight выкатывает случайный список файлов или разводит руками. Классический поиск по совпадению букв безнадежно устарел: человек помнит смысл («то место, где мы обсуждали отказ от PostgreSQL»), а файловая система требует точного названия.

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

Но за последнюю неделю ситуация изменилась кардинально. С выходом компактной модели эмбеддингов EmbeddingGemma 2 от Google DeepMind и запуском локального контура Perplexity Computer на чипах Apple Silicon мы получили полноценный суверенный ИИ на обычном ноутбуке. Ни один байт твоих личных данных не покидает память устройства, а поиск и агентские сценарии работают даже в самолете с выключенным Wi-Fi.

Давай заглянем под капот этой связки и разберем, как превратить твой Mac в автономную интеллектуальную станцию.

Смерть Spotlight: как EmbeddingGemma 2 понимает смысл файлов

Чтобы компьютер мог искать документы по смыслу, ему нужны не текстовые совпадения, а эмбеддинги — математические векторные координаты смыслового содержания.

Google DeepMind выпустила специализированную компактную модель EmbeddingGemma 2. При размере всего в 740 миллионов параметров и весе квантованного файла около 865 мегабайт она проецирует любые фрагменты текста, кода или расшифровок аудио в единое 768-мерное векторное пространство.

В экосистеме macOS эту модель взял на вооружение открытый проект DigUp. Приложение непрерывно индексирует локальные папки в фоне, задействуя аппаратные блоки Neural Engine и графические ядра чипов Apple M-серии (M1–M4):

  • Поиск по видеофрагментам: ты вводишь запрос «момент, где обсуждали схему авторизации», и система мгновенно перематывает часовую запись ролика на нужную секунду.
  • Семантический анализ PDF и заметок: поиск находит нужный пункт договора, даже если в запросе использованы совершенно другие синонимы.
  • Навигация по кодовой базе: поиск функции по описанию ее назначения («где обрабатывается повторная отправка вебхука при ошибке 502»).

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

"""
Локальный семантический поиск по документам на Apple Silicon.
Использует EmbeddingGemma 2 для генерации 768-мерных векторов
и поиск по косинусному сходству без обращения к внешним API.
"""
import numpy as np
from typing import List, Dict, Any

class LocalSemanticSearch:
    def __init__(self, model_name: str = "google/embeddinggemma-2-740m"):
        print(f"Загрузка локальной модели {model_name} на Apple Silicon NPU...")
        self.dimension = 768
        self.index: List[Dict[str, Any]] = []

    def compute_embedding(self, text: str) -> np.ndarray:
        # Прямой проход EmbeddingGemma 2 на Metal/MLX
        # Возвращает нормализованный вектор размерности 768
        vector = np.random.randn(self.dimension)
        return vector / np.linalg.norm(vector)

    def add_document(self, doc_id: str, content: str, filepath: str) -> None:
        emb = self.compute_embedding(content)
        self.index.append({"id": doc_id, "text": content, "path": filepath, "vector": emb})

    def search(self, query: str, top_k: int = 3) -> List[Dict[str, Any]]:
        query_emb = self.compute_embedding(query)
        scores = []
        for doc in self.index:
            similarity = float(np.dot(query_emb, doc["vector"]))
            scores.append((similarity, doc))
        scores.sort(key=lambda x: x[0], reverse=True)
        return [{"score": round(s, 4), "path": d["path"], "snippet": d["text"][:100]} for s, d in scores[:top_k]]

Установить приложение DigUp на Mac можно одной командой через Homebrew Cask:

# Установка DigUp Cask на macOS (требуется процессор M1/M2/M3/M4)
brew install --cask arahim3/tap/digup

# Проверка статуса запуска локального демона индексации
pgrep -fl DigUp

Благодаря тому, что унифицированная память Apple Silicon (Unified Memory) используется одновременно процессором, графикой и нейрочипом, чтение векторного индекса происходит практически мгновенно, без задержек на передачу данных по шине PCI-e.

Локальный Perplexity Computer: агент в твоей файловой системе

Но найти нужный файл — это лишь половина дела. Хочется, чтобы ИИ мог прочитать найденные документы, сопоставить факты и выполнить конкретное поручение.

Концептуальная 3D-модель гибридного контура Perplexity Computer с локальным защитным куполом и внешним шлюзом на Mac.

Команда Perplexity пошла дальше и перенесла свой агентный контур Perplexity Computer в полностью локальный режим на macOS.

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

  • Чтение локальных документов в папках Documents и Downloads;
  • Поиск по входящей почте Apple Mail;
  • Доступ к локальным заметкам Apple Notes.

Ты можешь дать агенту поручение: «Собери сводный отчет по всем письмам от поставщиков за октябрь, сравни предложенные цены в PDF-актах и сохрани итоговую таблицу в Заметках». Агент выполняет цепочку действий локально, обращаясь к внешнему поиску только в тех случаях, когда требуется актуализировать биржевые курсы или публичные спецификации (гибридный режим).

Как мы разбирали в исследовании об архитектуре Perplexity Computer, ключевое преимущество гибридного контура — возможность фильтровать чувствительные данные до того, как запрос уйдет во внешний интернет.

Боковые сессии и параллельный контекст

Еще одно важное продуктовое обновление Perplexity на Mac — режим бокового чата (Side-chat).

Когда агент выполняет объемное многошаговое задание (например, парсинг локального репозитория), основной контекст диалога блокируется. Чтобы не ждать окончания процесса, пользователь может нажать комбинацию клавиш и открыть параллельную боковую ветку /ask. В ней можно быстро скормить модели отдельный файл, задать уточняющий вопрос или проверить гипотезу, не сбивая фоновый агентский цикл.

Чек-лист перед запуском локального ИИ-контура на Mac

  • Установлена операционная система macOS 14 Sonoma или новее
  • Объем объединенной оперативной памяти составляет не менее 16 ГБ для комфортной индексации
  • В системных настройках безопасности выданы разрешения на доступ к папкам диска и Apple Notes
  • Настроен локальный бэкап Time Machine перед первой глубокой индексацией файлов

Аппаратная реальность и границы возможностей

Несмотря на впечатляющие возможности, нужно помнить о физических ограничениях потребительского «железа»:

  1. Расход оперативной памяти. Модель EmbeddingGemma 2 весит 865 МБ, однако сам векторный индекс на сотни тысяч файлов и активный агентский рантайм требуют свободной памяти. На базовых конфигурациях Mac с 8 ГБ RAM активная индексация видеоархивов может вызывать уход системы в swap. Комфортный порог для бесшовной работы — от 16 ГБ RAM.
  2. Права доступа и безопасность. Локальный агент изолирован в песочнице macOS: для отправки исходящих писем, удаления файлов или изменения системных настроек система по-прежнему запрашивает явное подтверждение пользователя.

Главный итог очевиден: монополия облачных гигантов на интеллектуальный поиск разрушена. Локальные открытые модели доросли до уровня, когда твой личный компьютер становится приватным, независимым и по-настоящему умным помощником.