#offtop #Kubernetes
Нашёл очень хорошую статью 2017 года, как разработчик изучала кубер 1.6, понимала основные концепты и механизмы. Примерно то же неоднократно рассказывал @lexfrei разным людям в приватных лекциях за чашкой чая.
Там же ссылки на официальную документацию и отдельно отличная статья про планировщик.
Нашёл очень хорошую статью 2017 года, как разработчик изучала кубер 1.6, понимала основные концепты и механизмы. Примерно то же неоднократно рассказывал @lexfrei разным людям в приватных лекциях за чашкой чая.
Там же ссылки на официальную документацию и отдельно отличная статья про планировщик.
Julia Evans
A few things I've learned about Kubernetes
I’ve been learning about Kubernetes at work recently. I only started seriously thinking about it maybe 6 months ago – my partner Kamal has been excited about Kubernetes for a few years (him: “julia! you can run programs without worrying what computers they…
Forwarded from Karim Iskakov - канал (Karim Iskakov)
Как сделать свой ChatGPT
Думаю все (или абсолютное большинство), кто это читает, уже попробовали ChatGPT. Я лично пользуюсь им почти каждый день и чувствую пользуи деградацию.
Но в один момент там появились конские лимиты сообщений, типа 2 сообщения в час. Потом адские задержки. Потом меня там вообще забанили. Да и вообще, чаты в веб-интерфейсе – это кусок💩
И я сделал свой удобный ChatGPT в телеграме! Притворяться браузером и делать запросы в их интерфейс – не вариант (лимиты, да и бан никто не отменял). Поэтому я решил построить ChatGPT на основе ее базовой модели – GPT-3, благо у нее есть API.
Немного ликбеза. GPT-3 – это большая языковая модель (LLM), которая умеет только одно: принимать на вход текст и писать к нему продолжение. ChatGPT в свою очередь построен на базе GPT-3, но он еще умеет поддерживать контекст в чате, что является game changer'ом🏆 (бешеный хайп на ChatGPT подтверждает это, ведь до него, GPT-3 была уже доступна около года, но всем было пох).
Получается, задача сводится к тому, чтобы научить GPT-3 поддерживать контекст. А сделать это очень просто с правильным промптом. Например, таким:
Далее засовываем это в API в GPT-3 и получаем ответ. Сохраняя вопросы-ответы, мы можем каждый раз вставлять историю диалога в наш промпт, и так GPT-3 будет знать весь контекст. Это работает очень хорошо и почти неотличимо от ChatGPT.
Внизу поделюсь ссылкой на свой репозиторий с телеграм ботом, куда вы сможете вставить OpenAI API ключ и наслаждаться общением с AI в уютном телеграмчике. А первым 10 комметаторам дам доступ в свой поднятный бот (только не обанкротьте меня там, плз 🥲).
P.S.: Если душнить, то ChatGPT в отличии от GPT-3 была дополнительно зафайнтьюнина на диалоговых данных + дообучена на ответахкенийских рабочих за 2$/час разметчиков с помощью RLHF. Но мои тесты показали, что похоже это все нацелено не на улучшение качества и полезности ответов, а на то, чтобы в OpenAI не подали в суд (за то, что их модель с удовольствием рассказывает людям как угнать машину).
*Еще в комменты закину несколько приколюх
🔗 ChatGPT Telegram Bot (GitHub)
🎒 @karim_iskakov
Думаю все (или абсолютное большинство), кто это читает, уже попробовали ChatGPT. Я лично пользуюсь им почти каждый день и чувствую пользу
Но в один момент там появились конские лимиты сообщений, типа 2 сообщения в час. Потом адские задержки. Потом меня там вообще забанили. Да и вообще, чаты в веб-интерфейсе – это кусок
И я сделал свой удобный ChatGPT в телеграме! Притворяться браузером и делать запросы в их интерфейс – не вариант (лимиты, да и бан никто не отменял). Поэтому я решил построить ChatGPT на основе ее базовой модели – GPT-3, благо у нее есть API.
Немного ликбеза. GPT-3 – это большая языковая модель (LLM), которая умеет только одно: принимать на вход текст и писать к нему продолжение. ChatGPT в свою очередь построен на базе GPT-3, но он еще умеет поддерживать контекст в чате, что является game changer'ом
Получается, задача сводится к тому, чтобы научить GPT-3 поддерживать контекст. А сделать это очень просто с правильным промптом. Например, таким:
As an advanced chatbot named ChatGPT, your primary goal is to assist users to the best of your ability. This may involve answering questions, providing helpful information, or completing tasks based on user input.
User: What is the meaning of the Nero Burning ROM logo?
ChatGPT:
Далее засовываем это в API в GPT-3 и получаем ответ. Сохраняя вопросы-ответы, мы можем каждый раз вставлять историю диалога в наш промпт, и так GPT-3 будет знать весь контекст. Это работает очень хорошо и почти неотличимо от ChatGPT.
Внизу поделюсь ссылкой на свой репозиторий с телеграм ботом, куда вы сможете вставить OpenAI API ключ и наслаждаться общением с AI в уютном телеграмчике. А первым 10 комметаторам дам доступ в свой поднятный бот (только не обанкротьте меня там, плз 🥲).
P.S.: Если душнить, то ChatGPT в отличии от GPT-3 была дополнительно зафайнтьюнина на диалоговых данных + дообучена на ответах
*Еще в комменты закину несколько приколюх
🔗 ChatGPT Telegram Bot (GitHub)
🎒 @karim_iskakov
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - father-bot/chatgpt_telegram_bot: 💬 Telegram bot with ChatGPT, Python-based, using OpenAI's API.
💬 Telegram bot with ChatGPT, Python-based, using OpenAI's API. - father-bot/chatgpt_telegram_bot
#gpt #blenderbot подобная система, только намного лучше: применение итеративного подхода к запросам в поисковик (Bing, Google) для получения нейронкой ответа на вопрос
Forwarded from DL in NLP (Vlad Lialin)
You are GPT-3
Увидел в твиттере совершенно огненный тред о том как GPT-3 использет википедию, ipython и другие штуки, чтобы отвечать на вопросы. Выглядит это примерно так. Всё начинается с промта
"You are GPT-3. Answer the following questions. If you can't answer it directly, consult IPython, if you need to answer questions about events past your latest training data April 2021, consult wikipedia." (полный промт на картинке)
Это позволяет GPT-3 отвечать не только на вопросы типа "сколько сантиметров в дюйме" или "как зовут первого президента США", но и на
1. вычислительные задачи — 7 + 19^3
1. операции со строками — разворот строки
1. вопросы о недавних ивентах — когда умерла Елизавета вторая
1. точные даты — когда был выпущен последний эпизод Lost
1. вопросы требущие комбинации common sense и вычислений — число ног паука в третьей степени (сложно перееоценить важность этого вопроса 🤣)
Идея основана на статье Prompt Programming for Large Language Models
По сути в 10 строчек промпта и 100 строк кода вы можете написать своего Google Assistant. Думаю надо будет заняться этим на выходных.
Увидел в твиттере совершенно огненный тред о том как GPT-3 использет википедию, ipython и другие штуки, чтобы отвечать на вопросы. Выглядит это примерно так. Всё начинается с промта
"You are GPT-3. Answer the following questions. If you can't answer it directly, consult IPython, if you need to answer questions about events past your latest training data April 2021, consult wikipedia." (полный промт на картинке)
Это позволяет GPT-3 отвечать не только на вопросы типа "сколько сантиметров в дюйме" или "как зовут первого президента США", но и на
1. вычислительные задачи — 7 + 19^3
1. операции со строками — разворот строки
1. вопросы о недавних ивентах — когда умерла Елизавета вторая
1. точные даты — когда был выпущен последний эпизод Lost
1. вопросы требущие комбинации common sense и вычислений — число ног паука в третьей степени (сложно перееоценить важность этого вопроса 🤣)
Идея основана на статье Prompt Programming for Large Language Models
По сути в 10 строчек промпта и 100 строк кода вы можете написать своего Google Assistant. Думаю надо будет заняться этим на выходных.
Forwarded from Love. Death. Transformers.
#чтивонаночь
RL + retrival feedback
В чем идея: в оригинальном ресерче open ai использовалась схема при которой люди прописывали ревард для ответов модели, что вообще то не оч коректно и не оч скейлиться. Потом они выкинули часть людей и поствили gold RM учиться оценивать ответы, а людей оценивать генерации, писать промпты и оценивать оценку gold rm.
А потом добавили вместо людей proxy model которая учиться быть reward model.
Что я предлагаю: А зачем нам оценки от людей когда мы можем набрать таски которые легко оценивать по cosine similarity, и мы легко можем сравнить что нам модель наврала, а что нет, давая в качестве
А дальше начинается сааамое интересное:
0.37 Question: Sarah didn't like the activity she was doing, but she did it anyway. She felt that it was better than what? Answer: QuestionInvGrooSGroijaWCoSWCGroGroECDGroCVGroDTGroMJGroWCGBTGroDWWCECDGBTECDBMGroJOWCBMFGGroBMWCWCFMLGBTFML
КАЗАЛОСЬ БЫ в чем проблема?
А все довольно просто, видите ли, ppo+gpt довольно умная штука и отлично умеет находить разного рода локальные минимумы и улетает в них легко и весело, ломая reward и emdedings у sentence transofomer.
Я не буду описывать цирк которым занимался по вечерам две последние недели, просто скажу: китайский зло, ироглифы зло, bpe отлично ломает sentence трансформер, в итоге 200 строк кода на эвристики вида
Баги в целом очень специфичные и на некоторые запросы модель по прежнему ломается и бредит(вероятно через пару недель я выложу код + модель поинтереснее с таким подходом), но уже сейчас модель с PPO тюнингом дает +10 к blue score на задаче QA относительно ванильного трейна.
Благодарности @nadlskom за внимательное чтение статей, @gradientdip за полезные советы, neverix за поиск багов, @dealer_ai за выслушивание моего нытья, @seeallochnaya просто потому что.
Ну и да, очевидно это можно применять к любой задаче которая выглядит как: ну вот input, сделай output похожим на <единственный вариант ответа>
сollab если хочется посмотреть на еще багованную версию
Примеры генераций:
Question: What part of a property may be next to a driveway? Answer: The next part is a house or garage or a garage
Question: Jamie wen to the theater near his home. He was surrounded by servicemen. Where might he be? Answer: in the outdoor.
RL + retrival feedback
В чем идея: в оригинальном ресерче open ai использовалась схема при которой люди прописывали ревард для ответов модели, что вообще то не оч коректно и не оч скейлиться. Потом они выкинули часть людей и поствили gold RM учиться оценивать ответы, а людей оценивать генерации, писать промпты и оценивать оценку gold rm.
А потом добавили вместо людей proxy model которая учиться быть reward model.
Что я предлагаю: А зачем нам оценки от людей когда мы можем набрать таски которые легко оценивать по cosine similarity, и мы легко можем сравнить что нам модель наврала, а что нет, давая в качестве
reward = cosine_similarity(ground true answer, predicted answer)
Собственно, банальный вопрос анальный ответ, взял gpt2(110m), написал простой retrival(возвращает по вопросу -ответу ревард) на sentence transformer, взял trl и поcтавил учиться. А дальше начинается сааамое интересное:
0.37 Question: Sarah didn't like the activity she was doing, but she did it anyway. She felt that it was better than what? Answer: QuestionInvGrooSGroijaWCoSWCGroGroECDGroCVGroDTGroMJGroWCGBTGroDWWCECDGBTECDBMGroJOWCBMFGGroBMWCWCFMLGBTFML
КАЗАЛОСЬ БЫ в чем проблема?
А все довольно просто, видите ли, ppo+gpt довольно умная штука и отлично умеет находить разного рода локальные минимумы и улетает в них легко и весело, ломая reward и emdedings у sentence transofomer.
Я не буду описывать цирк которым занимался по вечерам две последние недели, просто скажу: китайский зло, ироглифы зло, bpe отлично ломает sentence трансформер, в итоге 200 строк кода на эвристики вида
(if bad_regex in answer): return 0
А еще очень сильно помог подбор гиперпараметров для KL value и LM weight, cпасибо за уточнение от @nadlskom что каждые 10 эпох open ai прогоняли эпоху классического FineTune(стабилизировало трейн и mean начал быстрее рости)Баги в целом очень специфичные и на некоторые запросы модель по прежнему ломается и бредит(вероятно через пару недель я выложу код + модель поинтереснее с таким подходом), но уже сейчас модель с PPO тюнингом дает +10 к blue score на задаче QA относительно ванильного трейна.
Благодарности @nadlskom за внимательное чтение статей, @gradientdip за полезные советы, neverix за поиск багов, @dealer_ai за выслушивание моего нытья, @seeallochnaya просто потому что.
Ну и да, очевидно это можно применять к любой задаче которая выглядит как: ну вот input, сделай output похожим на <единственный вариант ответа>
сollab если хочется посмотреть на еще багованную версию
Примеры генераций:
Question: What part of a property may be next to a driveway? Answer: The next part is a house or garage or a garage
Question: Jamie wen to the theater near his home. He was surrounded by servicemen. Where might he be? Answer: in the outdoor.
Google
trl_public
Colaboratory notebook
Forwarded from Love. Death. Transformers.
подписчики притащили поисковик по архиву который я раньше не видел, и он 💫 п р е к р а с е н💫
arxivxplorer.com
@lovedeathtransformers
arxivxplorer.com
@lovedeathtransformers
Please open Telegram to view this post
VIEW IN TELEGRAM
Пример QA-бота: FAQ бот для множества документов с персонализированным ответом: на входе кидаешь документы, по ним можно задать вопрос и получить перефразированный ответ
https://github.com/SatyamSoni23/Smart-Question-Answering-System-on-Document
https://github.com/SatyamSoni23/Smart-Question-Answering-System-on-Document
GitHub
GitHub - SatyamSoni23/Smart-Question-Answering-System-on-Document: It's Smart-Question Answering System on short as well as long…
It's Smart-Question Answering System on short as well as long documents. It can automatically find answers to matching questions directly from documents. The deep learning language model co...
👍1
Статья на Хабре про WebGPT: #chatgpt в цикле решения задачи “поискать и отобрать результаты”. Довольно умно сынженерено, на мой взгляд, когда я сам пытался подходить к задаче информационного поиска – делал гораздо тупее, без попытки переформулировать и дополнить результат.
https://habr.com/ru/company/ods/blog/709222/
https://habr.com/ru/company/ods/blog/709222/
Хабр
ChatGPT как инструмент для поиска: решаем основную проблему
Вышедшая чуть больше месяца назад ChatGPT уже успела нашуметь: школьникам в Нью-Йорке запрещают использовать нейросеть в качестве помощника, её же ответы теперь не принимаются на StackOverflow, а...
👍1🔥1
Forwarded from DLStories
Краткий ликбез по self-supervised learning (SSL)
(под недавними постами несколько людей спрашивали, что это такое. Плюс, следующий пост тоже будет посвящен модельке для SSL)
В двух словах, self-supervised learning — это когда мы учим модельку понимать что-то о природе данных (или даже решать какие-то осмысленные задачи) на данных без разметки.
Подробнее:
Возьмем задачу классификации картинок. Обычно, чтобы научить модельку решать эту задачу, вам нужны данные вида (картинка, класс). То есть, нужно собрать датасет из кучи картинок, где каждая картинка размечена, т.е. к каждой картинке известен ответ: что на ней изображено. Обучение моделей на таких датасетах с разметкой называется supervised learning .
Собирать датасеты для supervised learning сложно, долго и дорого. Есть разные способы, как это делать. Самые распространенные — такие:
✔️ посадить живых людей размечать данные. Это позволяет получить довольно "чистый" датасет (без явных ошибок в разметке), но очень долгий и дорогой. А если вы хотите сэкономить и мало платить разметчикам, это может вызвать скандал. Вот с OpenAI недавно был: они платили всего $2 в час людям, которые выявляли "неподобающий" контент среди того, что генерирует ChatGPT;
✔️ собрать данные с разметкой из интернета автоматичеки. Например, для той же задачи классификации можно сделать так: вбиваем слово "песик" в гугл и скриптом скачиваем все выданные картинки. Этот подход намного проще и дешевле, чем первый, но у него тоже есть явные недостатки:
- данные получаются довольно "грязные". На запрос "песик" вы можете получить картинки далеко не милых собачек. Например, вот эта картинка выдалась мне на четвертой строке картинок в гугле по запросу "песик" =)
- данные в интернете могут быть защищены авторскими правами. Использование таких данных для обучения моделей, кхм, не приветствуется.
- этот способ подходит не для всех задач. Для классификации или генерации картинок по текстовому описанию понятно, как собрать датасет (см. LAION, на котором обучалась Stable Diffusion). А вот с сегментацией, например, все сильно сложнее.
Короче говоря, собрать датасеты с разметкой сложно. Поэтому активно развиваются исследования в области self-supervised learning. Это когда вы учите нейросеть на данных, к которым разметки нет.
Пример self-supervised learning — обучение языковых моделей типа GPT-3. Для них нужны просто куча текста и никакой разметки. Модель учится предсказывать следующий токен на основе предыдущих.
Надо сказать, что для задач, связанных с картинками, придумать self-supervised подходы довольно сложно. Что-то типа языковой модели не прокатит. Вот примеры SSL-подходов для картинок:
- делаем аугментации картинок из трейн сета (повороты, блюр, закрываем часть картинки и т.п.) и учим нейросеть выдавать одинковые ответы на одни и те же картинки, аугментированные разными способами;
- Masked AE: закрываем рандомные части картинок и учим автоэнкодер(AE) восстанавливать эти части.
При обучении подобным образом нейросеть начинает "понимать" что-то о природе картинок и объектов на них, и затем эти ее знания можно использовать в других задачах. Например, можно дообучить такую сеть на задачу классификации картинок. И для этого понадобится намного меньше размеченных данных, чем для обучения сети на эту задачу "с нуля". Про Masked AE я даже пост писала, вот тут.
На SSL, получается, еще можно смотреть так: SSL — это когда у вас есть неразмеченные данные, и вы на них придумываете псевдо-supervised задачу. Придумываете таким образом, чтобы сеть в процессе обучения выучила что-то полезное.
Ну и, стоит сказать, что есть подходы "между" supervised и self-supervised:
- semi-supervised learning. Это когда часть данных для задачи размечена, а часть — нет;
- weakly-supervised learning. Это когда данные размечены, но разметка очень "грязная" (слабая) или местами неполная.
Как-то так. В завершение рекомендую почитать этот пост про self-supervision в блоге Александра Дьяконова.
(под недавними постами несколько людей спрашивали, что это такое. Плюс, следующий пост тоже будет посвящен модельке для SSL)
В двух словах, self-supervised learning — это когда мы учим модельку понимать что-то о природе данных (или даже решать какие-то осмысленные задачи) на данных без разметки.
Подробнее:
Возьмем задачу классификации картинок. Обычно, чтобы научить модельку решать эту задачу, вам нужны данные вида (картинка, класс). То есть, нужно собрать датасет из кучи картинок, где каждая картинка размечена, т.е. к каждой картинке известен ответ: что на ней изображено. Обучение моделей на таких датасетах с разметкой называется supervised learning .
Собирать датасеты для supervised learning сложно, долго и дорого. Есть разные способы, как это делать. Самые распространенные — такие:
✔️ посадить живых людей размечать данные. Это позволяет получить довольно "чистый" датасет (без явных ошибок в разметке), но очень долгий и дорогой. А если вы хотите сэкономить и мало платить разметчикам, это может вызвать скандал. Вот с OpenAI недавно был: они платили всего $2 в час людям, которые выявляли "неподобающий" контент среди того, что генерирует ChatGPT;
✔️ собрать данные с разметкой из интернета автоматичеки. Например, для той же задачи классификации можно сделать так: вбиваем слово "песик" в гугл и скриптом скачиваем все выданные картинки. Этот подход намного проще и дешевле, чем первый, но у него тоже есть явные недостатки:
- данные получаются довольно "грязные". На запрос "песик" вы можете получить картинки далеко не милых собачек. Например, вот эта картинка выдалась мне на четвертой строке картинок в гугле по запросу "песик" =)
- данные в интернете могут быть защищены авторскими правами. Использование таких данных для обучения моделей, кхм, не приветствуется.
- этот способ подходит не для всех задач. Для классификации или генерации картинок по текстовому описанию понятно, как собрать датасет (см. LAION, на котором обучалась Stable Diffusion). А вот с сегментацией, например, все сильно сложнее.
Короче говоря, собрать датасеты с разметкой сложно. Поэтому активно развиваются исследования в области self-supervised learning. Это когда вы учите нейросеть на данных, к которым разметки нет.
Пример self-supervised learning — обучение языковых моделей типа GPT-3. Для них нужны просто куча текста и никакой разметки. Модель учится предсказывать следующий токен на основе предыдущих.
Надо сказать, что для задач, связанных с картинками, придумать self-supervised подходы довольно сложно. Что-то типа языковой модели не прокатит. Вот примеры SSL-подходов для картинок:
- делаем аугментации картинок из трейн сета (повороты, блюр, закрываем часть картинки и т.п.) и учим нейросеть выдавать одинковые ответы на одни и те же картинки, аугментированные разными способами;
- Masked AE: закрываем рандомные части картинок и учим автоэнкодер(AE) восстанавливать эти части.
При обучении подобным образом нейросеть начинает "понимать" что-то о природе картинок и объектов на них, и затем эти ее знания можно использовать в других задачах. Например, можно дообучить такую сеть на задачу классификации картинок. И для этого понадобится намного меньше размеченных данных, чем для обучения сети на эту задачу "с нуля". Про Masked AE я даже пост писала, вот тут.
На SSL, получается, еще можно смотреть так: SSL — это когда у вас есть неразмеченные данные, и вы на них придумываете псевдо-supervised задачу. Придумываете таким образом, чтобы сеть в процессе обучения выучила что-то полезное.
Ну и, стоит сказать, что есть подходы "между" supervised и self-supervised:
- semi-supervised learning. Это когда часть данных для задачи размечена, а часть — нет;
- weakly-supervised learning. Это когда данные размечены, но разметка очень "грязная" (слабая) или местами неполная.
Как-то так. В завершение рекомендую почитать этот пост про self-supervision в блоге Александра Дьяконова.
Дай нейросети рыбу — она сможет определять рыбу до конца жизни. Дай нейросети удочку — она сможет определять и удочку до конца жизни...
😁2
Forwarded from Электросны Погонщика Симулякров
Очень хорошее объяснение, как устроены классические механизмы семплинга в LM: https://docs.cohere.ai/docs/controlling-generation-with-top-k-top-p
#llm #gpt
#llm #gpt
Cohere AI
Top-k & Top-p
Use the API to generate completions, distill text into semantically meaningful vectors, and more. Get state-of-the-art natural language processing without the need for expensive supercomputing infrastructure.
Forwarded from Илья А.
Как ты думаешь, учитывают ли анимации, которые демонстрируют разные методы оптимизации, адаптивность современных методов (раздельный подход к обновлению каждого параметра) по умолчанию, или же просто делается какая-то упрощённая математическая модель? http://www.denizyuret.com/2015/03/alec-radfords-animations-for.html
Тут даже есть код: https://habr.com/ru/articles/318970 Не зная питона, я скормил его бингу, и бинг (Creative mode) мне сказал, что там используется фиксированный коэффициент обучения для всех параметров, но я подумал денёк и как-то не доверяю)
Нашёл только один материал с визуализацией, где этот вопрос недвусмысленно обсуждается: https://towardsdatascience.com/a-visual-explanation-of-gradient-descent-methods-momentum-adagrad-rmsprop-adam-f898b102325c
Тут даже есть код: https://habr.com/ru/articles/318970 Не зная питона, я скормил его бингу, и бинг (Creative mode) мне сказал, что там используется фиксированный коэффициент обучения для всех параметров, но я подумал денёк и как-то не доверяю)
Нашёл только один материал с визуализацией, где этот вопрос недвусмысленно обсуждается: https://towardsdatascience.com/a-visual-explanation-of-gradient-descent-methods-momentum-adagrad-rmsprop-adam-f898b102325c
Denizyuret
Alec Radford's animations for optimization algorithms
Alec Radford has created some great animations comparing optimization algorithms SGD , Momentum , NAG , Adagrad , Adadelta , RMSprop (unfo...
Forwarded from Oleg Ur: (";("
Илья А.
Как ты думаешь, учитывают ли анимации, которые демонстрируют разные методы оптимизации, адаптивность современных методов (раздельный подход к обновлению каждого параметра) по умолчанию, или же просто делается какая-то упрощённая математическая модель? htt…
А это вообще про другое. Как ты подбираешь функцию от многих переменных – зависит от тебя.
https://github.com/AsmaaEssamSultan/Optimization-Techniques-from-scratch/blob/main/NAG.ipynb - вот код для NAG, например, с формулами
Думаю, в большинстве подходов таки да, коэффициенты общие, потому что предполагается, что исходная задача отнормализована
https://github.com/AsmaaEssamSultan/Optimization-Techniques-from-scratch/blob/main/NAG.ipynb - вот код для NAG, например, с формулами
Думаю, в большинстве подходов таки да, коэффициенты общие, потому что предполагается, что исходная задача отнормализована
GitHub
Optimization-Techniques-from-scratch/NAG.ipynb at main · AsmaaEssamSultan/Optimization-Techniques-from-scratch
Contribute to AsmaaEssamSultan/Optimization-Techniques-from-scratch development by creating an account on GitHub.
Forwarded from Voice stuff
Наблюдаю тренд на вкручивание промпта в синтез речи. Все наверняка уже слышали про невероятную просодию (и слабые ударения в русском) в bark:
https://github.com/suno-ai/bark
Коки тоже на месте не стоят и тоже выкатили модель с промптами. Впрочем, пока не опен-сорс.
https://coqui.ai/blog/tts/prompt-to-voice
Хорошие новости:
Звучит всё очень вкусно. Натуральность речи просто нереальная.
Несмотря на то, что модель необычная и большая - уверен что её можно собрать и обучить самому на паре ГПУ. Главные компоненты: кодек и LLM там предобучены.
Так себе новости:
Под капотом модели используют нейрокодек для декодирования аудио. Так что если слышите шумы в записи - это оттуда, и будто бы это нелегко исправить.
Размер модели в 100М. Кажется, будто бы маленькие модели потихоньку отходят на второй план с появлением квантизаций, ЛЛАМа, и RTX 4090.
Некоммерческая лицензия и отстутствие кода для обучения.
https://github.com/suno-ai/bark
Коки тоже на месте не стоят и тоже выкатили модель с промптами. Впрочем, пока не опен-сорс.
https://coqui.ai/blog/tts/prompt-to-voice
Хорошие новости:
Звучит всё очень вкусно. Натуральность речи просто нереальная.
Несмотря на то, что модель необычная и большая - уверен что её можно собрать и обучить самому на паре ГПУ. Главные компоненты: кодек и LLM там предобучены.
Так себе новости:
Под капотом модели используют нейрокодек для декодирования аудио. Так что если слышите шумы в записи - это оттуда, и будто бы это нелегко исправить.
Размер модели в 100М. Кажется, будто бы маленькие модели потихоньку отходят на второй план с появлением квантизаций, ЛЛАМа, и RTX 4090.
Некоммерческая лицензия и отстутствие кода для обучения.
GitHub
GitHub - suno-ai/bark: 🔊 Text-Prompted Generative Audio Model
🔊 Text-Prompted Generative Audio Model. Contribute to suno-ai/bark development by creating an account on GitHub.
Я настолько разленился, что мне проще держать эту ссылку под рукой, чем запоминать аккорды для Universal Hex Input 😕
#math #symbols #typography
#math #symbols #typography
Forwarded from что-то на DL-ском
Обзор на ту самую LLaMA и на ее fine-tune-ы: Alpaca, Vicuna, gpt4all🤩
После того, как как все поныли, что OpenAI так и не раскрыли подробности апгрейда GPT-4, выпущенной в марте, внимание многих обратилось на LLaMA, выпущенную на несколько недель раньше, и которую Meta AI реально сделали Open and Efficient Foundation Language Model.
Хотелось бы отдельно выделить очень крутой вывод от прошлых работ сообщества, которым руководствовались авторы: если раньше все гнались за количеством параметров модели, в работах Scaling Laws for Neural Language Models опять же от OpenAI были найдены неожиданные свойства. При увеличении количества данных, возникает прирост качества. Именно этот фактор позволил LLaMA-13B аутперформить GPT-3, несмотря на размер в 10!! Раз меньше
В статье ребята дают подробный рецепт сотворения модельки. Вот он:
👨🍳 Подготавливаем данные в размере 1.4T токенов:
1. English CommonCrawl – составляющее 67% данных. с использованием CCNet pipeline для удаления дубликатов, фильтрации неанглоязычного и низкокачественного контента, а также отбрасыванием страниц, не относящиеся к ссылкам в Википедии.
2. 15 % C4.
3. 4.5 % Git c вычещением низкокачетсвенных реп и удалением шаблонов с помощью регулярных выражений
4. 4.5% Wikipedia с удалением гиперссылок, комментариев и других элементов форматирования
5. 4.5% датасетов книг с удалением дубликатов
6. 2.5% ArXiv
7. 2% Stack Exchange – сайт вопросов и ответов высокого качества, охватывающий различные области знаний, от компьютерных наук до химии. С удалением HTML тегов и фильтрацией по рейтингу
👨🍳 Потом обучаем BPE токенайзер с использованием реализации из библиотеки SentencePiece. Для токенизации числа разбиваются на отдельные цифры, а не обрабатываются как единое целое, а для декомпозиции неизвестных символов UTF-8 используются байты.
(при чем все данные прогоняются одну эпоху за исключением книг и википедии, там две)
Итак, за основу берется архитектура трансформера, но вот те самые уникальные ингридиенты успешной модели:
🎹 Авторы нормализовали с RMSNorm входные данные для каждого подуровня трансформера. Подход заключается в делении каждого элемента входного вектора на квадратный корень из суммы квадратов всех элементов входного вектора.
🎹 Заменили ReLU на SwiGLU
🎹 Использовали Rotary positional embeddings. Этот метод заключается в добавлении дополнительных векторов с фиксированными значениями в векторное представление каждого элемента последовательности. Эти векторы имеют свойство поворота, что позволяет модели учитывать не только абсолютную позицию элементов, но и относительное положение друг к другу.
🎹 В качесвте оптимайзера взяле AdamW с бетами 0.9 и 0.95.
🎹 Добавляли штраф в функцию потерь сети, который пропорционален квадрату весовых коэффициентов каждого слоя сети с Weight decay в размере 0.1
🎹 Добавляли gradient clipping – 1.0
🎹 Использовали подход для эффективного multi-head attention, в котором мы разбиваем входную последовательность на блоки фиксированной длины и применяем механизм внимания только внутри каждого блока
🎹 Для улучшения эффективности обучения уменьшается количество активаций, которые пересчитываются во время backward pass-а, для этого авторы реализуют обратную функцию для слоев трансформера вручную
Ну а теперь немного о ft этой прекрасной модели
Alpaca – подход от ребят из Стенфорда. Находчивые люди нагенерировали дополнительного датасета для обучения с помощью ChatGPT, что позволило обучить ее на запросы в стиле instruct. Круто? круто
gpt4all – невероятный подход!!! если в Alpaca было всего 54k затравок, то тут уже целых 437k
Ну и на закуску StableVicuna – все пытаются улучшить данные для обучения, и сделать их объем все больше. В связи с этим Stability AI предоставляют ft на их датасете, созданном на основе The Pile ,который содержит 1.5T токенов и является обширным датасетом под множество задач NLP
Ну и в за табличками апгрейда скора можно сходить поглазеть в саму статью, потому что в одно сообщение уже не помещается👏
После того, как как все поныли, что OpenAI так и не раскрыли подробности апгрейда GPT-4, выпущенной в марте, внимание многих обратилось на LLaMA, выпущенную на несколько недель раньше, и которую Meta AI реально сделали Open and Efficient Foundation Language Model.
Хотелось бы отдельно выделить очень крутой вывод от прошлых работ сообщества, которым руководствовались авторы: если раньше все гнались за количеством параметров модели, в работах Scaling Laws for Neural Language Models опять же от OpenAI были найдены неожиданные свойства. При увеличении количества данных, возникает прирост качества. Именно этот фактор позволил LLaMA-13B аутперформить GPT-3, несмотря на размер в 10!! Раз меньше
В статье ребята дают подробный рецепт сотворения модельки. Вот он:
1. English CommonCrawl – составляющее 67% данных. с использованием CCNet pipeline для удаления дубликатов, фильтрации неанглоязычного и низкокачественного контента, а также отбрасыванием страниц, не относящиеся к ссылкам в Википедии.
2. 15 % C4.
3. 4.5 % Git c вычещением низкокачетсвенных реп и удалением шаблонов с помощью регулярных выражений
4. 4.5% Wikipedia с удалением гиперссылок, комментариев и других элементов форматирования
5. 4.5% датасетов книг с удалением дубликатов
6. 2.5% ArXiv
7. 2% Stack Exchange – сайт вопросов и ответов высокого качества, охватывающий различные области знаний, от компьютерных наук до химии. С удалением HTML тегов и фильтрацией по рейтингу
(при чем все данные прогоняются одну эпоху за исключением книг и википедии, там две)
Итак, за основу берется архитектура трансформера, но вот те самые уникальные ингридиенты успешной модели:
Ну а теперь немного о ft этой прекрасной модели
Alpaca – подход от ребят из Стенфорда. Находчивые люди нагенерировали дополнительного датасета для обучения с помощью ChatGPT, что позволило обучить ее на запросы в стиле instruct. Круто? круто
gpt4all – невероятный подход!!! если в Alpaca было всего 54k затравок, то тут уже целых 437k
Ну и на закуску StableVicuna – все пытаются улучшить данные для обучения, и сделать их объем все больше. В связи с этим Stability AI предоставляют ft на их датасете, созданном на основе The Pile ,который содержит 1.5T токенов и является обширным датасетом под множество задач NLP
Ну и в за табличками апгрейда скора можно сходить поглазеть в саму статью, потому что в одно сообщение уже не помещается
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - tatsu-lab/stanford_alpaca: Code and documentation to train Stanford's Alpaca models, and generate the data.
Code and documentation to train Stanford's Alpaca models, and generate the data. - tatsu-lab/stanford_alpaca