Howto 2.0
Github
Я тут вчера сел и переписал почти весь howto. Для тех кто не знает: это простая CLI тулза на OpenAI API гененирующая shell из вопроса на естественном языке.
Главная фича: минимум интерфейса. В отличие от ChatGPT вам не надо покидать терминал. В отличие от Github Copilot CLI тут нет красивого TUI и диалога с пользователем. Вы просто вводите howto install conda single line и получаете команду в ответ.
Новые фичи:
1. gpt-3.5-turbo и gpt-4
1. Более удобный конфиг
1. Кастомизируемый system message
1. Follow-up вопросы
Я использую howto постоянно и фича с follow-up пришла в голову когда понял что иногда команда сгененирована почти правильно, но надо немного подправить и не хочется этого делать руками. Теперь вы можете попросить howto сделать это за вас.
Github
Я тут вчера сел и переписал почти весь howto. Для тех кто не знает: это простая CLI тулза на OpenAI API гененирующая shell из вопроса на естественном языке.
Главная фича: минимум интерфейса. В отличие от ChatGPT вам не надо покидать терминал. В отличие от Github Copilot CLI тут нет красивого TUI и диалога с пользователем. Вы просто вводите howto install conda single line и получаете команду в ответ.
Новые фичи:
1. gpt-3.5-turbo и gpt-4
1. Более удобный конфиг
1. Кастомизируемый system message
1. Follow-up вопросы
Я использую howto постоянно и фича с follow-up пришла в голову когда понял что иногда команда сгененирована почти правильно, но надо немного подправить и не хочется этого делать руками. Теперь вы можете попросить howto сделать это за вас.
GitHub
Release Howto 2.0 · Guitaricet/howto
The first major update to howto!
New features
OpenAI Completions API.
You can now choose between gpt-3.5-turbo and gpt-4 models.
gpt-3.5-turbo is better, faster, and cheaper than davinchi now b...
New features
OpenAI Completions API.
You can now choose between gpt-3.5-turbo and gpt-4 models.
gpt-3.5-turbo is better, faster, and cheaper than davinchi now b...
🔥68👍19❤11🌚1
Я люблю слушать подкасты на фоне делания чего-нибудь нерабочего. Когда еду в транспорте, бегаю, гуляю, или просто ем. Например постоянно слушаю Radio-T уже лет 10 и @zavtracast уже лет 5.
Долго не мог понять почему мне не заходят подкасты на английском. Иногда могу послушать Lex Fridman, если к нему пришел кто-нибудь интересный типа Sam Altman (OpenAI) или Robert Playter (Boston Dynamics). Но именно эпизодически. Ещё сюда же можно добавить подскасты от The Gradient, Microsoft Research, talkRL, и LatentSpace. Те подкасты которые хорошо и дорого срежисированы и качественно записаны, например подкаст DeepMind мне как-то совсем не заходят.
Но сегодня я понял что мне просто не получается расслабиться слушая их и я хочу что-то типа Завтракаста, где народ рассказывает новости и несёт дичь, но более техническое про ML, DL, AI.
И кажется я его нашёл. This Day in AI оказался для меня идеальным сочетанием новостей, техничности (несмотря на попсовое название), и — главное — дичи. Я понял что мы сойдёмся на фразе "… and you have Anthropic, which is some weird futuristic safety sex cult." В общем будем слушать на прогулках.
P.S.
Сейчас пройду собеседования, запущу ReLoRA-1B и надеюсь что смогу вернуться к чуть-чуть более частым постам и обзорам. А то что-то раз в неделю это совсем некрасиво. Ну либо хотя бы найду время заменить себя на GPT4.
Долго не мог понять почему мне не заходят подкасты на английском. Иногда могу послушать Lex Fridman, если к нему пришел кто-нибудь интересный типа Sam Altman (OpenAI) или Robert Playter (Boston Dynamics). Но именно эпизодически. Ещё сюда же можно добавить подскасты от The Gradient, Microsoft Research, talkRL, и LatentSpace. Те подкасты которые хорошо и дорого срежисированы и качественно записаны, например подкаст DeepMind мне как-то совсем не заходят.
Но сегодня я понял что мне просто не получается расслабиться слушая их и я хочу что-то типа Завтракаста, где народ рассказывает новости и несёт дичь, но более техническое про ML, DL, AI.
И кажется я его нашёл. This Day in AI оказался для меня идеальным сочетанием новостей, техничности (несмотря на попсовое название), и — главное — дичи. Я понял что мы сойдёмся на фразе "… and you have Anthropic, which is some weird futuristic safety sex cult." В общем будем слушать на прогулках.
P.S.
Сейчас пройду собеседования, запущу ReLoRA-1B и надеюсь что смогу вернуться к чуть-чуть более частым постам и обзорам. А то что-то раз в неделю это совсем некрасиво. Ну либо хотя бы найду время заменить себя на GPT4.
Radio-T
Радио-Т Подкаст
Еженедельные разговоры на темы хайтек, высоких компьютерных технологий, гаджетов, облаков, программирования и прочего интересного из мира ИТ.
👍41❤15🔥6💩3
Universal-NER
https://universal-ner.github.io
Named Entity Recognition — это очень типичная и полезная задачка NLP. Вам надо заэкстрактить адреса, даты, названия компаний итд. Последний раз я был впечатлён моделью NER.... наверное никогда. А тут Microsoft выложил универсальную NER-модель. Вы просто даёте ей описание каждой entity что вам нужно и запускаете.
Вот как модельку обучили: насемплили коротких (256tok) текстов из The Pile и попросили ChatGPT-3.5 сгенерировать ответы на основе описаний сущностей, повторяем этот процесс ещё 45,888 раз и получаем наш датасет. После чего добавили negative samples и немного high-quality человеческой разметки. Дальше на основе этого датасета обучили модель.
Обходит обычные чат-модели вроде Викуньи и ChatGPT-3.5 (сравнения с GPT-4 нет), а также обходит BERT based когда зафайтюнено на тех же данных
Модели доступны на huggingface. Выглядят очень полезно для рабочего использования (в качестве учителя, тк модель 7B). Если кто-нибудь применит, пишите в чат опыт использования
https://universal-ner.github.io
Named Entity Recognition — это очень типичная и полезная задачка NLP. Вам надо заэкстрактить адреса, даты, названия компаний итд. Последний раз я был впечатлён моделью NER.... наверное никогда. А тут Microsoft выложил универсальную NER-модель. Вы просто даёте ей описание каждой entity что вам нужно и запускаете.
Вот как модельку обучили: насемплили коротких (256tok) текстов из The Pile и попросили ChatGPT-3.5 сгенерировать ответы на основе описаний сущностей, повторяем этот процесс ещё 45,888 раз и получаем наш датасет. После чего добавили negative samples и немного high-quality человеческой разметки. Дальше на основе этого датасета обучили модель.
Обходит обычные чат-модели вроде Викуньи и ChatGPT-3.5 (сравнения с GPT-4 нет), а также обходит BERT based когда зафайтюнено на тех же данных
Модели доступны на huggingface. Выглядят очень полезно для рабочего использования (в качестве учителя, тк модель 7B). Если кто-нибудь применит, пишите в чат опыт использования
👍47🔥20❤3
GPT-3.5 Turbo fine-tuning and API updates
openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates
Теперь GPT-3.5 можно файнтюнить!
Чуть больше подробностей:
1. Все тренировочные данные пропускают через OpenAI Moderation API и через дополнительную систему модерации на GPT4. Кстати если вы не знали про Moderation API — он публично доступен и бесплатен если вы его используете вместе с обычным Chat API.
1. В общем это все детали 🤷♂️
Цена:
Training: $0.008 / 1K Tokens
Usage input: $0.012 / 1K Tokens
Usage output: $0.016 / 1K Tokens
Это была очень ожидаемая фича, интересно как пользователи будут её применять.
openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates
Теперь GPT-3.5 можно файнтюнить!
Чуть больше подробностей:
1. Все тренировочные данные пропускают через OpenAI Moderation API и через дополнительную систему модерации на GPT4. Кстати если вы не знали про Moderation API — он публично доступен и бесплатен если вы его используете вместе с обычным Chat API.
1. В общем это все детали 🤷♂️
Цена:
Training: $0.008 / 1K Tokens
Usage input: $0.012 / 1K Tokens
Usage output: $0.016 / 1K Tokens
Это была очень ожидаемая фича, интересно как пользователи будут её применять.
👍29😁3❤2👎1
Do Batch Sizes Actually Need To Be Powers of 2?
Wandb fully-connected
Много кто из вас наверняка слышал что хороший batch size должен быть степенью двойки. Может быть кто-то слышал, что на самом деле батч сайз должен быть разделим на warp size вашей GPU (обычно 32 или 64). Но насколько это вообще правда?
Для современных нейронок (>100M парметров) делимость батч сайза на 2 (или даже 64) не решает вообще ничего. GPU и так занята полностью так как у таких сеток большие hidden size и seq len (вокруг которых и можно параллелить). А ещё вероятно что ваша GPU просто большую часть своего времени ждёт того как из HBM памяти веса и хиддены перегонятся в SM2 (a.k.a GPU is memory speed bounded).
В статье это вещи проверяют на практике с красивыми графиками в wandb. Оч рекомендую к прочтению, статья короткая.
Однако, от себя добавлю, что шейпы тензоров и правда должны быть кратны 32 (V100) или 64 (A100 и H100) хотя бы по hidden чтобы эффективно использовать CUDA Cores. Так как если кусок вашего тензора не делится на warp, низкоуровневый код на GPU всё равно превратит ваш 65x65 в четыре тензора: 64x64, 1x64, 64x1, 1x1 и потом западит их все до 64x64. PyTorch и CUDA стараются сделать автоматические оптимизации чтобы избежать таких плохих случаев, но не всегда получается. Если я где-то продолбался — пишите в комментариях!
💡Measuring the actual effect on training speed, accuracy and memory consumption when choosing a batch size should be preferred instead of focusing on powers of 2.
Wandb fully-connected
Много кто из вас наверняка слышал что хороший batch size должен быть степенью двойки. Может быть кто-то слышал, что на самом деле батч сайз должен быть разделим на warp size вашей GPU (обычно 32 или 64). Но насколько это вообще правда?
Для современных нейронок (>100M парметров) делимость батч сайза на 2 (или даже 64) не решает вообще ничего. GPU и так занята полностью так как у таких сеток большие hidden size и seq len (вокруг которых и можно параллелить). А ещё вероятно что ваша GPU просто большую часть своего времени ждёт того как из HBM памяти веса и хиддены перегонятся в SM2 (a.k.a GPU is memory speed bounded).
В статье это вещи проверяют на практике с красивыми графиками в wandb. Оч рекомендую к прочтению, статья короткая.
Однако, от себя добавлю, что шейпы тензоров и правда должны быть кратны 32 (V100) или 64 (A100 и H100) хотя бы по hidden чтобы эффективно использовать CUDA Cores. Так как если кусок вашего тензора не делится на warp, низкоуровневый код на GPU всё равно превратит ваш 65x65 в четыре тензора: 64x64, 1x64, 64x1, 1x1 и потом западит их все до 64x64. PyTorch и CUDA стараются сделать автоматические оптимизации чтобы избежать таких плохих случаев, но не всегда получается. Если я где-то продолбался — пишите в комментариях!
💡Measuring the actual effect on training speed, accuracy and memory consumption when choosing a batch size should be preferred instead of focusing on powers of 2.
W&B
Do Batch Sizes Actually Need To Be Powers of 2?
Is the fixation on powers of 2 for efficient GPU utilization an urban myth? In this article, we explore whether this argument is true when using today's GPUs.
🔥44👍20❤5🤔1
Teaching with AI
openai.com/blog/teaching-with-ai
OpenAI выпустил новый пост с гайдом о применении ChatGPT в образовании. Мне кажется что это одна из областей которую до неузнаваемости уже может изменить AI в его текущем проявлении.
В посте рассказывают про текущие успешные кейсы:
1. Role playing challenging conversations - например попросить chatgpt играть интервьюира или критика вашей работы
1. Building quizzes, tests, and lesson plans - составление материалов это очень тяжелая часть преподавания и держать их up to date может быть тяжело. С chatgpt вы же можете просто загрузить вашу лекцию и попросить сделать для неё квиз, ещё и в заданном стиле
1. Reducing friction for non-English speakers - на моём опыте GPT4 сильно обходит google translate в качестве перевода тк вы можете дать ему дополнительный контекст. Например попросить не переводить термины.
Дальше они приводят несколько примеров промптов. Вообще хотелось бы увидеть побольше в посте, но хотя бы мы видим что эта область OpenAI небезынтересна.
openai.com/blog/teaching-with-ai
OpenAI выпустил новый пост с гайдом о применении ChatGPT в образовании. Мне кажется что это одна из областей которую до неузнаваемости уже может изменить AI в его текущем проявлении.
В посте рассказывают про текущие успешные кейсы:
1. Role playing challenging conversations - например попросить chatgpt играть интервьюира или критика вашей работы
1. Building quizzes, tests, and lesson plans - составление материалов это очень тяжелая часть преподавания и держать их up to date может быть тяжело. С chatgpt вы же можете просто загрузить вашу лекцию и попросить сделать для неё квиз, ещё и в заданном стиле
1. Reducing friction for non-English speakers - на моём опыте GPT4 сильно обходит google translate в качестве перевода тк вы можете дать ему дополнительный контекст. Например попросить не переводить термины.
Дальше они приводят несколько примеров промптов. Вообще хотелось бы увидеть побольше в посте, но хотя бы мы видим что эта область OpenAI небезынтересна.
Openai
Teaching with AI
We’re releasing a guide for teachers using ChatGPT in their classroom—including suggested prompts, an explanation of how ChatGPT works and its limitations, the efficacy of AI detectors, and bias.
❤31👍6
Пример того о чём я говорил про качество перевода chatgpt / google translate. Для идиом или очень контекстуального перевода обычные переводчики всегда будут хуже языковых моделей.
❤26
I can see this conversation at Adept:
AAA: we need to beat LLAMA7b, how do we do it?
BBB: Train an 8B model?
AAA: you’re a genius!
https://www.adept.ai/blog/persimmon-8b
AAA: we need to beat LLAMA7b, how do we do it?
BBB: Train an 8B model?
AAA: you’re a genius!
https://www.adept.ai/blog/persimmon-8b
www.adept.ai
Releasing Persimmon-8B
We’re open-sourcing Persimmon-8B, the most powerful fully permissively-licensed language model with <10 billion parameters.
😁47💋2
Flash Attention 2 завезли прямо в 🤗 трансформеры 🔥🔥
Коротко, это мегаэффективный cuda kernel для рассчета attention, который делает ваше потребление памяти линейным вместо квадратичного, да и в принципе работает в несколько раз быстрее наивной имплементации к которой мы все привыкли.
Flash Attention 1 был в 🤗 Optimum и мой опыт с ним... такой себе. Теперь же Flash 2 встроен в основную библиотеку и чтобы его использовать надо просто указать use flash attention 2 в from pretrained.
https://x.com/younesbelkada/status/1705258148045750343
Коротко, это мегаэффективный cuda kernel для рассчета attention, который делает ваше потребление памяти линейным вместо квадратичного, да и в принципе работает в несколько раз быстрее наивной имплементации к которой мы все привыкли.
Flash Attention 1 был в 🤗 Optimum и мой опыт с ним... такой себе. Теперь же Flash 2 встроен в основную библиотеку и чтобы его использовать надо просто указать use flash attention 2 в from pretrained.
https://x.com/younesbelkada/status/1705258148045750343
🔥106👍6❤3
Forwarded from Техножрица 👩💻👩🏫👩🔧
Дорогие читатели!
Сегодня я сделала шпаргалку по самым известным научным конференциям уровня A* (по CORE2023), связанным с машинным обучением. Большими сойджеками выделены конференции с более высоким h5-индексом в Google Scholar, а маленькими - с h5-индексом поменьше. Забирайте на стену, чтобы не забыть, куда подавать статьи, чтобы потом делать самое сойджековское лицо в своем офисе!
#ML_в_мемах
Сегодня я сделала шпаргалку по самым известным научным конференциям уровня A* (по CORE2023), связанным с машинным обучением. Большими сойджеками выделены конференции с более высоким h5-индексом в Google Scholar, а маленькими - с h5-индексом поменьше. Забирайте на стену, чтобы не забыть, куда подавать статьи, чтобы потом делать самое сойджековское лицо в своем офисе!
#ML_в_мемах
👍33❤9🤮2
Effective Long-Context Scaling of Foundation Models
Xiong, Liu, et al., [FAIR]
arxiv.org/abs/2309.16039
Команда LLaMA взяла датасет с длинными текстами, (400B токенов в сумме), и увеличили контекст LLaMA2 с 4K до 32K токенов. Важный трюк: увеличить период RoPE embeddings с 10K до 50K.
Что интересно, выяснилось что предобучать модели на длинных контекстах с самого начала смысла нет. Для этого предобучили несколько LLaMA7B с нуля. Один из них всё время тренировался c 32K-len, другие модели первые 20/40/80% обучения тренировались с 4K, после чего прееключались на 32K. Разница получилась минимальной.
Кроме этого показали scaling law с длинной контекста (см. картинку). Это удобно тем что можно наперёд предсказывать лосс и использовать это как sanity check того что ваша тренировка идёт хорошо.
Финальные модельки обходят всё что есть в опенсорсе (на тот момент Mistral ещё не было). По метрикам в статье, включая human eval, LLaMA2 Long 70B работает так же хорошо как и chatgpt-3.5-16k.
Xiong, Liu, et al., [FAIR]
arxiv.org/abs/2309.16039
Команда LLaMA взяла датасет с длинными текстами, (400B токенов в сумме), и увеличили контекст LLaMA2 с 4K до 32K токенов. Важный трюк: увеличить период RoPE embeddings с 10K до 50K.
Что интересно, выяснилось что предобучать модели на длинных контекстах с самого начала смысла нет. Для этого предобучили несколько LLaMA7B с нуля. Один из них всё время тренировался c 32K-len, другие модели первые 20/40/80% обучения тренировались с 4K, после чего прееключались на 32K. Разница получилась минимальной.
Кроме этого показали scaling law с длинной контекста (см. картинку). Это удобно тем что можно наперёд предсказывать лосс и использовать это как sanity check того что ваша тренировка идёт хорошо.
Финальные модельки обходят всё что есть в опенсорсе (на тот момент Mistral ещё не было). По метрикам в статье, включая human eval, LLaMA2 Long 70B работает так же хорошо как и chatgpt-3.5-16k.
❤43🤯9🔥3
Новый дайджест из мира NLP
1. Лекции MIT по эффективному DL
1. Гайд по distributed training и PEFT
1. Deep Neural Networks Tend to Extrapolate Predictably — чем более OOD инпут тем больше решение сходится к среднему ответу (лучшему input-independent ответу)
1. Ring Attention with Blockwise Transformers for Near-Infinite Context — эффективная коммуникация для параллелизации attention между разными GPU
1. Value-Guided Monte-Carlo Tree Search decoding — MCTS применили к NLP и получилось отлично
Надеюсь что у вас все хорошо
🇮🇱
1. Лекции MIT по эффективному DL
1. Гайд по distributed training и PEFT
1. Deep Neural Networks Tend to Extrapolate Predictably — чем более OOD инпут тем больше решение сходится к среднему ответу (лучшему input-independent ответу)
1. Ring Attention with Blockwise Transformers for Near-Infinite Context — эффективная коммуникация для параллелизации attention между разными GPU
1. Value-Guided Monte-Carlo Tree Search decoding — MCTS применили к NLP и получилось отлично
Надеюсь что у вас все хорошо
🇮🇱
Sumanth's Personal Website
Everything about Distributed Training and Efficient Finetuning | Sumanth's Personal Website
A deep dive into distributed training and efficient finetuning - DeepSpeed ZeRO, FSDP, practical guidelines and gotchas with multi-GPU and multi-node training
🔥40❤10👍7😁1
Google закроет и этот продукт #293
Когда конкуренты в виде WandB и CometML начали давить на Tensorboard, гугл решил что их проблема не ненадёжный интерфейс, не невозможность строить графики с любыми X и Y уже после того как вы всё залогали, или очень убогий логгинг гиперпараметров. Гугл решили что проблема в том что у них нету своего облака для лога экспериментов и сделали tensorboard.dev
Сегодня это облако закрывается. Если вы храните на нём что-то полезное, в имеиле описано как это скачать.
Но серьёзно, кто-то ещё пользуется tensorboard вместо wandb/clearml?
Когда конкуренты в виде WandB и CometML начали давить на Tensorboard, гугл решил что их проблема не ненадёжный интерфейс, не невозможность строить графики с любыми X и Y уже после того как вы всё залогали, или очень убогий логгинг гиперпараметров. Гугл решили что проблема в том что у них нету своего облака для лога экспериментов и сделали tensorboard.dev
Сегодня это облако закрывается. Если вы храните на нём что-то полезное, в имеиле описано как это скачать.
Но серьёзно, кто-то ещё пользуется tensorboard вместо wandb/clearml?
😁28👍2😢2❤1