Идеальный стартап
374 subscribers
81 photos
5 videos
1 file
51 links
Стартапы, нейронки и прочее.

По всем вопросам: @monsetrum
Download Telegram
Оптимизация LLM - советы от OpenAI

Неделю назад у OpenAI прошла конференция, где они анонсировали GPT-4, GPTs (убийца стартапов-помощников) и много чего ещё. Помимо это было несколько лекций интересных более в техническом плане. На одной из них они рассказали свой опыт оптимизации LLM для разных задач. В итоге вышла одно из лучших введений по оптимизации, что я видел. Хотя брали они по большей части ChatGPT и GPT-4, эту инструкцию легко применить и на другие, типа Llama, PathLLM. Потому что проблемы по большей части у всех моделей одни:

🦾 Недостаток умений - как выполнять задание?

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

Выделяется четыре основных подхода для оптимизации:

1️⃣ Prompt Engineering (техника подсказок) - зачастую мы используем естественный язык, чтобы объяснить модели, что же от нее мы хотим. Если мы хотим, чтобы она работала в качестве решателя уравнений, то мы пишем ей

“реши 2x = 4”


- это и есть prompt. Его можно написать по-разному - кто-то пишет объемные тексты с примерами, кто-то один два слова и надеется, что модель его поймет. В целом, аналогия тут как с человеком - чем лучше мы объясним ему задачу, тем лучше он её сделает (зачастую).

Есть множество способов улучшить prompt. Например, мы можем дать пару примеров модели и четче поставить задание:

Я хочу, чтобы ты решал уравнения. Вот пример того, как решается одно из уравнений

3x = 6
x = 6/3
x = 2

Найди x в следующем примере:
2x = 4


2️⃣ RAG (Retrieval Augmented Generation) - генерируем выход модели на основе внешний данных. Модель склонна забывать знания или не иметь их вовсе. Здесь нам необходимо передать информацию, которая поможет решить задачу. Например, если мы решаем физические задачи -

Какова масса воды, если объем равен 1 литру?


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

Плотность воды - 997 г. / м3
Какова масса воды, если объем равен 1 литру?


3️⃣ Fine-tuning (дообучение) - в далекие времена, когда не существовало LLM и context-learning, людям приходилось собирать набор данных (пример - метка) и каждый раз тратить множество видеомашинных часов на обучение модели. Да, здесь идея та же - LLM модели не имеют какой-то специфики в плане обучения. Если вам нужен, например, определенный формат вывода, то можно собрать свой набор данных и дообучить существующую модель - так не нужно будет каждый раз кидать сложный и длинный prompt, что упростит ее использование

4️⃣ Попробовать все сразу!

💡 Естественно, что у каждого метода есть свои плюсы и минусы, каждый из них закрывает разные проблемы модели, поэтому не стоит думать, что один лучше другого. Например, RAG закрывает потребность модели в знании, а fine-tuning - в умении. OpenAI так же выпустили и методичку плюсов и минусов:

Prompt Engineering

Относительно прост в реализации - можно быстро получить модель, решающую задачу
Является отличным бейзланом, чтобы сравнивать последующие шаги оптимизации
🚫 Не является средством для введения новых знаний в модель
🚫 Не средство для представления модели совершенно новых умений
🚫 Большие и сложные prompt’ы нагружают модель - увеличивается задержка

RAG

Хороший способ представить модели новые знания
Уменьшаем галлюцинации модели с помощью контроля знаний
🚫 Не получится представить совершенно новую область знаний (то есть большое количество) - тут нужна связка знания + умения
🚫 Не средство для представления модели совершенно новых умений
🚫 Не особо уменьшает количество используемых токенов в prompt’e

Fine-tuning

Способ сосредоточить внимание на уже имеющихся знаниях модели
Кастомизация выхода модели - структура, формат
Способ для обучения модели сложных инструкций
🚫 Не способ для добавления новых знаний в модель
🚫 Трудоемкий подход, поэтому не ждите быстрых итераций
🔥3
На предыдущий пост не хватило символов...
Если интересно, могу сделать более детальный обзор по prompt-engineering и RAG (моя докторская).
🔥3
Стало интересно посмотреть, как GPT-4 справиться с мелкими задачами программирования и можно ли без проблем использовать в повседневной деятельности / работе. Как раз и задача появилась - захотел в телегу сделать себе News settler по AI - собрать несколько новостных сайтов и чтобы мне в телегу все новости шли. Задача довольно простая - парсер + апи к боту в телеге. Как справился GPT? 🧐

Я скачал html файл сайта и закинул в чат со следующим промтом:

Here is an html file for a AI-website news. Could you make a crawler on python with beatifulsoup library to get all news from that page and save it in the class News with the following parameters:

title
photo_url
news_url


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

Тут уже стало сложнее - сама структура приложения - не одна функция, синхронные / асинхронные потоки, вызовы API tg и все такое. Плюс к этому идет то, что все фичи необходимо описывать словесным языком (что логично), но тебе как человеку сложно все продумать за раз, поэтому кодинг идет поэтапно - от малого к большому. И то ли мне непривычно менять код таким образом и я не понял, как писать промтпы, то ли gpt сложно работать с 2 сотнями строчек кода (вероятнее первое, конечно), но наибольшая проблема у меня возникла когда я хотел немного изменить архитектуру. То Чат что-то терял, то ошибки появлялись (не делал await на асинхронных методах и придумывал функции, которых нет у API).

В целом, теперь у меня есть тг бот, который отправляет мне новости с разных ресурсов! Довольно прикольно, в связке с GPT, я сделал это быстрее на 40-50% где-то (за 30 мин), чем без него. Особенно круто его использовать для мелких рутинных и понятных заданий - парсить страницу, например. Для больших приложений я бы его не использовал, потому что все ещё сделаю это быстрее сам, чем буду объяснять, что и как нужно менять в проекте. Из недостатков, которые сейчас прям бросаются в глаза - скорость генерации, супер медленно, но уверен, что скоро это поправят :)
🔥2
Иногда YouTube алгоритмы мне совершенно непонятны... Вот он выдает тебе мем 10-летней давности с 30 миллионами просмотров, тут он тебе показывает клип, который ты уже не видел лет 7 и вообще, с тех времен твои вкусы довольно сильно изменились, но ты все равно нажимаешь на него, чтобы вкусить беззаботность прошлых лет и вспомнить своё отрочество. Сегодня они меня снова удивили и выдали.... Лекцию от Сэма Альтмана по стартапам - за 7 лет там от 1 млн до сотен тысяч просмотров (что для лекции Стенфорда с таким именитым человеком не так уж много), так что могу считать, что это ещё не завирусилось :)

В те времена Сэм Альтман был президентом Y Combinator - организации по запуску стартапов, которая считается одной из лучших в этом - через неё прошли десятки единорогов: Airbnb, Dropbox, Stripe и другие, которые меняют нашу жизнь сейчас. Я ещё не успел посмотреть весь цикл полностью, лишь первые 10 минут, но в целом звучит супер заманчиво, особенно от человека с таким опытом. Довольно интересно его видение и способ построения успешной компании. Если интересно, то сделаю чуть позже обзор на все это :)

https://www.youtube.com/watch?v=CBYhVcO4WgI
👍1
Пишу сейчас статью на vc.ru (планирую закончить завтра). Очевидно, что первый абзац один из самых важных, поэтому столь важную работу я решил делегировать. Попробовал GPT-4, чтобы посмотреть, как хорошо он справится, результаты вы можете видеть сами

GPT-4

От алгоритмических загадок YouTube до стартап-стратегий от Сэма Альтмана – путь к успеху в мире технологий непредсказуем и захватывающ. Сегодня мы раскрываем неочевидные уроки от основателя OpenAI, которые помогут вам осознать, как идея, рожденная в студенческой аудитории, может превратиться в технологического гиганта. Откройте для себя секреты и советы от мастеров своего дела, которые меняют правила игры в стартап-индустрии.


GPT-4 + несколько примеров хороших абзацев

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


GPT-4 + несколько примеров хороших абзацев + несколько промптов-исправлений

Как часто случайное видео на YouTube может открыть дверь в мир стартапов и предпринимательства? Сегодня, благодаря алгоритмам, я наткнулся на серию лекций Сэма Альтмана, эксперта по стартапам и бывшего президента Y Combinator. В этих лекциях он делится своими знаниями и опытом, рассказывая о том, что необходимо для запуска и роста успешного стартапа. Открывая первую лекцию, я не ожидал, что найду столько ценной информации, и в этой статье я хочу поделиться с вами самыми важными уроками, которые Альтман предложил аудитории
🔥2
Пару недель назад в мобильном приложении ChatGPT появилась возможность говорить с ним голосом, и это… очень круто! Нет, реально, реализация для первой попытки прям супер. Я еще не слышал такого суперского сгенерированного голоса - интонация, эмоции, живость разговора - все присутствует. Погружению способствует еще то, что приложение тебя слушает всегда в этом режиме (а-ля звонок), поэтому получается довольно естественный и живой диалог. Но без минусов не обошлось, конечно.

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

🥲🥲 Я использую его в качестве «справочника» по немецкому: сижу с учебником, делаю задания. Если что-то непонятно - спрашиваю правила и переводы слов. Естественно, английские слова он отлично понимает, а вот немецкие… то ли у меня плохой акцент прямо, то ли он просто не очень умный - процент распознания немецких слов с первого раза - 20-30%, что немного удручает.

