Задать вопрос
Marakase
@Marakase

Как написать нейросеть способную распознать улицы на которых ведутся работы через NLP?

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

В этой задаче нейросети необходимо распознать смысл текста (Текста представлены на РУССКОМ языке) и найти в нем, именно те улицы на которых ведутся работы, а не все улицы из текста. Использование распознавания именованных сущностей (Natasha, Spacy) в данной задаче не подходит т.к. В тексте могут находится улицы не обозначающие место работы.

P.S. Я понимаю, что у нейросети есть вероятность не обнаружения нужных мне данных. Не нужно про это писать

1 вопрос: Есть ли примеры схожих работ по моему запросу?
2 вопрос: Поделитесь ссылками(?), знаниями(?), статьями(?) для более глубокого изучения моего запроса.
3 вопрос: Какую готовую модель на русском языке можно дообучить для моей задачи?
4 вопрос: Есть ли уже готовые DataSet-ы которые могут подойти для моей задачи?
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Сложный 4 комментария
Решения вопроса 1
@rPman
У тебя ошибка в терминах - работой с текстами занимаются языковые модели, а 'распознавание текста' это работа с изображением или звуком с целью преобразования его в текст.

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

Лучшее что сейчас есть готовое это LLM на основе трансформера (GPT). Предобученных моделей огромное количество, из открытых и более менее рабочих - opt (не доступна нормальная 175b и кажется только английский) и bloomz (мультиязыковая, смотри таблицу разных размеров) но они значительно слабее chatgpt35 и никто не приблизился к chatgpt4. По ссылкам подробное описание, там есть информация как использовать примеры. К сожалению работа с языковыми моделями требует очень дорогое оборудование, а на процессоре они работают в сотни раз медленнее (код так написан, он оптимизирован для gpu).

Что значит слабее - это значит хоть знаний в этим модели влито огромное количество, но воспользоваться ими можно будет качественно только после fine tuning - дообучения на своих данных (примеры вопрос - ответ например, но не обязательно), главное тут то что количество данных для этого может быть очень маленьким (тысячи или даже сотни примеров). Есть алгоритмы peft - которые вместо тюнинга самой модели, работают с весами токенов запроса, это не вносит новых знаний в модель но увеличивает качество ответа (этим пользуются во время проведения бенчмарков сравнения моделей, например prompt tuning), я слышал что для этих алгоритмов количество примеров может быть еще меньше - десятки.

p.s. llama одна из лучших 'доступных' моделей (мультиязычная от 30b) но использование ее без разрешения facebook нелегально, и ее можно даже не дообучать (но рекомендуется добавлять в запрос хотя бы один-два примера, сколько позволит мизерный размер контекста в 2к токенов), с ее качеством можно буквально анализировать смысл текста простыми вопросами.

llama.cpp - код по запуску (не обучению) gpt моделей, не только llama, на процессоре (есть слабая поддержка gpu) оптимизированно на столько хорошо, что медленее дорогих сборок с gpu в десяток раз (а десктопные могут работать сравнимо с топовыми cpu), например llama30b обрабатывает 250мс на токен запроса и 500мс на генерацию (65b - 1100мс на генерацию).

Из недостатков - слабая логика и плохая детекция конца ответа (может уйти в генерацию мусорного текста), требует определять логику завершения генерации 'снаружи', например часто достаточно выставить финишным текстом ### (управляющие символы, часто встречаются в галюцинациях и могут использоваться для оформления запроса)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
по-моему, достаточно векторной близости безо всяких нейросетей
ну или обучить корпус кивордам, говорящим о ремонте, их будет штук 20 (если не 5) для официоза, и 200 для простой речи

к слову, в новомодных GTP в основе все она же, родимая
хорошо видно по казусам
просто корпус огромный и тут уже предобучение решает
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы