1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-sentencepiece

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
experiments.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 12:10 8f38d5b

Эксперименты с SentencePiece

Эксперимент 1 (модели на основе subwords против моделей на основе слов)

Настройки эксперимента

  • Алгоритмы сегментации:

    • SentencePiece: SentencePiece с сегментацией на основе языковой модели. (--model_type=unigram)
    • SentencePiece(BPE): SentencePiece с использованием Byte Pair Encoding. [Sennrich et al.] (--model_type=bpe)
    • Moses: токенизатор Moses для английского языка.
    • KyTea: KyTea для японского языка.
    • MeCab: MeCab для японского языка.
    • neologd: MeCab с neologd для японского языка.
    • (Moses/KyTea)+SentencePiece: Применение SentencePiece (Unigram) к предварительно токенизованным предложениям. У нас есть несколько вариантов с различными токенизаторами, например, (Moses/MeCab)+SentencePiece, (MeCab/Moses)+SentencePiece.
    • char: Разбиение предложения на символы.
  • Наборы данных:

  • Параметры NMT: (система Google для нейронного машинного перевода применяется ко всем экспериментам.)

    • Вероятность dropout: 0.2
    • Число узлов: 512
    • Число LSTM: 6
    • Параметры декодера (α и β) оптимизируются с помощью разработочных данных.* Оценочные метрики:
    • Case-sensitive BLEU для дефрагментированного текста с использованием NIST scorer и KyTea segmenter. Используется встроенный правилом-подобный дефрагментатор для Moses/KyTea/MeCab/neologd. ### Результаты (оценки BLEU)

Английский к Японскому

Настройка Размер словаря BLEU(тест) BLEU(валидация) Количество символов в исходном тексте Количество символов в целевом тексте
SentencePiece 4k (общий) 0.2857 0.2940 43.7478 29.6998
SentencePiece 8k (общий) 0.2785 0.2955 30.9734 25.0540
SentencePiece 16k (общий) 0.2664 0.2862 27.1827 21.5326
SentencePiece 32k (общий) 0.2641 0.2849 25.0592 19.0840
SentencePiece(BPE) 8k (общий) 0.2767 0.2947 31.7693 25.4331
(Moses/KyTea)+SentencePiece 8k (общий) 0.2900 0.2985 31.2719 29.9854
(Moses/MeCab)+SentencePiece 8k (общий) 0.2817 0.2950 31.4743 28.9537
(Moses/neologd)+SentencePiece 8k (общий) 0.2824 0.3062 31.2985 28.8645
Moses/Kytea 80k/80k 0.2576 0.2824 21.2513 23.2161
Moses/MeCab 80k/80k 0.2455 0.2780 21.2513 21.2033
Moses/neologd 80k/80k 0.2157 0.2378 21.2513 18.4768
Moses/SentencePiece 80k/8k 0.2475 0.2742 21.2513 22.9383
SentencePiece/KyTea 8k/80k 0.2778 0.2918 27.0429 23.2161
SentencePiece/MeCab 8k/80k 0.2673 0.2919 27.0429 21.2033
SentencePiece/neolgod 8k80k 0.2280 0.2494 27.0429 18.4768

Японский к английскому

Настройка Размер словаря BLEU(dev) BLEU(test) Количество символов в исходном тексте Количество символов в целевом тексте
SentencePiece 4k (общий) 0.1970 0.2179 29.6998 43.7478
SentencePiece 8k (общий) 0.1966 0.2162 25.0540 30.9734
SentencePiece 16k (общий) 0.1996 0.2160 21.5326 27.1827
SentencePiece 32k (общий) 0.1949 0.2159 19.0840 25.0592
SentencePiece(BPE) 8k (общий) 0.1977 0.2173 25.4331 31.7693
(KyTea/Moses)+SentencePiece 8k (общий) 0.1921 0.2086 29.9854 31.2719
(neologd/Moses)+SentencePiece 8k (общий) 0.1938 0.2137 28.8645 31.2985
KyTea/Moses 80k/80k 0.1707 0.2006 23.2161 21.2513
MeCab/Moses 80k/80k 0.1668 0.1892 21.2033 21.2513
neologd/Moses 80k/80k 0.1589 0.1836 18.4768 21.2513
SentencePiece/Moses 8k/80k 0.1727 0.1994 22.9383 21.2513
KyTea/SentencePiece 80k/8k 0.1939 0.2141 23.2161 27.0429
MeCab/SentencePiece 80k/8k 0.1892 0.2077 21.2033 27.0429
neologd/SentencePiece 80k/8k 0.1641 0.1804 18.4768 27.0429
Char 3k (общий) 0.0824 0.0918 33.6963 109.8662
  • SentencePiece (Unigram/BPE) превосходит методы на основе слов (Moses/KyTea/MeCab/neologd) даже при меньшем размере словаря (10% от методов на основе слов).
  • Количество символов для представления японских предложений почти одинаково между SentencePiece (unigram) и KyTea, хотя размер словаря SentencePiece значительно меньше. Это указывает на то, что SentencePiece эффективно сжимает предложения с использованием меньшего набора лексики.
  • Предварительная токенизация может немного повысить значения BLEU для перевода с английского на японский. В переводе с японского на английский предварительная токенизация не помогает улучшить значение BLEU.
  • Neologd показывает низкие значения BLEU. Токенизация предложений с использованием большого словаря имен существительных может оказаться неэффективной в нейронной обработке текста.
  • SentencePiece(Unigram) демонстрирует немного лучший коэффициент сжатия текста по сравнению с BPE, но значительных различий в значениях BLEU нет.
  • Выбор размера словаря для SentencePiece чувствителен при переводе с английского на японский. Вероятно, это связано с тем, что размер словаря будет сильно влиять на результаты токенизации в японском языке, который не имеет явных пробелов между словами.## Эксперименты 2 (токенизация на уровне подслов с различными предварительными токенизациями)