🥲🥲🥲🥲 Ограничение в 30 вызовов гпт-4 - просто мрак. Я успеваю поговорить с ним только минут 20-30, хотя обычно занимаюсь 1,5-2 часа, ну то есть сами понимаете. Если посчитать, сколько из этого времени я перезадаю вопрос, чтобы он понял немецкое слово, то выходит совсем печально… за что я плачу??

Но это все поправиться - я уверен, пока можете просто потестировать, как плавно уже можно общаться с ботами для выполнения своих задач.

P.S. Если будете говорить с ним на русском, то у него очень смешной Американский акцент
🌭2
Сейчас читаю книгу «думай медленно… решай быстро». Один из первых параграфов предлагает нам цитату о предвзятости нашей интуиции, которая игнорирует статистику.

Некто описывает своего соседа: «Стив очень застенчив и нелюдим, всегда готов помочь, но мало интересуется окружающими и действительностью. Он тихий и аккуратный, любит порядок и систематичность и очень внимателен к деталям». Кем вероятнее работает Стив: фермером или библиотекарем? Все немедленно отмечают сходство Стива с типичным библиотекарем, но почти всегда игнорируют не менее важные статистические соображения. Вспомнилось ли вам, что на каждого мужчину-библиотекаря в США приходится более 20 фермеров? Фермеров настолько больше, что «тихие и аккуратные» почти наверняка окажутся за рулем трактора, а не за библиотекарским столом. И все же мы обнаружили, что участники наших экспериментов игнорировали статистические факты и полагались исключительно на сходство


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

Большие языковые модели построены на данных, которые мы генерируем. У них определенно есть предвзятости, которые они унаследовали от данных, сгенерированными людьми.

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

Если да, то, возможно, подобный метод можно использовать для построения более честных моделей.
👍2
Нашёл очень крутой сайт по prompt engineering. Там есть все основные концепции, расписанные всего на листе А4, куча полезных ссылок и таблица со всеми значимыми моделями. Жаль только, что он не обновлялся с сентября, по всей видимости, но если интересна база промптов и какие есть методы к ней, то рекомендую глянуть.

https://www.promptingguide.ai/models/collection
👍3
Я все же дописал статью!

Ценности компании OpenAI, советы по созданию стартапов и как сделать классный продукт - все здесь!
Читайте, если у вас есть аккаунт на vc, то лайкайте!!

А вот тут моя любимая цитата: "Посредственные инженеры не строят выдающихся компаний"
С этим в уме, можете начать чтение 🙂

https://vc.ru/s/1157931-upravlenie-proektami/930055-sem-altman-i-kak-otkryt-startap-do-openai
🔥4
Как выглядит моя стена после просмотра лекций
🔥3
Попал в гугл 🥹🥹

Жаль, что не особо повлияло на количество просмотров в статье ахах
🔥3
Научиться учиться - основа всех навыков

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

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

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

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

У вас было такое в университете или школе, что перед экзаменом вы заучили все билеты - даже поняли сам концепт, но через пару дней он как будто бы исчез? То, что было для вас понятным опять стало... новым. Даже если вы осознали сам концепт, то поняли ли его связь с внешним миром? У меня это было основной проблемой в школе - учили формулам, но как и где это применять в реальности? Как закрепить это в нашу систему, чтобы использовать в дальнейшем? Зачастую ещё говорят, что необходимо пойти использовать знания на практике - как раз чтобы экспериментально получить эти связи

Мне захотелось поэкспериментировать и сейчас пробую такую схему:

1. Изучить новый термин. Для этого я завел доску (благослави Freeform) и пишу краткое содержание всего важного, что я прочитал. Это действительно помогает увидеть моменты, которые ты не понимаешь в самом объекте - иногда я читаю и вроде бы понимаю, но мне просто лень признать, что я не понимаю, чтобы разобраться глубже. С письмом такая ленность сокрашается в разы.

2. Изучить связи. Сделать верхнеуровневую схему с объектами и посмотреть, как они взаимодействуют (это уже было пару постов назад с карточками на стене).

А как вы учитесь?
4
RAG: ошибки

Текущие системы Больших Языковых Моделей (LLM) с точки зрения дизайна систем все больше становятся похожи на человеческие умы. Хотя можно было бы и сказать, что у любой сложной системы есть фундаментальные схожести. Например, чем сложнее система, тем больше возможностей для ошибок в ней существует.

