Привет, это история о разработке самого удобного приложения для зубрежки английских слов инди-разработчиком. Еще одно?!
– Да, но с GenAI особенностями и алгоритмами!
Меня зовут Саша Ершов
я мобильный разработчик с 2012, в базе Android, Lead
Часть 1. Предыстория, теория и исследования
В ноябре прошлого года я пробую жить в Дубае и решаю подтянуть свой словарный запас. Тогда я начинаю перебирать приложения для изучения английских слов и остановился на Анки – это легендарный комбайн для зубрежки всего: слов, иероглифов, названий мышц и костей – всего того, где есть зубрежка. Ссылка на Вики.
Принципы Анки
Это приложение с карточками, где вам показывается слово, а вы, в свою очередь, пытаетесь вспомнить его перевод или определение. Если вспомнить не получается – нажимаете на кнопку, и перевод появляется.
Анки работает на интервальных повторениях и придуманной еще в XIX веке кривой забывания Эббингауза. Их суть повторять слово, которое вы пытаетесь запомнить, чуть ранее момента его забывания, при этом постепенно увеличивая интервалы между повторениями. Так слово закрепляется в долговременной памяти.
Первые программы с таким принципом
стали появляться в конце 80-х годов
Другими словами, вам показывается изучаемое слово, а вы пробуете вспомнить его перевод. Если вспомнить удается, то слово будет вновь показано для проверки уже через три дня, потом через восемь, двадцать два и так далее. Но если вы забыли – цепочка сбрасывается и начинает строиться заново с первого дня.
Слово проходит такую цепочку, постепенно увеличивая интервал для следующего повторения. При таких повторениях вы запоминаете слово на 100%. Правда, со временем удержать его в памяти становится сложнее. Но если вовремя напоминать слово, то постепенно оно запомнится навсегда. Если же повторение пропустить - слово снова забывается.
Алгоритм, заложенный в Анки, называется SuperMemo2. Интересно, что сейчас существует уже 18-ая версия этого алгоритма. В настоящее время идут споры Anki vs. SuperМemo об эффективности подходов в зубрежке. Я на стороне практического применения. Люди оказались не готовы тренировать слова чаще раза в день. Поэтому Анки и многие другие приложения продолжают использовать именно вторую, более старую, версию.
В любом случае постоянство важнее алгоритма.
Как учить понятно,
но что учить?
Слова, но какие?
Я решил поискать и пройти тесты на знание количества слов. Мой уровень на старте показывал 4500 слов. Далее, раз в месяц, я заново проходил эти тесты. Моя личная практика показала, что подобные тесты работают с погрешностью ±500-1000 слов.
Слова важнее грамматики, ими можно говорить как тегами, и все-равно будет понятно: "Я ходить гулять девушка завтра", "Я документ терять" – звучит неправильно, но понятно, о чем речь.
Частоты слов и эффективность
Я нашел список слов распределенных по частоте использования англичанами в речи.
Начинать учить следует с ежедневных «he» и «she».
Далее перейти к словам посложнее «respect» и «ticket».
А потом еще более редким «refusal» и «pave» для эффективности.
Так на меньшее количество изученных слов будет больше понимания.
Я начал пролистывать этот список и зафиксировал в нем то место, после которого у меня было уже много пробелов в знании английских слов. Именно с этого места я и стал учить слова в сторону более редких. Назовем это место начальной точкой.
Так вышло, что я не знал слово «vast», а в упомянутом выше списке оно было в первой 1000 слов.
И было достаточно много неизвестных мне, но частых слов до начальной точки. Я пробежался и тоже добавил их в обучение.
Обожаю экономить время: )
Позже я руками пролистал все 16.000 слов и исключил из изучения все уже известные мне слова, чтобы не учить их и не тратить на них время. Делал я это со скоростью 1000 слов в час.
Я нашел исследование на сайтах по тестам словарного запаса, в котором говорится, что вполне возможно найти такую начальную точку. На самом деле, довольно редко бывает, когда человек не знает популярные слова, но знает много редких.
У всех изучающих разные начальные точки: кто-то останавливается на «he», кто-то на «disturb». После этой точки изучающий знает уже мало слов. Они ему встречались редко, и он их не смог запомнить.
Процент изучающих английский язык и количество известных им слов по уровням A1-C2 примерно варьируется так:
Уровень A1, Начальный: ±10-20% и знает 300-500 слов
Уровень A2, Базовый: около ±20-30%, 600-1000 слов
Уровень B1, Средний: около ±30-40%, 1000-2750 слов
Уровень B2, Выше среднего: около ±15-25%, 2750-4500 слов
(на этом уровне, кстати, изучающие часто начинают довольно свободно говорить на английском, смотреть фильмы без перевода и зачастую бросают изучение. И на С1+ переходит небольшой процент людей)Уровень C1, Продвинутый: около ±5-10%, 5000-7000 слов
Уровень C2, Свободное владение: около ±1-5%, 8000+ слов
Интересно,
что люди прибавляют
около 2500 слов в год
в родном языке
Результат, 10.000 слов
Или +5500 новых слов. Столько стали показывать у меня тесты после 6 месяцев изучения. Я учил 30 новых слов в день, или +900 в месяц, по 30-60 минут в день после завтрака.
Я ощутил, что после 60 минут занятия слова поддаются изучению уже тяжело. Спустя 40 мин я мог чувствовать по своему недовольству, что уже «пересидел».
Это оказался очень эффективный способ, даже более эффективный, чем погружение и жизнь в англо-говорящей стране.
Проблема
Анки – это фантастический комбайн с миллионом функций. Её плюс – её проблема. Чтобы начать учить слова, нужно многое сделать и во многом разобраться: пройти тесты, найти и установить базу, отыскать эту начальную точку, включать и выключать слова. Плюс ко всему этому в Анки не понятный дизайн и странная статистика.
Да, существуют и другие приложения - я их отсмотрел и попользовался. Но все они казались сложными и тоже мало понятными, или были не лучше Анки. Quizlet - хорошее приложение, но проблему, как у меня, не решало.
Marvel — чудо
Пока я учил слова, то делился своей статистикой и разными интересными встретившимися мне словами в запрещенном Инстаграм. И подписчики спрашивали, что это за приложение. Я рассказывал и давал ссылки.
Я скидывал людям ссылку, делился моей первоначальной частотной базой слов с озвучкой. Спрашивали действительно много. Но мне кажется, на этом многие и останавливались.
Я даже расстроился, когда понял, что нет простого приложения для зубрежки слов. Мне представлялось, что рынок в этой сфере мертв, что люди хотят DuoLinguo, Лингва-Лео, но они больше про грамматику. Есть похожие и тоже хорошие reWord, но просто мне ничего не зашло, только сложный и старый Анки. Как-то так и родилась идея приложения, простого, с простым входом, для зубрежки слов.
Часть 2. Приложение
И я подумал, нужно делать свое новое приложение, с вот этим всем. И сел, технологию взял обкатанный Flutter. Знаю, пишу, пробовал Kotlin Multiplatform. Но там пока много всего в будущем.
На работе мы перешли на Flutter – он хорошо показал себя. Я год сидел на нем, отлично его знаю и быстро пишу. И как говорят фотографы: самый лучший фотоаппарат, тот который у вас есть. Плюс Flutter позволил выпускать сразу на iOS и Android.
За два месяца и 30.000 строк кода мне удалось написать первую версию. Я сразу стал обкатывать ее на пользователях и себе.
Частотный список слов
Сначала я распотрошил проверенный и неплохой список слов с Анки и попробовал с ним. Но частоты оказались не совсем правильными.
Тогда я стал искать Гугловые частоты употребления слов в книгах NGram и просто кем-то собранные индексные базы для машинного обучения на 300k слов улучшил базу частотности слов. Плюс посмотрел частоты от Corpus of Contemporary American English (COCA). COCA, кстати, пишет, берите наши частоты и указывайте нас и пугают судом своим «пауком» который по ночам сканит интернет на свои списки.
Я миллион раз пересортировал базу слов, прокачал навыки Excel вместе с chatGPT и словил первые миграции БД для пользователей. Все пока хранится локально. Я просто не мог сказать пока еще не многочисленным пользователям: «Cорян, нужно заново все начать». У них уже шло обучение, и мне было бы жаль потерять их прогресс.
Это изменения по коду на гите, почти книга. Но 200k строк можно выкинуть, это 12 полных перезаливов базы данных из 14.000 строк.
Генерация изображений
В процессе пришла идея «нагенерить» картинок нейросетью. Я попробовал запустить Stable Diffusion на Mac. Для меня стало открытием, что кто угодно может запустить ее у себя.
Заработало, но на моем M1 один запрос генерировался по 2-4 минуты, не хватало оперативки и архитектуры.
А нужно было минимум 4000 слов и запросов – это достаточное языковое ядро для комфортных разговоров с другими людьми.
Я даже думал купить или арендовать игровой ПК на Винде с мощной видео-картой за 6000₽ в месяц.
Но помогли парни, бывшие коллеги, они подняли свою Stable Diffusion и уже дообучили её. Дали мне пару раз бесплатно API-доступ на пару дней к своему серверу. И я скриптами за пару ночей я сгенерил 4500 картинок.
Сначала я пробовал генерировать по слову, но есть проблема с абстрактными словами, типа «расстроенный» или «мудрость». Нейронка не цепляется за то, что нельзя изобразить. Поэтому я перешел на примеры и на само слово в запросе.
Художественные стили и раскраска брались случайно из сета и подставлялись в запрос. Но позже все равно пришлось отбирать их руками со скоростью 1000 картинок в день.
Примеры генераций. Было 2 стадии и первую сразу видно :)
Иногда эти картинки получались очень странные. Сначала я думал, что для слова конь обязательно нужен конь. Но попробовав, я даже кайфанул с того что они такие.
Для запоминания нужна необычность,
так мозгу проще связывать
новые абстрактные слова.
Плюс в таком подходе задействовано больше каналов восприятия и визуальный и аудиальный.
Тестирование и продакт-девелопмент
Параллельно с разработкой я продолжал тестировать и рассказывал в запрещенном Инстаграм о продвижении разработки. Сейчас есть около десяти активных пользователей. Эти люди – моё золото и мои консультанты! Десять это не ноль и это означает, что идея рабочая. Они подсказывали, что неудобно и что не работает, а что выходит классно.
Например, было ошибкой сделать классическое обучение. Никто не хотел его читать, а просто пролистывал и, естественно, не понимал. Поэтому на коленке я собрал обучающий видос. Вместо того, чтобы начитать самому, я нашел голос и решил тоже озвучить его нейросетью. Он получился немного странным, но мне даже нравится.
Я залил его в Рилс, чтобы проверить досматриваемость и интересность. По статистике на вообще не "прогретых" людей он получился хорошим. Необходимо было сократить его до 45 секунд и перенести самое важное в первые 15 секунд.
Так почему еще одно приложение про английский?
Считается, что первые стартапы лучше делать не в «голубом» инновационном и бесконкурентном рынке: людям сложно объяснять новые идеи. Советуют идти в понятные «алые» и высококонкурентные рынки, типа психологии, эзотерики, похудения и английского. В этих сферах всегда есть спрос. И вы можете откусить свою долю от пирога. К тому же явных лидеров именно в изучении слов нет.
Я отсматривал почти все приложения в этой сфере и собирал с них интересные и рабочие идеи. Я вижу много приложений со сложным входом, где нужно разбираться. В такие моменты возникает микро-злость. Поэтому в своем я пробую выкинуть все тяжелое, не нужное и не работающее.
Например, я выкинул первоначальный тест. Он оказался не рабочим: люди не знали слов «chair» и «blue», а тест выдавал уровень B2. Они думали, что знают и самообманывались. Тест врал на начальной точке, но тем не менее неплохо показывал количество известных слов.
Планы
Сейчас в планах собрать 1000 активных бесплатных пользователей и обратную связь от них. И уже далее приходить к экспериментам с платными подписками. Хотя функционал готов.
Нужно заказать редизайн UI. Мой если показываешь про-дизайнерам раз***ывают. Но вкусовщина, сейчас UX главнее: )
И хочется сделать активности с друзьями. Обсуждения слов, соревнования и челенджи, как круги в часах Apple. Моя жена когда-то так увлеклась этим, что мы с ней в 23:30 ходили и закрывали активности, чтобы она смогла обыграть своих друзей. Это будет интересно, делится и смотреть статистику друзей.
Хочется сделать необычные примеры, генерировать их chatGPT. И перерисовать их.
Хочется понять статистику изучения сложных слов и давать лучшие способы запоминания на анализе этой статистики.
Инвестиции
Месяц назад получил предложение об инвестициях из Дубая на 10М₽ за 20% компании. Ребята классные. Но им нужен ретеншн и больше пользователей.
В июне я подался на грант на 4М₽, жду решения.
И сейчас готовлю кампанию на Бумстартере на 2М₽.
Выводы
Я пробовал несколько раз запускаться с другими проектами. И это мой первый проект в который я абсолютно верю и вижу, что может взлететь. Я сам пользуюсь и классно видеть как пользуются.
Да, могут закончиться деньги, но довести до ума и успеха хочется.
Есть сложности с РФ рекламой и отключенными платежами в наших сторах. Кстати последнее решилось, спасибо коллеге из Черногории.
Есть сложности с оплатами в РФ, возвратами пользователей в приложение, багами, переводами. Но все выглядит решаемым.
Главное что есть необычная идея и мне стало понятно как выглядит уникальность. Есть уверенность делаю нужное, есть первые пользователи. И понятно как в будущем искать такие идеи.
К первым негативным оценкам привыкаешь, это золото, потому что понятно что улучшать. Хоть внутри и злишься по началу.
Работа над стартапом это правда не легко. Но пока это самое интересное, что я делал.
Icicle
Изучи английские слова по нейро-картинкам
Попробовать приложение:
Приложение реализует все принципы эффективности из предыстории:
Работающие алгоритмы
Необычные GenAI-картинки
Эффективный частотный список словс третьими формами и фразовыми глаголами
Супер-простой Тиндер-подобный интерфейс
Определение уровня на входе, начальной точкии моментальные исключения известных слов
Уведомления, темы, звуки и озвучка
Мотивирующая статистика
Менеджер слов, поиск, фильтрация
и перерывы на цитаты Джобса и Рокки 4
PS
Полная история в виде подборки из сторис в Google Фото.
Есть вопросы? Про разработку, сторы, инвестиции или еще какие-нибудь пишите в запрещенный Инстаграм, подписывайтесь или Телегу.
Есть предложения о работе и сотрудничестве, можем обсудить: )
Спасибо за внимание
Лайк если понравилось :)