# PLaMo-Embedding-1B для Core ML: японский поиск на iOS и Mac

Источник: https://modelium.tech/zhurnal/plamo-embedding-1b-coreml-japanese-search-ios-mac/

28 сентября 2026 года появилась неофициальная Core ML-конверсия японского эмбеддера PLaMo-Embedding-1B. В репозитории доступны три FP16-пакета с фиксированной длиной входа 128, 256 и 512 токенов; их можно интегрировать в приложение iOS/macOS для локального векторного поиска. Исходная модель и конверсия помечены Apache 2.0, но клиенту нужны токенизатор и собственная подготовка масок. Скорость и качество на устройстве Modelium не измерял.

PLaMo-Embedding-1B для Core ML: японский поиск на iOS и Mac

28 сентября 2026 года разработчик masahiroid загрузил **неофициальную конверсию** PLaMo-Embedding-1B в Core ML. Оригинал Preferred Networks появился в 2025 году; новость не о новой базовой модели, а о возможности встроить её веса в локальное приложение для японского семантического поиска на iOS или macOS. История репозитория подтверждает дату загрузки, а карточка прямо называет производный пакет неофициальным. [s1](#src-s1) [s2](#src-s2)

## Что опубликовано

В закреплённой ревизии `073f5b47` находятся три `.mlpackage` в FP16: для последовательностей **128, 256 и 512 токенов**. Каждый пакет содержит `model.mlmodel`, `Manifest.json` и полный файл `weight.bin`; размеры файлов весов по API Hugging Face — 2 101 404 672, 2 101 470 208 и 2 101 601 280 байт соответственно. Это размер файлов на диске, **не требование к оперативной или объединённой памяти**. Токенизатор не вложен в конверсию: карточка предлагает использовать `tokenizer.model` из исходного репозитория. INT8-версию автор сознательно не выпустил: в его сравнении она заметно расходилась с FP16. [s1](#src-s1) [s3](#src-s3)

Выход — 2048-мерный эмбеддинг с нормализацией L2 и усреднением по маске. Для документа авторский пример подаёт одинаковые `attention_mask` и `embed_mask`; для поискового запроса исходная реализация добавляет японскую инструкцию `次の文章に対して、関連する文章を検索してください: `и исключает её токены из `embed_mask`. Если не повторить эту подготовку на стороне приложения, запрос и индекс будут кодироваться иначе. Core ML-пакеты имеют фиксированные длины, поэтому клиент должен сам выбрать подходящий пакет, токенизировать строку и сформировать три массива входов. Это компонент для разработчика, а не готовое приложение или универсальная команда запуска. [s1](#src-s1) [s4](#src-s4)

## Лицензия и проверка качества

Исходные веса Preferred Networks сопровождаются `LICENSE.txt` Apache 2.0; производный репозиторий также помечен Apache 2.0. Это лицензия весов, а не обещание, что любые приложения, наборы данных или дополнительные компоненты автоматически имеют те же условия. Автор конверсии сообщает косинусное сходство **0,9976–0,9996** между её выходом и исходной реализацией на своём сравнении, но признаёт различие в обработке специальных токенов и не приводит здесь независимую оценку качества поиска на датасете. Значения — **замеры автора**, не тест Modelium и не гарантия одинаковой ранжировки. У оригинала в карточке есть результаты JMTEB, но переносить их без новой оценки на Core ML-версию нельзя. [s1](#src-s1) [s2](#src-s2) [s5](#src-s5)

## Как принять решение о внедрении

Для прототипа японского поиска разработчик может выбрать пакет по нужной длине, взять исходный SentencePiece-токенизатор, реализовать две маски и сравнить выдачу на собственных парах запрос–документ с исходным `encode_query`/`encode_document`. Пример загрузки через Swift `MLModel` и Python `coremltools` приведён в карточке конверсии, но там остаются места для заполнения токенизации и массивов; выдавать его за готовое приложение нельзя. Перед коммерческим внедрением нужны собственные проверки точности, скорости, памяти и юридических условий всего стека. Modelium веса не загружал на устройство и инференс не запускал. [s1](#src-s1) [s4](#src-s4)

**Первоисточники:** закреплённая карточка и дерево файлов конверсии, история коммитов, карточка/лицензия и исходный код оригинальной модели. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3) [s4](#src-s4) [s5](#src-s5)

## Источники

1. [masahiroid/plamo-embedding-1b-coreml — карточка конверсии](https://huggingface.co/masahiroid/plamo-embedding-1b-coreml/blob/073f5b47da289a901a9dc91d3582b803de286d29/README.md) — получено 2026-09-28
2. [masahiroid/plamo-embedding-1b-coreml — история коммитов](https://huggingface.co/masahiroid/plamo-embedding-1b-coreml/commits/main) — получено 2026-09-28
3. [masahiroid/plamo-embedding-1b-coreml — закреплённое дерево весов](https://huggingface.co/masahiroid/plamo-embedding-1b-coreml/tree/073f5b47da289a901a9dc91d3582b803de286d29) — получено 2026-09-28
4. [Preferred Networks — исходная реализация PLaMo-Embedding-1B](https://huggingface.co/pfnet/plamo-embedding-1b/blob/f47268047fb3df74113675700c1e9dacdc68cb47/modeling_plamo.py) — получено 2026-09-28
5. [Preferred Networks — карточка и Apache 2.0 LICENSE оригинала](https://huggingface.co/pfnet/plamo-embedding-1b/blob/f47268047fb3df74113675700c1e9dacdc68cb47/LICENSE.txt) — получено 2026-09-28