Представим, что вам задали вопрос: в каком году родился Юрий Гагарин? Чтобы на него ответить, вам необходимо совершить множество процессов: понять вопрос, найти в своей коре участок, ответственный за космонавтов, найти необходимую дату и сформировать ответ. Естественно, что мы сейчас говорим приближенно, но здесь уже содержится достаточно возможностей для совершения ошибки.

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

В этом примере можно легко заменить вас на LLM, а использование других источников на RAG, и ничего не поменяется. Фундаментально, процессы останутся плюс минус похожими, поменяются лишь инструменты. Эта статья - отличный обзор на текущее состояние RAG с подходами и метриками и ошибками, с которыми модель может столкнуться, таксономию я взял оттуда.
2
1.1 Уровень модели. Недостаток знаний предметной области

Вопрос: Кто CEO BMW?
BloombergGPT: Штольц


BloombergGPT - финансовая модель

1.2 Уровень модели. Устаревшие знания

Вопрос: Когда была выпущена GPT-4?
Ответ: Исходя из моей базы данных от 2021 года, GPT-4 не была выпущена

1.3 Уровень модели. Ошибка рассуждений

Вопрос: Как зовут мать Тома Круза?
Ответ: Мэри Ли Саут
Вопрос: Как зовут сына Мэри Ли Саут?
Ответ: У меня нет информации на этот счет

Модель не может рассудить, исходя из знаний о матери Тома Круза, кто её сын.

2.1 Уровень RAG. Отвлечение полученной информации

Полученная информация: Алан срежиссировал
русскоязычный
фильм "Гражданин Мавзик"

Вопрос: Какой национальности режиссер фильма Гражданин Мавзик?
Ответ: Русский


Алан - знаменитый американский режиссер

2.2 Уровень RAG. Неправильная интерпретация полученной информации.

Полученная информация: Граф Геральд 3 был женат на Маргарите

Вопрос: На ком был женат Граф Геральд 1?
Ответ: Граф Геральд 1 был женат на Маргарите

Модель ошибочно восприняла Геральда 3 за Геральда 1

2.3 Уровень RAG. Невозможность обнаружить дезинформацию

Полученная информация от источника 1: Джек родился в 2021 году
Полученная информация от источника 2: Врачи подтвердили, что Джек был рожден 19 ноября 2018 года

Вопрос: В каком году родился Джек
Ответ: Исходя из информации, представленной в двух статьях, Джек родился в 2021 году

В условиях противоречивой информации, модели стоит сделать акцент на том, что информация требует уточнения. Например: Первый документ утверждает, что Джек родился в 2021 году, хотя второй источник утверждает на 2018 году

3.1 Уровень вывода модели. Эффект снежного кома

Вопрос: В каком году был рожден Христофор Колумб?
Ответ: 2021
Вопрос: Какой айфон был последней модели при Христофоре Колумбе
Ответ: 13 айфон был последней моделью при Христофоре Колумбе

Модель делает ошибки на раннем этапе, что ведет к ещё большему количеству ошибок в дальнейшем

3.2 Уровень вывода модели.
Bias

Вопрос: Саша очень хорош в математике. Его национальность - [существительное].
Ответ: Китаец

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

Не так давно App Store и Google Market выбрали лучшие приложения 2023 года! Это отличная возможность посмотреть на текущие тренды, чтобы понять развитие индустрии на ближайшие годы.

Угадайте, сколько лучших приложений у App Store содержат «ИИ» в описании? Правильно! 3 из 4. То, что ИИ стало довольно популярным направлением - ни для кого это не секрет, но как это слово вставляют в функционал?

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

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

ChatGPT стал большим прорывом прошлого года. Родился целый рынок с кучей приложений под это, пока сложно назвать какой-то значимый стартап - они все в процессе роста. Через год-два большая часть из них так и не увидит света, но кто-то превратится в единорога. Лучшим AI приложением Google Market стал character.ai. Он позволяет создавать персонажей для поддержки диалога с вами. Клуб любителей собак, древнегреческие боги, вымышленные одноклассники - все это вы найдете и создадите там.

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

С Новым годом, друзья! :) 🎄
🔥4
Если вы думали, что я умер, то это почти так. Ноооо... я работаю сейчас над zero-shot retrieval системой, и выходит успешно (хотя мои ожидания были больше)... но как будто бы SOTA уже близка!

Вообще, пишу я не за этим. Я начал работать над пересказом статей по RAG тематике и оформил это все в качестве страницы на GitHub. Пока есть немного и это, в основном, zero-shot, но у меня ещё штук 5 статей на английском пересказано в целом по RAG и мультимодальности там есть, осталось только на русский перевести. Буду рад фидбеку, коллаборации, да и от звезд на гите не отказался бы...

https://github.com/Monsets/HowToRAG_ru?tab=readme-ov-file
👍6