Код без тайн
391 subscribers
33 photos
18 videos
1 file
84 links
Пишу о веб-разработке, информатике и технологиях, которые меня вдохновляют

Связаться со мной: @MajorLettuce
Download Telegram
Код без тайн pinned «Свой личный мастермайнд У меня тут появилась идея создать свой ИИ-чат другого формата. Да-да, знаю, что их уже как минимум 3000, но я действительно не нашел такого, который бы решал мою задачу. Идея появилась из проблемы, с которой я сталкиваюсь последнее…»
Я отлучился буквально ненадолго… и за это время китайские компании выпустили целые 3 новые версии нейронных сетей, которые находятся на уровне ChatGPT 😮

Про самую нашумевшую из них написал развернутую статью на vc.ru с подробностями о том, почему она наделала так много шума и что теперь ждет ChatGPT: https://vc.ru/ai/1778179-deepseek-ne-prosto-haip-a-novye-pravila-igry
🔥2
👆 Картинка выше — это техническое задание (ТЗ), которое я только что отправил Claude для того, чтобы он написал функцию для преобразования числа из диапазона [-1, 1] в диапазон [0, 1] по функции в виде трапеции с выгнутыми сторонами (фиолетовый график)

Ниже видео, на котором показано, для чего она мне была нужна: это функция, которая регулирует прозрачность слайдов. Мне нужно было сделать так, чтобы прозрачность начиналась только с третьего слайда от центра и быстро снижалась

Удивительно, но он смог написать функцию с первого раза, потребовались только небольшие уточнения от меня, т.к. изначально ТЗ было не полное 😄

Просто так — из картинки и короткого текстового описания

Видимо, не просто так говорят, что Claude сейчас — лучшая модель для написания кода. Нужно только правильно сформировать запрос. На самом деле уже не первый раз такие рутинные штуки поручаю ИИ и каждый раз он меня удивляет
👍4
Ранний доступ к 🟢 Neira — AI-мастермайнду для каждого

#neira #продукт

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

Сегодня я запускаю лендинг для презентации и сбора заявок на ранний доступ к моему новому проекту — ИИ-мастермайнду Neira

💡 Neira — это не просто чат с нейросетями. Это пространство, где ИИ будет запоминать контекст вашего проекта и помогать решать задачи сразу с нескольких точек зрения: от маркетинга до разработки

Кстати, Наполеон Хилл, который ввел концепцию мастермайнда, утверждал, что лучшие идеи рождаются, когда умственные усилия нескольких людей объединяются. Именно этот принцип и лежит в основе Neira — теперь нейросети смогут работать вместе, а не по отдельности

👉 Оставить заявку на ранний доступ: neira.chat

Я планирую делиться процессом разработки в этом канале, здесь же я анонсирую запуск проекта 🚀
2👍102
Совершенно случайно узнал, что сегодня Илья Чадин проводит ивент, где авторы каналов могут рассказать о своих проектах

Туда уже присоединились люди из разных сфер IT: юриспруденция, клиентский опыт, поддержка и другие. Решил тоже поддержать их, как и они готовы поддержать меня:

@lizaneit @legalgrabli @bisines_club @itsaboutbalance @TechSupology @kaizen_luchina @human2human_service @cardinalpartner @kultBazaar @idexia_channel @mylifetracking @ravioladesign @learn_and_write

Если вы хотите расширить свой нетворк — это крутая возможность

Про самого Илью я узнал совсем недавно и даже уже успел поучаствовать в рождественской ярмарке книг, которую он организовывал в январе

На фото выше — книга The Cold Start Problem Эндю Чена, которую он мне прислал 👆

В ней рассказывается о том, как сетевые эффекты помогли таким стартапам, как Airbnb, Uber и Twitch, вырасти из нуля в крупные международные компании
😎1
Конечные автоматы: волшебная палочка для распутывания сложной логики

#информатика #конечныеавтоматы

В одном из прошлых постов я коротко освятил тему конечных автоматов: как они могут помочь при написании кода со сложной логикой и где они встречаются в жизни

Теперь покажу классический пример реализации логики турникета, который открывается при опускании жетона

Для примера я буду использовать язык Python

Типичный подход к решению таких задач часто выглядит как набор условных операторов if-else:

def process_turnstile(action):

# Если закрыто:
if current_state == "locked":
if action == "coin":
# Логика при опускании жетона
elif action == "push":
# Логика при нажатии на турникет

