Вопрос - кто нибудь пробовал работать с GPT-4 Vision. для распознавания отсканированных документов? Все таки Тессаракт требует постобработки. Вопрос к тем, кто пользовался исключительно!
Александр Воробьев#: У Слая реализовано, лично у меня нет знаний для оценки уровня. Да и подходы могут быть разные, на мой взгляд (как я понял) тебе важны шашечки (это я про то что когда увидел вспенил начало двухтысячных), а я смотрел там на "ехать" - мне вообще пофиг как внешне форум выглядит.
Ой ну не прибедняйся - ты вполне в состоянии оценить с твоими компетенциями. Провда особо и нечего оценивать - публично я пока не могу дать в руки всем этот функционал, а без настройки своего ИИ-аватара - сложно понять идеи. В целом форум был задуман исключительно как аватар для отработки RAG систем. Если вдруг из этого что-то вырастет - вряд ли он останется на сервисе в таком виде.
Александр Воробьев#: 1987 на станции юных техников открылся кружок программирования.
У нас с тобой похожий путь в айти) Наконеч-то первый отзыв от тру-порграммера. Зато у меня сразу был МК-54 - он мощнее) Но мечтал об МК-64 - он с памятью был.
Да, это именно нейросеть. Примитивная. Но рабочая, с обьяснением всех этапов ее тренировки и референса. Я знаю в приведенном примере и математику и код, ты - вряд ли. Не понимаю, что ты подразумеваешь под "реальными нейросетями". Естественно, это учебный пример, никто не будет(кроме тебя конечно) страдать и делать все это руками.
Тебя вообще никто никуда не втягивал, ты сам завел песню про нейросети в оправдание что не делаешь фреймворк. Стоило копнуть глубже - оказалось, что ты не понимаешь разницы между тулом и нейросетью. Не можешь обьяснить что ты хочешь улучшить, знаешь почему - потому что все это выдумки в твоей голове. Это даже не верхи, просто ветер у тебя. Я вот не поленился поискал информацию, чтобы что-то аргументированно утверждать.
Поэтому твои заявки о том что ты знаешь что можно что-то там улучшить - пустозвонство. Для этого нужно как минимум понимать существующую архитектуру. Как ты можешь что-то оптимизировать под слабые компьютеры, когда это все - обычные матричный вычисления с квадратичной сложностью. Чем больше данных - тем больше нужно ресурсов. У меня вчера тренировка модели на 37 Мегабайт заняла больше часа и использованием MPS на маке и я впераые услыхал, как у него вентилятор работает. Обуча, кстати на сообщениях из форума и получил интересные результаты.
Поэтому для текста сегодня - только трансформер как самая прогрессивная модель. Можешь прочитать про Mamba, в чем ее преимущества и почему она все еще буксует. Потом напускай на себя загадочный вид. Все о чем ты говоришь - давно уже сделано.
Но! Эта дискуссия натолкнула меня на интересные вещи. Начав вспоминать базу, я вернулся к фреймворкам для написания нейросетей, если точнее - Pytorch. Да, я знаю что у того же Антропик сейчас JAX в фаворе. Но первый я уже знаю, не стал тратить время на изучение пока.
Что сделал - написал простой интефейс, который позволяет подготовить датасет к модели и натренировать ее. Получил интересный разультат. Локальная модель, в которую загружены сообщения от нехаоса, в тиоге начинает "понимать основы" и начинает выдавать информацию об исскуственном интеллекте, например. Это прсото удивительно. Этого нет в сообщениях нехаоса, при это. нейросеть уже строит правильные ответы! На датасете в 147Кбайт и самой модели в 37Мег! Очередной привет тем, кто заявляет что ЛЛм - обычный поиск)))
Можно проверить по его сообщениям - там такого и в помине нет!
По итогу я понял, что могу реально отказаться вообще от оллама и чужих моделей. Подготовив датасет, я получу например решателя задач по химии. Я еще и распознавалку написал для того чтобы перекачать быстро задачки из бумажных учебников.
Кстати, хочу тебе сказать спасибо, Streamit оказался классной штукой для локали - чтобы не возится с разворачивнием UI через большие фреймворки. Я как то раньше не сталкивался
Начало 80-х кажется, был в гостях в Москве и увидел просто обычный калькулятор у родственников. Не то чтоб я их не видел, но вот дома, с возможностью поиграться прям с цифрами, которые сам складываются - наверное это меня тогда и приворожило навсегда. Потом был уже свой программируемый калькулятор МК-54 и журнал Наука и Техника, где в каждом выпуске рассказывалось о какой-то программе для него. Написание своей первой игрушки, ха, по факут это был прототип Angry Birds, как я сейчас понимаю - стрельба из пушки) Дальше я попал в первый год обучения когда ввели информатику в школах. На весь город был всего один класс с КУВТ Ямаха, нас туда водили вроде раз в неделю. Для всех это было мука и трата времени, но не для меня - меня оттуда не могли выгнать. На уроках наша информатичка отсаживала меня на заднюю парту и просила молчать, что бы я не позорил ее авторитет. Хорошая была тетка, только знаний - краткие курсы летом. А у меня был друг еще и его старшая сестра работала в каком то ВЦ, там стояли советские аналоги вроде как IBM 360, Но уже с дисплейными терминалами, не перфокарты. и я туда прерывался при малейшей возможности. Так что у меня не стоял выбор института по окончании школы - конечно же МРТИ. И понеслось.
Fortran на перфокартах, Паскаль во всех вариациях, для диплома писал программу на ассемблере. Потом армия - все искал как подключится к встроенной ЭВМ ЗРК С-200. Слава богу не дали, неизвестно чтобы я там натворил.))) После армии - работа в институте, филиале Госкомстата, в отделе программирования. Писали первую автоматизацию для нынешнего БеларусБанка - DBaseII, DBaseIII, FoxPro. Потом частная фирма руководитель отдела автоматизации, попытка автоматизировать торги на сырьевой бирже, но это быстро развалилось все как и все в 90-е и надолго ушел в свой бизнес, никак не связанный с компьютерами, правда на полставки числился инженером-программистом в школе. После ухода из торговли примерно в 2007 году - своя фирма по прокату авто. И там понадобился уже свой сайт - это был мой приход в веб. Сначала что-то ужасное на народ.ру и хтмл, потом Вордпресс. Понял что мен этим интереснее заниматься чем прокатом и постепенно свернул деятельность, переключившись на интенет полностью. Вордпресс, Drupal, Jumla, YiII, Laravel, как полагается свой самописный фреймворк. Какие-то попытки в SEO - неинтерсно.
Ради интереса решил поискать вакансии по Вордпресс и в 2016 году попал в фирму продуктовую, где проработал 2 года начальником отдела веб-разработки. Пришел просто написать им сайт на вордпресс, но остался дольше ожидаемого, еще и отпускать не хотели. В это время хороший друг, с одного форума кстати, которого давно нет, окунул меня в мир Пайтон. С тех пор и все изменилось. Вполть до того, что я успешно прошел интервью на позицию Сеньор ПХП/Вордпресс разработчику в крупнейший белорусский аутсорс, но отказался от оффера. Правда через полгода получил оффер в эту же фирму на позицию Пайтон инженер. 2018 год. Ну и вот я все еще там, Поменял правда локацию.
Ухты, надо сохранить это где-то сбе, второй раз я на такой повод не пойду.
ArbNet#: Я тебе говорил уже, учить меня будешь когда сам что-то сделаешь, свою нейросеть напишешь без готовых библиотек в данном случае, тогда да, можно будет тебя считать математиком. И не по готовым примерам, а что-то своё придумаешь более гибкое и лучшее решение. Вот тогда я буду к тебе прислушиваться, а сейчас завали свой учительский талант от сюда подальше.
Вот жаль что ты не умеешь слушать, а из-за отсутствия знаний переходишь снова на личности, ну да ладно, не стану обращать на это внимания, давай по делу. Решил немного глубже уйти в тему.
ArbNet# так как в нейросетях абсолютно другие подходы,
Какие, раз уж ты об этом заговорил? Ладно, ты все равно не ответишь, поэтому сам. Цепь Маркова это самый примтивный предикт, распределение весов в зависимости от предыдущего состояния. Нейросеть математически это просто матрица весов, вектор входов, вектор смещения послойно. Когда ты заявляешь, что знаешь, как сделать лучше, что ты имеешь ввиду? Вот я субботу провел продуктивно. Так как ты кричишь - что я все делаю с помощью библиотек, тряхнул стариной. Начал без Pytorch/JAX, чтоб по олдскульному. Вот тебе простая нейросеть - корреляция температуры и влажности.
import math
def matmul(W, x):
"""
Матричное умножение W @ x.
W — список списков (матрица весов), размер [n_out x n_in].
x — список чисел (входной вектор), длина n_in.
Возвращает список длины n_out: каждый элемент —
скалярное произведение строки W на вектор x.
Пример:
W = [[1, 0], [0, 1]] # единичная матрица 2x2
x = [3.0, 5.0]
matmul(W, x) # → [3.0, 5.0]
"""
return [
sum(W[i][j] * x[j] for j in range(len(x)))
for i in range(len(W))
]
def add(a, b):
"""
Поэлементное сложение двух векторов: a + b.
a, b — списки чисел одинаковой длины.
Возвращает список той же длины.
Используется чтобы прибавить смещение b после matmul.
Пример:
add([1.0, 2.0], [0.5, -0.5]) # → [1.5, 1.5]
"""
return [a[i] + b[i] for i in range(len(a))]
def relu(z):
"""
Активация ReLU (Rectified Linear Unit): max(0, z) для каждого элемента.
z — список чисел (выход линейного слоя до активации).
Возвращает список той же длины: отрицательные значения заменяются нулём,
положительные остаются как есть.
Зачем нужна: без нелинейной активации стек слоёв
математически равен одному матричному умножению.
Пример:
relu([-1.2, 0.0, 3.4]) # → [0, 0, 3.4]
"""
return [max(0, v) for v in z]
def sigmoid(z):
"""
Активация sigmoid: 1 / (1 + e^(-z)) для каждого элемента.
z — список чисел.
Возвращает список значений в диапазоне (0, 1).
Удобна на выходном слое для задач бинарной классификации:
print(f"Выход: {y[0]:.4f} (вероятность от 0 до 1)")
Специально для тебя расписал все с комментариями. Это уже готовая нейросеть на чистой математике. Можно например обучить ее на простых данных - пульс, температура, возраст - на выходе получить здоров человек или болен.
Но конечно, это все игрульки и трата времени, мы это на первом курсе универа проходили. Ух, как же я боялся нашего математика! Кто кто получал вышку в 90-х годах в Минске, навернаяка знают учебник ддля вузов, написанный Жевняк и Карпук - вот Карпук у нас все это безобразие и вел.
Как я уже говорил - игрульки это когда есть Numpy. - математика под пайтон, написанная на плюсах. Кода немного меньше, но эффективность в 10-ки и сотни раз выше
import numpy as np
def relu(z):
"""
ReLU: max(0, z) поэлементно.
z — np.array любой формы.
Возвращает массив той же формы.
"""
return np.maximum(0, z)
def sigmoid(z):
"""
Sigmoid: 1 / (1 + e^-z) поэлементно.
z — np.array любой формы.
Возвращает массив той же формы, значения в (0, 1).
"""
return 1 / (1 + np.exp(-z))
def forward(x, W1, b1, W2, b2):
"""
Forward pass: вход → скрытый слой (ReLU) → выход (sigmoid).
BTW, Говорите, у меня бесполезные поделки? 😂 Смотрите как мой анализатор с легкостью попалил иканамиста и его клона alexxsnowww Если текст к топику был в основном сгенерен ИИ и там сложно было заподозрить. То уже первый же коммент расставил все на свои места: На самом деле такой процент говорит об очень большом сходстве текстов. Вангую дальше - по выходу из бана клон пропадет из поля. А если нет - админам не составит большого труда сопоставить IP входа на форум для двух акков. 😂
Не было времени вчера отвечать, хотелось воспользоваться пятницей и обещаной хорошей погодой. Но давай по сути, а твои личные нападки оставим для соответствующей темы, они прям хороши для разбора.
ArbNet#: Во-первых, как ты правильно заметил это хорошая практика и саморазвитие.
Да, только за этим должен стоять какой то результат - где он?
ArbNet#: Во-вторых, про недостатки существующих решений, их масса, все не перечислить
Разве тебя кто-то просил их все перечислить. Но если ты выступаешь как инноватор, то ты в состоянии предметно обьяснить претензию. Скорость - Окей, значит ты увидел какое-то узкое место, понял причину, есть идея как улучшить.
ArbNet#: Я уже год как изучаю нейросети, отчасти из-за этого наверно и забросил веб-разработку, купил несколько книг по ИИ, читал статьи, смотрел видео, исходники существующих проектов изучал, сам тестил разные способы и тд. Как минимум базовое понимание как всё устроено и работает у меня имеется, не в плане поверхностного понимания как у тебя, а именно в плане реализации в коде.
Забавное утверждение, но давай копнем поглубже... Если ты разобрался, тогда почему ты говоришь про оллама? Она не предназначена для создания нейросети. Нейросеть - это математика. Ты можешь вообще ее написать на листочке бумаги. Если в коде - то есть инструменты. От самых простых, типа NumPy, до специальных типа PyTorch/TensorFlow. Ты говоришь, что ты разобрался, а я тока поверхносно. Только вот я когда заинтересовался начал именно с математики, вообще с цепей Маркова.
ArbNet#: В третьих, я не собираюсь делать подобие существующих LLM, я лишь хочу сделать мини движок для создания моделей под определённое направление, способных запускаться локально, работать быстро без графического процессора и тд. под микросервисы. Например, для создания уроков для студентов как ты делаешь можно было бы использовать без всяких костылей, для какой-то тех поддержки разных учреждений, для своего фреймворка чтобы люди могли быстро на нём создавать то, что им нужно и тд. и тд.
Ты опять накидал набор слов, не понимая смысла. То оллама, то уже свой движок... Все что ты написал - давно существует. Как ты думаешь, чем занимаются все эти люди в Гугл, Антропик итд? Ищут варианты как усложнить, чтобы заставить любей купить больше токенов и видеокарт. А ты разобрался, почему на графике нейросеть работает быстрее? Твои заявления - это регресс на самом деле.
У меня например нет костылей, наоборот я работаю над минимально необходимой архитектурой. То есть простые задачи решаются на малых мощностях, сложные - подключаются монстры. Тут уже есть те, кто использует оркестраторы задач и вполне успешно. И опять какой фреймворк? Какие люди и что создавать? Я не понимаю) Обьяснишь?
Так к 52 пристегивалась память. Если фотку глянешь в гугле там сверху (видны края крышек слотов)
У Слая реализовано, лично у меня нет знаний для оценки уровня. Да и подходы могут быть разные, на мой взгляд (как я понял) тебе важны шашечки (это я про то что когда увидел вспенил начало двухтысячных), а я смотрел там на "ехать" - мне вообще пофиг как внешне форум выглядит.
1987 на станции юных техников открылся кружок программирования.
Зато у меня сразу был МК-54 - он мощнее) Но мечтал об МК-64 - он с памятью был.
ы хоть для приличия названия функций немного поменял, сразу же видно подчерк ИИ.
Naming Conventions /PEP8
Чтоб не было такого ужаса как в твоем фреймворке.
И ты это называешь нейросетью
Да, это именно нейросеть. Примитивная. Но рабочая, с обьяснением всех этапов ее тренировки и референса. Я знаю в приведенном примере и математику и код, ты - вряд ли.

