Transcription
GTC энтузиасты, добро пожаловать на сцену главного научного сотрудника Google Джеффа Дина и главного научного сотрудника NVIDIA Билла Далли. Итак, Джефф, это был захватывающий год для машинного обучения. Какое самое захватывающее развитие вы видели за последний год в машинном обучении? Да, что вы ожидаете увидеть в следующем году? Да, я имею в виду, я думаю, что все в этой области видели действительно быстрый прогресс в том, что эти модели могут делать, каковы их возможности, а также как люди их применяют. Так что это было действительно интересно и захватывающе. Знаете, я думаю, что за последний год или около того я бы выделил пару разных вещей. Во-первых, я чувствую, что модели стали намного, намного лучше справляться с задачами с проверяемыми вознаграждениями, такими как математика и программирование. И знаете, три или четыре года назад мы были очень взволнованы, когда наши модели могли решать задачи по математике для восьмого класса. Знаете, у Фреда четыре кролика, и он получает еще двух кроликов, и тогда они решали бы это в 40 или 50% случаев, и все говорили: «Да, это здорово». Но за последние несколько лет, и особенно за последний год, мы действительно ускорили то, насколько эффективно эти модели могут заниматься математикой. И поэтому вы видели, как наша модель Gemini участвовала в конкурсе IMO и получила золотую медаль. В конкурсах программирования, конкурсе ICPC, мы также получили там золотую медаль. Так что я думаю, что возможности в этих областях действительно впечатляют. А затем, возможно, даже немного более недавно, мы начали видеть, как рабочие процессы, основанные на агентах, чрезвычайно хорошо работают для более длительных задач. Знаете, раньше вы могли попросить модель сделать что-то, и она делала это, а через несколько минут вам приходилось говорить: «Хорошо, отлично. Она закончила, и что дальше она может сделать?» Но теперь вы можете фактически давать этим моделям задачи, которые занимают часы или, возможно, даже дни, и они будут самостоятельно выполнять множество вещей, исправлять себя, делать еще кое-что. И я думаю, что это довольно захватывающий переход, потому что теперь это дает возможность этим моделям работать довольно автономно в течение более длительных периодов. И это, я думаю, очень отличается от того, что раньше вам приходилось сидеть рядом, не совсем интерактивно, но довольно внимательно наблюдать за ними. Так что это кажется довольно захватывающим изменением. Я имею в виду, говоря об этом, кажется, что у нас будет гораздо больше таких агентов, работающих в фоновом режиме, и одна из вещей, которая действительно будет важна, это то, как мы достигнем сверхнизкой задержки вывода, чтобы эти системы могли автономно выполнять свою работу быстрее, потому что я думаю, что это действительно быстрый драйвер того, насколько эффективно они могут решать проблемы. Как вы видите следующие архитектуры, над которыми вы в NVIDIA работаете, чтобы обеспечить значительное снижение задержки? Как мы думаем о переходе от сотен токенов в секунду к тысячам или десяткам тысяч? Да, я на самом деле говорил об этом в своем выступлении в 10 часов утра, которое, я думаю, было записано, если вы его пропустили. И на этот вопрос есть несколько ответов. Когда вы смотрите на кривую производительности для вывода, это компромисс между, на одном крайнем конце, если вы готовы пожертвовать задержкой, вы можете получить очень высокую пропускную способность в токенах в секунду на доллар или токенах в секунду на ватт. Затем вы можете двигаться вниз по этой кривой и, по сути, запуская меньшие размеры пакетов, вы можете оптимизировать больше для интерактивности, больше токенов в секунду для одного пользователя, за счет этой пропускной способности. Когда вы доходите до правой стороны этой кривой, где вы действительно оптимизируете задержку, оказывается, что большая часть задержки — это задержка связи. И поэтому мы работаем над разработкой архитектур, где мы снижаем эту задержку до того, что в NVIDIA мы всегда называем «скоростью света». Если вы посмотрите на типичную LLM, где вы выполняете ряд этапов прямой связи, затем ряд этапов внимания, и это один слой, и вы делаете это от 50 до пары сотен слоев, каждый раз, когда вы заканчиваете один из этих этапов, обычно происходит внутричиповая связь для перехода к следующему этапу. А затем после завершения слоя часто происходит внечиповая связь для перехода к следующему слою, а иногда даже между этапами внутри слоя, в зависимости от того, как вы разделили задачу. Внутри чипа у нас есть пробные конструкции, где статическое планирование вещей означает отсутствие накладных расходов на маршрутизацию, отсутствие очередей, отсутствие арбитража. Мы, по сути, можем достичь двух миллиметров в наносекунду, по сути, времени пролета по проводам на чипе, и добраться от одного угла чипа до другого за 30 наносекунд. Это действительно снижает задержку с нескольких сотен наносекунд сегодня. А затем вне чипа большая часть задержки приходится на наш PHY, потому что годами мы оптимизировали эти PHY для максимальной пропускной способности без особого учета задержки. И поэтому, чтобы достичь крайних пределов, мы прибегаем к героической цифровой обработке сигналов, пытаясь извлечь этот очень шумный сигнал из провода и выполнить всевозможные сложные математические расчеты, чтобы определить, какой бит. И даже тогда бит довольно шумный. Затем мы выполняем героическое исправление ошибок для извлечения правильного бита. Оказывается, если немного снизить пропускную способность, перейти, скажем, с 400 гигабит в секунду на пару до 200, все это исчезает. Вы можете просто обнаружить напряжение на проводе, получить бит, и это просто задержка сериализации в этот момент. Это пара тактовых циклов при входе и выходе из чипа. Таким образом, мы видим, как строить целые маршрутизаторы, подобные тем, которые я строил в Cray 20 лет назад в 2006 году, когда мы делали Black Widow. Маршрутизатор был менее 50 наносекунд от вывода к выводу. Я думаю, мы можем сделать это снова. И, сделав это, я могу видеть, как мы запускаем относительно большие модели со скоростью от 10 000 до 20 000 токенов в секунду на пользователя. Да, я имею в виду, это очень захватывающе. Я думаю, это действительно важно, чтобы иметь возможность запускать самые масштабные модели в таких масштабах, при таких низких задержках. Итак, вы говорили об этих агентных системах, которые достигают точки, когда вы можете дать им задачу, а затем они будут работать над ней какое-то время. Насколько близко, по вашему мнению, мы находимся к тому моменту, когда мы сможем взять одну из этих агентных систем и просто заставить ее создать следующую версию самой себя? Вы берете текущую версию Gemini, даете ей долгосрочную задачу, возможно, месяц, и она отправляется, экспериментирует, находит правильную модель, находит правильную стратегию курирования данных, пропускает данные через нее, решает, как она будет получать больше данных, возможно, пишет пару контрактов для этого и обучает следующую версию самой себя. Да, я имею в виду, я думаю, что все, что вы описали, еще не совсем достигнуто, но я думаю, что мы начинаем видеть признаки этого. Вы можете задать модели на очень высоком уровне: «Пожалуйста, исследуйте идеи в этом примерном пространстве для улучшения производительности модели», и она запустит 50 экспериментов. Она отклонит 40 из них. Она сосредоточится на 10, которые кажутся перспективными, проведет последующие эксперименты. Я думаю, один из способов, которым я характеризовал эту работу, заключается в том, что в течение некоторого времени существовало метаобучение. Например, в 2017 году некоторые люди из команды Google Brain проделали работу по поиску нейронных архитектур, где вы можете указать пространство поиска потенциальных архитектур, а затем провести множество экспериментов в малом масштабе, чтобы найти архитектуры, которые лучше всего обучаются на конкретном наборе проблем, которые вас волнуют. Мы делали это с обученными оптимизаторами и обученными функциями активации и так далее. В этих случаях, восемь или девять лет назад, люди определяли эти пространства поиска в виде кода. Но я думаю, что одна из действительно приятных вещей, которые у нас есть сейчас, — это возможность определять интересные исследовательские пространства на естественном языке. Это как: «Пожалуйста, сделай себя лучше. Пожалуйста, исследуй интересные новые алгоритмы дистилляции и попробуй использовать информацию, которую мы сейчас не используем», и она отправится и проведет эти эксперименты. Я думаю, это мощный поиск естественного языка. Это, по сути, супермощный множитель производительности исследователей, потому что внезапно становится очень легко думать исследовательские мысли. На самом деле труднее проводить эксперименты, получать результаты и интерпретировать их, и если агент может выполнить большую часть этой работы, это будет отличное партнерство между очень способными исследователями и очень способными агентами. Угу. Итак, посмотрим. Одна из проблем, которая всегда существует при создании оборудования, особенно в быстро меняющейся области, такой как машинное обучение, заключается в том, что если вы начинаете новый проект по оборудованию сегодня, он может выйти через два года, если вам повезет, и фактически попасть в центры обработки данных. Мы хотели бы, чтобы это было короче, но затем он должен прослужить определенное количество лет. И поэтому вы действительно пытаетесь предсказать, куда движется область машинного обучения и ИИ в двух-пятилетнем временном окне. Это всегда было очень трудно предсказать хорошо. Мне интересно, придумали ли вы хорошие инструменты или механизмы, чтобы помочь эффективно читать хрустальный шар. Да. Итак, мы стараемся изо всех сил, и часть того, как мы это делаем, заключается в попытке разработать наши собственные модели, как LLM, такие как NeMo, так и мировые модели, такие как Cosmos, или фундаментальные модели робототехники, такие как GR00T. Но как бы мы ни старались это сделать, мы пытаемся заглянуть вперед, разрабатывая модель, которая еще не является той, которую имеют люди. Мы удивляемся там. Есть много людей, которые работают над этим. Они очень умны. Они каждый день придумывают отличные идеи. И поэтому нам приходится делать наше оборудование будущим. Мы делаем это несколькими способами. Во-первых, есть вещи, которые вы делаете, которые просто хороши для всех моделей. Если мы сможем найти способ более эффективно выполнять математические операции, возможно, благодаря лучшим представлениям чисел, это улучшит все. Аналогично, если мы сможем организовать нашу внутричиповую связь для уменьшения перемещения данных, это улучшит все. Там, где мы склонны сталкиваться с местами, где мы действительно хотели бы знать, что происходит, это когда люди меняют модель таким образом, что меняется предоставление ресурсов, то есть сколько математики у вас есть по сравнению с пропускной способностью памяти, по сравнению с емкостью памяти, по сравнению с объемом связи, потому что даже если вы сделаете каждый из этих четырех ингредиентов очень эффективным, вам придется решить, сколько каждого из них иметь. Затем, когда кто-то придумывает другую модель, например, переход от группированного внимания к многолатентному вниманию, это довольно значительно меняет некоторые из этих соотношений, и внезапно некоторые части оборудования простаивают, а другие заняты. От этого действительно нет спасения. Разве что, возможно, в будущем, если мы увидим, что множество различных моделей нуждаются в различных видах предоставления ресурсов, а объемы достаточно велики, мы можем просто выпускать разные SKU, предоставленные по-разному, и как бы хеджировать наши ставки против такого будущего. Да. Да, это имеет смысл. Думаю, моя очередь. Пока нет. Хорошо. Исторически сложилось так, по крайней мере, в недавней истории, мы склонны масштабировать наши модели в соответствии с законами масштабирования Чинчиллы. Если у нас было определенное количество вычислений, из этого мы решали, сколько у нас будет параметров, и обычно примерно в 20 раз больше токенов. Но теперь мы вошли в эту область, где получить больше токенов действительно трудно, но мы все еще хотим продолжать масштабировать наши модели, использовать больше вычислений для обучения. Что, по вашему мнению, заполнит этот пробел? При исчерпании данных, как мы можем использовать больше вычислений для получения более точных моделей? Да, я имею в виду, я думаю, во-первых, я уточню, законы масштабирования Чинчиллы оптимальны для обучения. Если вы начнете рассматривать производительность обученной модели при выводе, то, возможно, вы не обязательно захотите следовать именно этому. Я также несколько не согласен с утверждением, что у нас заканчиваются данные. Я чувствую, что в мире есть огромное количество данных, которые еще не используются для обучения этих моделей. Где вы видите данные? Ну, мы обучаемся на некоторых видеоданных, но я думаю, что есть гораздо больше видеоданных и связанных с ними аудиоданных, на которых мы еще не обязательно обучаемся. Я думаю, что данные реальной робототехники или автономных транспортных средств будут довольно обильными. Синтетические данные — это еще один способ получения действительно интересных высококачественных данных. Вы вводите больше вычислений, вы можете получить синтетически больше данных для обучения ваших моделей. Разве вы не получаете в итоге что-то вроде повторения одного и того же после некоторого времени? Если вы обучились на каких-то данных, а затем использовали их для создания синтетических данных, это как бы другая версия того же самого. Да, но это все равно иногда помогает модели, потому что если ваша модель очень мощная, та, которая генерирует синтетические данные, то это действительно помогает довольно сильно. Да. Так что я думаю, что именно здесь, а затем есть всевозможные методы, которые мы еще не используем, которые были в моде для, скажем, моделей изображений, сверточных моделей изображений, много лет назад. Так что я думаю, что такие вещи, как аугментация данных, из которых синтетические данные являются частью этого, методы предотвращения переобучения интересны. Вы можете использовать dropout или дистилляцию как способы регуляризации модели. Так что я думаю, что там есть много возможностей, чтобы действительно сделать модели лучше с большим количеством вычислений и большим количеством проходов по данным, где вы не обязательно переобучитесь. Видите ли вы когда-нибудь, что LLM достигнут точки, когда мы будем обучать их так же, как мы обучали AlphaGo, просто чтобы LLM общались друг с другом и каким-то образом улучшали свою производительность, делая это? Да, я имею в виду, я думаю, что текущий режим предварительного обучения похож на то, что вы берете свою модель, вы бросаете в нее генератор случайных чисел для ее инициализации, вы прикрепляете ее к доске, а затем пропускаете через нее все интернет-данные, и она учится тому, что может, из этого наблюдения, но на самом деле не предпринимает действий в мире. Кажется, мы хотим чередовать это с чем-то, где модель может предпринимать действия в какой-либо среде, будь то симулированные среды робототехники или попытка предсказать ответы на вопросы или тому подобное, а затем вернуться к обучению. Возможно, она также будет более целенаправленной в выборе того, какие данные видеть дальше, в отличие от предопределенного порядка данных. Я думаю, это было бы действительно интересно как способ резко повысить эффективность обучения. Для заданного количества токенов, сколько модель может извлечь из него? Я чувствую, что действия в мире будут очень полезны для этого. Мы делаем это после обучения, но это очень ограниченная форма этого. Я думаю, что чередование такого рода вещей гораздо больше на этапе предварительного обучения имеет смысл. На этапе предварительного обучения, я имею в виду, у нас есть это искусственное различие, и кажется, что оно не должно существовать в долгосрочной перспективе. Думаю, оно должно стать достаточно умным, чтобы это имело смысл. Когда вы начинаете с генератора случайных чисел, он, вероятно, не может этого сделать, но после того, как вы пропустили через него некоторое количество токенов, показали ему 10 миллиардов токенов, он, вероятно, сможет что-то сделать. Да. Таким образом, масштабирование рабочих нагрузок обучения было действительно большим фокусом для всего сообщества в течение последних нескольких лет. Но мы начинаем видеть, поскольку эти модели оказывают гораздо большее влияние в реальном мире, что рабочие нагрузки вывода становятся намного важнее. Традиционно мы пытались создавать чипы, которые хороши в обоих этих аспектах. NVIDIA недавно приобрела Groq, у которой есть хорошее аппаратное обеспечение для вывода с низкой задержкой, и я видел, что вы сделали некоторые объявления, объединяющие аппаратное обеспечение Groq с вашими графическими процессорами последнего поколения. Как вы думаете о различиях между оборудованием, необходимым для обучения, и оборудованием, необходимым для вывода? Да, это очень хороший вопрос. Я пойду дальше. Я думаю, дело не только в том, что вывод начинает становиться важным. Вывод — это работа сейчас. Это легко 90% мощности в центрах обработки данных, которая идет на вывод. Хорошая новость в том, что между ними много сходств. Интересно, что, например, числовые форматы, такие как NVFP4, которые мы разработали изначально для вывода, оказались на удивление эффективными и для обучения. Но это все еще очень разные задачи с точки зрения требований, особенно в отношении системы памяти, потому что при обучении вам нужно сохранять все активации для шага обратного распространения, а при выводе вы просто выбрасываете их, как только закончили с ними. Таким образом, существует большая потребность в емкости памяти, и это приводит, как я сказал ранее, к другому объему предоставления ресурсов между емкостью памяти, пропускной способностью памяти, математикой и связью. Мы видим ту же разницу в потребности в предоставлении ресурсов даже на разных этапах вывода. Например, этап предварительного заполнения очень похож на обучение в том смысле, что вы получаете все эти токены, которые можете обрабатывать параллельно. Поэтому он, как правило, очень, очень интенсивен с точки зрения математики и зависит от энергии связи, если вы не будете осторожны с локализацией ваших данных. Затем вы переходите к этапу декодирования вывода, и теперь вы выполняете, особенно если вы оптимизированы по задержке, матрично-векторные или матрично-очень тонкие матричные произведения, и вы чрезвычайно ограничены пропускной способностью памяти и задержкой. Даже это разбито на этапы прямой связи и внимания, которые делают разные вещи. Я думаю, что это естественное разделение со временем для создания различных компонентов, предоставленных для этих различных этапов. Я подозреваю, что вы увидите по крайней мере три варианта: один, который хорош для обучения и предварительного заполнения, один, который хорош для внимания, и один, который хорош для декодирования. Тот, который хорош для декодирования, может даже разделиться на декодирование внимания и декодирование прямой связи. Да. Да, это имеет смысл. Я согласен, что предварительное заполнение выглядит больше как обучение, чем этап декодирования, который выглядит совсем иначе. Да. Это так последовательно. У вас есть один токен, вы должны пропустить его через все. Да. Я имею в виду, я думаю, что одна вещь, которая помогает, — это спекулятивное декодирование, которое может дать вам, вместо вектора, немного более тонкую матрицу. Вместо одного вы получаете восемь. Да. Правильно. А диффузионные LM могут делать еще лучше, возможно, обрабатывая блоки до нескольких сотен. Угу. Да. Да. О, мне нужно как-то поставить следующий вопрос в голове, пока я отвечаю на ваш. Где мои чертовы вопросы? Хорошо. Хорошо. Да, так что я пропущу этот. Мы пропускаем вопросы, поэтому это сложно. Да. Да. Да. Таким образом, регулярно появляются новые модели с новыми формами внимания, диффузионными трансформерами, гибридными моделями пространства состояний-трансформеров. Что вы видите на горизонте для моделей? Что вас больше всего волнует в зоопарке моделей в настоящее время, особенно в области внимания, в целом? Да, ну, я думаю, очевидно, что мы движемся к моделям с большим количеством параметров и разреженным моделям. Это оказывает огромное влияние на то, как выглядит потребление памяти этими моделями, как вы активируете нужные части. Обычно вы активируете крошечную долю от общего количества параметров. И когда у вас есть пакет вещей, обычно вы активируете разные из них, что немного раздражает и разрушает часть пакетной обработки, потому что теперь они идут в разные места. У вас был огромный пакет, а теперь вы сделали его крошечным. В области внимания есть много интересных потенциальных улучшений наивного квадратичного внимания. Алгоритм квадратичного внимания работает чрезвычайно хорошо для качества, но он чрезвычайно дорог, когда вы начинаете достигать больших количеств токенов. Поэтому вам нужно что-то сделать, чтобы масштабироваться за пределы, скажем, миллиона токенов. Я думаю, есть много возможностей, которые были проверены в скромных масштабах и выглядят весьма многообещающими. Одно я классифицирую как вещи, которые существенно снижают константу квадратичного внимания. Вы можете обращать внимание на фрагменты токенов, а затем определять, какие фрагменты кажутся наиболее интересными, а затем углубляться только в эти фрагменты, а не во все. Правильно? Это не просто константа. Это меняет его с n в квадрате на что-то вроде n log n или что-то в этом роде. Ну, нет, это все еще n в квадрате, потому что фрагменты могут быть длиной 128, и вы все еще выполняете квадратичное внимание к этим фрагментам. Хорошо. Но то, что вы делаете для каждого фрагмента, может быть намного меньше. Так что это помогает. Затем есть некоторые интересные вещи, где вы можете, например, кластеризовать состояние внимания, а затем смотреть только на кластеры, которые близки к тому, что вы пытаетесь сделать, и они фактически могут быть своего рода n log n или, возможно, даже лучше. Так что это тоже выглядит весьма многообещающе. Я думаю, что компромисс здесь заключается в том, что вы теряете немного качества по сравнению с полным квадратичным вниманием. Так что вопрос в том, полезно ли это. Затем я думаю, что есть также понятие моделей, которые очень хороши, когда вы помещаете правильную информацию в контекстное окно, потому что они могут обратить на нее внимание, но окно внимания недостаточно велико, чтобы быть тем, что вы действительно хотите, а именно: я хотел бы обращать внимание на всю информацию, все документы в Интернете, или лично для меня, всю мою электронную почту и фотографии и так далее. Это намного, намного больше миллиона токенов. Поэтому я думаю, что правильный способ дать вам иллюзию внимания, скажем, к триллиону токенов вместо миллиона, — это иметь поэтапные формы гораздо более легких механизмов извлечения, которые затем определяют, какие документы вам действительно нужны, извлекают их, а затем обращают на них внимание. Вам не нужен весь триллион одновременно для конкретной задачи. Вы хотели бы каким-то образом определить, какой миллион из этих триллионов вам действительно нужен, извлечь их, а затем обратить на них внимание. Возможно, на этом этапе вы переходите не от триллиона к миллиону. Вы переходите от триллиона к 10 000 документов или 10 миллионам токенов. Это, возможно, 10 или 20 миллионов токенов. Затем вы смотрите на них с помощью гораздо более легкого механизма, чтобы определить, какой миллион токенов вы собираетесь поместить. Я очень взволнован этим, потому что я думаю, что такой иерархический механизм внимания позволит вам делать вещи, которые просто размер окна внимания не позволит. Так что я большой сторонник использования ИИ для различных аспектов проектирования чипов, как если вы думаете о этапах проектирования чипов: есть высокоуровневые архитектурные исследования, есть более автоматизированный синтез высокоуровневых дизайнов в более низкоуровневые вещи, есть автоматизация проверки, а затем есть автоматизация размещения, компоновки и маршрутизации. Я проделал некоторую работу над AlphaChip в качестве примера, помогая с размещением и маршрутизацией. Очень отличная статья в Nature, кстати. О, спасибо. И это было очень полезно для нескольких поколений TPU, которые мы разработали. Как вы думаете — и я видел действительно хорошую работу от NVIDIA по различным видам методов, основанных на градиентах, для размещения и маршрутизации. Как вы думаете об использовании ИИ в фактическом процессе проектирования оборудования? Считаете ли вы, что решение этих различных этапов с помощью различных подходов на основе ИИ — это правильный путь? Считаете ли вы, что возможно что-то гораздо более сквозное? Как вы видите развитие этого? Итак, мы пытаемся использовать ИИ везде, где можем в нашем процессе проектирования, и есть ряд примеров. Например, каждый раз, когда у нас есть новый полупроводниковый процесс, мы должны портировать нашу библиотеку стандартных ячеек на него. Это около 2500–3000 ячеек. Раньше это занимало у команды из восьми человек около 10 месяцев, то есть 80 человеко-месяцев. Затем мы разработали программу на основе обучения с подкреплением под названием NVCell. Я думаю, мы дошли до NVCell 2 или 3. Это происходит за ночь на одном GPU. Результаты на самом деле лучше, чем у человеческих дизайнов, по показателям размера ячеек, рассеиваемой мощности, задержки. Он соответствует или превосходит человеческий дизайн. Так что это огромный прирост производительности и устраняет препятствие для перехода к новым процессам, потому что теперь мы можем очень быстро переносить библиотеки ячеек. Затем у нас есть программа под названием PrefixRL, которая применяет обучение с подкреплением к очень старой проблеме в проектировании компьютеров, а именно к тому, где разместить стадии упреждающего просмотра в цепочке упреждающего просмотра. Это проблема, которая изучалась с 1950-х годов. Эта программа RL подходит к ней, как к видеоигре Atari. Она помещает что-то сюда и оценивает себя. Она не пытается сделать самый быстрый сумматор. Она пытается сделать сумматор, который едва соответствует времени и максимально мал и энергоэффективен. Она придумывает совершенно причудливые дизайны, которые ни один человек никогда бы не придумал, но они на самом деле на 20 или 30% лучше, чем человеческие дизайны по этим показателям. На более целостном этапе, в течение ряда лет у нас была серия LLM, которые мы называли Chip NeMo и Bug NeMo. Что мы сделали, так это взяли общий LLM, а затем дообучили его, подав ему все проприетарные документы NVIDIA по проектированию. Так что это то, что нельзя получить за пределами компании. Это все документы по проектированию аппаратного обеспечения RTL, весь RTL каждого GPU, когда-либо разработанного в NVIDIA, все спецификации архитектуры для них, всевозможные вещи. Теперь у вас есть этот LLM, который на самом деле очень умен в проектировании GPU. Один из самых больших преимуществ этого заключается в том, когда у вас есть младший дизайнер. Оказывается, старшие дизайнеры тратят огромное количество своего времени, объясняя младшим дизайнерам простые вещи, такие как, как работает текстурный блок. И, в частности, этот текстурный блок. Теперь им не нужно спрашивать об этом старших дизайнеров. Они могут спросить Chip NeMo. Chip NeMo подробно объяснит им, как работает текстурный блок. У них есть последующий вопрос, он ответит на последующий вопрос. Таким образом, это повышает производительность таким образом. Очень терпеливый наставник. Да. И то же самое, когда у нас возникают ошибки, мы можем попросить его обобщить отчеты об ошибках и попытаться атрибутировать ошибки, сказать, в каком модуле эта ошибка, кого мы должны привлечь. Мы всегда привлекаем кого-то за ошибку, «требуется действие от», и поэтому мы решим, какой дизайнер будет привлечен к ответственности за конкретную ошибку. Затем, на более исследовательском уровне, и особенно в NVIDIA Research, мы теперь используем агентные системы, чтобы попытаться провести ряд мысленных экспериментов, где мы говорим: «Хорошо, вот несколько разных путей, по которым мы могли бы пойти. Определите, как выглядит это пространство параметров, предложите новые способы делать вещи, проведите простые архитектурные эксперименты и сузьте пространство дизайна до меньшего числа вещей, на которые мы можем посмотреть». Мы пытаемся сократить время от того момента, когда в NVIDIA наступает этап, когда мы как бы закончили исследовательскую работу, которую мы называем F-моделью. Это, по сути, исполняемая модель GPU. До того, как мы выпустим дизайн, у нас есть вся геометрия, она отправляется в TSMC для изготовления чипов. Мы хотели бы сократить это пространство. Оказывается, самым долгим этапом в этом пространстве является проверка дизайна, и поэтому мы особенно изучаем, как мы можем использовать ИИ для более быстрого доказательства работы дизайнов. Есть также пара этапов, где нам приходится рефакторить дизайн, потому что у нас есть дизайн RTL, но затем мы перераспределили вещи для планировки, и теперь нам приходится перемещать части логики из одного модуля в другой и убеждаться, что все еще работает. Это те вещи, которые, я думаю, мы должны автоматизировать, и мы должны сократить этот период времени. Но при всем этом я хотел бы иметь сквозной этап, где я мог бы просто сказать: «Спроектируй мне новый GPU», и я бы пошел кататься на лыжах на пару дней, а потом вернулся, и все было бы готово. Но я думаю, что мы далеки от этого, хотя это делает нас намного продуктивнее. Да. Я имею в виду, я думаю, что сделать каждый этап этого автоматизированного процесса достаточно быстрым, чтобы он мог фактически исследовать это огромное пространство дизайна, — это очень, очень сложная задача. Я думаю, даже когда мы дойдем до сквозного решения, это будет главный агент, вызывающий этих агентов, которые специализируются на различных частях этого конвейера, чтобы выполнить свои части, а затем, возможно, итерировать, когда он не доволен качеством результата. Да, и потенциально даже разделяться так же, как мы разделяем команды дизайнеров чипов, где у вас есть этот агент, сосредоточенный на этой части чипа, а затем этот здесь с некоторыми хорошо известными интерфейсами между ними, и затем им придется договариваться об изменениях в этих интерфейсах. У них будут те же совещания, что и у нас, но между агентами. Да, межведомственные совещания. Хорошо, я должен задать вопрос. Мне следовало бы организовать это в два столбца или что-то в этом роде. Хорошо, посмотрим, что у нас есть. Да. Итак, на тему агентов, если у вас есть команды виртуальных инженеров и рои агентов, сотрудничающих над сложными проектами, каковы самые большие проблемы оркестрации и непрерывного обучения, которые аппаратные инновации могли бы значительно ускорить? Такие вещи, как иерархические вознаграждения, разреженные активации, динамический рост моделей. Что вы видите там? Да, я имею в виду, я думаю, что одна из больших проблем в ML в наши дни заключается в том, как заставить системы работать, когда сигнал вознаграждения разрежен и, возможно, не так проверяем, как, скажем, математика или программирование. Если вы действительно сможете решить эту проблему, то я думаю, вы сможете научиться выполнять множество различных задач, значительно расширяя набор возможностей, области экспертизы этих моделей. Я думаю, есть некоторые сложные вещи, потому что, когда мы получаем эти агентные системы, они обычно выглядят так, как будто у них есть целый ряд траекторий, которые они разворачивают. Вы хотели бы, чтобы они были как можно более низколатентными в моделях, чтобы генерировать следующий фрагмент кода или следующий набор действий, которые модель собирается предпринять. Затем они будут взаимодействовать с некоторой средой. Часто способ их взаимодействия с этой средой заключается в использовании инструментов, разработанных для взаимодействия на скорости человека, и часто работающих на ЦП. Таким образом, время запуска вашего C-компилятора не обязательно является тем, на что люди обращают внимание — они обращают на это некоторое внимание — но им нужно уделять гораздо больше внимания в этом мире, где у вас есть агент, который работает в 50 раз быстрее человека. Время запуска всех ваших инструментов начнет становиться узким местом, подобным закону Амдаля, потому что если вы сделаете вашу модель бесконечно быстрой, вы получите, в зависимости от того, что вы делаете, двух- или трехкратное снижение задержки, если ваши инструменты составляют значительную часть того, что вы делаете. Поэтому я думаю, что нам придется начать действительно перепроектировать многие инструменты, которые используют эти модели. Видите ли вы, что это происходит прямо сейчас для инструментов кодирования? Да, это происходит для инструментов кодирования. Это происходит даже для возможности манипулировать вашими электронными таблицами и документами. Инструменты, которые могут программно извлекать эту информацию, не обязательно являются самыми быстрыми в этом. Я думаю, нам понадобятся новые формы инструментов. Позвольте мне посмотреть. Итак, энергия — это то, о чем я видел, как вы говорили во многих ваших выступлениях и слайдах. То, что действительно запоминается мне, это то, что в конечном итоге мы пытаемся сделать операцию умножения-сложения или что-то в этом роде, которая составляет долю или несколько пикоджоулей в зависимости от точности. Затем, чтобы фактически сделать это, мы должны принести эти данные из некоторой части системы памяти, и это во многих случаях в тысячу раз больше энергии. Учитывая тот факт, что мы действительно продвигаемся и пытаемся сделать эти системы максимально энергоэффективными, мне интересно, какие, по вашему мнению, будут основные улучшения. Я имею в виду, вы говорили о некоторых из них, например, о сокращении расстояния, которое вещи должны проходить по чипу; это может помочь. Но, возможно, у вас есть более широко охарактеризованный статус: расставьте цифры по порядку. Чтобы расставить цифры по порядку, обычно при выполнении умножения-сложения, скажем, для NVFP4, это около 10 фемтоджоулей. Чтобы получить эти четыре с половиной бита из HBM4 примерно по 3 или 4 пикоджоуля на бит, вы говорите о 15 пикоджоулях. Передача одного числа NVFP4 из внешней памяти требует в тысячу раз больше энергии, чем выполнение умножения-сложения. Но чтение простого банка SRAM также составляет около 10 фемтоджоулей. Таким образом, ключевое, что вы можете сделать для снижения энергопотребления, — это просто не перемещать данные. И люди смеются, но я серьезно. Нет, вот как это делается. Это абсолютно то, что вы должны сделать. Например, мы рассматриваем дизайны, где, для мест, где мы можем разместить вещи в SRAM, у нас есть SRAM. Мы можем прочитать строку матрицы из этой SRAM, иметь строку вектора активации и выполнить там скалярное произведение. Мы сделали две вещи: мы выполнили тысячу умножений-сложений без перемещения данных, мы просто читаем SRAM, все находится на месте, мы выполняем тысячу чтений слева и тысячу справа, а затем мы уменьшили данные с тысячи до одного, выполнив скалярное произведение. Мы пытаемся рассмотреть множество таких методов. Проблема тогда в том, что SRAM дорог с точки зрения площади на бит. Он на порядок дороже, чем DRAM. Технология, которая нас действительно волнует, но она еще не готова, заключается в том, что мы можем укладывать DRAM поверх чипа, который выполняет вычисления. Затем мы можем просто циклически пропускать DRAM-мат, как они его называют, считывать бит и направлять его прямо вниз. Оказывается, большая часть энергии чтения DRAM на самом деле не является чтением DRAM; это перемещение бита из места, где вы читаете DRAM, к выводам GPU. Размещая эту DRAM непосредственно поверх GPU, мы можем получить на порядок большую пропускную способность с на порядок меньшей энергией на бит, что приводит к той же мощности, но с гораздо, гораздо большей производительностью. Это действительно то, что мы ищем. Конечно, более эффективные модели также помогут. Если вы можете получить ту же точность с меньшими усилиями, это также снижает энергопотребление. Да. Единственное место, где, я думаю, это действительно может сильно помочь, — это разреженность. Мы уже многое сделали с разреженностью, начиная со структурированной разреженности 2:1, но эти модели просто очень естественно разрежены. Но также верно и то, что, за исключением структурированной разреженности 2:1 и очень грубой разреженности экспертов, трудно использовать разреженность таким образом, чтобы это приносило пользу, потому что, как только вы начинаете использовать ее в более общем смысле, вы создаете много нерегулярности — или, я бы сказал, вы разрушаете регулярность — а регулярность — это большая часть того, что делает вычисления эффективными, потому что все биты маршируют в регулярном порядке. Когда вы нарушаете это, вам теперь нужно выполнять гораздо больше ориентированных на управление и маршрутизацию данных вещей, чтобы справиться с нерегулярным характером. Поэтому я думаю, что это действительно интересный открытый вопрос, как перейти на следующий уровень в области разреженности. Да, определенно. Я имею в виду, я думаю, что модели, которые многократно переиспользуют свои параметры, в некотором смысле хороши. Да, переиспользование — это хорошо. Но переиспользование, опять же, является частью этой кривой, компромиссной между оптимальной пропускной способностью, оптимальными токенами на ватт против оптимальной интерактивности. Когда вы действительно беспокоитесь об интерактивности или когда вы запускаете только одну модель и у вас есть один токен, он должен видеть каждый вес, переиспользование равно одному. Если это не похоже на сверточную модель, в этом случае вы получаете довольно много переиспользования. Вы получаете распространение свертки, да. Но для LLM это матрично-векторное произведение. Угу. Хорошо. Это верно. Моя очередь. Кто-нибудь должен включить маленький свет: «Билл, твоя очередь». Хорошо. Итак, ваш цикл совместной разработки TPU, где вы предсказываете направления исследований ML на два-шесть лет вперед, воплощаете их в кремнии, был чрезвычайно успешен на протяжении, я забыл, на каком поколении вы сейчас. Каковы основные точки трения между оборудованием и программным обеспечением, которые вы видите в Google сегодня, особенно в смешанных средах GPU-TPU или многооблачных средах, которые должна решать более широкая отрасль? Да, я имею в виду, да, мы определенно занимаемся совместной разработкой, потому что я думаю, что вы действительно хотите, чтобы ваши разработчики оборудования и ваши исследователи ML общались друг с другом и находились в одной комнате довольно часто, чтобы они могли обмениваться идеями. Часто происходит так, что исследователь ML говорит: «Я думаю, мы будем много этим заниматься через год или два или три», а люди, занимающиеся оборудованием, смотрят на это и говорят: «О, это интересно». Затем они говорят: «О, ну, мы не можем сделать это действительно быстрым. А если бы мы могли сделать что-то, что не совсем то?» Работало бы это для вас? Затем исследователи ML как бы говорят: «О, ну, возможно, мы могли бы прототипировать это» и осознают, что возможно, что легко, а что трудно. Я думаю, такой тип взаимодействия действительно, действительно важен. Мы, поскольку мы разрабатываем оборудование и проводим много моделирования и исследований в области ML, имеем хорошее представление о том, куда, по нашему мнению, может пойти эта область. Одна из вещей, которую мы иногда можем сделать, — это встроить в кремний небольшие экспериментальные вещи, которые, по нашему мнению, будут полезны через два-четыре года. Мы, очевидно, надеемся, что поставим правильную ставку, но если нет, это не будет огромной катастрофой, потому что тогда эта небольшая часть чипа будет недоиспользована или использована только в определенных обстоятельствах. Но если это действительно сработает, то это окупится с лихвой, и вы можете внезапно ускорить что-то примерно в 10–20 раз на аппаратном уровне. Это своего рода наш CUDA-налог во всех наших GPU, используемых для графики. Угу. Да. Вы просто добавляете немного, и если вы можете это использовать, это здорово. Если нет, это не имеет большого значения. Да. Итак, одна из тенденций, которая сейчас очень актуальна, — это наличие гораздо более систем непрерывного обучения. Одна из возможностей того, как они могут развиваться, заключается в том, что вместо фиксированной модели с набором параметров у вас есть более органично растущие архитектуры моделей, которые добавляют параметры или, возможно, удаляют параметры или сжимают существующие наборы параметров в меньшие наборы, чтобы освободить память для других вещей. Какие аппаратные функции, по вашему мнению, были бы полезны для этого, или есть ли функции, которые не снизят утилизацию, если у нас будут эти действительно странно органические структуры моделей? Да, я думаю, это реальный вопрос о гранулярности этой нерегулярности. До тех пор, пока у вас есть достаточно большой блок, который вы можете эффективно запланировать для выполнения, а затем вы можете динамически выбирать, какой следующий блок — он может быть больше, он может быть меньше — тогда я думаю, вы все равно сможете сделать это очень эффективно, потому что мы можем применять все методы, которые мы знаем сегодня, чтобы эти отдельные блоки работали эффективно. Затем действительно критическим моментом в любой системе параллельных вычислений является синхронизация и связь. Мы очень усердно работали, и я думаю, что у нас есть молниеносно быстрые механизмы синхронизации в наши дни. Поэтому, когда один блок закончен, вы можете обнаружить, что он закончен, и запустить следующий. Затем возникнет небольшой вопрос в том, что ваша связь, вероятно, будет менее хореографированной, чем в очень регулярных вычислениях. Но опять же, если мы сможем применить принципы, которые дают нам задержку скорости света и минимальную энергию, мы должны быть в состоянии очень эффективно обмениваться данными от вывода одного блока к входу следующего. Поэтому я думаю, что мы можем довольно хорошо справляться с динамическими вычислениями. Да, я в некотором роде согласен. До тех пор, пока вещи имеют минимальный размер. Это верно. До тех пор, пока вы не пытаетесь свести это к одной операции. Да. Тогда это будет, возможно, 10 000 операций. Да, 10 000 операций — это хорошо. Да. В противном случае мы вернемся к ЦП. Да. Хорошо. У нас заканчиваются вопросы, поэтому нам придется открыть их для аудитории. Я знаю. И мы не думали, что успеем пройти через эти вопросы. Нам следовало бы сделать больше. Хорошо. Это правда. Итак, чтобы достичь режима более 10 000 токенов в секунду для рабочих нагрузок агентов, требующих интенсивных рассуждений, какие алгоритмические методы — продвинутое спекулятивное декодирование, маршрутизация в огромном масштабе, вывод с ультранизкой точностью — по вашему мнению, потребуют самых больших соответствующих изменений в оборудовании, таких как более глубокая поддержка квантования на вектор, оптимальное отсечение или логарифмические представления? Да, я имею в виду, я думаю, что чтобы сделать вывод с низкой задержкой эффективным для очень больших моделей, вы должны мыслить с фундаментальных принципов о том, что мы можем сделать, чтобы минимизировать перемещение данных, минимизировать энергию и минимизировать время от ввода до вывода блока или слоя, расчета внимания или чего-либо еще. Эти вещи, вероятно, связаны с переосмыслением того, как выглядит весь этот аппаратный конвейер, а не с конкретным числовым форматом здесь или там. Я думаю, что это действительно требует переосмысления довольно многого в отношении аппаратного обеспечения для вывода, потому что на самом деле вы не хотите, чтобы что-либо перемещалось. Кто-то засмеялся, когда мы сказали это раньше, но я думаю, что это действительно ключ: ничего не перемещайте, и это будет суперэффективно и суперэнергоэффективно. Вы могли бы сделать это, если бы поместили все в SRAM, но тогда это становится очень дорого. Да. Так что новые технологии памяти всегда приветствуются, я бы сказал. Я думаю, что укладываемая DRAM поверх чипа, вероятно, является довольно интересным направлением, потому что тогда вы можете получить гораздо большую емкость и более низкую стоимость за бит и при этом сохранить свойство «не перемещать данные очень много». Это похоже на машину Пачинко, где вы просто бросаете нужный бит в операцию. Поэтому я думаю, что это, вероятно, очень интересные направления: как сделать невероятно большие модели с очень низкой задержкой. Я думаю, это улучшит все использование агентов, предполагая, что мы также сделаем наши инструменты достаточно быстрыми. Это действительно резко улучшит энергопотребление этих систем. Да. В числовом плане, в NVIDIA, мы дошли до NVFP4, и многие люди копируют это или используют аналогичные форматы масштабирования блоков. Видите ли вы какие-либо более действительно захватывающие разработки в представлении данных, опять же, чтобы снизить эти энергозатраты? Что там на горизонте? Да. Я имею в виду, я думаю, что наличие чего-то, где у вас есть представление, которое состоит из очень небольшого количества битов, а затем у вас есть масштабирующие факторы, которые применяются к фрагментам многих из этих единиц, вероятно, является очень эффективным способом работы с очень низкой точностью, которая может быть у каждого отдельного элемента, но затем позволяет вам делать вид, что они все имеют гораздо более высокую точность. Это кажется очень эффективным методом, и мы также занимаемся этим довольно много. Да. Вы смотрели на такие вещи, как использование таблиц поиска? Вы можете поместить каждый символ именно туда, куда хотите, но у вас есть только несколько из них. Да. Я имею в виду, это определенно то, о чем мы немного думали, потому что я думаю, что это означает, что ваша вычислительная логика становится немного сложнее. Да. Но иногда это может того стоить. Так что, возможно, мы можем, я задам вам вопрос не из нашего документа. О нет, я не готов. Итак, одна из вещей в наших дизайнах TPU заключается в том, что у них есть пользовательские сети, которые обычно представляют собой 2D или 3D торы, своего рода точечные соединения, но они масштабируются до очень большого количества чипов, тысяч чипов. Это другой подход, чем, скажем, полностью коммутируемая сетевая фабрика, которая позволяет вам масштабироваться за пределы машины, состоящей из чипов. Как вы думаете о компромиссах в этих двух дизайнах? Ну, это отличный вопрос. Вы понимаете, что одна из моих основных областей академических исследований была посвящена сетям взаимосвязи, и я буквально написал книгу по этому предмету. Оказывается, сети 2D и 3D торов действительно хороши для многих вещей. На самом деле, я возглавил революцию в конце 1980-х и начале 1990-х годов, когда была разработана целая серия суперкомпьютеров почти со всеми 3D-тороидальными сетями, из которых Cray T3D был самым ярким примером. Затем в 2000-х годах произошло то, что у нас появилось так много пропускной способности выводов на чипах, что, когда вы строите чип маршрутизатора, вы не могли эффективно использовать его, если у вас было всего шесть соединений, что вы получаете с трехмерной двунаправленной сетью. Поэтому мы перешли в эту область, где мы построили то, что мы называем маршрутизаторами с высоким радиусом действия, и перешли к целому ряду новых топологий, таких как свертываемые сети Клоса, которые часто называют толстыми деревьями, и сети драконфлай и тому подобное. Для выбора нельзя сказать, что одно лучше другого, потому что это действительно зависит от рабочей нагрузки и характера трафика. Если у вас очень локальная рабочая нагрузка, сеть с прямым подключением с относительно низким радиусом действия, такая как 3D-тор, действительно идеальна, потому что вы можете отобразить свою проблему так, чтобы часть проблемы была на этом TPU, а часть проблемы — на этом TPU, и вам нужно сделать один прыжок, чтобы передать туда свои данные. Но есть и другие случаи, когда, например, у вас есть одна модель, и у вас много экспертов, и они разбросаны повсюду, и теперь вам приходится делать много прыжков, чтобы добраться до данного эксперта. Поэтому будет более эффективно подняться на один прыжок к коммутатору и спуститься на один прыжок к эксперту, к которому вы действительно хотите попасть. Когда мы играли с некоторыми из этих компромиссов, мы часто приходили к гибридному решению. У нас была одна экспериментальная система вывода, которая никогда не увидит свет, которую мы сделали в NVIDIA Research, где локальная связь, позволяющая объектам, находящимся рядом друг с другом, общаться, была прямым соединением, без коммутаторов, но с сплющенной топологией бабочки. Так что у вас был немного больший охват, чем у тора. Затем все эти чипы также были подключены к коммутатору, и все более глобальное общение осуществлялось через иерархию коммутаторов. Угу. Да. Да. Да. Я имею в виду, я полностью согласен. Это зависит от того, какая именно ваша рабочая нагрузка. Это верно. Учитывая характер трафика, вы можете придумать оптимальную сеть. Но нет сети, которая была бы хороша для всех типов трафика. Да, действительно. Действительно. Ну, мне пора.
Придумайте один сейчас, и я использовал все свои. Так что мне нужно придумать что-то умное. Поскольку мы создаем эти замечательные машины, которые запускают замечательные модели, которые делают вещи, становящиеся с каждым днем все более удивительными, как вы думаете, какое будет самое позитивное влияние на человеческое существование из этого? Это в образовании, медицине или производительности бизнеса? Что вас больше всего радует в плодах наших трудов, улучшающих человечество?
Да, я думаю, это действительно хороший вопрос. Очевидно, что ИИ может применяться к целому ряду вещей, и некоторые из них невероятно полезны для общества – образование, здравоохранение. Некоторые потенциально являются вещами, которые, возможно, мы не хотим использовать в большом количестве. Я и группа соавторов собрались около года назад и рассмотрели множество различных областей. Это моя единственная статья с собственным веб-сайтом, shapingai.com. Вау. Мы рассмотрели семь различных областей, которые потенциально будут сильно затронуты ИИ. Образование было одной из них. Здравоохранение было одной. Труд и занятость были другой. Наука была одной. Я думаю, что способность ускорять научные открытия является потенциально очень интересной. Средства массовой информации, как создание медиа с помощью моделей генерации видео и моделей генерации изображений, так и дезинформация как потенциально негативное последствие. Это были некоторые из областей.
Я особенно воодушевлен здравоохранением и образованием, потому что, я думаю, если вы подумаете об образовании, мы знаем, что когда у людей есть индивидуальный репетитор, который знает, что они знают, знает, какой материал они пытаются изучить, и знает, как этот человек учится лучше всего, это гораздо эффективнее, чем более групповое образовательное обучение. Я думаю, что результаты обучения на одну-две стандартных отклонения выше, когда у вас есть персональный репетитор, чем когда у вас более групповое обучение. У каждого может быть персональный ИИ. Так что, если у каждого может быть персональный репетитор, который знает, как он учится лучше всего – и я думаю, одна из классных вещей в этих моделях сегодня заключается в том, что они могут фактически превращать одну модальность в другую. Это действительно помогает людям, которые лучше всего учатся, возможно, слушая подкаст о главе по биологии, а не читая его последовательно, или которые хотят поиграть в интерактивную игру, чтобы исследовать гравитацию, а не читать уравнения в учебнике физики, потому что они получают больше интуиции и ощущения от этого. Я думаю, что в ближайшие несколько лет мы сможем иметь этих замечательных образовательных репетиторов, которые не выдают ответ, но помогают людям лучше, более эффективно и более результативно усваивать концепции.
Это интересно, потому что во многих школах сегодня люди пытаются ограничить использование ИИ. Да. Где вместо этого они должны поощрять студентов учиться эффективно работать с ИИ. Да. И репетитор почти даже ортогонален этому. Да. Я имею в виду, если вы вспомните, когда калькуляторы впервые появились в классах математики, были математики, которые говорили: «О нет, мы не можем использовать калькуляторы. Люди никогда не научатся складывать или умножать». Но вместо этого это просто означало, что мы могли преподавать математику, где расчет не был узким местом, а вместо этого двигаться вверх к более высокому уровню гораздо быстрее. Я думаю, что преподаватели должны действительно опираться на тот факт, что эти инструменты существуют и будут делать интересные вещи. Может быть, я могу повернуть это к вам и сказать, какие области применения ИИ вас больше всего волнуют и где, по вашему мнению, мы будем иметь наибольшее влияние?
Ну, два, которые меня волнуют, это, во-первых, ИИ для проектирования оборудования, поскольку я в основном дизайнер оборудования. Меня интересует возможность выполнить свою работу примерно за 15 минут, а затем пойти и заняться чем-нибудь приятным остаток дня. Я думаю, мы говорили об этом, там много действительно продуктивных вещей. Многое из этого просто заключается в отслеживании всей документации по проекту и возможности быстро запрашивать нужную информацию и обобщать отчеты об ошибках и тому подобное. Я думаю, мы также очень близки к тому, чтобы попросить его спроектировать текстурный блок. Если вы достаточно объяснили ему, что такое текстурный блок, он, вероятно, сможет придумать довольно хороший дизайн. Однако сложнее сказать: «Возьмите текстурный блок, который у нас есть в поколении Blackwell, и вот новые вещи, которые он должен делать для поколения Rubin. Вот функции, которые мы устарели. Внесите минимальные изменения, чтобы переместить код из одного дерева в другое».
Другая для меня – это также образование. Я бывший преподаватель. Я был профессором 26 лет. Я думаю, это действительно – я надеюсь, кто-то этим занимается, может быть, мне стоит бросить свою дневную работу и заняться этим самому – иметь персонального репетитора. Еще одна вещь, похожая на это, – это иметь персонального тренера по здоровью. Думайте об этом как о маленьком ангеле, сидящем у вас на плече. Сегодня я был на панели Дженсена. Когда я добрался до гостиной, все еда закончилась, но там был весь десерт. Так что мой обед был десертом. Но если бы у меня был мой маленький тренер по здоровью на плече, он бы отговорил меня от этого. Или он бы вас бросил. И я думаю, что многие проблемы со здоровьем в стране связаны с питанием и физическими упражнениями. Если бы у всех нас были личные тренеры по здоровью, я думаю, так же, как и возможность добраться до ученика и понять, что его мотивирует, они могли бы взаимодействовать с нами, и у нас была бы общая цель не умереть, и они бы подталкивали нас по этому пути.
Это ситуация со здоровьем, а не с образованием, верно? Да. Класс исчисления не настолько генетический. Да. Я имею в виду, я тоже особенно воодушевлен здоровьем. Я чувствую, что, во-первых, существует так много информации, которая не используется в медицинских учреждениях, но которая имеет отношение к здоровью людей. Я ношу часы с монитором сердечного ритма, но использует ли мой врач эту информацию? Мы могли бы легко секвенировать каждого, а затем иметь очень персонализированное здравоохранение, основанное на том, какие мутации у вас есть, которые могут указывать на вашу восприимчивость к определенным заболеваниям или реакцию на определенные лекарства. Многое из этого уже известно, но большинство поставщиков медицинских услуг полностью игнорируют это. Да. Я думаю, ваш маленький тренер по здоровью – это действительно хорошая идея, потому что я думаю, что система здравоохранения – одна из вещей, которые они могли бы сделать, это поговорить с врачом и сказать: «Ну, вы учли тот факт, что у профессора Дэйли есть эта мутация, и это лекарство может не работать хорошо?» Я вижу, вы в Макдональдсе в четвертый раз на этой неделе. Вы знаете, что рядом есть отличное место с салатами? Да, так что я думаю, что использование ИИ для здравоохранения будет действительно впечатляющим. Это сложная среда из-за очень реальных проблем конфиденциальности и регулирования. Но я думаю, что мы должны стремиться к тому, чтобы прошлые решения в области здравоохранения использовались для информирования будущих решений в области здравоохранения. И если мы сможем приблизиться к этому как можно ближе, это будет потрясающе. Да.
Хорошо. Я задам вам более философский вопрос. NVIDIA добилась невероятного успеха за последнее десятилетие. Как вы думаете – вы, вероятно, наняли гораздо больше людей, компания стала намного больше, у вас большее влияние в мире – что изменилось, чего вам не хватает, и что раньше работало хорошо, а теперь больше не работает в больших масштабах? Да, это интересно. Я начал консультировать NVIDIA в 2003 году, когда еще работал на факультете Стэнфорда. Нас было определенно около 1000, может быть, чуть меньше в то время. Все как бы знали – вы не знали всех – но вы знали примерно всех, кого вам нужно было знать. Решения просто принимались очень быстро. Бюрократии не было. Я скучаю по многим вещам из тех дней, потому что теперь есть бюрократия. Вы растете до более чем 40 000 человек – мы все еще относительно небольшая компания по количеству людей – но компания с более чем 40 000 человек, внезапно появляется множество правил, и есть различные бюрократы, которые мешают делать правильные вещи со скоростью света. Но я думаю, что это необходимо, потому что по мере роста, в небольшом размере, люди делают правильные вещи, потому что это часть сообщества, и вы никогда не захотите делать что-то, что вызвало бы недовольство у ваших товарищей по сообществу. Но по мере роста компании и некоторой потери этого чувства общности, именно тогда вам начинают нужны правила. Я думаю, что, вероятно, больше всего мне не хватает потери этого чувства общности. Удивительно то, что Дженсену удалось создать среду, где даже при 40 000 человек она все еще, в первом приближении, ощущается как стартап, и мне это очень нравится. То, что вы получаете, это то, что сейчас возможно благодаря размеру, масштабу и доступным ресурсам, чего мы тогда просто не могли сделать. Я думаю, что мы должны использовать это, убедиться, что мы определяем наше будущее, используя эту способность делать наибольшее добро. Да.
Я имею в виду, у меня был похожий опыт. Присоединился к Google, когда мы были довольно маленькими. Мы все были зажаты над тем, что сейчас является магазином T-Mobile в центре Пало-Альто, а теперь нас, я не знаю, 180 000 человек или около того. Это как четыре NVIDIA. Да. Я чувствую, что каждое удвоение размера компании – а это как много удвоений – каждое удвоение приводило к тому, что что-то, что раньше работало, больше не работало так хорошо. Вам приходится выяснять, как ориентироваться в этом как организация, внедрять ровно нужное количество новых способов делать вещи, но без чрезмерной бюрократии. Так что да, это вызов. Да, я видел, как Мэгги стояла за кулисами, так что, наверное, пора нам – Да. Большое спасибо всем, кто пришел. Было очень приятно. Джефф, потрясающе. Ты потрясающий. Спасибо. Мы сделаем быстрое селфи с толпой. Если вы можете просто встать. О, хорошо. Повернитесь. Вот оно. Мы сделаем селфи с толпой. Один, два, три. GTC. Спасибо всем. Спасибо. Ну, большое спасибо за это. Спасибо всем. Это было здорово, и мне понравился обмен вопросами.