# Если открыто:
elif current_state == "unlocked":
if action == "coin":
# Логика при опускании жетона
elif action == "push":
# Логика при нажатии на турникет

# И так далее...


У такого кода есть проблемы: его практически невозможно масштабировать и он подвержен ошибкам при добавлении новых условий

Кроме того, он просто не красивый из-за большого количества вложенных условий

Элегантное решение с помощью паттерна конечного автомата

Конечный автомат (finite state machine) — это математическая модель, которая в любой момент времени может находится только в одном состояний из конечного множества

В ответ на внешнее воздействие автомат может перейти из одного состояния в другое по заданным правилам

Давайте подумаем: какие состояния могут быть у турникета?

Естественно, он может быть либо открыт, либо закрыт:

class State:
LOCKED = "ЗАКРЫТО"
UNLOCKED = "ОТКРЫТО"

А какое воздействие на него можно оказать?

Можно попытаться пройти через закрытый турникет и столкнуться с суровой реальностью, а можно опустить жетон и не привлекать внимание охранника

Следовательно, мы можем определить действия как:

class Action:
COIN = "ЖЕТОН"
PUSH = "НАЖАТЬ"


Затем, вместо вложенных условий if-else можно определить правила перехода из состояния в состояние для каждой комбинации состояние-действие:

transitions = {
(State.LOCKED, Action.COIN): State.UNLOCKED,
(State.LOCKED, Action.PUSH): State.LOCKED,
(State.UNLOCKED, Action.COIN): State.UNLOCKED,
(State.UNLOCKED, Action.PUSH): State.LOCKED
}


Это еще называется таблицей переходов

Преимущества такого подхода очевидны:

Детерминированность (определенность)

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

Масштабируемость

Таблицу переходов легко расширить в будущем, а новые правила не создают конфликтов в работе старых правил

Тестируемость

Каждый переход можно протестировать изолированно

Пример работы программы

Чтобы запустить программу достаточно создать экземпляр «турникета», а затем отправлять ему действия, которые и будут служить внешним воздействием:

# Демонстрация работы
t = Turnstile()
t.process(Action.PUSH) # Останется LOCKED
t.process(Action.COIN) # Станет UNLOCKED
t.process(Action.COIN) # Останется UNLOCKED
t.process(Action.PUSH) # Станет LOCKED


В результате получим:

НАЖАТЬ | ЗАКРЫТО → ЗАКРЫТО
ЖЕТОН | ЗАКРЫТО → ОТКРЫТО
ЖЕТОН | ОТКРЫТО → ОТКРЫТО
НАЖАТЬ | ОТКРЫТО → ЗАКРЫТО


Реальные применения

В этом примере было всего 2 состояния и 2 действия, то есть 2*2 = 4 сценариев поведения

А представьте сложную систему, у которой может быть значительно больше состояний и действий. Описывать такую логику в виде условий if-else — очень сложно, к тому же это может создать ошибки

Конечные автоматы — это не просто теоретическая концепция, а практический инструмент, способный значительно упростить логику вашего приложения

В частности, большинство чат-ботов работают именно по такому же принципу:

На вход они получают текстовое сообщение, которое преобразуется в действие. Затем происходит переход в новое состояние: отправляется сообщение, файл или совершается любое другое действие

Полный код примера с турникетом я опубликовал в открытом доступе на Python Fiddle
👍5
Может ли AI сам исправлять факты, не меняя смысл?

#neira #разработка

Работая над Neira, я решил протестировать фактчекинг, потому что планирую создавать AI-экспертов, таких как аналитики, которые должны опираться на реальные данные

Для примера я взял отрывок сообщения с сайта neira.chat, которое я сгенерировал на скорую руку:

Рынок AI контент-генерации растет на 25% ежегодно, с прогнозируемым объемом $5.3B к 2025 году.


Выглядит убедительно. Но правда ли это? 🤔

Я составил промпт так, чтобы модель не переписывала текст, а затем прогнал текст через новую модель Perplexity Sonar Reasoning (которая, кстати на базе DeepSeek R1) и получил исправленную версию со ссылкой на источник:

Рост рынка — 17.63% в год (а не 25%)
Прогнозируемый объем — $5.9B к 2031 (а не $5.3B к 2025)

AI не переписал текст полностью, а точечно исправил цифры и даты, сохранив исходный текст

Возможно, в будущем я буду использовать подобный фактчекинг, хотя он и может выйти дороже из-за повторного прогона одного и того же сообщения
👏6👍2🦄1
Вайб-кодинг — новый подход к разработке или лень?