Настройки эксперимента

Мы оценили токенизацию SentencePiece с помощью следующих конфигураций.* Алгоритмы сегментации: * BPE (Byte Pair Encoding) [Sennrich et al.] (--model_type=bpe) * Unigram. Сегментация на основе языковой модели. (--model_type=unigram)* Методы претокенизации: * NoPretok: Отсутствие претокенизации. Мы обучаем SentencePiece непосредственно на основе сырого текста (--split_by_whitespace=false). * WsPretok: Обучение SentencePiece модели на основе предварительно разделённых пробелами предложений (--split_by_whitespace=true). При работе с CJK этот метод практически эквивалентен NoPretok. * MosesPretok: Обучение SentencePiece модели на основе предварительно разделённых предложениям Moses tokenizer. Для японского мы использовали KyTea, а для корейского и китайского — встроенные сегментаторы соответственно.

  • Параметры NMT:

    • 16k общего словаря (словарь используется одинаково для источника и целевого текста. Мы обучаем единую модель SentencePiece путём объединения сырого текста источника и целевого текста)
    • Вероятность dropout: 0.2
    • Количество узлов: 512
    • Количество LSTM: 8
  • Оценочные метрики:

    • Case-sensitive BLEU для детокенизированного текста с использованием NIST scorer.
    • Для CJK перед применением NIST scorer используются те же сегментаторы.
    • Детокенизатор не применяется для NoPretok и WsPretok, которые могут выдавать детокенизованные предложения напрямую.
    • Применяются Moses детокенизатор и встроенный правильный детокенизатор (для CJK) для MosesPretok.* Наборы данных:
    • KFTT
    • MultiUN (Первые 5 миллионов и следующие 5 тысяч/5 тысяч предложений используются для обучения и развития/тестирования соответственно.)
    • WMT16
    • Внутренние данные: (Используются 5 миллионов параллельных предложений для обучения)

NoPretok и WsPretok не используют никаких языковых зависимостей. BPE + MosePretok почти такой же конфигурацией, как в [Sennrich et al.] и [Wu et al.].

Результаты (оценки BLEU)

Пара языков BPE (Без предтокенизации) BPE (С пробелами) BPE (MosesPretok) Unigram (Без предтокенизации) Unigram (С пробелами) Unigram (MosesPretok)
KFTT en-ja 0.2796 0.281 0.286 0.2806 0.280 0.2871
KFTT ja-en 0.1943 0.208 0.1967 0.1985 0.2148 0.198
MultiUN ar-en 0.5268 0.5414 0.5381 0.5317 0.5449 0.5401
MultiUN en-ar 0.4039 0.4147 0.4012 0.4084 0.4172 0.3991
MultiUN en-zh 0.4155 0.4186 0.395 0.4214 0.4165 0.399
MultiUN zh-en 0.46 0.4716 0.4806 0.4644 0.4711 0.4759
In house en-ko 0.178 0.1851 0.1893 0.1846 0.1872 0.1890
In house ko-en 0.1786 0.1954 0.1994 0.1845 0.1956 0.2015
WMT16 cs-en 0.1987 0.2252 0.2231 0.2164 0.2228 0.2238
WMT16 de-en 0.3194 0.3348 0.3374 0.3261 0.3375 0.3398
WMT16 en-cs 0.1607 0.1827 0.1812 0.1722 0.1778 0.179
WMT16 en-de 0.2847 0.3029 0.3013 0.2946 0.3000 0.3053
WMT16 en-fi 0.1434 0.1528 0.1499 0.1472 0.1568 0.1517
WMT16 en-ru 0.1884 0.1973 0.1989 0.19 0.1982 0.1903
WMT16 fi-en 0.1775 0.1867 0.1877 0.182 0.1882 0.1865
WMT16 ru-en 0.2042 0.2229 0.2194 0.2087 0.2201 0.2155
  • Предтокенизация с пробелами является разумным выбором. Она не требует специализированных ресурсов для конкретного языка.
  • Без предтокенизации показывает низкие оценки BLEU. Однографемные модели более устойчивы, чем BPE, когда нет предтокенизатора.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-sentencepiece.git
git@api.gitlife.ru:oschina-mirror/mirrors-sentencepiece.git
oschina-mirror
mirrors-sentencepiece
mirrors-sentencepiece
master