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

    @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 комментарий
  • Как написать нейросеть способную распознать улицы на которых ведутся работы через NLP?

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

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