Не понимаю, что ты подразумеваешь под "реальными нейросетями". Естественно, это учебный пример, никто не будет(кроме тебя конечно) страдать и делать все это руками.
Тебя вообще никто никуда не втягивал, ты сам завел песню про нейросети в оправдание что не делаешь фреймворк. Стоило копнуть глубже - оказалось, что ты не понимаешь разницы между тулом и нейросетью. Не можешь обьяснить что ты хочешь улучшить, знаешь почему - потому что все это выдумки в твоей голове. Это даже не верхи, просто ветер у тебя. Я вот не поленился поискал информацию, чтобы что-то аргументированно утверждать.
Поэтому твои заявки о том что ты знаешь что можно что-то там улучшить - пустозвонство. Для этого нужно как минимум понимать существующую архитектуру. Как ты можешь что-то оптимизировать под слабые компьютеры, когда это все - обычные матричный вычисления с квадратичной сложностью. Чем больше данных - тем больше нужно ресурсов. У меня вчера тренировка модели на 37 Мегабайт заняла больше часа и использованием MPS на маке и я впераые услыхал, как у него вентилятор работает. Обуча, кстати на сообщениях из форума и получил интересные результаты.
Поэтому для текста сегодня - только трансформер как самая прогрессивная модель. Можешь прочитать про Mamba, в чем ее преимущества и почему она все еще буксует. Потом напускай на себя загадочный вид. Все о чем ты говоришь - давно уже сделано.
Но! Эта дискуссия натолкнула меня на интересные вещи. Начав вспоминать базу, я вернулся к фреймворкам для написания нейросетей, если точнее - Pytorch. Да, я знаю что у того же Антропик сейчас JAX в фаворе. Но первый я уже знаю, не стал тратить время на изучение пока.
Что сделал - написал простой интефейс, который позволяет подготовить датасет к модели и натренировать ее. Получил интересный разультат. Локальная модель, в которую загружены сообщения от нехаоса, в тиоге начинает "понимать основы" и начинает выдавать информацию об исскуственном интеллекте, например. Это прсото удивительно. Этого нет в сообщениях нехаоса, при это. нейросеть уже строит правильные ответы! На датасете в 147Кбайт и самой модели в 37Мег! Очередной привет тем, кто заявляет что ЛЛм - обычный поиск)))
Можно проверить по его сообщениям - там такого и в помине нет!
По итогу я понял, что могу реально отказаться вообще от оллама и чужих моделей. Подготовив датасет, я получу например решателя задач по химии. Я еще и распознавалку написал для того чтобы перекачать быстро задачки из бумажных учебников.
И это все под твои сказочки 🤣
Начало 80-х кажется, был в гостях в Москве и увидел просто обычный калькулятор у родственников. Не то чтоб я их не видел, но вот дома, с возможностью поиграться прям с цифрами, которые сам складываются - наверное это меня тогда и приворожило навсегда.
Потом был уже свой программируемый калькулятор МК-54 и журнал Наука и Техника, где в каждом выпуске рассказывалось о какой-то программе для него. Написание своей первой игрушки, ха, по факут это был прототип Angry Birds, как я сейчас понимаю - стрельба из пушки)
Дальше я попал в первый год обучения когда ввели информатику в школах. На весь город был всего один класс с КУВТ Ямаха, нас туда водили вроде раз в неделю. Для всех это было мука и трата времени, но не для меня - меня оттуда не могли выгнать. На уроках наша информатичка отсаживала меня на заднюю парту и просила молчать, что бы я не позорил ее авторитет. Хорошая была тетка, только знаний - краткие курсы летом. А у меня был друг еще и его старшая сестра работала в каком то ВЦ, там стояли советские аналоги вроде как IBM 360, Но уже с дисплейными терминалами, не перфокарты. и я туда прерывался при малейшей возможности.
Так что у меня не стоял выбор института по окончании школы - конечно же МРТИ. И понеслось.
Fortran на перфокартах, Паскаль во всех вариациях, для диплома писал программу на ассемблере. Потом армия - все искал как подключится к встроенной ЭВМ ЗРК С-200. Слава богу не дали, неизвестно чтобы я там натворил.)))
После армии - работа в институте, филиале Госкомстата, в отделе программирования. Писали первую автоматизацию для нынешнего БеларусБанка - DBaseII, DBaseIII, FoxPro.
Потом частная фирма руководитель отдела автоматизации, попытка автоматизировать торги на сырьевой бирже, но это быстро развалилось все как и все в 90-е и надолго ушел в свой бизнес, никак не связанный с компьютерами, правда на полставки числился инженером-программистом в школе.
После ухода из торговли примерно в 2007 году - своя фирма по прокату авто. И там понадобился уже свой сайт - это был мой приход в веб. Сначала что-то ужасное на народ.ру и хтмл, потом Вордпресс. Понял что мен этим интереснее заниматься чем прокатом и постепенно свернул деятельность, переключившись на интенет полностью. Вордпресс, Drupal, Jumla, YiII, Laravel, как полагается свой самописный фреймворк.
Какие-то попытки в SEO - неинтерсно.
Ради интереса решил поискать вакансии по Вордпресс и в 2016 году попал в фирму продуктовую, где проработал 2 года начальником отдела веб-разработки. Пришел просто написать им сайт на вордпресс, но остался дольше ожидаемого, еще и отпускать не хотели.
В это время хороший друг, с одного форума кстати, которого давно нет, окунул меня в мир Пайтон. С тех пор и все изменилось.
Вполть до того, что я успешно прошел интервью на позицию Сеньор ПХП/Вордпресс разработчику в крупнейший белорусский аутсорс, но отказался от оффера.
Правда через полгода получил оффер в эту же фирму на позицию Пайтон инженер. 2018 год. Ну и вот я все еще там, Поменял правда локацию.
Ухты, надо сохранить это где-то сбе, второй раз я на такой повод не пойду.
Я тебе говорил уже, учить меня будешь когда сам что-то сделаешь, свою нейросеть напишешь без готовых библиотек в данном случае, тогда да, можно будет тебя считать математиком. И не по готовым примерам, а что-то своё придумаешь более гибкое и лучшее решение. Вот тогда я буду к тебе прислушиваться, а сейчас завали свой учительский талант от сюда подальше.
так как в нейросетях абсолютно другие подходы,
Какие, раз уж ты об этом заговорил? Ладно, ты все равно не ответишь, поэтому сам. Цепь Маркова это самый примтивный предикт, распределение весов в зависимости от предыдущего состояния.
Нейросеть математически это просто матрица весов, вектор входов, вектор смещения послойно. Когда ты заявляешь, что знаешь, как сделать лучше, что ты имеешь ввиду?
Вот я субботу провел продуктивно.
Так как ты кричишь - что я все делаю с помощью библиотек, тряхнул стариной. Начал без Pytorch/JAX, чтоб по олдскульному.
Вот тебе простая нейросеть - корреляция температуры и влажности.
import math
def matmul(W, x):
"""
Матричное умножение W @ x.
W — список списков (матрица весов), размер [n_out x n_in].
x — список чисел (входной вектор), длина n_in.
Возвращает список длины n_out: каждый элемент —
скалярное произведение строки W на вектор x.
Пример:
W = [[1, 0], [0, 1]] # единичная матрица 2x2
x = [3.0, 5.0]
matmul(W, x) # → [3.0, 5.0]
"""
return [
sum(W[i][j] * x[j] for j in range(len(x)))
for i in range(len(W))
]
def add(a, b):
"""
Поэлементное сложение двух векторов: a + b.
a, b — списки чисел одинаковой длины.
Возвращает список той же длины.
Используется чтобы прибавить смещение b после matmul.
Пример:
add([1.0, 2.0], [0.5, -0.5]) # → [1.5, 1.5]
"""
return [a[i] + b[i] for i in range(len(a))]
def relu(z):
"""
Активация ReLU (Rectified Linear Unit): max(0, z) для каждого элемента.
z — список чисел (выход линейного слоя до активации).
Возвращает список той же длины: отрицательные значения заменяются нулём,
положительные остаются как есть.
Зачем нужна: без нелинейной активации стек слоёв
математически равен одному матричному умножению.
Пример:
relu([-1.2, 0.0, 3.4]) # → [0, 0, 3.4]
"""
return [max(0, v) for v in z]
def sigmoid(z):
"""
Активация sigmoid: 1 / (1 + e^(-z)) для каждого элемента.
z — список чисел.
Возвращает список значений в диапазоне (0, 1).
Удобна на выходном слое для задач бинарной классификации:
результат можно интерпретировать как вероятность.
Пример:
sigmoid([0.0]) # → [0.5]
sigmoid([5.0]) # → [~0.993]
sigmoid([-5.0]) # → [~0.007]
"""
return [1 / (1 + math.exp(-v)) for v in z]
def forward(x, W1, b1, W2, b2):
"""
Полный forward pass: прогон входа через сеть.
Архитектура: вход → скрытый слой (ReLU) → выходной слой (sigmoid).
Аргументы:
x — входной вектор, список длины n_in.
W1 — матрица весов скрытого слоя, размер [n_hidden x n_in].
b1 — смещения скрытого слоя, список длины n_hidden.
W2 — матрица весов выходного слоя, размер [n_out x n_hidden].
b2 — смещения выходного слоя, список длины n_out.
Возвращает:
y — выходной вектор, список длины n_out.
Каждое значение в диапазоне (0, 1).
Внутри происходит:
z1 = W1 @ x + b1 # линейное преобразование
h = relu(z1) # нелинейная активация
z2 = W2 @ h + b2 # снова линейное
y = sigmoid(z2) # финальная активация
"""
z1 = add(matmul(W1, x), b1)
h = relu(z1)
z2 = add(matmul(W2, h), b2)
y = sigmoid(z2)
return y
# ---------------------------------------------------------------------------
# Веса и смещения — здесь хранятся "знания" сети.
# В реальной задаче они подбираются обучением (backprop).
# Здесь заданы вручную для демонстрации forward pass.
# ---------------------------------------------------------------------------
W1 = [
[ 0.5, -0.3], # веса нейрона h0: смотрит на x[0] и x[1]
[ 0.8, 0.1], # веса нейрона h1
[-0.6, 0.9], # веса нейрона h2
]
b1 = [0.1, -0.2, 0.3] # смещения скрытого слоя
W2 = [[0.7, -0.4, 0.6]] # один выходной нейрон смотрит на h0, h1, h2
b2 = [0.0]
# ---------------------------------------------------------------------------
# Вход: два признака, например [температура, влажность]
# или просто любые два числа.
# ---------------------------------------------------------------------------
x = [1.0, 0.5]
y = forward(x, W1, b1, W2, b2)
print(f"Вход: {x}")
print(f"Выход: {y[0]:.4f} (вероятность от 0 до 1)")
Специально для тебя расписал все с комментариями.
Это уже готовая нейросеть на чистой математике. Можно например обучить ее на простых данных - пульс, температура, возраст - на выходе получить здоров человек или болен.
Но конечно, это все игрульки и трата времени, мы это на первом курсе универа проходили. Ух, как же я боялся нашего математика! Кто кто получал вышку в 90-х годах в Минске, навернаяка знают учебник ддля вузов, написанный Жевняк и Карпук - вот Карпук у нас все это безобразие и вел.
Как я уже говорил - игрульки это когда есть Numpy. - математика под пайтон, написанная на плюсах.
Кода немного меньше, но эффективность в 10-ки и сотни раз выше
import numpy as np
def relu(z):
"""
ReLU: max(0, z) поэлементно.
z — np.array любой формы.
Возвращает массив той же формы.
"""
return np.maximum(0, z)
def sigmoid(z):
"""
Sigmoid: 1 / (1 + e^-z) поэлементно.
z — np.array любой формы.
Возвращает массив той же формы, значения в (0, 1).
"""
return 1 / (1 + np.exp(-z))
def forward(x, W1, b1, W2, b2):
"""
Forward pass: вход → скрытый слой (ReLU) → выход (sigmoid).
Аргументы:
x — np.array формы (n_in,)
W1 — np.array формы (n_hidden, n_in)
b1 — np.array формы (n_hidden,)
W2 — np.array формы (n_out, n_hidden)
b2 — np.array формы (n_out,)
Возвращает:
y — np.array формы (n_out,), значения в (0, 1)
"""
z1 = W1 @ x + b1
h = relu(z1)
z2 = W2 @ h + b2
y = sigmoid(z2)
return y
# ---------------------------------------------------------------------------
# Веса — в реальности подбираются обучением, здесь заданы вручную.
# ---------------------------------------------------------------------------
W1 = np.array([
[ 0.5, -0.3],
[ 0.8, 0.1],
[-0.6, 0.9],
])
b1 = np.array([0.1, -0.2, 0.3])
W2 = np.array([[0.7, -0.4, 0.6]])
b2 = np.array([0.0])
x = np.array([1.0, 0.5])
y = forward(x, W1, b1, W2, b2)
print(f"Вход: {x}")
print(f"Выход: {y[0]:.4f}")
Будешь продолжать спорить со мной о знаниях?
Если текст к топику был в основном сгенерен ИИ и там сложно было заподозрить. То уже первый же коммент расставил все на свои места:
На самом деле такой процент говорит об очень большом сходстве текстов.
Вангую дальше - по выходу из бана клон пропадет из поля. А если нет - админам не составит большого труда сопоставить IP входа на форум для двух акков.
😂
Хорошо, будет тебе аргументировано.
Но давай по сути, а твои личные нападки оставим для соответствующей темы, они прям хороши для разбора.
Во-первых, как ты правильно заметил это хорошая практика и саморазвитие.
Во-вторых, про недостатки существующих решений, их масса, все не перечислить
Разве тебя кто-то просил их все перечислить. Но если ты выступаешь как инноватор, то ты в состоянии предметно обьяснить претензию. Скорость - Окей, значит ты увидел какое-то узкое место, понял причину, есть идея как улучшить.
Я уже год как изучаю нейросети, отчасти из-за этого наверно и забросил веб-разработку, купил несколько книг по ИИ, читал статьи, смотрел видео, исходники существующих проектов изучал, сам тестил разные способы и тд. Как минимум базовое понимание как всё устроено и работает у меня имеется, не в плане поверхностного понимания как у тебя, а именно в плане реализации в коде.
Забавное утверждение, но давай копнем поглубже...
Если ты разобрался, тогда почему ты говоришь про оллама? Она не предназначена для создания нейросети. Нейросеть - это математика. Ты можешь вообще ее написать на листочке бумаги. Если в коде - то есть инструменты. От самых простых, типа NumPy, до специальных типа PyTorch/TensorFlow. Ты говоришь, что ты разобрался, а я тока поверхносно.
Только вот я когда заинтересовался начал именно с математики, вообще с цепей Маркова.
В третьих, я не собираюсь делать подобие существующих LLM, я лишь хочу сделать мини движок для создания моделей под определённое направление, способных запускаться локально, работать быстро без графического процессора и тд. под микросервисы. Например, для создания уроков для студентов как ты делаешь можно было бы использовать без всяких костылей, для какой-то тех поддержки разных учреждений, для своего фреймворка чтобы люди могли быстро на нём создавать то, что им нужно и тд. и тд.
Ты опять накидал набор слов, не понимая смысла. То оллама, то уже свой движок... Все что ты написал - давно существует.
Как ты думаешь, чем занимаются все эти люди в Гугл, Антропик итд? Ищут варианты как усложнить, чтобы заставить любей купить больше токенов и видеокарт. А ты разобрался, почему на графике нейросеть работает быстрее?
Твои заявления - это регресс на самом деле.
У меня например нет костылей, наоборот я работаю над минимально необходимой архитектурой. То есть простые задачи решаются на малых мощностях, сложные - подключаются монстры. Тут уже есть те, кто использует оркестраторы задач и вполне успешно. И опять какой фреймворк? Какие люди и что создавать? Я не понимаю)
Обьяснишь?