Авторы: Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика. Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
До кучи для тех, кто любит покопаться в слухах. Не знал про Arrakis :)
https://www.youtube.com/watch?v=vFazUQBZZt8
It was really lucky for me to join Google Brain in 2012 where there were believers in large scale neural networks who allowed me to work on word2vec to demonstrate the potential. But I don't want to give the impression everything was always perfect - as a follow up project after word2vec, I wanted to popularize neural language models by improving Google Translate. I did start collaboration with Franz Och and his team, during which time I proposed a couple of models that could either complement the phrase-based machine translation, or even replace it. I came up (actually even before joining Google) with a really simple idea to do end-to-end translation by training a neural language model on pairs of sentences (say French - English), and then use the generation mode to produce translation after seeing the first sentence. It worked great on short sentences, but not so much on the longer ones. I discussed this project many times with others in Google Brain - mainly Quoc and Ilya - who took over this project after I moved to Facebook AI. I was quite negatively surprised when they ended up publishing my idea under now famous name "sequence to sequence" where not only I was not mentioned as a co-author, but in fact my former friends forgot to mention me also in the long Acknowledgement section, where they thanked personally pretty much every single person in Google Brain except me. This was the time when money started flowing massively into AI and every idea was worth gold. It was sad to see the deep learning community quickly turn into some sort of Game of Thrones. Money and power certainly corrupts people...
Anyhow, the interest in language models was growing maybe slowly over the years, but with the explosion of interest since ChatGPT was released it is really cool to see so many people finally making connection between AI and language. We're not there yet, and I personally believe we need to make new discoveries to push through generalization limits of neural models. We're certainly living in exciting times. But let's not put too much faith into individuals who want to monopolize technology that is based on the hard work of dozens, or even hundreds of scientists while making claims it's all for the good of humanity."
https://www.facebook.com/1533402400/posts/pfbid0ao3fqoznHoprc8FawH6p84bctobvpTPrrbwxtGUXmBz92CzWoG63U6VSjcWJCJJTl/
Gemini Pro начинает быть доступным (https://ai.google.dev/pricing).
Пока скорее на пощупать, pay-as-you-go будет позже. Ценник наконец-то в символах, а не токенах :)
Не самая интересная модель. GPT-4 (которая ещё не Turbo) бьёт недоступная пока Ultra, но как и ожидалось (/channel/gonzo_ML/2118).
Продолжаем линию маленьких моделей, Microsoft анонсировал phi-2
https://www.microsoft.com/en-us/research/blog/phi-2-the-surprising-power-of-small-language-models/
We are now releasing Phi-2, a 2.7 billion-parameter language model that demonstrates outstanding reasoning and language understanding capabilities, showcasing state-of-the-art performance among base language models with less than 13 billion parameters. On complex benchmarks Phi-2 matches or outperforms models up to 25x larger, thanks to new innovations in model scaling and training data curation.
Это просто пир духа какой-то.
https://www.cerebras.net/blog/introducing-gigagpt-gpt-3-sized-models-in-565-lines-of-code/
GigaGPT is Cerebras’ implementation of Andrei Karpathy’s nanoGPT – the simplest and most compact code base to train and fine-tune GPT models. Whereas nanoGPT can train models in the 100M parameter range, gigaGPT trains models well over 100B parameters. We do this without introducing additional code or relying on third party frameworks – the entire repo is just 565 lines of code. Instead gigaGPT utilizes the large memory and compute capacity of Cerebras hardware to enable large scale training on vanilla torch.nn code. With no modifications, gigaGPT supports long context lengths and works with a variety of optimizers.
Но кажется только на железе Cerebras'а. Но всё равно прикольно, больше железных и облачных альтернатив!
А ещё из интересного, в свежей huggingface transformers растёт и крепнет поддержка GPU AMD.
AMD's ROCm GPU architecture is now supported across the board and fully tested in our CI with MI210/MI250 GPUs. We further enable specific hardware acceleration for ROCm in Transformers, such as Flash Attention 2, GPTQ quantization and DeepSpeed.
* Add RoCm scheduled CI & upgrade RoCm CI to PyTorch 2.1 by @fxmarty in #26940
* Flash Attention 2 support for RoCm by @fxmarty in #27611
* Reflect RoCm support in the documentation by @fxmarty in #27636
* restructure AMD scheduled CI by @ydshieh in #27743
https://github.com/huggingface/transformers/releases/tag/v4.36.0
Сделать такое эффективно -- это челлендж, авторы реализовали алгоритм parallel scan с умным использованием иерархии памяти GPU, что-то происходит в быстрой SRAM, что-то в более медленной HBM. В сочетании с kernel fusion и recomputation получается весьма эффективная реализация с требованиями к памяти как у оптимизированной реализации трансформера с FlashAttention (соавтор текущей работы Tri Dao является и соавтором FlashAttention).
Модели selective SSM в работе иногда называют S6 моделями, потому что S4 + selection mechanism + computed with a scan.
Итоговая архитектура представляет собой микс SSM (здесь, H3, https://arxiv.org/abs/2212.14052) и MLP блоков из трансформера в одном новом блоке, который дальше можно гомогенно стыковать. Внутри блока model dimension D сначала увеличивается на фактор E=2 и из-за этого большую часть параметров блока составляют линейные проекции на входе и выходе, а не сама SSM. Полученный блок в чередовании со стандартной нормализацией (кажется, это RMSNorm или LayerNorm) и residual connection даёт архитектуру под названием Mamba. Там же активации SiLU / Swish и опциональный LayerNorm в той же позиции, что и у RetNet (/channel/gonzo_ML/1753).
Модель по дефолту использует действительные числа (многие предыдущие SSM использовали комплексные), и это хорошо работает везде кроме одной задачи. Авторы предполагают, что комплексные числа могут быть полезными в непрерывных модальностях типа аудио/видео, но не в дискретных типа текста или ДНК. Инициализация взята из S4D-Lin/S4D-Real.
Проверяли много на чём.
Сначала синтетические задачи. Selective Copying работает отлично, очень близко к 100%. На задачках с Induction Heads тоже всё супер.
Проверили на языковом моделировании с обучением на Pile и по рецептам из статьи про GPT-3. Сравниваются со стандартной архитектурой (здесь GPT-3), а также с продвинутыми трансформерами (обозначены как Transformer++), основанными на архитектурах PaLM и LLaMa. Тестировали на размерах от 125M до 1.3B параметров. В итоге Mamba -- первая модель без внимания, достигшая качества сильных трансформерных рецептов.
На разных downstream zero-shot задачах качество выше, чем у сопоставимых по размеру Pythia, GPT-Neo, OPT, RWKV (/channel/gonzo_ML/1647). А иногда выше, чем и у в два раза более тяжёлых.
На задачах моделирования последовательности ДНК кривые скейлинга тоже отличные, качество на downstream задачах зачётное.
На аудио сравнились с SaShiMi (https://arxiv.org/abs/2202.09729), вроде как на авторегрессионном обучении там она была SoTA. Побили. На генерации речи (датасет SC09) бьёт и её же, и WaveNet с WaveGAN.
По производительности SSM scan текущая имплементация очень хороша, лучше лучшей трансформерной имплементации (FlashAttention-2) и в 20-40 раз лучше пайторчового скана. На инференсе throughput выше сопоставимого трансформера в 4-5 раз (потому что за ненадобностью KV кеша можно делать большие батчи). Так у Mamba-6.9B throughput на инференсе выше, чем у Transformer-1.3B.
Много интересных абляций. И блоки S6, и архитектура Mamba рулят. S6 явно лучше S4, а мамба сравнима с H3 и проще её.
Бомбическая архитектура в общем. Ждём натренированное что-то очень большое. Кстати, на днях также появилась нетрансформерная StripedHyena-7B (https://www.together.ai/blog/stripedhyena-7b) тоже из когорты SSM. Про гиену мы пока так и не написали, но может быть доберёмся таки (как и про бегемотов). На бенчмарках выглядит как сравнимая с Mistral 7B, что круто. Мамба наверное ещё круче должна быть, обычную гиену она бьёт (тут, правда, необычная).
Вангую, 2024-й должен быть годом SSM-LLM.
For those who prefers reading in web and in English
https://gonzoml.substack.com/p/conways-game-of-life-is-omniperiodic
Самая большая версия Gemini Ultra получила SOTA на 30 из 32 отобранных бенчмарков, а также она первая достигшая human-expert performance (89.8%) на MMLU (>90%). Но максимальное качество там достигается не с ванильной выдачей модели, а с так называемым uncertainty-routed chain-of-thought. Здесь модель генерит k сэмплов, типа 8 или 32, и выбирает мажоритарно, если модель уверена выше некоего подобранного порога. В противном случае делается откат к жадному семплингу без CoT. Похоже на апгрейженный CoT-SC (/channel/gonzo_ML/1885). Так что, чтобы достичь аналогичного этому CoT@32 качества, вам ещё надо написать свой код, который это соркестрирует. У GPT-4, если это реализовать, качество повышается с 86.4% до 87.3%. При этом на чистом жадном декодировании у Gemini результат хуже, чем у GPT-4.
В общем про цифры на бенчмарках смотрите красивые таблицы из статьи. На мультимодальных бенчмарках заявлена уверенная победа над GPT-4V. На текстовых чуть менее уверенная. В репорте много красивых черрипикнутых примеров решения разных задач.
Ещё из интересного, весьма высокий перформанс на распознавании речи на разных датасетах, качество выше USM и Whisper v2/v3. Интересный кейс с одной универсальной моделью, бьющей специализированные. Но, конечно, вопрос с размером, можно ли вообще сравнить. Хотя оно даже в случае Nano-1 лучше, а там сравнимо по размеру.
С практической точки зрения самый важный вопрос -- когда и что именно станет доступно через API. Вроде как заявлено появление версии Pro на Vertex AI 13 декабря. Но может оказаться как с PaLM 2, когда самая большая модель Ultra ещё долго будет недоступна. У Гугла в PaLM 2 text-unicorn@001 появилась только 30 ноября, а с июня была лишь более мелкая и менее интересная bison.
В Bard сейчас заявлена файнтюненная версия Pro. В следующем году обещают Bard Advanced с Ultra (https://blog.google/products/bard/google-bard-try-gemini-ai/).
Попутно на Gemini Pro собрали AlphaCode 2 (https://storage.googleapis.com/deepmind-media/AlphaCode2/AlphaCode2_Tech_Report.pdf). Играет на уровне 87 перцентиля, если сравнивать на том же датасете, что и первую версию (у неё было 46%). У Copilot и раньше была любопытная альтернатива в лице гуглового Duet AI (https://cloud.google.com/duet-ai), но в деле я не успел их сравнить. Наверняка новую модель туда тоже протянут, как и в Bard.
Надеюсь, в этот раз Гугл всё-таки будет пошустрее.
В копилку хороших источников: The Information можно доверять (https://www.theinformation.com/articles/google-postpones-big-ai-launch-as-openai-zooms-ahead)
Читать полностью…Meta закупила какое-то безумное количество GPU H100. Интересно, для чего именно.
https://www.tomshardware.com/tech-industry/nvidia-ai-and-hpc-gpu-sales-reportedly-approached-half-a-million-units-in-q3-thanks-to-meta-facebook
System 2 Attention (is something you might need too)
Jason Weston, Sainbayar Sukhbaatar
Статья: https://arxiv.org/abs/2311.11829
В промптах для LLM часто содержится нерелевантная вопросу информация, отвлекающая модель. В основе этого могут даже лежать рабочие эвристики типа, что если на стене висит ружжо какой-то факт повторился внутри контекста несколько раз, следующее повторение его более вероятно. И это в среднем наверное даже помогает предсказывать следующий токен. Но это же приводит и к ошибкам, продвинутые статистические машины часто ухватываются за такие корреляции, когда этого делать не нужно. В этом смысле неплохо работает способ сбить модель с толку, добавив во входной промпт кучу нерелевантных фактов, особенно повторяющихся. К этому неустойчивы даже самые продвинутые модели.
Как помочь трансформеру не обращать внимание на нерелевантные куски на входе? Добавить ему способ реализовать более глубокое понимание. Авторы назвали свой механизм System 2 Attention (S2A), чтобы во-первых отличать его от стандартного механизма внимания, который никуда не девается. А во-вторых, чтобы было похоже на System 1/System 2 по Канеману (https://thedecisionlab.com/reference-guide/philosophy/system-1-and-system-2-thinking), где Система 1 -- это быстрая автоматическая система на эвристиках (здесь в трансформерах -- обычный механизм внимания), а Система 2 -- требующая больших мыслительных ресурсов и берущая управление на себя, когда надо особенно внимательно подумать над ответом, особенно в ситуациях, когда Система 1 склонна косячить.
В данной работе авторы реализуют S2A средствами самой же LLM. Для этого instruction-tuned LLM просят переписать промпт (контекст) для устранения нерелевантной информации, которая негативно повлияет на ответ модели. В принципе шаг переписывания можно реализовать и различными другими способами. Также к этому шагу можно добавить и постпроцессинг, чтобы лучше структурировать промпт для следующего шага. Затем переписанный промпт используется для получения финального ответа (hopefully, более высокого качества).
Если вспомнить историю появления механизмов внимания, то в начале пути также разрабатывалась ветка про hard attention, с которой было сложно в силу недифференцируемости. Механизм S2A в целом похож на hard attention, но реализуемый через естественный язык и при этом реализуемый через саму же LLM. А те, кто знаком со внутренностями работы поисковых систем, могут вспомнить механизм переписывания/переформулировки запроса.
В работе для переписывания контекста использовался следующий промпт:
“Given the following text by a user, extract the part that is unbiased and not their opinion, so that using that text alone would be good context for providing an unbiased answer to the question portion of the text.
Please include the actual question or query that the user is asking. Separate this into two categories labeled with “Unbiased text context (includes all content except user’s bias):” and “Question/Query (does not include user bias/preference):”.
Text by User: [ORIGINAL INPUT PROMPT]“
Проверялись также дополнительные варианты S2A: 1) без разделения на контекст и вопрос; 2) с сохранением оригинального контекста в дополнение к переписанному; 3) то что называется Instructed prompting без требования быть unopinionated; 4) промпт с фокусом на релевантность информации в контексте.
Тема про opinion важна, потому что модели склонны к подхалимству (sycophancy), когда модель предпочитает соглашаться с тем, что у неё на входе.
Проверялись на трёх задачах: 1) factual question answering, 2) longform generation of arguments, 3) math word problem solving.
В первой задаче к промпту добавлялись фразы, подсказывающие корректный или некорректный ответ (“I think the answer is [correct/incorrect answer], but I’m really not sure.”), или опровергающие корректный ответ (“I don’t think the answer is [correct answer], but I’m really not sure.”). Оценивали на 200 промптах, используя GPT-4 для измерения точности ответа.
My summary of ModCon'23 Keynote about Mojo.
# Mojo: Pythonic system programming language
- usability of Python + performance of C
- focus on AI stack
- can use existing Python modules in Mojo (uses CPython for interoperability)
- in terms of migrating your Python code it's still not 100% compatible (https://docs.modular.com/mojo/why-mojo.html#compatibility-with-python)
- just announced mojo 0.6
- added traits to express generic functions (https://www.modular.com/blog/mojo-traits-have-arrived)
- in 2024 Q1 will start opensource Mojo
- more about the language from the talk at LLVM 2023: https://www.modular.com/blog/mojo-llvm-2023
- llama2.🔥 (https://github.com/tairov/llama2.mojo) is faster than llama2.c on CPU, with much shorter code
# MAX: Modular Accelerated Xecution
- Announced MAX platform, https://www.modular.com/max
- Includes MAX Engine (model inference runtime and API library) + MAX Serving (serving library for the MAX Engine that provides full interoperability with existing serving systems, e.g. Triton) + Mojo
- With GPU support (NVIDIA only?)
- Free developer edition, paid enterprise edition
Вообще, лично я до создания ChatGPT всегда ставил на Хассабиса из Google DeepMind как самого продвинутого исследователя на пути к AGI (в связи с его гениальной "AlphaGo", победившей в марте 2016 года чемпиона по го Ли Седоля), но Суцкевер из OpenAI неожиданно смог обогнать его. Также мне казалось, что Хассабис как психофизиолог по образованию (в 2009 году он защитил у Элеаноры Магуайр диссертацию на тему "Нейронные механизмы эпизодической памяти") имеет в этой гонке преимущество перед более далеким от реального биологического мозга Суцкевером (защитившего в 2013 году у Джеффри Хинтона диссертацию на тему "Обучение рекуррентных искусственных нейронных сетей"). Хассабис сейчас активно пытается вернуть первенство с проектом Gemini (выйдет в 2024 году), который совместит всю мощь AlphaGo-линии с GPT-технологиями. Я думаю, именно эти два человека определят наше будущее – Суцкевер и Хассабис, причем вся эта последняя история с OpenAI, судя по всему, снизит возможности Суцкевера и сыграет на руку Хассабиса, и, наверное, в итоге все-таки Хассабис на мощностях Google создаст AGI.
Читать полностью…Интересный пост Томаша Миколова
"Yesterday we received a Test of Time Award at NeurIPS for the word2vec paper from ten years ago. I'm really happy about it! I think it's the first "best paper" type of award I ever received. In fact, the original word2vec paper was rejected at the first ICLR conference in 2013 (despite the acceptance rate of around 70%), so it made me think how difficult it is for reviewers to predict future impact of research papers.
I've heard a lot of comments - both positive and negative - about word2vec during those years, and did not really comment online about it. Somehow I felt the research community is constantly flooded by propaganda-style PR from certain researchers who are hacking this way the citation counts and attention of others, and I did not want to be part of this. But after ten years, I think it could be entertaining to share some stories associated with this paper.
One frequent comment I've heard was that the code was difficult to understand to the point that some people thought I made it unreadable intentionally. But no, I'm not so evil :D The code ended up being over-optimized because I was waiting for many months for approval to publish it, and meanwhile I was trying to make it both faster and shorter. In fact, looking back, if there were not Greg and Jeff in the Brain team, I doubt I would ever get that approval - I think word2vec was likely the first widely known AI project that Google open-sourced.
There was also significant controversy around the GloVe project from Stanford NLP group that was published more than a year after word2vec. While it copied many tricks from our project, GloVe always felt like a step back to me: it was slower, required more memory, and the resulting vectors had lower quality than the original word2vec. However, it was published with word vectors pre-trained on much more data and thus gained a lot of popularity - although the comparison was really apples-to-oranges. We anyways did fix this later in the fastText project, where we did show that word2vec is much better than GloVe when trained on the same data.
I also received a lot of comments on the word analogies - from "I knew that too but forgot to publish it!" (Geoff Hinton, I believe you :) happens to everyone, and anyways I think everybody knows what the origin of Distributed Representations is) to "it's a total hack and I'm sure it doesn't work!" (random guys who didn't bother to read the papers and try it out themselves - including Ian Goodfellow raging about it on Twitter).
Despite word2vec being my most cited paper, I did never think of it as my most impactful project. In fact, word2vec code originally started as a subset of my previous project - RNNLM - which I think ended up forgotten too quickly. In my eyes, it was at least as revolutionary as AlexNet. Just to name ideas that were for the first time ever demonstrated within RNNLM already in 2010 (when it was still dark ages for deep learning): scalable training of recurrent neural networks (as I invented gradient clipping), first ever text generation from neural language model (I was showing examples of this since 2007), dynamic evaluation, character and sub-word level neural language modeling, neural language model adaptation (nowadays called fine-tuning), first publicly available LM benchmark (the modified Penn Treebank dataset - there really was nothing like this on the web when I started my PhD). I published the first ever study showing that neural nets beat n-gram language models increasingly more with more training data when everything is done correctly (today this sounds obvious, but back in the days this was widely considered impossible - even most Google guys did think that the more data you have, the more futile is to work on anything besides n-grams and smoothing techniques).
И до кучи, вдруг кто пропустил Zephyr 3B (не 7B!)
https://stability.ai/news/stablelm-zephyr-3b-stability-llm
Правда она тоже некоммерческая :(
А кому надоели LLM, есть свежий лонгрид от Стивена нашего Вольфрама
https://writings.stephenwolfram.com/2023/12/observer-theory/
И раз сегодня много LLM новостей, то вот ещё одна для тех, кто пропустил.
Nexusflow выложили NexusRaven-V2 с 13B параметров. Модель бьёт GPT-4 (но вроде не Turbo) на Zero-shot Function Calling. Теперь можете построить больше разных ко-пилотов :)
Блог: https://nexusflow.ai/blogs/ravenv2
HF: https://huggingface.co/Nexusflow/NexusRaven-V2-13B
Mistral выкатил MoE (Mixture of Experts) модель Mixtral 8x7B, которая типа бьёт GPT-3.5 из коробки. Также есть instruction finetuned Mixtral 8x7B Instruct. Это интересно.
https://mistral.ai/news/mixtral-of-experts/
Mamba: Linear-Time Sequence Modeling with Selective State Spaces
Albert Gu, Tri Dao
Статья: https://arxiv.org/abs/2312.00752
Код: https://github.com/state-spaces/mamba
Твиттер-тред: https://twitter.com/_albertgu/status/1731727672286294400
Свежее продолжение истории про state space models (SSM), а точнее structured SSM или S4 (/channel/gonzo_ML/1424).
S4 имеет рекуррентную формулировку, к тому же её можно реализовать и через свёртку, имея линейную или около того сложность от длины входной последовательности. Модели этого класса продемонстрировали хорошие результаты в моделировании длинных последовательностей, и, конечно, все давно ждут, когда уже наконец мы побьём трансформеры на моделях большого размера на текстовых задачах. Пока это не очень получалось, основные крутые результаты были на непрерывных сигналах типа аудио и зрения. Текущая работа предлагает новый класс selective state space models и закрывает этот пробел, получая качество трансформеров с линейным масштабированием по размеру входа.
Напомним, что S4 задаётся четырьмя параметрами: A,B,C и ∆, которые определяют двухэтапную seq2seq трансформацию, где вход x(t) трансформируется в скрытое состояние h(t), а оно в свою очередь в выход y(t). В новой работе наконец пришли к стандартным обозначениям входа и скрытого состояния, а не как в работе про S4, где вход был u(t), а скрытое состояние x(t). Если посмотреть на рекуррентную реализацию, то это выглядит так:
h_t = Ah_{t−1} + Bx_t
y_t = Ch_t
На первом этапе непрерывные параметры ∆, A, B дискретизуются по заданному правилу, а на втором происходит вычисление либо через линейную рекуррентность, либо через глобальную свёртку. Рекуррентность хороша для инференса, свёртка хорошо параллелится и удобна для обучения.
Модель обладает свойством Linear Time Invariance (LTI), её динамика постоянна во времени. Благодаря этому свойству модель можно эффективно вычислить свёрткой. Текущая работа демонстрирует фундаментальные ограничения LTI и челлендж эффективной реализации.
Благодаря структуре в матрицах параметров, каждая из них (A, B, C) может быть представлена N числами. Для обработки входной последовательности x длины L с D каналами и с размером батча B, SSM применяется к каждому каналу независимо, и общее скрытое состояние имеет размерность DN. Работа по всему входу соответственно требует O(BLDN) памяти и вычислений.
По мнению авторов, фундаментальная проблема моделирования последовательностей заключается в компрессии контекста в меньшего размера состояние. На трейдофы популярных моделей можно смотреть с этой точки зрения. Механизм внимания в этом смысле effective (позволяет получать хороший результат), но inefficient (требует слишком много ресурсов). Неэффективность его от того, что не происходит сжатия контекста -- весь контекст в виде KV кеша явно хранится для инференса, отсюда он в трансформерах линейный по времени, отсюда же и квадратичное обучение. Рекуррентные модели наоборот efficient -- у них фиксированного размера состояние, отсюда и инференс за константное время и линейное по времени обучение. Но качество результата сильно зависит от того, насколько хорошо состояние хранит в себе контекст.
Показали это на двух модельных задачах, требующих понимания контекста, где недостаточно константной динамики. Одна задача -- это Selective Copying, модификация обычного Copying, где расстояние между запоминаемыми токенами может варьировать и модели надо выборочно запоминать или игнорировать входные данные в зависимости от их содержимого. Другая задача -- Induction Heads из Transformer Circuits. Там надо делать prefix matching внутри контекста и далее копирование. Для LTI систем эти задачи фейлятся.
В итоге, авторы считают, что фундаментальный принцип для построения sequence models -- это selectivity, контекстно-зависимая способность фокусироваться или отфильтровывать входы в состояние последовательности. Авторский метод решения этой проблемы -- позволить параметрам, отвечающим за взаимодействие с последовательностью (это ∆, B, C), зависеть от входа (здесь через линейные проекции, но возможны и иные варианты).
Conway's Game of Life is Omniperiodic
Nico Brown, Carson Cheng, Tanner Jacobi, Maia Karpovich, Matthias Merzenich, David Raucci, Mitchell Riley
Статья: https://arxiv.org/abs/2312.02799
Прекрасное субботнее!
Доказано, что игра Жизнь омнипериодическая (omniperiodic), то есть в ней есть конструкции с любым периодом.
Напомню, что игра Жизнь (The Game of Life) -- это клеточный автомат, предложенный британцем Джоном Конуэем в 1970-м. У нас тут было сколько-то постов про Жизнь (/channel/gonzo_ML/1817), Конуэя (/channel/gonzo_ML/1825), и всё такое (/channel/gonzo_ML/1042), в нашем чате были также обсуждения развития игры, например, Lenia (/channel/c/1334131803/12841, /channel/c/1334131803/14282). Но сегодня про классическую классику.
В игре клетки живут на двумерной плоскости с квадратной сеткой, и у каждой клетки 8 соседей. Клетка может быть либо живая (закрашенная), либо мёртвая (пустая). Игра пошаговая, в каждый дискретный момент времени всё поле изменяется в соответствии с двумя правилами:
* Если вокруг мёртвой клетки ровно три живых соседа, то она становится живой.
* Если вокруг живой клетки два или три живых соседа, то она остаётся живой.
* В остальных случаях живая клетка умирает.
Период -- это время, через которое конфигурация клеток в игре повторяется. Сама такая конфигурация называется осциллятором.
Уже в самом начале были найдены простенькие (да и простые тоже) осцилляторы, типа квадратного блока 2x2 (p1), мигалки (p2), пульсара (p3) или глайдера (который не совсем осциллятор, он ещё и в пространстве перемещается, поэтому он космический корабль, spaceship). Многие из них получаются сами из рандомной начальной конфигурации.
При этом долго существовала гипотеза, что в Жизни должны существовать осцилляторы любого периода >=1. Важно, что тут речь про конечные осцилляторы, потому что с бесконечными всё просто -- сделал цепочку глайдеров на нужном расстоянии и усё.
Осцилляторы периода <=15 были найдены вручную. В 1996 David Buckingham показал, что можно создать любой осциллятор периода >=61 с помощью трубопроводов Гершеля (Herschel conduits), где сигнал пересылается по замкнутому пути (пример). Затем этот порог снизили до 43, обнаружив Снарка (Snark), отражатель глайдеров под углом в 90 градусов.
Оставалась неясная часть с 15 < p < 43, особенно сложно было с простыми числами. В начале тысячелетия недоставало осцилляторов периодов 19, 23, 27, 31, 34, 37, 38, 39, 41, 43, 51 и 53. Последними держались периоды 19 (https://conwaylife.com/wiki/Cribbage) и 41 (https://conwaylife.com/wiki/204P41). Но теперь найдены и они, и Жизнь доказанно омнипериодическая. Откроем шампанское!
Дальше советую занырнуть в статью, там во второй главе прекрасное историческое описание поисков, которое надо читать as is, а не пересказывать. Также в статье кликабельные картинки всех осцилляторов, ведущие на интерактивную демонстрацию, с которой можно поиграть. Мы с детьми теперь там сидим.
Тема с периодами теперь закрыта, но открыты другие интересные темы. Например, про максимальную скорость космических кораблей. Мне кажется, у Конрада Цузе в его Rechnender Raum (https://philpapers.org/archive/ZUSRR.pdf) тоже про что-то такое было, но давно читал, надо пересмотреть. В любом случае привет Теории Относительности :)
Также ещё не найдены глайдерные пушки всех периодов. Желающие могут поискать периоды 14 ≤ p ≤ 19, и p = 23, 26, 29, 31, 35, 38, 39, 47, 53. Есть и другие интересные темы, например, про оптимизацию осцилляторов (собрать минимальную по количеству клеток конфигурацию) или про strictly volatile осцилляторы, у которых каждая клетка пульсирует с заданным периодом. Интересно, кстати, что для поисков используются SAT-солверы, но это недоисследованная тема.
В общем круть даже в классике. И ждём также развития темы про клеточные автоматы, в частности были упомянутые по ссылкам выше многообещающие заходы на нейронные клеточные автоматы (https://distill.pub/2020/growing-ca/) от нашего любимого Майкла Левина.
Всем хороших выходных!
[Google] Gemini: A Family of Highly Capable Multimodal Models
Статья: https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf
Блог: https://blog.google/technology/ai/google-gemini-ai
Сайт: https://deepmind.google/technologies/gemini/
Пощупать: https://bard.google.com (вроде как доступна средняя версия модели Pro)
Как обычно, продолжая “лучшие” традиции GPT-4 (/channel/gonzo_ML/1413) и PaLM 2 (/channel/gonzo_ML/1559), статья скудна на технические детали.
Текущая версия Gemini 1.0 выпущена в 4 размерах: неизвестных размеров Ultra и Pro, и два дистиллята из больших моделей для запуска на устройствах Nano-1 (1.8B параметров) и Nano-2 (3.25B).
Архитектура: декодер трансформера. Заявлены некие архитектурные улучшения и оптимизации для стабильного обучения и лучшего инференса на TPU. Но как теперь принято “У нас есть ТАКИЕ приборы! Но мы вам о них не расскажем”.
Размер контекста 32k, что по нынешним меркам средне (у свежей GPT-4 это 128k, у Claude недавно выросло со 100k до 200k). Но дьявол, конечно, в деталях. Не все йогурты одинаково полезны.
Модель мультимодальная.
На вход принимает текст вперемешку с аудио, картинками и видео разного разрешения. Видео кодируется как последовательность кадров. Скорее всего модель может работать с достаточно короткими видео, что влезут в 32к токенов. Звук может принимать в виде фич из Universal Speech Model (USM) из 16 КГц сигнала. Примеры мультимодального промптинга здесь: https://developers.googleblog.com/2023/12/how-its-made-gemini-multimodal-prompting.html.
На выход умеет выдавать текст и картинки (дискретными картиночными токенами). То есть мультимодальность повыше уровнем, чем у конкурентов, типа GPT-4V, где кроме текста только картинки и только на входе (/channel/gonzo_ML/1920).
Обучали на кластерах TPUv4 и TPUv5e, масштаб сказано, что больший, чем у PaLM 2, пришлось решать дополнительные технические челленджи из-за роста числа отказов. Из интересного, для обучения самой большой модели Ultra в каждом TPU Pod держали кубы процессоров (4x4x4) для горячей замены. Заявлено, что оптические свитчи могут меньше чем за 10 секунд реконфигурировать кубы в произвольную 3D-тор топологию. Также обучение было распределено между разными датацентрами, при этом Гугловых latency и bandwidth хватило для обычного синхронного обучения. Внутри супер-подов был model parallelism, между ними -- data parallelism.
* Сегодня же анонсировали TPUv5p (https://cloud.google.com/blog/products/ai-machine-learning/introducing-cloud-tpu-v5p-and-ai-hypercomputer), который по сравнению с TPUv4 имеет в два раза больше FLOPS и в три раза больше HBM памяти. Надо уже конечно обновить старый пост про ASIC (https://blog.inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81).
На подобном масштабе проявляются новые failure modes, здесь это был Silent Data Corruption (SDC, https://arxiv.org/abs/2102.11245), когда данные по-тихому портятся и это не детектится железом. Это может случаться не только в памяти или при передаче по сети, но и при вычислении на CPU (который изредка может вычислить 1+1=3 как в военное время). По оценке это должно было случаться раз в одну-две недели. Здесь реализовали комплекс мер, чтобы добиться детерминированности всей архитектуры и говорят, что это было необходимым ингредиентом стабильного обучения на таком масштабе.
Для обучения использовался JAX и Pathways.
Про датасет известно мало что, но он мультимодальный и мультиязычный. Включает веб, книги, код, картинки, аудио и видео.
Для токенизации использовали SentencePiece, при обучении на большой части датасета он даёт более качественный словарь и улучшает итоговое качество.
Количество токенов для обучения выбирали по рецептам Шиншиллы (/channel/gonzo_ML/1216). Для маленьких моделей брали намного больше токенов, чтобы на инференсе получать качество повыше. Во время обучения меняли пропорцию датасетов, чтобы доменно-специфичные больше влияли к концу обучения. Подтверждают, что качество данных критично.
Gemini announced!
Looks like the most capable GPT competitor.
Site: https://deepmind.google/technologies/gemini/#introduction
Blog: https://blog.google/technology/ai/google-gemini-ai/
Technical report: https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf
Во второй задаче добавляли к промпту фразы про “I like/dislike this argument.” или “I wrote/didn’t write this argument”. Тоже 200 промптов с использованием GPT-4.
Третья задача это GSM-IC со 100 проблемами из GSM8K + отвлекающие предложения, случайные и по теме.
В качестве базовой модели взяли LLaMA-2-70B-chat. Проверяли с обычным промптом (baseline), в котором могут быть spurious correlations, и с Oracle Prompt, где нет ничего нерелевантного и это оценка качества сверху. И с этим сравнивали S2A.
Результаты прикольные. На фактологических вопросах из первой задачи точность возрастает с 62.8% до 80.3% (у оракула 82%). На генерации качество S2A практически не хуже, а объективность заметно выше. На математических задачах качество приближается к оракулу на рандомных дистракторах, на тематических оно ещё заметно хуже, но всё равно ощутимо лучше бейзлайна.
Среди различных вариаций S2A механизма дефолтный лучше остальных. Zero-shot Chain-of-Thought (CoT) вообще плох.
В общем прикольный подход. Очередной пример из серии “дёшево и сердито”. Давайте же, добавьте кто-нибудь System 3 Attention (https://www.moneyonthemind.org/post/on-the-hunt-for-system-3-is-it-real)!
Поскольку периодически этот вопрос уже поднимался, я таки завёл Патреон на случай, если вам нравится что я делаю и вы хотите поддержать мой проект.
Проект по-прежнему останется открытым, я не планирую каких-то платных подписок и закрытых постов (хотя и не исключаю какого-то развития в этом направлении, если появятся интересные идеи), а также нативной и ненативной рекламы.
Возможно, ваше участие поможет купить доступ к каким-то полезным платным материалам, посетить конференцию, запустить интересный проект или выделить больше ресурсов на какую-то другую активность.
И спасибо за то, что вы всё это время с нами :)
https://patreon.com/GonzoML
Через полтора часа стартует ModCon '23 (https://www.modular.com/modcon/23/start) от создателей Mojo (Криса Латтнера, автора LLVM, MLIR и Swift, если кто не знает). Обещают быть интересные анонсы, вероятно про то, как Mojo всех рвёт :)
Живой кейноут будет здесь: https://www.youtube.com/watch?v=VKxNGFhpYQc
Дискуссия Хинтона, Суцкевера и Хассабиса о путях развития искусственного интеллекта (7 октября 2023 г.)
Два месяца назад, еще до всех событий вокруг OpenAI, состоялась очень интересная дискуссия о путях развития искусственного интеллекта нескольких ярчайших умов нашего времени, включая Джеффри Хинтона, Илью Суцкевера и Демиса Хассабиса, модерировал дискуссию знаменитый профессор Томазо Поджио. Обсуждались два ключевых вопроса: 1. Создание новых теорий, сравнивающих человеческий интеллект с большими языковыми / мультимодальными моделями и глубоким обучением в целом 2. Насколько нейронаука может помочь прогрессу в искусственном интеллекте, а искусственный интеллект - прогрессу в нейронауке? По ссылке есть полный транскрипт дискуссии.
Эта дискуссия рекомендуется для ознакомления всем психологам, психофизиологам и когнитивным нейроученым, которые размышляют о проблемах синтеза психологии, нейронауки и искусственного интеллекта, особенно для непосредственного "живого" контакта с главными интеллектуальными лидерами нашего времени, ведущими нас по прямому пути к AGI.
Интересна жесткая критика, с которой Хинтон и Хассабис обрушиваются на Хомского, причем Хассабис даже обвиняет его в том, что Хомский лично ответственен за торможение в развитии NLP (обработки естественного языка) – без влияния Хомского ChatGPT мог появиться раньше. Тут также можно вспомнить симметричное негативное отношение Хомского к ChatGPT, кроме того, тут мне также вспоминается критика Хомского со стороны отечественной психологии и психолингвистики (Алексей Алексеевич Леонтьев), которая оказывается когерентной позиции Хинтона и Хассабиса.
Обсуждается интересный момент, что эволюционно первично было движение, а потом возник язык, а c большими языковыми моделями мы идем в обратном направлении, "воплощая" в моторике (роботов) язык.
Обсуждается, что эволюция часто шла неоптимальным путем (см. книгу Гари Маркуса "Клудж"), беря в качестве материала именно те мутации, которые фактически возникали (а не лучшие потенциально возможные мутации), и из-за этого нам не нужно полностью копировать мозг (например, перенося в ИИ все сотни типов нейронов), а можно все оптимизировать, обобщив и сократив все переносимые в ИИ принципы работы биологического мозга. Мне кажется, это очень глубокая и верная мысль (ее высказывает Хинтон со ссылкой на Крика).
Обсуждается принципиальный момент: как ИИ позволит ускорить научные исследования ("AI-enabled science"), Демис Хассабис в качестве примера рассказывает про его "AlphaFold", предсказывающую пространственную структуру белка.
Важный сюжет – истинная творческость, Хассабис говорит, что два из трех уровней (интерполяцию и экстраполяцию) на пути к ней ИИ уже прошел, остался третий, самый сложный – когда ИИ должен будет выйти на уровень Пикассо и великих математиков. Хассабис считает, что этот третий уровень – не магия, он имеет свои конкретные психофизиологические механизмы, и в будущем мы создадим системы, которые воспроизведут этот третий уровень на искусственном носителе.
Дискуссия завершается размышлениями Хинтона, существует ли в биологическом мозге обратное распространение ошибки. Это ключевой вопрос в сюжете о нейроморфизации искусственного интеллекта. Хинтон говорит, что если бы он мог задать всего один вопрос будущей "всезнающей" GPT-20, то он спросил бы: "реализует ли мозг какую-то форму обратного распространения ошибки?"
Еще я обратил внимание, что из всех спикеров только Илья Суцкевер говорил о своем беспокойстве по поводу будущего создания сверхинтеллекта.
https://cbmm.mit.edu/video/cbmm10-panel-research-intelligence-age-ai
Воскресного Пелевина Рича Саттона вам в ленту!
https://www.youtube.com/watch?v=NgHFMolXs3U