Генеративный искусственный интеллект используется для разработки чипов! ! !
С прошлого года генеративный ИИ (Generative) в лице ChatGPT оказался в центре внимания всего мира. ChatGPT может понимать вводимые пользователем данные на основе естественного языка и генерировать соответствующие выходные данные. ChatGPT основан на технологии большой языковой модели. Используя массовое обучение корпуса, он может отвечать на различные вопросы пользователей и помогать им выполнять некоторые простые задачи, включая написание документов и даже написание кода Python.
10 мая на конференции IO Google представила конкурирующий продукт ChatGPT — языковую модель PaLM 2. По данным Google, одним из наиболее важных преимуществ генеративных моделей больших языков, подобных ChatGPT, является помощь пользователям в написании кода, а основной особенностью PaLM 2 является поддержка более 20 языков программирования. Среди них самым важным для инженеров-проектировщиков микросхем является то, что PaLM 2 поддерживает Verilog, наиболее часто используемый язык программирования в области проектирования цифровых схем.
Лучше попробовать, чем услышать об этом. В настоящее время PaLM 2 запущен на платформе Google Bard для публичного тестирования, поэтому мы также попытались использовать Bard, чтобы проверить возможности PaLM 2 по генерации кода Verilog. В ходе эксперимента мы попросили Барда сгенерировать два фрагмента кода: один фрагмент кода должен генерировать FIFO (один из наиболее часто используемых модулей в цифровых схемах), а другой фрагмент кода должен генерировать модуль, содержащий два записанные ранее FIFO, и соедините выход первого FIFO со входом второго FIFO. Метод генерации очень прост, нам нужно лишь дать Барду команду (подсказку) на основе естественного языка, и Бард сможет завершить генерацию соответствующего кода в течение нескольких секунд.
Судя по результатам, синтаксис сгенерированного кода правильный, и логика в принципе правильная, но логика сигналов полного и пустого FIFO не совсем корректна (конечно, логика полного и пустого FIFO - это тоже вопрос, который часто проверяется на собеседованиях. Не так-то просто сделать правильный выбор). Что касается стиля кода, мы также можем добавить к команде дополнительные подсказки, например «добавить больше комментариев к коду», «использовать параметры для определения ширины интерфейса» и так далее.
Во втором эксперименте мы в основном смотрели на то, сможет ли Бард повторно использовать ранее сгенерированные модули и генерировать на основе этого новые и более крупные модули. Инструкция, которую мы используем, звучит так: «Напишите модуль, который включает в себя два модуля FIFO, которые вы написали ранее, и выход первого FIFO подключен к входу второго FIFO».
PaLM 2 от Google уже имеет базовую возможность генерации кода Verilog, которая может генерировать базовые и составные модули. Конечно, качество его генерации кода необходимо улучшить. Мы считаем, что в дополнение к PaLM 2 большие языковые модели, подобные ChatGPT, запущенные другими компаниями, также могут добавить поддержку языков описания оборудования, подобных Verilog.
Согласно информации, обнародованной Google на конференции IO, нынешняя модель большого языка, подобная ChatGPT, стала важным помощником для многих инженеров при написании кода. Если мы говорим о развитии инженеров-разработчиков программного обеспечения в области ИТ, использующих большие языковые модели, подобные ChatGPT, для помощи в разработке написания кода, мы считаем, что большие языковые модели в индустрии микросхем, скорее всего, будут играть важную роль. Здесь в зависимости от роли, которую играет большая языковая модель в процессе разработки, мы можем условно разделить ее на три типа приложений. Первое применение — это непосредственная генерация кода по инструкциям пользователя, то есть два примера, которые мы приводили ранее в этой статье. Второе приложение — помочь инженерам автоматически дополнять код, когда он пишет код; например, инженеру нужно ввести только первые несколько символов строки кода, а большая языковая модель может автоматически помочь завершить код в соответствии с контекстом кода, тем самым экономя время разработки инженеров. Третье приложение предназначено для помощи инженерам в анализе кода и его отладке. Точно так же, как ChatGPT может помочь пользователям оптимизировать код Python и находить ошибки в коде, большие языковые модели, обученные на соответствующих данных, также могут выполнять аналогичные функции в Verilog.
Заглядывая в будущее и рассматривая траекторию применения больших языковых моделей в ИТ-индустрии, мы считаем, что помощь больших языковых моделей в проектировании микросхем начнется с автоматического завершения кода, поскольку это также является отправной точкой для больших языковых моделей. языковые модели в ИТ-индустрии — в настоящее время Мы видели, что продукты завершения кода, такие как Github co-pilot, применяются многими ИТ-компаниями, чтобы помочь разработчикам программного обеспечения повысить эффективность программирования. Условно говоря, приложения для завершения кода имеют относительно низкие требования к большим языковым моделям. Текущая модель достигла очень высокого уровня точности. Поэтому мы ожидаем, что в области проектирования микросхем также появятся приложения на основе больших языковых моделей в области Verilog. Вскоре появится инструмент завершения кода Google, который поможет инженерам повысить эффективность (по оценкам, внутренняя команда разработчиков чипов Google уже начала использовать подобные инструменты).
После завершения кода, по мере дальнейшего развития больших языковых моделей, также будут все чаще использоваться большие языковые модели, автоматически генерирующие код по инструкциям пользователя. С текущей точки зрения, такого рода приложения для генерации кода необходимо в дальнейшем интегрировать со всем процессом разработки проекта — независимо от того, является ли такое приложение автоматической генерации кода наиболее подходящим для написания базовых модулей или для генерации интеграции. между верхними модулями? Необходимы дальнейшие исследования, но в любом случае ChatGPT имеет потрясающий потенциал в области автоматического написания кода. Он может завершить код, написание которого вручную занимает несколько часов, за несколько секунд. Такое повышение эффективности, несомненно, принесет пользу всей отрасли и процессу разработки чипов. Пришли революционные перемены.
В настоящее время модели больших языков, подобные ChatGPT, достигли очень хороших результатов при написании кода на популярных языках программирования, таких как Python, что доказывает, что большие языковые модели могут реализовать автоматическое написание, завершение и отладку кода в теории и инженерии. из. Основная причина, по которой поддержка Verilog в PaLM 2 от Google все еще нуждается в дальнейшем улучшении, по нашему мнению, заключается в недостаточном объеме обучающих данных. С точки зрения объема обучающих данных, в Интернете доступно большое количество кодов Python с открытым исходным кодом для обучения больших языковых моделей для выполнения высококачественной генерации кода, но количество кодов Verilog, доступных для обучения больших языковых моделей на Интернет более популярен, чем Python и т. д. С точки зрения языка он может быть на несколько порядков меньше. Дело не в том, что количества кодов Verilog, написанных людьми, недостаточно, а в том, что подавляющее большинство кодов Verilog не имеют открытого исходного кода, а являются объектами прав интеллектуальной собственности компаний, производящих чипы. Например, Google вряд ли получит коды Verilog от Qualcomm при обучении PaLM. Кто возглавит разработку больших языковых моделей в области проектирования микросхем в будущем? Мы считаем, что существует несколько сил, которые нельзя игнорировать:
Первая — это крупные технологические компании с полным набором технологических возможностей. Эти компании не только обладают способностью разрабатывать большие языковые модели, но и имеют успешный бизнес по производству чипов, в том числе Google в США и Huawei в Китае. С технической точки зрения эти компании накопили большое количество кодов, связанных с Verilog, для обучения больших языковых моделей, а с бизнес-точки зрения у этих компаний также есть стремление использовать большие языковые модели для повышения эффективности чипов. проектные коллективы.
За ними следуют гиганты EDA, включая Synopsys, Cadence и так далее. Эти компании EDA обладают сильным деловым стремлением и чувством безотлагательности, потому что большая языковая модель ИИ действительно станет следующим революционным изменением в индустрии EDA, и тот, кто возьмет на себя ведущую роль в этой области, получит преимущество в следующем поколении EDA. соревнование; с точки зрения накопления технологий, эти компании обладают хорошими возможностями моделирования искусственного интеллекта и в то же время имеют большой объем данных кода Verilog для моделей обучения (поскольку эти компании EDA имеют довольно успешный IP-бизнес, они накопили достаточно опыта высокого уровня). при разработке этих IP-адресов.
Наконец, нельзя игнорировать силу сообщества открытого исходного кода. С точки зрения больших языковых моделей сообщество открытого исходного кода провело много значимых исследований на основе CahtGPT и языковых моделей LLAMA с открытым исходным кодом. Кроме того, с увеличением количества проектов с открытым исходным кодом, таких как RISC-V, объем данных, принадлежащих сообществу открытого исходного кода, также увеличится. более. Мы ожидаем, что сообщество открытого исходного кода получит возможность реализовать несколько небольших и красивых новых приложений на основе больших языковых моделей, что также может способствовать техническому развитию всей большой языковой модели в области проектирования микросхем.