На этой неделе Андрей Карпаты (один из основателей OpenAI и бывший руководитель ИИ в Tesla) сделал пост о новом подходе, который использует при написании кода: вайб-кодинге

Если коротко, то суть в следующем:

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


Получается своего рода креативный процесс — он полностью погружается в процесс создания без вникания в детали реализации

Мне этот подход очень напоминает процесс рисования или игры на музыкальном инструменте

Но чтобы так делать, нужно уже иметь опыт

Тогда получится это делать легко, потому что можно представить конечный результат в голове. Иначе очень легко запутаться и в результате получить нерабочую груду кода

Я не думаю, что это понижает качество продукта, если правильно этим пользоваться. Это просто еще один пример того, как ИИ ускоряет работу специалистов
1👍31💯1
Лучший способ понять как работает ChatGPT

В продолжение предыдущего поста хочу обратить ваше внимание на то, что совсем недавно Андрей Карпаты выложил видео, в котором подробно рассказывает о том, как устроены современные языковые модели вроде ChatGPT. Он это делает практически без кода и скучных технических деталей

Это полноценная бесплатная лекция на 3 часа, в которой Андрей объясняет, как устроены языковые модели:

— как эти модели обучаются
— как слова превращаются в числа
— почему на выходе считаются «токены», а не буквы

и множество других интересных деталей

https://www.youtube.com/watch?v=7xTGNNLPyMI
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Что такое нейронные сети на самом деле?

В прошлом посте я упомянул новое видео Андрея Карпаты, где он рассказывает как устроен ChatGPT

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

Однако, полезно понимать, что стоит за такими технологиями и как они устроены. Поэтому хочу рассказать как устроены нейронные сети в целом, а не языковые модели в частности

Я начал работать с нейронными сетями задолго до появления ChatGPT, еще где-то в 2017 году. Помню как сейчас: я писал простую программу на C#, где обучалась очень простая «нейронная сеть». На самом деле она была настолько простая, что состояла всего из одного нейрона 😁

Программа и скриншоты ее работы доступны на GitHub

В то время как раз получил второе дыхание новый подход к обучению нейронных сетей — глубинное обучение или deep learning. Это подход, в котором обучается не просто несколько нейронов, а несколько слоев нейронов

Продолжение ниже ⬇️
👍3
На рисунке красным отмечены сами нейроны, а в правой части видно несколько слоев из нейронов

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

Магия, которая происходит в нейронных сетях, происходит из-за того, что все соседние нейроны связаны между собой

Каждой такой связи соотвествует число от 0 до 1

Например: 0.345613

В зависимости от комбинации таких чисел нейросеть реагирует по разному. То есть связи между нейронами образую своего рода память — сеть «запоминает» соответствия входа и выхода

Возникает логичный вопрос:

Как узнать, какие числа нужно назначить связям?


Именно эту проблему и решает процесс обучения нейронной сети самый популярный на текущий момент алгоритм:

Метод обратного распространения ошибки


В следующем посте расскажу о том, как Андрей Карпаты помог мне понять суть этого метода
👍2
Как обучаются нейронные сети: руководство для простых смертных

👆 На картинках выше представлен один и тот же процесс (опуская технические детали), который называется метод обратного распространения ошибки / error backpropagation

Разница лишь в том, что на первой картинке — типичное описание в статьях или учебниках. Обычно об этом методе любят рассказывать так:

Берем вот эти переменные, по ним берем производную, эту производную умножаем на производную и повторяем эту процедуру 10 раз


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

Я достаточно долго искал материалы, чтобы понять как же работает этот метод и в один прекрасный момент нашел Стэнфордский курс CS213n, соавтором которого как раз является Андрей Карпаты

Продолжение ниже ⬇️
👍2
На второй картинке представлен тот же самый процесс распространения ошибки, что и в первом

Разница в визуализации концепции — коллосальная

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

Разумеется, невозможно рассказать в деталях о том, как работает этот алгоритм в формате постов в Telegram, однако я хотел рассказать свою историю того, как я начал изучать нейронные сети и постараться мотивировать вас на изучение того, что интересно именно вам

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

Курс, по сверточным нейронным сетям:
CS231n: Convolutional Neural Networks for Visual Recognition

Андрей Карпаты далеко не единственный топовый преподаватель, материалы которого я использую для обучения

В будущем я планирую еще делиться с вами другими своими находками из сферы науки и техники, не обязательно из области машинного обучения
👍4
⭐️ Нас уже больше 100! (и это без учета ботов tgstat)

