Здравствуйте, Muxa, Вы писали:
S>>Допустим, даете задачу и нейросеть ее решает. Вам нужно узнать на основе каких входящих данных она смогла ее решить, была ли в база такая же задача или похожая.
M>Зачем мне это знать? Этим датасаентисты занимаются.
Они не могут этого сделать. Есть 100 терабайт сжатых текстовых данных. 5 месяцев на мощном компьютере с 1000 видеокарт молотят эти данные и готовят модель, затрачивая 1 млн. долларов на оплату процессорных часов. После этого имеем файлик в 7 Гб. с какими-то связями и коэффициентами, которые формировались 5 месяцев и формирование стоило 1 млн. долларов. Файл модели.
Далее нельзя провернуть назад и как-то понять почему та или иная комбинация связей именно такая — какие данные из 100 терабайт на это повлияли. Если и поставите брейпоинт на внесении изменений в одну из ячеек — то она будет прыгать то больше то меньше — миллионы раз. И что?
S>>Куда вы будете ставить брейкпоинт?
M>А если запрос к БД тормозит или выдает неожиданный результат, куда брэйкпоинт ставить? Или есть другие способы решения?
Берете этот запрос и изучаете план запроса — в MS SQL вот так примерно делал:
https://learn.microsoft.com/bg-bg/sql/relational-databases/performance/execution-plans?view=sql-server-ver16
Там по шагам отобразит все проводимые операции.
В нейросетях так не возможно — создание модели занимает месяцы и стоит миллионы долларов.
M>Это я у тебя хочу узнать что тут магического? Тут тоже каждая каждый кусочек входных данных влияет на все части результата.
Здесь магического ничего нет — алгоритм фиксирован и понятен математически, вплоть до мелочей.
В случае с нейросетями — алгоритм никто осознать не может, он размазан и формируется автоматически на основе данных, причем не существует способа обернуть и понять какие именно данные на что повлияли.