Ответы пользователя по тегу Нейронные сети
  • Есть ли свободная программа для преобразования аудио в текст?

    @rPman
    https://github.com/openai/whisper
    модель автоматом скачивается, поддерживается куча языков, результат выдает с таймингами в формате субтитров
    Ответ написан
    Комментировать
  • Почему у языковых моделей такой маленький размер контекста?

    @rPman
    Требования к оперативной памяти для работы ллм от размера контекста в худшем квадратичная, там матрица со сторонами в размер контекста, на каждом слое, например у llama их 700слоев (есть лайфхаки, уменьшающие это требование для ситуаций, когда можно ограничить расстояние для взаимо зависимых токенов но не на весь текст... Там таблица получается разряженной, много нулей, на этом можно что то оптимизировать

    Т.е. увеличивая контекста в 2 раза, увеличиваешь требование к памяти в 4 раза а энергии на обучение ещё в 2 раза больше, т.е.8 раз (там тоже чем больше тем хуже оптимизация)

    Напоминаю что объем памяти это капитальные затраты, а на вычисления (энергию) - операционные
    Ответ написан
  • Как конвертировать чат в вопросы и ответы?

    @rPman
    Сядь и подробно опиши, как ты будешь описывать эту работу человеку, причем максимально далекому от темы, не очень сообразительному но внезапно эрудированному (считай что написанное этот человек будет понимать сразу, с учетом опечаток, сленга и т.п., этому обучать не придется).

    Разработай правила, возможно что то реализуется без ИИ, простыми алгоритмами, по которому ты сможешь выявлять цепочки рассуждений, когда один участник чата общается с другим. Не каждый раз для ответа пользуются кнопкой - ответ, но почти наверняка ответ будет написан сразу после исходного. Эти цепочки обрабатывай отдельно, не смешивая. Кстати можно разработать набор вопросов для ИИ для выявления этих цепочек.

    Разработай чеклист, серию вопросов, на которые этот гипотетический человек должен ответить, обрабатывая каждое следующее сообщение, лучше брать срез из нескольких выше+ниже по времени или количеству, причем этот срез нужно делать для каждого сообщения в чате. Это может быть выявление темы беседы, или буквально - 'какой вопрос обсуждают участники чата'. Это и будет то что ты должен отправлять в промпт к языковым моделям. Экспериментируй.

    Постарайся использовать языковые модели с большим контекстом, в них можно собранную информацию от других языковых моделей (более простых и дешевых) собирать в виде большого промпта, в которой объединена не только информация о текущей части беседы но и собранная информация о списке к примеру искомых 'популярных вопросов' чтобы сеть могла не выдумывать каждый раз новый, а брать уже ранее созданный, дополняя ответ.
    Ответ написан
    Комментировать
  • Как написать нейросеть способную распознать улицы на которых ведутся работы через 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 комментарий
  • Есть ли нейросеть, которая выявляет закономерность?

    @rPman
    Есть открытые сетки, созданные исследователями, для получения информации об изображении (в т.ч. обратное миджорней), выглядит это либо на вход подается изображение, на выход в каком то виде либо список наименований объектов (видел проект где прямо с координатами и даже контурами) либо можно делать запрос к изображению - есть ли на нем такой то объект соответствующий тексту (а там может быть к примеру - 'девушка плачет'). Очень много выкладывает в опенсорс фейсбук.

    Искать например на huggingface

    Так же есть сети, выявляющие очень качественно контур объектов, если все это соединить, можно неплохо разобрать изображение на составляющее, как угодно это все переставлять, а с помощью stable diffusion painting собирать из кусков изображение, дополнив его текстом.

    Вот например
    Ответ написан
    Комментировать
  • Нейросеть для получения информации из документа?

    @rPman
    нейросеть распознающую смысл текста
    на текущий момент этим занимаются Large Language Models, из открытых лучшие универсальные это opt и bloomz и они слабее даже llama но как основу их можно брать.

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

    Если есть возможность и деньги, использовать chatgpt4, то она позволит простыми вопросами (почти такими же как к человеку, который решал бы твою задачу) решить задачу, еще не всем там доступен прямо ввод pdf документа но как я понял скоро будет доступен всем (кроме России само собой).

    p.s. я пробовал на процессоре крутить llama и основанные на ней модели типа open assistent (не бери llm меньше 30B) для похожей задачи (объем документа ограничен 2к токенов, примерно 1.5к слов, можно многоуровневыми запросами сначала отвечать на вопросы по абзацам, а затем итоговую выжимку собирать и обрабатывать отдельным запросом), с ней работать очень сложно, ответы нужно предварительно чистить от мусора и разрабатывать условия окончания генерации (со стоп токенами там проблема) и работает на процессоре медленно (минуты на запрос) но это самое дешевое решение на текущий момент, доступное оффлайн в принципе, само собой без разрешения facebook пользоваться этим нелегально (как минимум не для исследования)
    Ответ написан
    Комментировать
  • Fine-tuning опенсорсного LLM новому языку?

    @rPman
    Опенсорс llm-ки из более менее нормальных это opt и bloomz, доступны на huggingface. По качеству они хуже llama, которая чуть чуть не дотягивает до chatgpt3.5. (по ссылкам информация как обучать, тюнить и использовать с примерами кода и датасеты)

    Fine-tuning не добавляет знаний llm-кам, а.в лучшем случае позволяет качественно научить ее пользоваться уже имеющимся (читай про reinforcement learning human feedback, это кстати не одна модель а несколько вспомогательных).

    Требования тут к железу относительно просты - объем видеопамяти суммарно должен вмещать всю модель плюс небольшой запас, без квантизации и 16битных float (сама модель часть весов может так хранить). Увеличивая объем видеопамяти можно значительно увеличить скорость обучения (так как это уменьшает объем передаваемых через cpu и pci-e данных), к сожалению я не нашел бенчмарков для конкретных цифр, а платить сотни баксов как то не охото, плюс бесконечно это не масштабируется (точнее скорее всего понадобится править код, т.е. нужны еще и редкие специалисты, которых как пылесосом за последние 10 лет высосали крупные компании и уже выращивают их самостоятельно, как это делает facebook)

    Есть ещё peft, позволяет тюнинг весов запроса, не трогая модель. Оно умеет работать с 8бит квантизацией (а значит 3х-4х кратно ниже требования к ram видеокарт), сам не пробовал.

    Можно дообучить модель новым знаниям, но если смотреть на обычные нейронки, это требует заметно больше усилий чем если бы эти знания изначально добавляли в обучающую выборку. И есть нехорошие последствия из-за "катастрофического забывания", которые можно ослабить, добавляя примеров из исходной выборки, охватывая максимум знаний.

    Но если хочешь этим заниматься готовь тысячи видеокарт, иначе процесс затянется на годы. Стоимость сам прикинь.
    Ответ написан
    Комментировать
  • Как правильно оформить функцию потерь в torch?

    @rPman
    Твоя обучающая выборка должна быть разделена на две части (максимально случайно/равномерно), бОльшая (на порядок или два) - обучающая, меньшая - тестовая. Обучение проходишь только на обучающей.

    После каждого прохода или через несколько, сохраняешь функцию ошибки для обеих обучающих выборок, строишь графики и смотришь динамику, если скорость падения ошибки для обучающей выборки будет падать а вот для тестовой перестанет и даже начнет расти - это явный признак переобученности (как я знаю есть и другие способы детекта этого).

    Это значит либо обучающая выборка недостаточна - т.е. нужно больше данных (100 это очень мало, что там за задача?) и данные должны лучше и равномернее описывать предметную область, либо структура/размер сети (внутренних слоев и их количество) неверное (в обе стороны) и нужны эксперименты с изменениями, смотреть динамику становится ли лучше если усложнять/упрощать сеть.
    Ответ написан
  • Существует ли готовая нейросеть, которая составляет текстовое описание изображения?

    @rPman
    Пощелкай по этим моделям
    Ответ написан
    Комментировать
  • Telegram-бот в сопряжении с нейросетью?

    @rPman
    99% работы тут анализ текстов, а уж интеграция с telegram дело десятое.

    ДО публикации весов llama, я бы предложил изучить технологии вокруг LLM (большие языковые модели), RLHF (Reinforced Learning from Human Feedback - это если с конца заходить, лучшее что там есть), рекомендую видео Igor Kotenkov посмотреть, он как раз с сумаризации текстов зашел, рассказывая о существующих алгоритмах и способах их оценки.

    Теперь же все это практически не нужно, достаточно взять готовую языковую модель со свойствами ИИ (например open assistent 30B) и поэкспериментировав с промптами, прогонять через нее статьи, разделяя их на абзацы (если размер их с промптом превышает 2к токенов, это примерно 1.5к слов).

    Скорее всего у тебя будет несколько запросов на одну и ту же статью, с разными вопросами (особенно когда длины контекста хватает в притык, а значит пытаться вести общение в пределах контекста будет сложно, т.е. статья+запрос1+ответ+запрос2+ответ+...). У llama.cpp в библиотеках есть возможность сохранять контекст и моментально загружать его (в т.ч. mmap) для как бы моментального продолжения беседы с сохраненного места, в т.ч. к примеру так - формируешь промпт таким образом, чтобы текст статьи был в начале, а вопрос в конце, затем сохраняешь состояние сети и последовательно загружаяя его раз за разом, подставляешь с новыми вопросами, таким образом тратить ресурсы будешь только на эти вопросы, пример в save-load-state.cpp.
    spoiler
    После того как поиграешь с gpt4, модель от фейсбука конечно туповата, но посмотрев на стоимость первой, понимаешь, что с этим можно жить. Есть лайвхаки, как улучшить качество ответа от сети, дай возможность сети по рассуждать, универсальная палочка выручалочка let's think step by step в разных формулировках, дает возможность ИИ проанализировать в процессе генерации ответа тему, а потом следующим вопросом проси суммаризировать итоги... это активирует в т.ч. One/MultiShot техники, когда предварительными наводящими обсуждениями настроить модель на лучший результат, и автоматизирует процесс, когда не нужно гадать над примерами.

    Само собой можно использовать модели от openai, gpt35 быстрые дешевые, когда данных мало, можно не тратить время и потратить считанные баксы чтобы обработать свой текст.

    Настоятельно рекомендую переводить анализ в сторону английского языка, по возможности (буквально перевести на английский весь текст перед подачей в промпт, почитай комментарии к статье там есть пример открытых инструментов, например FB NLLB), правда если текст это общение а не вылизанные посты от ньюсмейкеров, то лучше в сыром виде модели скармливать, она так ошибки лучше переварит.
    Ответ написан
    Комментировать
  • Как подобрать начальные входные весовые коэффициенты (веса) для нейронной сети?

    @rPman
    Веса инициализируют случайно, в каких то случаях нужно смотреть, какая функция стоит у нейрона (какую операцию проводишь после умножения вектора входов слоя на матрицу весов), нужно смотреть, какой интервал значений ожидается после нее и на следующем слое (0..1 или -1..1 или 0..inf), причем допускаю что возможны конфигурации сетей, в которых на разных слоях эти пороговые значения разные (хотя на практике лучше нормализовать до 1 так или иначе). Это нужно чтобы первоначальное наполнение для нейронной сети имело смысл, тупой пример, если все веса инициализировать такими значениями что значения на выходе всех нейронов станет одним значением (близким к 1 например) то такая сеть скорее всего не сможет обучиться.

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

    Отличный пример, нейронную сеть, обрабатывающую изображения, можно предварительно пропустить через попытку обучить простую нейронную сеть, на вход и выход которой подаются одни и те же данные - изображение, но размерность одного из внутренних слоев заметно ниже входа, т.е. попытка заставить нейронную сеть рисовать по исходному изображению то же самое, но описывая это изображение вектором меньшей размерности, пример такой топологии - бутылочное горлышко.
    spoiler
    lir-_pezkp2bcrdvp9bvwoomcvs.png
    Т.е. в данном случае такую сеть обучить будет проще чем под вашу задачу (и данные для нее проще собрать, ведь не нужно искать смысл в них, только закономерности), так вот первые слои этой предварительной нейронной сети можно в последствии скопировать в целевую нейронную сеть, дозаполнив остальные веса случайными значениями.
    Ответ написан
    Комментировать
  • Как воспользоваться LLamaSharp?

    @rPman
    Оригинальные веса llama были выложены кажется на github
    magnet:?xt=urn:btih:ZXXDAUWYLRUXXBHUYEMS6Q5CE5WA3LVA&dn=LLaMA

    получаешь что то типа
    7B/checklist.chk
    7B/params.json
    7B/consolidated.00.pth
    13B/...
    ...
    tokenizer_checklist.chk
    tokenizer.model

    тебе нужны все tokenizer* файлы в корне и один из каталогов, соответствующий размеру модели (7B и 13B не знают русского и слабоваты)

    Этот c# проект - это биндинг к оригинальному проекту llama.cpp, там есть python скрипт convert.py (зависимости ставь сам, недостаточно requirements.txt нужен еще pytorch и еще что то, сам разберешься, в windows я не помогу) для конвертации из huggingface формата в суперэффективный ggml (этот формат постоянно меняется, где то раз в месяц, поэтому бессмысленно качать готовые, так как они будут привязаны к конкретной версии llama.cpp), его главная фича - mmap, веса не грузятся в память приложения а остаются в файловом кеше ОС, т.е. повторный запуск приложения моментальный.

    Будь готов к нескольким конвертациям, модели большие, особенно 65B, на диске тебе потребуется как минимум один раз хранить f16 версию (2 байта на вес, т.е. 130Gb для 65B модели) после его можно (но не обязательно) сконвертировать в формат с квантизацией (на вес будет требоваться к примеру 4 бита или 8), это значительно ускоряет работу ценой незначительного ухудшения качества.

    python convert.py --outtype f16 --outfile llama-7b-q4_0.ggml /torrents/LLaMA/7B
    вместо f16 можешь поставить f32, требования к памяти взлетят до 4 байт на вес но в теории это может быть тоже быстро (если критично, проведи бенчмарки), мои тесты показывают что f16 медленнее q4_0

    Опционально можешь провести квантизацию:
    ./quantize llama-7b-f16.ggml llama-7b-q4_0.ggml 2
    тут 2 это тип квантизации
    usage: ./quantize model-f32.bin [model-quant.bin] type [nthreads]
      type = "q4_0" or 2
      type = "q4_1" or 3
      type = "q5_0" or 8
      type = "q5_1" or 9
      type = "q8_0" or 7
    Очевидно что q4_... потребуют половину байта на вес (требования к 64b модели будут примерно 42+5GB ram), разница версий квантизации в скорости и качестве (q4_0 быстрее и чуть хуже q4_1 но я уверен что без синтетических тестов эту разницу на практике не заметишь даже между q16 и q4, она там единицы процентов, но вот скорость значительно отличается).

    Для работы llama.cpp нужен один файл .ggml (внутри и веса и токенизер) его и пиши в путь до модели.

    Поэкспериментируй с количеством threads в настройках, их нужно писать меньше чем позволяет процессор (тем более с гипертреадингом), так же я хз как у него с поддержкой gpu, она появилась относительно недавно, оптимизация по какому то одному конкретному тяжелому расчету.
    Ответ написан
    Комментировать
  • Можно ли обучать нейросеть на базе книг?

    @rPman
    Можно взять уже обученную языковую модель (из открытых лучшие это bloomz и фейсбуковский opt, из нелегальных но кардинально лучших - llama, ну а чужие платные - chatgpt4 api, не уверен что там открыли доступ на дообучение) и дообучнить (finetune).
    Оцени модели на самом сложном бенчмарке MMLU, opt66b - 35, bloom175b - 39, llama65b - 68, gpt35 - 70, gpt4 - 86

    Есть набор алгоритмов peft, с помощью которого можно тюнить очень большие модели на слабом железе и небольшом количестве данных.

    Такие модели как llama и chatgpt4 можно использовать как обычного человека, буквально, предоставляя ему текст и задавая вопросы (текст+запрос+ответ+запрос... не должны превышать размер контекста, для llama это 2к токенов, для chatgpt - 4к или 8к). Если нужно перед вопросами залить в модель большой объем данных то используют дообучение. Внимание, это ломает модель, она запоминает обучаемые данные но начинает забывать области знаний, которых не было в дообучающей выборке, с этим борются в т.ч. подмешивая в нее данные из стартового датасета, на котором обучалась изначальная модель. Процент данных - вопрос экспериментальный, я не нашел (точнее статьи есть но их надо читать изучать, их много) примеров.

    свойство это катастрофическое забывание
    Ответ написан
  • Существует ли модель, обратная Stable Diffusion?

    @rPman
    https://github.com/mlfoundations/open_clip
    https://huggingface.co/laion/CLIP-ViT-H-14-laion2B...

    лучше гуглить сразу CLIP image classification, тьма моделей начиная с openai, разбираться долго

    p.s. еще про анализ объектов на изображении лучше начни копать от сюда или лучше segment-anything фейсбук много чего выкладывает
    Ответ написан
    Комментировать
  • Какую нейросети актуальны в 2023 году для работы с русским языком?

    @rPman
    c открытой лицензией

    могла отвечать на вопросы

    из самых крупных открытых мультимодальных языковых моделей (именно они проявили способности близкие к интеллекту), что мне известна, это bloom, размер в 13b даже можно на потребительском железе запустить (следующий размер 170B и для его запуска придется городить кластер с десятками секунд на токен) и ее качество в разы (десятки процентов) ниже llama, а у llama хуже chatgpt35 (да на считанные проценты), и тут такое дело что каждый следующий процент - это почти вселенная. Этой моделью я не игрался, но как я понял она лучшая из открытых мультимодальных (бери с префиксом -mt, они мультиязычные).

    Еще есть facebook/opt

    Оцени модели на самом сложном бенчмарке MMLU, opt66b - 35, bloom175b - 39, llama65b - 68, gpt35 - 70, gpt4 - 86

    Настоятельно рекомендую освоить prompt/p-tuning, lora finetuning и т.п. (например peft) под свою задачу, именно таким образом у модели повышают качество работы на десяток другой процентов (сам я еще не дошел до практического применения, только изучаю). На худой конец используй OneShot/MultiShot (когда к запросу спереди добавляется один или несколько примеров вопрос-ответ, что сильно улучшает ответ но увеличивает нагрузку так как запрос увеличивается кратно).
    spoiler
    Само собой llama - лучшее из доступных решений, но не легальное. Бери минимум 30B лучше 65b, можешь взять оттененную версию от OpenAssistent, 8bit или 4bit quantization вполне себе здраво работает на процессоре с помощью llama.cpp, причем на столько что юзабилити его выше чем штатный питоновский код от huggingface, который мало того что заточен под серверные видеокарты, так еще и не оптимизирован (чего стоит чтение файла с моделью в кеш ОС вместо постоянной загрузки копированием, утилита запускается моментально и не нужно городить сервер с api как это надо в случае с питоном). 6-ядерный i5 12600 пережевывает например 1784b русский текст, а точнее 1981b запрос определить категорию - 239 сек (616.46 ms per token) + ответ в 31токен 32 сек (1055.86 ms per run), требуя для работы 47gb ram

    Что лучше openassistent или оригинальная llama сказать сложно, ассистент затюнен на вопрос ответ, т.е. как инструмент общения он предпочтителен, а у llama больше мусора в ответе, но у меня есть ощущение что finetuning ломает модель, я почти уверен что если ее прогнать по тестам, по которым прогоняли llama, значения будут хуже.
    Ответ написан
    4 комментария
  • Нейросеть для юристов существует?

    @rPman
    В мире не так много мультимодальных языковых моделей, проявляющих новые свойства, похожих на интеллект.

    Самая мощная только одна - chatgpt4 и даже с ней нужно правильно составлять запросы чтобы она работала более менее верно. И даже она будет галлюцинировать, такова природа языковой модели и с этим можно бороться, создавая ансамбль контекстов (каждый контекст - новый чат с ИИ, можно начать с разными запросами, скармливая одну и ту же информацию разными способами) и сравнивая итоговые их ответы, если они одинаковые - значит вероятность верного ответа выше.

    Бессмысленно спрашивать нейросеть напрямую, как минимум нужно формировать OneShot запрос, в котором в начале приводится пример ситуации, которую ты у модели запрашиваешь с ответами, плюс нужно выдать ей в контекст обновленную информацию по делу, по текущим изменениям законодательства и кучи других моментов... и контекст не резиновый. На текущий момент он 8 тысяч токенов, это очень мало (у llama, лучшей нейросети из доступных локально, и ее использование без разрешения meta нелегально, контекст в 2к токенов и ее уровень сравним с прошлой версии chatgpt35).

    В интерфейсе chatgpt этой функции нет, но если вызывать модели из api то контекст там создается простым помещением всего диалога начиная с самого начала в тело запроса, это значит можно 'откатывать контекст' на любой момент, в результате вместо попытки подсунуть сети сразу всю информацию, сеть можно спрашивать, что ей не хватает, получать ответ, откатывать контекст на момент до этого вопроса и добавлять нужну информацию, повторяя до тех пор пока сеть не даст добро.
    Ответ написан
    Комментировать
  • Как последовательно передавать данные из вектора для обучения нейронной сети?

    @rPman
    Гигабайты в виде одномерного массива в памяти?
    Если оно в памяти то какие проблемы, пишешь что то типа mas[pos:pos+size] и получаешь подмассив
    это сработает и с numpy массивами

    если в файле, то вычисляешь позицию нужного элемента, делаешь туда file.seek и читаешь (чтобы легко было вычислять позицию, пиши фиксированными блоками на строку, дополняя пробелами ну или бинарными форматами)
    Ответ написан
  • Как преобразовать массив чисел который возвращается функцией model.predict в нормальный вид?

    @rPman
    дико интересно, что это за задача в которой размерность на выходе сети - 26 (когда как рукописные буквы это весь русский алфавит - 33 и цифры - 10, сверху еще знаки препинания неплохо бы докинуть)

    В подавляющем большинстве случаев распознавание строится по принципу - каждый элемент выходного вектора = искомый объект (т.е. в данной задаче символ) а значение - вероятность (значение от 0 до 1, где 1 - это 100%, сумма всех вероятностей не 1) того что соответствующий объект был подан на вход.

    В данном случае судя по всему это символ в позиции 14 с вероятностью 9.9334598e-01 (она тут максимальная)

    Ответ на твой вопрос - смотри как формировалась обучающая выборка, как выходы определялись.
    Ответ написан
  • Что сделать после обучения нейронной сети?

    @rPman
    Нейросеть это функция, которая на входной вектор выдает выходной вектор.

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

    Внимание, с входными данными в твоем приложении калькуляторе нужно делать то же самое, что ты делал с данными, подаваемыми когда формировал обучающую выборку, например нормализация, с теми же параметрами и тем же алгоритмом что были в использованы в подготовке обучающей выборки (или когда ее данные подсовываются на вход сети). Так как ты как то собирал обучающие данные, этот код и нужно использовать.

    Так же нужно подготовить и сконвертировать сохраненную сеть к формату, используемому конечным приложением. Очень часто обучают сетку на питоне а используют к примеру на javascript или c++, вот пример

    p.s. после обучения сетки нужно оценить ее параметры, прогнать ее на тестовой выборке (данные, которых не было в обучающей выборке), так же в процессе обучения необходимо собирать различные метрики, оценивать скорость с которой меняются результаты прохождения тестовой выборки, чтобы выявить момент, когда сеть станет переобучаться
    Ответ написан
    Комментировать
  • Есть ли в свободном доступе законный аналог ChatGPT?

    @rPman
    Как только в сети появятся адекватные и вылизанные датасеты обучающей выборки, так сразу.

    Оказалось нормальный ИИ это не только про большое количество весов (и это кажется не так актуально, например гугловский palm 540B сравним c llama 65B и хуже chatgpt35 и тем более 4 которые порядка сотни-двух) но и большая обучающая выборка.

    Сейчас кажется большинство крупных компаний, задумавшихся о ИИ в срочном порядке каждый сам себе набирает датасеты (вместо того чтобы всем миром объединиться и сделать 10x круче)
    Ответ написан
    Комментировать