Я начал вести этот канал для того, чтобы делиться с вами своим опытом, мыслями, проектами и интересными идеями

Однако это желание появилось у меня не потому, что я хочу сказать: «Смотрите, как много я знаю и умею»

Мой канал — это в первую очередь про тягу к знаниям

Поэтому, помимо своих мыслей и идей, я также люблю делиться материалами, которые помогают мне узнавать новое и глубже понимать мир

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

Lex Fridman / ведёт один из самых известных подкастов в мире, где задаёт глубокие вопросы лучшим специалистам в самых разных областях, в том числе науке и технике: Roger Penrose, Max Tegmark, Steven Wolfram, Joscha Bach, Lee Cronin и многие другие

Grant Sanderson / создатель популярного YouTube-канала 3Blue1Brown, где просто и понятно рассказывает о сложных абстрактных математических концепциях

Brady Haran / видео-журналист, который берёт интервью у преподавателей и учёных в лучших университетах Англии. У него есть два проекта: Numberphile и Computerphile

Ben Eater / популяризатор математики и электроники. Благодаря нему я и многие другие смогли собрать свой 8-битный компьютер просто из груды компонентов

Andrej Karpathy / учёный в области искусственного интеллекта, один из лучших преподавателей машинного обучения в мире

Andrew Ng / исследователь искусственного интеллекта и один из основателей Coursera. Благодаря ему я узнал как работают нейронные сети. Его курс по глубинному обучению был первым курсом на Coursera и доступен всем без ограничений до сих пор)

Hank Green / популяризатор науки, создатель научно-популярного YouTube-канала SciShow

Sal Khan / инженер и преподаватель, основатель бесплатной образовательной платформы Khan Academy

Когда я начал составлять этот список, оказалось, что таких людей даже больше, чем я думал. Поэтому вместить их всех в один пост просто невозможно

Идея этого поста в том, что я сам стою на плечах гигантов, которые вдохновляют меня. А я, в свою очередь, стараюсь передать это вдохновение вам через свои посты

Спасибо что читаете 💛
2🔥9❤‍🔥4👏2💯1
Выше я упоминал Эндрю Ына (Andrew Ng). И вот как раз недавно я наткнулся на видео, в котором он рассказывает об «агентном» подходе в ИИ, который называет «Agentic AI»

Я заметил, что Эндрю довольно активно в последнее время продвигает идею такого подхода (это не первое видео, в котором он рассказывает об этом). Однако это навело меня на некоторые мысли:

До сих пор нет четкого определения, что такое «агентский ИИ»

На самом деле, в области ИИ очень много терминов, у которых ещё нет точной трактовки и это один из них

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

1. Агентный ИИ в смысле, что есть несколько отдельных агентов ИИ 👾👾👾

Каждый из них умеет делать что-то одно и специализируется на этом

В результате получается система, в которой несколько ИИ агентов работают совместно:

— один рисует картинки
— другой ищет информацию в интернете
— третий общается с пользователем и координирует работу

Но есть второй подход, который не выделяет роли в отдельных агентов. Вместо этого вся система — это один агент (как агент Смит):

2. Агент ИИ как виртуальный пользователь

В этом случае это единая система, которая может делать все самостоятельно: и в интернет сходить, и картинку нарисовать, и что-то посчитать, и текст написать

Второй подход — это то, как видит общий искусственный интеллект (AGI) Сэм Альтман из OpenAI

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

Надеюсь, что по этому пути OpenAI не пойдут и у них действительно получится сделать что-то принципиально новое
👍3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
На днях завирусилось видео, в котором два ИИ-ассистента общаются с помощью «gibberlink» — протокола, который позволяет передавать данные с помощью звука по аналогии с азбукой Морзе

Я решил копнуть глубже и разобраться:

Хотя это видео выстрелило только сейчас, сама технология, которая лежит в основе называется ggwave и была реализована Георгием Гергановым как минимум 4 года назад (не считая прототипов)

Протокол поддерживает несколько форматов, которые отличаются по скорости и даже поддерживает ультразвук 🙉

Сам ggwave можно попробовать прямо в браузере:
👉 https://ggwave-js.ggerganov.com

Просто откройте на любом устройстве с микрофоном и нажмите «Start capturing». В поле будет появляться принятый текст сообщения.

Также можно создать собственный файл с помощью HTTP API

#интересное
1👍41🔥1😱1
Послание
Послание для вас в формате ggwave, которое можно расшифровать здесь: https://ggwave-js.ggerganov.com
😁2