Область техники, к которой относится изобретение
[01] Настоящая технология в целом относится к глубокому обучению и, в частности, к способам и электронным устройствам для пакетирования запросов, предназначенных для обработки обрабатывающим блоком.
Уровень техники
[02] Глубокое обучение (также известное как глубокое структурированное обучение) относится к широкому семейству способов машинного обучения, основанных на искусственных нейронных сетях с обучением их формированию представлений. Обучение может быть с учителем, с частичным привлечением учителя или без учителя.
[03] В глубоком обучении термин «глубокое» указывает на использование нескольких слоев в сети. Глубокое обучение связано с разработкой сетей с неограниченным количеством слоев ограниченного размера, пригодных для различных вариантов практического применения. Слои в глубоком обучении могут быть неоднородными и могут значительно отличаться от коннекционных моделей, подобных биологическим. Таким образом, глубокая нейронная сеть (DNN, Deep Neural Network) представляет собой искусственную нейронную сеть с несколькими слоями между входным и выходным слоями, содержащую нейроны, синапсы, веса, ошибки и функции.
[04] В одном упрощенном примере сеть DNN, обученная распознавать породы собак, обрабатывает заданное изображение и способна рассчитывать вероятность того, что собака на изображении относится к определенной породе. Оценщик-человек может просмотреть результаты, выбрать вероятности, которые должна обеспечивать сеть (например, вероятность превышения конкретного порога), и предоставить сети оценочную метку. Каждое математическое преобразование считается слоем и поэтому сложные сети DNN содержат много слоев, отсюда и происходит название «глубокие сети».
[05] Архитектуры глубокого обучения сильно зависят от конкретных вариантов реализации и решаемой задачи.
[06] Например, некоторые сети DNN представляют собой сети прямого распространения, в которых данные передаются от входного слоя к выходному слою без обратной связи. Сначала сеть DNN создает карту виртуальных нейронов и назначает случайные числовые значения или веса соединениям между ними. Веса и входные данные перемножаются, в результате чего выдаются выходные данные в диапазоне от 0 до 1. Если сеть не точно распознала конкретные данные, алгоритм корректирует эти веса. Таким образом, алгоритм способен повышать вклад конкретных параметров, пока он не определит правильные математические преобразования для полной обработки данных.
[07] В другом примере некоторые сети DNN представляют собой рекуррентные нейронные сети (RNN, Recurrent Neural Networks), в которых данные могут передаваться в любом направлении. Сети с долгой краткосрочной памятью (LSTM, Long Short-Term Memory) представляют собой сети RNN особого вида. Сети LSTM содержат обратные связи и могут обрабатывать не только одиночные элементы данных (такие как изображения), но и целые последовательности данных (такие как речь или видеоматериалы). Например, сети LSTM могут быть обучены с привлечением учителя на наборе обучающих последовательностей с использованием алгоритма оптимизации, такого как градиентный спуск, в сочетании с обратным распространением во времени для расчета градиентов, требуемых в процессе оптимизации. Это позволяет изменять веса сети LSTM пропорционально производной ошибки (в выходном слое сети LSTM) в отношении соответствующих весов.
[08] В еще одном примере сети DNN представляют собой сверточные нейронные сети (CNN, Convolutional Neural Networks), в которых используется математическая операция свертки. Сети CNN - это специализированные нейронные сети, в которых скрытые слои включают в себя слои, выполняющие свертки. Обычно такой слой определяет скалярное произведение ядра свертки и входной матрицы слоя. По мере сдвига ядра свертки на входной матрице слоя операция сверки формирует карту признаков, которая, в свою очередь, используется при определении входных данных следующего слоя. Далее располагаются другие слои, такие как слои пулинга, полносвязные слои и слои нормализации. Сети CNN часто используются в системах компьютерного зрения, а также применяются для акустического моделирования с целью распознавания речи.
[09] Архитектуры глубокого обучения применяются во многих областях техники, включая компьютерное зрение, распознавание речи, обработку естественного языка, векторизацию слов или предложений, машинный перевод, биоинформатику, разработку лекарств, анализ медицинских изображений, контроль материалов и т.п.
[010] В последние годы благодаря развитию алгоритмов машинного обучения и компьютерных аппаратных средств появились более эффективные методы обучения сетей DNN, содержащих много слоев нелинейных скрытых узлов и очень большие выходные слои. По этой причине для обучения таких сетей в настоящее время широко используются графические процессоры (GPU, Graphic Processing Unit), которые иногда предпочтительней, чем центральные процессоры (CPU, Central Processing Unit).
[011] Системы глубокого обучения сложно реализовывать в большом масштабе. Сети DNN требуют большого количества вычислений, при этом некоторые сетевые архитектуры проще в реализации, чем другие. Некоторые решения предназначены для группировки запросов с целью параллельной обработки этих запросов.
[012] В патенте US11010103 описана процедура балансировки для обработки задач, касающихся восстановления файлов из резервного запоминающего устройства. Эти задачи являются делимыми.
Раскрытие изобретения
[013] Разработчики настоящей технологии обнаружили определенные технические недостатки, связанные с существующими решениями для реализации сетей DNN. Целью настоящего изобретения является устранение по меньшей мере некоторых недостатков известных решений.
[014] Разработчики настоящей технологии установили, что сети DNN могут иметь разную архитектуру и могут использоваться во множестве сценариев применения.
[015] В некоторых вариантах осуществления настоящей технологии сеть DNN может быть реализована в виде модели «трансформера» на основе механизма внимания. В этих вариантах осуществления изобретения сеть DNN может использоваться для перевода. В них архитектура сети DNN может быть подобна архитектурам, описанным в статье «Attention Is All You Need» (Ashish Vaswani et al., опубликована 6 декабря 2017 г.), содержание которой полностью включено в настоящий документ посредством ссылки.
[016] В некоторых вариантах осуществления настоящей технологии сеть DNN может быть реализована в виде сквозной (E2E, End-to-End) сети CNN. В этих вариантах осуществления изобретения сеть DNN может использоваться для построения модели распознавания речи. В них архитектура сети DNN может быть подобна архитектурам, описанным в статье «Jasper: An End-to-End Convolutional Neural Acoustic Model» (Li et al., опубликована 27 августа 2019 г.), содержание которой полностью включено в настоящий документ посредством ссылки.
[017] В других вариантах осуществления настоящей технологии сеть DNN может быть реализована в виде сети, содержащей две составляющие: «слушателя» и «формирователя». «Слушатель» может представлять собой пирамидальный рекуррентный сетевой кодер, принимающий спектры от блока фильтров в качестве входных данных. «Формирователь» может представлять собой рекуррентный сетевой декодер на основе механизма внимания, выдающий символы в качестве выходных данных. В этих вариантах осуществления изобретения сеть DNN может использоваться для распознавания речи. В них архитектура сети DNN может быть подобна архитектурам, описанным в статье «Listen, Attend, and Spell» (William Chan et al., опубликована 20 августа 2015 г.), содержание которой полностью включено в настоящий документ посредством ссылки.
[018] В дополнительных вариантах осуществления настоящей технологии сеть DNN может быть реализована в виде особой модели на основе трансформера, называемой «Представления двунаправленного кодера из трансформеров» (BERT, Bidirectional Encoder Representations from Transformers). Такая модель может быть разработана для предварительного обучения формированию глубоких двунаправленных представлений из неразмеченного текста путем совместной адаптации на левом и правом контекстах во всех слоях. В этих вариантах осуществления изобретения сеть DNN может использоваться для целей, связанных с анализом текста и с поиском. В них архитектура сети DNN может быть подобна архитектурам, описанным в статье «BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding» (Jacob Devlin et al., опубликована 24 мая 2019 г.), содержание которой полностью включено в настоящий документ посредством ссылки.
[019] В других вариантах осуществления настоящей технологии сеть DNN может быть реализована в виде сети, содержащей рекуррентную модель прогнозирования признаков вида «последовательность в последовательность», выполняющую преобразование векторных представлений символов в мел-спектрограммы, за которой следует модель WaveNet, функционирующая как вокодер для синтеза сигналов во временной области из этих спектрограмм. В этих вариантах осуществления изобретения сеть DNN может использоваться для синтеза речи. В них архитектура сети DNN может быть подобна архитектурам, описанным в статье «Natural TTS Synthesis By Conditioning Wavenet On Mel Spectrogram Predictions» (Jonathan Shen et al., опубликована 16 февраля 2018 г.), содержание которой полностью включено в настоящий документ посредством ссылки.
[020] В дополнительных вариантах осуществления настоящей технологии сеть DNN может быть реализована в виде модели на основе трансформера, способной получать и обрабатывать пространственно-временные токены из входного видеосигнала. В этих вариантах осуществления изобретения сеть DNN может использоваться для классификации видеоматериалов. В них архитектура сети DNN может быть подобна архитектурам, описанным в статье «ViViT: A Video Vision Transformer» (Anurag Arnab et al., опубликована 29 марта 2021 г.), содержание которой полностью включено в настоящий документ посредством ссылки.
[021] В целом, сети DNN могут получать входные данные для формирования выходных данных. Входные данные сети DNN могут представлять собой соответствующую последовательность входных токенов. Характер этих токенов, среди прочего, зависит от архитектуры сети DNN и от конкретного применения, для которого реализована эта сеть DNN.
[022] Например, когда сеть DNN используется для перевода, входной токен может представлять часть предложения (например, слова) и/или фрагмент слова (например, фонемы) из предложения на исходном языке. Тем не менее, это не обязательно для всех вариантов осуществления настоящей технологии. В другом примере, когда сеть DNN используется для синтеза речи, входной токен может представлять по меньшей мере часть спектрограммы (например, временной участок спектрограммы), на основе которого сеть DNN должна формировать речь. В дополнительном примере, когда сеть DNN используется для распознавания речи, входной токен может представлять по меньшей мере часть аудиофайла, на основе которого сеть DNN должна формировать текстовое представление фрагмента человеческой речи. В еще одном примере, когда сеть DNN используется для реализации компьютерного зрения, входной токен может представлять кадр изображения из видеофайла, на основе которого сеть DNN должна формировать прогнозы.
[023] Независимо от конкретного применения, можно сказать, что токен, введенный в сеть DNN, представляет собой «единицу обработки» для сети DNN. Также следует отметить, что сети DNN могут получать входные данные разной длины, т.е. двум разным вариантам входных данных сети DNN могут соответствовать разные количества входных токенов.
[024] Для ясности можно рассмотреть не имеющий ограничительного характера пример сети DNN, используемой для перевода. Такая сеть DNN может содержать кодирующую часть, связанную с исходным языком, и декодирующую часть, связанную с языком перевода. В общем случае кодирующая часть получает последовательность входных токенов, сформированных на основе текста на исходном языке, и выдает компактное представление этой входной последовательности, пытаясь обобщить или сжать всю информацию из этой последовательности. Эти компактные представления принимаются декодирующей частью, формирующей последовательность выходных токенов на основе полученных входных данных. В этом примере последовательность входных токенов может представлять предложение и/или слово на исходном языке, а последовательность выходных токенов может представлять предложение и/или слово на языке перевода. Разумеется, что вследствие разнообразия возможных предложений и/или слов две последовательности входных токенов могут содержать разное количество входных токенов (частей предложения и/или фрагментов слов).
[025] Аналогично, входные данные сетей DNN, используемых для синтеза речи, распознавания речи, реализации компьютерного зрения и т.п., также могут иметь разную длину (разное количество входных токенов). Сети DNN, используемые для распознавания речи, могут обрабатывать аудиофайлы разной продолжительности по времени, а сети DNN, используемые для реализации компьютерного зрения, могут обрабатывать видеофайлы с разным количеством кадров и т.д.
[026] Следует отметить, что при предоставлении входных данных сети DNN электронным устройством формируется запрос на обработку, который может быть поставлен в очередь для обработки обрабатывающим блоком. В общем случае обрабатывающий блок представляет собой аппаратный элемент электронного устройства, способный выполнять операции, в результате которых модель сети DNN применяется в отношении данных. Иными словами, в результате обработки запроса обрабатывающим блоком сеть DNN применяется в отношении входных данных с целью формировании выходных данных.
[027] В некоторых вариантах осуществления настоящей технологии обрабатывающий блок может быть реализован в виде процессора CPU. В других вариантах осуществления настоящей технологии обрабатывающий блок может быть реализован в виде процессора GPU. В прочих вариантах осуществления изобретения обрабатывающий блок может быть реализован в виде одного или нескольких процессоров CPU и/или одного или нескольких процессоров GPU.
[028] Как и процессоры CPU, процессоры GPU могут быть оптимизированы для обучения (и/или формирования) моделей глубокого обучения, поскольку они способны одновременно выполнять несколько вычислительных процессов. Они могут содержать большое количество ядер, обеспечивающих лучшие возможности для расчетов при нескольких параллельных процессах. Кроме того, при расчетах в глубоком обучении требуется обрабатывать большие объемы данных, что лучше всего обеспечивается производительной памятью процессора GPU. Решение относительно использования процессора CPU или GPU для обучения модели глубокого обучения должно приниматься на основе нескольких параметров, таких как производительность памяти, размер набора данных, оптимизация задачи и т.п. Можно сказать, что электронное устройство, содержащее обрабатывающий блок, может представлять собой компьютерную систему, способную выполнять алгоритмы глубокого обучения.
[029] Разработчики настоящей технологии установили, что группировка запросов из очереди и предоставление их обрабатывающему блоку в пакетах позволяет уменьшить общее время обработки этих запросов обрабатывающим блоком и, следовательно, потенциально повышает производительность. Можно сказать, что пакет представляет собой группу запросов, которые могут обрабатываться одновременно.
[030] Следует отметить, что в контексте настоящей технологии можно сказать, что запрос не может быть разделен, т.е. токены из запроса должны обрабатываться обрабатывающим блоком совместно и по сути не могут быть разделены на два или более подзапроса, поскольку они представляют общие входные данные сети DNN и могут обрабатываться только совместно.
[031] Также следует отметить, что поскольку не все запросы имеют одинаковую длину (т.е. не все содержат одинаковое количество токенов), то некоторые запросы должные быть дополнены дополнительными токенами, чтобы все запросы в пакете имели одинаковую длину. Например, к запросу из пакета могут быть добавлены пустые токены так, чтобы запрос имел такую же длину, что и все остальные запросы в этом пакете.
[032] В контексте настоящей технологии разработчики разработали особый алгоритм пакетирования для группировки запросов из очереди запросов в соответствующие пакеты. В контексте настоящей технологии во время процесса пакетирования запросы из очереди селективно и итеративно добавляются в пакет способом, позволяющим уменьшить среднее время обработки запросов и/или среднее время обработки пакетов.
[033] Согласно первому аспекту настоящей технологии реализован способ пакетирования запросов для обработки обрабатывающим блоком. Способ выполняется электронным устройством и включает в себя получение электронным устройством очереди запросов, подлежащих обработке обрабатывающим блоком. Запрос содержит некоторое количество токенов. Количество токенов определяет длину запроса. Все токены из запроса должны совместно обрабатываться обрабатывающим блоком. Способ включает в себя выполнение электронным устройством текущей итерации для пакета запросов, содержащего запрос из очереди. Этот запрос ранее был добавлен в пакет. Выполнение текущей итерации включает в себя определение первого значения стоимости для добавления в пакет первого запроса-кандидата из очереди. Первое значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет первого запроса-кандидата. Выполнение текущей итерации включает в себя определение второго значения стоимости для добавления в пакет второго запроса-кандидата из очереди. Второе значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет второго запроса-кандидата. Выполнение текущей итерации включает в себя селективное добавление электронным устройством в пакет целевого запроса из числа первого запроса-кандидата и второго запроса-кандидата. Целевой запрос связан с наименьшим значением из числа первого значения стоимости и второго значения стоимости.
[034] В некоторых вариантах осуществления способа пакет на текущей итерации имеет текущую длину пакета, соответствующую наибольшей длине запроса из числа всех запросов, добавленных в пакет на по меньшей мере одной итерации до текущей итерации.
[035] В некоторых вариантах осуществления способа длина первого запроса-кандидата меньше текущей длины пакета, а первое значение стоимости равно разности между текущей длиной пакета и длиной первого запроса-кандидата.
[036] В некоторых вариантах осуществления способа длина первого запроса-кандидата больше текущей длины пакета, а первое значение стоимости равно разности между длиной первого запроса-кандидата и текущей длиной пакета, умноженной на текущее количество запросов в пакете.
[037] В некоторых вариантах осуществления способ дополнительно включает в себя выполнение следующей итерации для пакета запросов, содержащего данный запрос и целевой запрос из очереди.
[038] В некоторых вариантах осуществления способ дополнительно включает в себя выполнение заранее заданного количества итераций для пакета запросов.
[039] В некоторых вариантах осуществления способ дополнительно включает в себя прекращение итеративного добавления запросов из очереди в пакет, если выполняется условие останова.
[040] В некоторых вариантах осуществления способ дополнительно включает в себя отправку пакета запросов обрабатывающему блоку для обработки.
[041] В некоторых вариантах осуществления способ дополнительно включает в себя формирование следующего пакета запросов из очереди для обработки, не содержащего запросов из данного пакета.
[042] В некоторых вариантах осуществления способа дополнительные токены представляют собой пустые токены.
[043] В некоторых вариантах осуществления способа электронное устройство содержит обрабатывающий блок.
[044] В некоторых вариантах осуществления способа обрабатывающий блок представляет собой процессор CPU и/или процессор GPU.
[045] В некоторых вариантах осуществления способа запрос представляет собой последовательность токенов, подлежащих использованию при обучении сети DNN.
[046] В некоторых вариантах осуществления способа запрос из очереди представляет собой входную последовательность токенов, подлежащих обработке моделью вида «последовательность в последовательность» (Seq2Seq, Sequence-to-Sequence) с целью формирования выходной последовательности токенов.
[047] В некоторых вариантах осуществления способа сеть DNN представляет собой по меньшей мере одно из следующего: модель на основе трансформера, сквозная сеть CNN (E2E-CNN, End-to-End Convolutional Neural Network), модель BERT, модель LSTM.
[048] Согласно второму аспекту настоящей технологии реализовано электронное устройство для пакетирования запросов, предназначенных для обработки обрабатывающим блоком. Электронное устройство способно получать очередь запросов, подлежащих обработке обрабатывающим блоком. Запрос содержит некоторое количество токенов, определяющее длину запроса. Все токены из запроса должны совместно обрабатываться обрабатывающим блоком. Электронное устройство способно выполнять текущую итерацию для пакета запросов, содержащего запрос из очереди. Этот запрос ранее был добавлен в пакет. Для выполнения текущей итерации электронное устройство способно определять первое значение стоимости для добавления в пакет первого запроса-кандидата из очереди. Первое значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет первого запроса-кандидата. Для выполнения текущей итерации электронное устройство способно определять второе значение стоимости для добавления в пакет второго запроса-кандидата из очереди. Второе значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет второго запроса-кандидата. Для выполнения текущей итерации электронное устройство способно селективно добавлять в пакет целевой запрос из числа первого запроса-кандидата и второго запроса-кандидата. Целевой запрос связан с наименьшим значением из числа первого значения стоимости и второго значения стоимости.
[049] В некоторых вариантах осуществления электронного устройства пакет на текущей итерации имеет текущую длину пакета, соответствующую наибольшей длине запроса из числа всех запросов, добавленных в пакет на по меньшей мере одной итерации до текущей итерации.
[050] В некоторых вариантах осуществления электронного устройства длина первого запроса-кандидата меньше текущей длины пакета, а первое значение стоимости равно разности между текущей длиной пакета и длиной первого запроса-кандидата.
[051] В некоторых вариантах осуществления электронного устройства длина первого запроса-кандидата больше текущей длины пакета, а первое значение стоимости равно разности между длиной первого запроса-кандидата и текущей длиной пакета, умноженной на текущее количество запросов в пакете.
[052] В некоторых вариантах осуществления электронного устройства оно дополнительно способно выполнять следующую итерацию для пакета запросов, содержащего данный запрос и целевой запрос из очереди.
[053] В некоторых вариантах осуществления электронного устройства оно дополнительно способно выполнять заранее заданное количество итераций для пакета запросов.
[054] В некоторых вариантах осуществления электронного устройства оно дополнительно способно прекращать итеративное добавление запросов из очереди в пакет, если выполняется условие останова.
[055] В некоторых вариантах осуществления электронного устройства оно дополнительно способно отправлять пакет запросов обрабатывающему блоку для обработки.
[056] В некоторых вариантах осуществления электронного устройства оно дополнительно способно формировать следующий пакет запросов из очереди для обработки, не содержащий запросов из данного пакета.
[057] В некоторых вариантах осуществления электронного устройства дополнительные токены представляют собой пустые токены.
[058] В некоторых вариантах осуществления электронного устройства оно содержит обрабатывающий блок.
[059] В некоторых вариантах осуществления электронного устройства обрабатывающий блок представляет собой процессор CPU и/или процессор GPU.
[060] В некоторых вариантах осуществления электронного устройства запрос представляет собой последовательность токенов, подлежащих использованию при обучении сети DNN.
[061] В некоторых вариантах осуществления электронного устройства запрос из очереди представляет собой входную последовательность токенов, подлежащих обработке моделью Seq2Seq с целью формирования выходной последовательности токенов.
[062] В некоторых вариантах осуществления электронного устройства сеть DNN представляет собой по меньшей мере одно из следующего: модель на основе трансформера, сеть E2E-CNN, модель BERT, модель LSTM.
[063] В контексте данного описания термин «сервер» означает компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут представлять собой один физический компьютер или одну компьютерную систему, что не существенно для настоящей технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая конкретная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами). Это выражение означает, что любое количество программных средств или аппаратных средств может принимать, отправлять, выполнять или инициировать выполнение любой задачи или запроса либо результатов любых задач или запросов. Все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем оба эти случая подразумеваются в выражении «по меньшей мере один сервер».
[064] В контексте данного описания термин «клиентское устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения поставленной задачи. Таким образом, некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.
[065] В контексте данного описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерных аппаратных средств для хранения этих данных, их применения или обеспечения их использования иным способом. База данных может располагаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо база данных может располагаться в отдельных аппаратных средствах, таких как специализированный сервер или множество серверов.
[066] В контексте данного описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные о местоположении, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы, списки слов и т.д., но не ограничивается ими.
[067] В контексте данного описания выражение «компонент» включает в себя обозначение программного обеспечения (подходящего для определенных аппаратных средств), необходимого и достаточного для выполнения определенной функции или нескольких функций.
[068] В контексте данного описания выражение «пригодный для использования в компьютере носитель информации» означает носители любого рода и вида, включая оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д.
[069] В контексте данного описания числительные «первый», «второй», «третий» и т.д. используются лишь для указания на различие существительных, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, должно быть понятно, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, типа, хронологии, иерархии или классификации, в данном случае, серверов, а также что их использование (само по себе) не подразумевает наличие «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента в действительности могут быть одним и тем же элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой одно программное и/или аппаратное средство, а в других случаях - разные программные и/или аппаратные средства.
[070] Каждый вариант осуществления настоящей технологии относится к по меньшей мере одной из вышеупомянутых целей и/или аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
[071] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, в приложенных чертежах и в формуле изобретения.
Краткое описание чертежей
[072] Дальнейшее описание приведено для лучшего понимания настоящей технологии, а также других аспектов и их признаков и должно использоваться совместно с приложенными чертежами.
[073] На фиг. 1 представлена схема системы, пригодной для реализации не имеющих ограничительного характера вариантов осуществления настоящей технологии.
[074] На фиг. 2 представлены аппаратные элементы электронного устройства, включая обрабатывающий блок, подходящий для использования в по меньшей мере некоторых вариантах осуществления настоящей технологии, не имеющих ограничительного характера.
[075] На фиг. 3 показана очередь запросов для обработки обрабатывающим блоком, представленным на фиг. 2, согласно некоторым вариантам осуществления настоящей технологии, не имеющим ограничительного характера.
[076] На фиг. 4 представлена схема функции стоимости, выполняемой электронным устройством, представленным на фиг. 2, согласно некоторым вариантам осуществления настоящей технологии, не имеющим ограничительного характера.
[077] На фиг. 5 представлены два сценария расчета стоимости функцией стоимости, представленной на фиг. 4, согласно различным вариантам осуществления настоящей технологии, не имеющим ограничительного характера.
[078] На фиг. 6 представлена блок-схема способа, выполняемого согласно некоторым вариантам осуществления настоящей технологии, не имеющим ограничительного характера.
Осуществление изобретения
[079] На фиг. 1 представлена схема системы 100, пригодной для реализации не имеющих ограничительного характера вариантов осуществления настоящей технологии. Очевидно, что система 100 приведена лишь для демонстрации варианта реализации настоящей технологии. Таким образом, дальнейшее описание системы представляет собой описание примеров, иллюстрирующих настоящую технологию. Это описание не предназначено для определения объема или границ настоящей технологии. В некоторых случаях приводятся полезные примеры модификаций системы 100. Они способствуют пониманию, но также не определяют объема или границ настоящей технологии. Эти модификации не составляют исчерпывающего перечня. Как должно быть понятно специалисту в данной области, могут быть возможны и другие модификации. Кроме того, если в некоторых случаях модификации не описаны (т.е. примеры модификаций отсутствуют), это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии. Специалисту в данной области должно быть понятно, что это может быть иначе. Кроме того, следует понимать, что система 100 в некоторых случаях может представлять собой упрощенную реализацию настоящей технологии и что такие варианты представлены, чтобы способствовать лучшему ее пониманию. Специалистам в данной области должно быть понятно, что другие варианты осуществления настоящей технологии могут быть значительно сложнее.
[080] В целом, система 100 способна предоставлять компьютерные сервисы для пользователя 102 пользовательского устройства 104. С этой целью система 100 может выполнять удаленную модель 140 машинного обучения и/или локальную модель 130 машинного обучения. Далее более подробно описана возможная реализация моделей машинного обучения в некоторых вариантах осуществления настоящей технологии. Ниже описаны по меньшей мере некоторые элементы системы 100. Тем не менее, должно быть понятно, что в состав системы 100 без выхода за границы настоящей технологии могут входить элементы, отличные от представленных на фиг. 1.
Сеть связи
[081] Пользовательское устройство 104 подключено к сети 110 связи для обмена данными с сервером 112. Например, пользовательское устройство 104 может быть связано с сервером 112 через сеть 110 связи для предоставления пользователю 102 сервисов перевода. Сеть 110 связи, среди прочего, способна передавать запросы и ответы между пользовательским устройством 104 и сервером 112 в виде одного или нескольких пакетов данных, содержащих передаваемые данные.
[082] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии в качестве сети 110 связи может использоваться сеть Интернет. В других не имеющих ограничительного характера вариантах осуществления данной технологии сеть 110 связи может быть реализована иначе, например, в виде любой глобальной сети связи, локальной сети связи, частной сети связи и т.п. Реализация линии связи (без числового обозначения) между пользовательским устройством 104 и сетью 110 связи зависит, среди прочего, от реализации пользовательского устройства 104.
[083] Лишь в качестве не имеющего ограничительного характера примера в тех вариантах осуществления настоящей технологии, где пользовательское устройство 104 реализовано в виде беспроводного устройства связи (такого как смартфон), линия связи может быть реализована в виде беспроводной линии связи (такой как канал сети связи 3G, канал сети связи 4G, Wireless Fidelity или сокращенно WiFi®, Bluetooth® и т.п.). В тех примерах, где пользовательское устройство 104 реализовано в виде ноутбука, линия связи может быть беспроводной (такой как Wireless Fidelity или сокращенно WiFi®, Bluetooth® и т.д.) или проводной (такой как соединение на основе Ethernet).
Пользовательское устройство
[084] Система 100 содержит пользовательское устройство 104, связанное с пользователем 102. Пользовательское устройство 104 иногда может называться клиентским устройством или оконечным устройством. Следует отметить, что связь пользовательского устройства 104 с пользователем 102 не означает необходимости предлагать или подразумевать какой-либо режим работы, например, вход в систему, регистрацию и т.п.
[085] На реализацию пользовательского устройства 104 не накладывается каких-либо особых ограничений. Например, пользовательское устройство 104 может быть реализовано в виде персонального компьютера (настольного, ноутбука, нетбука и т.д.), беспроводного устройства связи (такого как смартфон, сотовый телефон, планшет и т.п.) или сетевого оборудования (такого как маршрутизатор, коммутатор, шлюз). Пользовательское устройство 104 содержит известные в данной области техники аппаратные средства и/или прикладное программное обеспечение и/или встроенное программное обеспечение (либо их сочетание) для выполнения браузерного приложения.
[086] В общем случае браузерное приложение обеспечивает пользователю 102 доступ к одному или нескольким сетевым ресурсам, например, к веб-страницам. На реализацию браузерного приложения не накладывается каких-либо особых ограничений. Например, браузерное приложение может быть реализовано в виде браузера Yandex™.
[087] Пользователь 102 может использовать браузерное приложение для доступа к системе перевода с целью перевода одного или нескольких предложений с исходного языка на язык перевода. Например, пользовательское устройство 104 может формировать запрос, указывающий на одно или несколько предложений, которые желает перевести пользователь 102. Пользовательское устройство 104 также может получать ответ (не показан) для отображения переведенного варианта одного или нескольких предложений на языке перевода пользователю 102.
Сервер и база данных
[088] Система 100 также содержит сервер 112, который может быть реализован в виде традиционного компьютерного сервера. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 112 представляет собой один сервер. В альтернативных не имеющих ограничительного характера вариантах осуществления настоящей технологии функции сервера 112 могут быть распределены между несколькими серверами. Сервер 112 может содержать один или несколько процессоров, одно или несколько устройств физической памяти, машиночитаемые команды и/или дополнительные аппаратные элементы, дополнительные компоненты программных средств и/или их сочетание для реализации различных функций сервера 112 без выхода за границы настоящей технологии.
[089] Система 100 также содержит базу 150 данных, связанную с сервером 112 и способную хранить информацию, полученную либо иным образом определенную или сформированную сервером 112. В целом, база 150 данных способна получать с сервера 112 данные, которые были получены либо иным образом определены или сформированы сервером 112 во время обработки, для временного и/или постоянного хранения и выдавать сохраненные данные серверу 112 для их использования. Предполагается, что база 150 данных может быть разделена на несколько распределенных баз данных без выхода за границы настоящей технологии.
[090] База 150 данных может хранить данные для обучения и/или использования удаленной модели 120 машинного обучения и/или локальной модели 130 машинного обучения.
[091] В целом, сервер 112 может управляться и/или администрироваться поставщиком сервиса перевода (не показан), например, таким как оператор онлайн-сервисов Yandex™. Предполагается, что поставщик онлайн-сервисов и поставщик браузерного приложения могут представлять собой одного и того же поставщика. Например, браузерное приложение (например, браузер Yandex™) и онлайн-сервисы (например, онлайн-сервисы Yandex™) могут предоставляться, управляться и/или администрироваться одним и тем же оператором или организацией.
Модели машинного обучения
[092] Как описано выше, сервер 112 может выполнять удаленную модель 120 машинного обучения, а пользовательское устройство 104 может выполнять локальную модель 130 машинного обучения. Предполагается, что удаленная модель 120 машинного обучения может использоваться с целью удаленной обработки данных для пользователя 102 (на сервере 112). Также предполагается, что локальная модель 130 машинного обучения может использоваться с целью локальной обработки данных для пользователя 102 (в пользовательском устройстве 104).
[093] В контексте настоящей технологии модель машинного обучения реализована в виде сети DNN. В общем случае сеть DNN представляет собой искусственную нейронную сеть с несколькими слоями между входным и выходным слоями, содержащую нейроны, синапсы, веса, ошибки и функции. В качестве некоторых не имеющих ограничительного характера примеров сетей DNN можно привести сети DNN прямого распространения, сети RNN, сети LSTM, сети CNN, модели на основе трансформера и т.д. Такие сети DNN могут использоваться пользовательским устройством 104 и/или сервером 112 в разнообразных целях, например, для перевода текста, синтеза речи, распознавания речи, обработки естественного языка, реализации компьютерного зрения и т.д.
[094] Можно сказать, что система 100 содержит электронное устройство, такое как сервер 112 и/или пользовательское устройство 104, способное выполнять сеть DNN, такую как удаленная модель 120 машинного обучения и/или локальная модель 130 машинного обучения, для множества применений.
Электронное устройство
[095] На фиг. 2 приведено схематическое представление электронного устройства 200 согласно варианту осуществления настоящей технологии. В некоторых вариантах осуществления настоящей технологии в виде электронного устройства 200 может быть реализовано пользовательское устройство 104. В других вариантах осуществления настоящей технологии в виде электронного устройства 200 может быть реализован сервер 112.
[096] В качестве альтернативы или дополнительно, электронное устройство 200 может быть реализовано в виде любого традиционного персонального компьютера, контроллера и/или электронного устройства (например, сервера, блока контроллера, управляющего устройства, устройства контроля и т.д.) и/или любого их сочетания, подходящего для решения поставленной задачи.
[097] В некоторых других вариантах осуществления изобретения электронное устройство 200 может представлять собой покупную компьютерную систему общего назначения. В некоторых вариантах осуществления изобретения функции электронного устройства 200 могут быть распределены между несколькими системами. Электронное устройство 200 также может быть специально предназначено для реализации настоящей технологии. Как должно быть понятно специалисту в области настоящей технологии, возможно множество вариантов реализации электронного устройства 200 без выхода за границы настоящей технологии.
[098] В представленном не имеющем ограничительного характера примере электронное устройство 200 содержит множество аппаратных элементов, включая обрабатывающий блок 210, твердотельный накопитель 250, ОЗУ 230, выделенную память 240, интерфейс 260 ввода-вывода и шины 270.
[099] Обрабатывающий блок 210 может представлять собой процессор общего назначения, такой как процессор CPU, или специализированный процессор, предназначенный для конкретной цели, такой как процессор GPU. Предполагается, что электронное устройство 200 может содержать любое сочетание одного или нескольких процессоров CPU и одного или нескольких процессоров GPU без выхода за границы настоящей технологии.
[0100] В общем случае процессор CPU, который также называется центральным процессором, представляет собой электронную схему, выполняющую команды, составляющие компьютерную программу. Процессор CPU выполняет базовые арифметические и логические операции, а также операции управления и ввода-вывода, задаваемые командами в программе. Вид, конструкция и реализация процессоров CPU со временем изменялись. В качестве некоторых примеров элементов процессора CPU можно привести арифметико-логическое устройство (АЛУ), выполняющее арифметические и логические операции, регистры процессора, которые выдают операнды в устройство АЛУ и хранят результаты операций устройства АЛУ, и блок управления, который управляет выборкой данных (из памяти), декодированием и выполнением команд путем управления согласованными действиями устройства АЛУ, регистров и других элементов. Кроме того, процессоры CPU могут быть реализованы на микропроцессорных интегральных схемах (ИС) таким образом, что один или несколько процессоров CPU размещаются на одном кристалле ИС, выполненной по технологии металл-оксид-полупроводник (МОП). Микропроцессорные ИС с несколькими процессорами CPU иногда называются многоядерными процессорами. Отдельные физические процессоры CPU и процессорные ядра могут быть многопоточными для создания дополнительных виртуальных или логических процессоров CPU.
[0101] В общем случае процессор GPU представляет собой специализированную электронную схему, разработанную для быстрых действий и изменений в памяти с целью ускорения формирования изображений в кадровом буфере, предназначенном для вывода на устройство отображения. Процессоры GPU используются во встроенных системах, мобильных телефонах, персональных компьютерах, рабочих станциях и игровых консолях. Следует отметить, что процессоры GPU представляют собой высокоэффективные средства компьютерной графики и обработки изображений. Благодаря своей высокопараллельной структуре они могут быль более эффективными, чем процессоры CPU общего назначения, при выполнении алгоритмов параллельной обработки больших блоков данных. В персональном компьютере процессор GPU может быть, например, размещен на видеокарте или встроен в материнскую плату.
[0102] Подобно процессорам CPU, процессоры GPU могут быть оптимизированы для обучения моделей искусственного интеллекта и глубокого обучения, поскольку они способны одновременно выполнять несколько вычислений. Они могут содержать большое количество ядер, обеспечивающих лучшие возможности для расчетов в нескольких параллельных процессах. Кроме того, при расчетах в глубоком обучении требуется обрабатывать огромные объемы данных, что лучше всего обеспечивается производительной памятью процессора GPU. Решение относительно использования процессора CPU или GPU для обучения модели глубокого обучения должно приниматься на основе нескольких параметров, таких как производительность памяти, размер набора данных, оптимизация задачи и т.п. Можно сказать, что электронное устройство 200, содержащее обрабатывающий блок 210 (например, один или несколько процессоров CPU и/или один или несколько процессоров GPU), может представлять собой компьютерную систему, способную выполнять алгоритм машинного обучения (MLA, Machine Learning Algorithm) и/или алгоритм глубокого обучения (DLA, Deep Learning Algorithm).
[0103] Связь между разными элементами вычислительного устройства 200 может обеспечиваться через одну или несколько внутренних и/или внешних шин 270 (таких как шина PCI, шина USB, шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA, шина ARINC и т.д.), с которыми разные аппаратные элементы соединены электронными средствами.
[0104] Интерфейс 260 ввода-вывода может обеспечивать возможности организации сети, например, проводного или беспроводного доступа. В частности, интерфейс 260 ввода-вывода может содержать сетевой интерфейс, такой как один или несколько сетевых портов, один или несколько сетевых соединителей, один или несколько контроллеров сетевого интерфейса и т.д. Специалисту в области настоящей технологии может быть известно много примеров реализации сетевого интерфейса. Например, сетевой интерфейс, среди прочего, может реализовывать физический уровень и канальный уровень конкретного стандарта, такого как Ethernet, Fibre Channel, Wi-Fi или Token Ring. Физический уровень и канальный уровень могут составлять основу полного стека сетевых протоколов для связи в небольших группах компьютеров в одной локальной сети (LAN, Local Area Network) и для связи в крупномасштабной сети с использованием маршрутизируемых протоколов, таких как интернет-протокол (IP, Internet Protocol).
[0105] Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 250 хранит программные команды, пригодные для загрузки в ОЗУ 230 и исполнения обрабатывающим блоком 210. Несмотря на то, что на иллюстрации показан твердотельный накопитель 250, вместо него может использоваться память любого вида, такая как жесткий диск, оптический диск и/или устройство хранения данных со съемным носителем.
[0106] Электронное устройство 200 также может содержать экран или дисплей 206, способный отображать изображения. В некоторых вариантах осуществления изобретения дисплей 206 может использоваться для отображения графических интерфейсов пользователя (GUI, Graphical User Interface), результата выполнения программы и т.д. В некоторых вариантах осуществления изобретения дисплей 206 может содержаться и/или располагаться в одном корпусе с сенсорным экраном, чтобы пользователи могли вводить данные с использованием сочетания виртуальных клавиатур, значков, меню или других интерфейсов GUI. В некоторых вариантах осуществления изобретения дисплей 206 может быть реализован с использованием жидкокристаллического дисплея или светодиодного дисплея, такого как дисплей на органических светодиодах (OLED, Organic Light Emitting Diode). В других вариантах осуществления изобретения дисплей 206 может быть дистанционно подключен к электронному устройству 200 с помощью проводного или беспроводного соединения (не показано) так, чтобы выходные данные электронного устройства 200 могли отображаться в местоположении, отличном от местоположения электронного устройства 200. В этой ситуации дисплей 206 может быть функционально связан с другими функциональными блоками и системами электронного устройства 200, но размещен отдельно от них.
[0107] Электронное устройство может содержать память 202, способную хранить данные. Память 202 может быть встроена в электронное устройство 200, как показано в представленном на фиг. 2 варианте реализации изобретения, или располагаться физически вне него. Электронное устройство 200 может осуществлять доступ к контенту памяти 202 с использованием сети (не показана), такой как сеть LAN, и/или беспроводного соединения, такого как беспроводная локальная сеть (WLAN, Wireless Local Area Network).
[0108] Электронное устройство 200 также может содержать систему электропитания (не показана) для обеспечения электропитания разных элементов. Система электропитания может содержать систему управления электропитанием, один или несколько источников питания (например, аккумуляторную батарею или источник питания от сети переменного тока), систему подзарядки, цепь обнаружения отказов электропитания, силовой конвертор или инвертор и любые другие элементы, связанные с генерацией, управлением и распределением электропитания в мобильных или стационарных устройствах.
Очередь запросов
[0109] На фиг. 3 приведено схематическое представление 300 очереди 302 запросов, подлежащих обработке обрабатывающим блоком 210 электронного устройства 200. Следует отметить, что когда входные данные предоставляются сети DNN, выполняемой электронным устройством 200, формируется запрос на обработку и он может быть поставлен в очередь для обработки обрабатывающим блоком 210. Входные данные для сети DNN могут быть предоставлены на этапе ее обучения для целей обучения и на этапе ее использования для практического использования сети DNN.
[0110] Очередь 302 содержит запросы 310, 320, 330 и 340. Запросы в очереди 302 упорядочены по времени. Временная шкала 304 приведена для иллюстрации этого порядка запросов в очереди 302. Предполагается, что без выхода за границы настоящей технологии запросы в очереди 302 могут быть связаны с соответствующими отметками времени. Очередь 302 запросов может содержать запросы, предшествующие запросу 310 и/или следующие за запросом 340, несмотря на отсутствие этого на иллюстрации.
[0111] Запрос из очереди 302 содержит один или несколько токенов, подлежащих обработке обрабатывающим блоком 210. В общем случае входные данные сети DNN могут представлять собой соответствующую последовательность входных токенов. Характер этих токенов, среди прочего, зависит от архитектуры сети DNN и от конкретного применения, для которого реализована эта сеть DNN.
[0112] Независимо от конкретного применения можно сказать, что токен, введенный в сеть DNN, представляет собой «единицу обработки» для сети DNN. Также следует отметить, что сети DNN могут получать входные данные разной длины, т.е. двум разным вариантам входных данных сети DNN могут соответствовать разные количества входных токенов.
[0113] Следует отметить, что количество токенов в запросе определяет длину запроса. Это означает, что первый запрос и второй запрос из очереди 302 могут содержать разное количество токенов и, следовательно, иметь разную длину. Например, первый запрос (входные данные для сети DNN) из очереди 302 может содержать пять токенов, а второй запрос (другие входные данные для сети DNN) из очереди 302 может содержать семь токенов.
[0114] Предполагается, что запросы в очереди 302 являются неделимыми, т.е. все токены из запроса должны обрабатываться обрабатывающим блоком 210 совместно и не могут быть разделены на два или более подзапроса, поскольку они представляют общие входные данные сети DNN.
[0115] Разработчики настоящей технологии установили, что группировка запросов из очереди и предоставление их обрабатывающему блоку в пакетах позволяет уменьшить общее время обработки этих запросов обрабатывающим блоком. Таким образом, электронное устройство 200 способно формировать один или несколько таких пакетов запросов с целью предоставления обрабатывающему блоку 210 для обработки. Иными словами, электронное устройство 200 может выполнять одну или несколько операций пакетирования в отношении запросов из очереди 302 для формирования соответствующих пакетов запросов.
[0116] Формирование пакета запросов представляет собой итеративный процесс. Это означает, что при формировании пакета электронное устройство 200 способно итеративно добавлять запросы в текущий пакет на основе одного или нескольких правил. Таким образом, можно сказать, что на каждой итерации итеративного процесса к текущему количеству запросов в пакет вводится дополнительный запрос из очереди 302.
[0117] В некоторых вариантах осуществления настоящей технологии электронное устройство 200 может выполнять заранее заданное количество итераций для формирования пакета запросов. В этих вариантах осуществления изобретения можно сказать, что общее количество запросов в пакете может быть задано заранее.
[0118] В других вариантах осуществления настоящей технологии электронное устройство 200 может прекращать итеративное добавление запросов в пакет, если выполняются условия останова других видов. Например, условие останова может соответствовать заранее заданной максимальной длине запросов в пакете. Если текущая длина запросов в пакете достигает заранее заданной максимальной длины, то итеративный процесс может быть остановлен и пакет может быть отправлен на обработку. Следует отметить, что время обработки пакета может зависеть от длины запросов в пакете в бóльшей степени, чем от общего количества запросов в пакете. В другом примере условие останова может соответствовать заранее заданному общему количеству дополнительных токенов в пакете, требуемых для выравнивания длин всех запросов в пакете. Если текущее общее количество дополнительных токенов в пакете достигает заранее заданного общего количества дополнительных токенов, то итеративный процесс может быть остановлен и пакет может быть отправлен на обработку.
[0119] Также следует отметить, что при отправке на обработку запросы в пакете должны иметь одинаковую длину. Иными словами, пакет, который должен быть предоставлен обрабатывающему блоку 210 для обработки, не должен содержать запросов разной длины. Вследствие разнообразия фактических длин запросов в очереди 302 электронное устройство 200 может добавлять в некоторые запросы дополнительные токены для выравнивания длин всех запросов в пакете.
[0120] Например, можно предположить, что электронное устройство 200 должно добавить первый запрос из очереди 302, длина которого равна пяти (т.е. он содержит пять токенов), в пакет, который уже содержит другие запросы, имеющие длину семь (т.е. содержащие семь токенов). В таком случае электронное устройство 200 может прикрепить два дополнительных токена к первому запросу при добавлении первого запроса в пакет, чтобы его длина была равна длине других запросов, которые уже содержатся в пакете. Предполагается, что дополнительные токены могут представлять собой пустые токены, добавляемые электронным устройством 200 в запросы из пакета для выравнивания длин всех запросов в пакете.
[0121] В некоторых вариантах осуществления настоящей технологии электронное устройство 200 может выполнять попарное сравнение запросов-кандидатов на каждой итерации процесса формирования пакета. Иными словами, электронное устройство 200 может сравнивать стоимость добавления в пакет первого запроса-кандидата со стоимостью добавления в пакет второго запроса-кандидата и определять, какой из двух запросов-кандидатов должен быть добавлен в пакет на текущей итерации процесса пакетирования.
[0122] Ниже со ссылками на фиг. 4 и 5 описано селективное добавление электронным устройством 200 запроса из числа двух запросов-кандидатов в пакет на текущей итерации процесса пакетирования.
[0123] Процесс пакетирования может начинаться с выбора электронным устройством 200 первого запроса для добавления в пакет. Во время этой первой итерации электронное устройство 200 может не рассчитывать стоимость добавления первоначального запроса в пакет. Например, электронное устройство 200 может добавлять в пакет в качестве первоначального запроса самый старый запрос из числа всех запросов в очереди 302. В другом примере электронное устройство 200 может добавлять в пакет в качестве первоначального запроса самый короткий запрос из числа всех запросов в очереди 302.
[0124] Пусть в момент времени, когда электронное устройство 200 начинает текущую итерацию процесса пакетирования, электронное устройство 200 уже сформировало пакет 410. На текущей итерации электронное устройство 200 может определять запрос из числа запроса 310 и запроса 320 из очереди 302, подлежащий добавлению в пакет 410 (в его текущую версию).
[0125] С этой целью электронное устройство 200 способно вводить в функцию 402 стоимости текущие параметры пакета 410, а также параметры запроса 310 и запроса 320. Например, параметры пакета 410, в числе прочего, могут включать в себя: текущий размер пакета 410, указывающий на текущее количество запросов в пакете 410, и текущую длину пакета 410, указывающую на текущую длину запросов, одинаковую для всех запросов. В этом же примере параметры запроса 310 и запроса 320, в числе прочего, могут включать в себя длину запроса 310 и длину запроса 320, указывающие на количество токенов в запросе 310 и в запросе 320, соответственно.
[0126] Функция 402 стоимости способна использовать такие входные данные с целью формирования значения 420 стоимости для запроса 310 и значения 430 стоимости для запроса 320. Следует отметить, что значение 420 стоимости, связанное с запросом 310, указывает на количество дополнительных токенов, которые должны быть добавлены в пакет 410 для выравнивания длин всех запросов в пакете 410 в случае добавления запроса 310 (первого кандидата) в пакет 410. Значение 430 стоимости, связанное с запросом 320, указывает на количество дополнительных токенов, которые должны быть добавлены в пакет 410 для выравнивания длин всех запросов в пакете 410 в случае добавления запроса 320 (второго кандидата) в пакет 410.
[0127] Следует отметить, что при добавлении запроса в пакет 410 на текущей итерации возможны три сценария.
Первый сценарий
[0128] В первом сценарии подлежащий добавлению запрос может иметь длину, равную текущей длине пакета 410. В первом сценарии на текущей итерации не требуется добавлять в пакет 410 дополнительные токены. В результате в первом сценарии значение стоимости, связанное с добавлением такого запроса в пакет 410 на текущей итерации, равно нулю.
[0129] На фиг. 5 приведено представление 500 второго возможного сценария и представление 550 третьего возможного сценария.
[0130] В соответствии с иллюстрацией можно предположить, что в текущий момент времени размер пакета 410 равен четырем, т.е. в данный момент времени он содержит четыре запроса, а именно, запросы 501, 502, 503 и 504. Кроме того, в соответствии с иллюстрацией можно предположить, что в текущий момент времени пакет 410 имеет длину 505, равную шести, т.е. длина всех запросов, содержащиеся в текущий момент времени в пакете 410, равна шести. Также следует отметить, что в текущий момент времени пакет 410 содержит дополнительные токены 510, добавленные в пакет 410 во время предыдущих итераций для выравнивания длин всех запросов в пакете. Например, в запрос 502 и в запрос 503 ранее было добавлено по одному дополнительному токену, а в запрос 501 ранее было добавлено четыре дополнительных токена. В результате все запросы из пакета 410 имеют одинаковую длину 505, равную шести токенам.
Второй сценарий
[0131] Во втором сценарии можно предположить, что электронное устройство 200 должно определить значение 420 стоимости добавления запроса 310 в пакет 410 на текущей итерации и что запрос 310 имеет длину один, т.е. он содержит лишь один токен. Во втором сценарии длина запроса-кандидата 310 меньше текущей длины 505 пакета 410. Во втором сценарии функция 402 стоимости может определить, что в пакет 410 (и, в частности, в первый запрос-кандидат 310) следует добавить пять дополнительных токенов 530 для выравнивания длин всех запросов в пакете 410 в случае добавления первого запроса-кандидата 310 в пакет 410.
[0132] Можно сказать, что во втором сценарии, где длина запроса-кандидата меньше текущей длины пакета (длины 505), функция 402 стоимости может определить, что значение стоимости для добавления этого кандидата на текущей итерации равно разности между текущей длиной пакета и длиной первого запроса-кандидата (например, 6 - 1 = 5).
[0133] В некоторых вариантах осуществления настоящей технологии, если длина запроса-кандидата меньше текущей длины пакета, функция 402 стоимости может использовать следующее уравнение:
где - текущая длина запросов в пакете, - длина запроса-кандидата i.
Третий сценарий
[0134] В третьем сценарии можно предположить, что электронное устройство 200 должно определить значение 430 стоимости добавления запроса 320 в пакет 410 на текущей итерации и что длина запроса 320 равна семи, т.е. он содержит семь токенов. В третьем сценарии длина запроса-кандидата 320 больше текущей длины 505 пакета 410. В третьем сценарии функция 402 стоимости может определить, что в пакет 410 должны быть добавлены четыре дополнительных токена 570 (в частности, по одному дополнительному токену в каждый запрос, содержащийся в текущий момент времени в пакете 410) для выравнивания длин всех запросов в пакете 410 в случае добавления второго запроса-кандидата 320 в пакет 410.
[0135] Можно сказать, что в третьем сценарии, где длина запроса-кандидата больше текущей длины пакета (длины 505), функция 402 стоимости может определить, что значение стоимости добавления этого кандидата на текущей итерации равно разности между длиной запроса-кандидата и текущей длиной пакета, умноженной на текущее количество запросов в пакете (например, (7 - 6) * 4 = 4).
[0136] В некоторых вариантах осуществления настоящей технологии, если длина запроса-кандидата больше текущей длины пакета, функция 402 стоимости может использовать следующее уравнение:
где - текущая длина запросов в пакете, - длина запроса-кандидата i, B - текущее количество запросов в пакете.
[0137] Функция 402 стоимости (см. фиг. 4) может определить, что значение 420 стоимости добавления запроса-кандидата 310 в пакет 410 на текущей итерации равно пяти (общее количество дополнительных токенов 530) и что значение 430 стоимости добавления запроса-кандидата 320 в пакет 410 на текущей итерации равно четырем (общее количество дополнительных токенов 570).
[0138] В этом примере электронное устройство 200 может селективно добавить запрос-кандидат 320 в пакет 410 на текущей итерации. Таким образом, электронное устройство 200 на текущей итерации может добавить по одному дополнительному токену в запросы 501, 502, 503 и 504.
[0139] После добавления запроса 320 в пакет 410 на текущей итерации электронное устройство 200 может определить, выполнено ли условие останова. Если да, то итеративный процесс формирования пакета 410 завершается и текущая версия пакета 410 отправляется обрабатывающему блоку 210 для обработки. Если нет, то электронное устройство 200 может выполнить подобное сравнение запроса-кандидата 310 и другого запроса-кандидата (такого как запрос 330 или 340) и/или другой пары запросов-кандидатов, не содержащей запроса-кандидата 310. При этом следует отметить, что во время следующей итерации в отношении пакета 410 используются обновленные параметры для определения значений стоимости для соответствующей пары запросов-кандидатов, используемых во время следующей итерации.
[0140] В некоторых вариантах осуществления настоящей технологии электронное устройство 200 может выполнять компьютерный способ 600, блок-схема которого представлена на фиг. 6. Далее описаны различные шаги способа 600.
Шаг 602: получение очереди запросов, подлежащих обработке обрабатывающим блоком.
[0141] Способ 600 начинается с получения электронным устройством 200 очереди 302 запросов, подлежащих обработке обрабатывающим блоком 210. Следует отметить, что когда сети DNN, выполняемой электронным устройством 200, предоставляются входные данные, то формируется запрос на обработку и он может быть поставлен в очередь для обработки обрабатывающим блоком 210. Такие входные данные для сети DNN могут быть предоставлены на этапе ее обучения с целью ее обучения и на этапе ее использования для практического использования сети DNN.
[0142] Запрос из очереди 302 содержит один или несколько токенов, подлежащих обработке обрабатывающим блоком 210. В общем случае входные данные сети DNN могут представлять собой соответствующую последовательность входных токенов. Характер этих токенов, среди прочего, зависит от архитектуры сети DNN и от конкретного применения, для которого реализована эта сеть DNN.
[0143] Независимо от конкретного применения, можно сказать, что токен, введенный в сеть DNN, представляет собой «единицу обработки» для сети DNN. Также следует отметить, что сети DNN могут получать входные данные разной длины, т.е. двум разным вариантам входных данных сети DNN могут соответствовать разные количества входных токенов.
[0144] Следует отметить, что количество токенов в запросе определяет длину запроса. Это означает, что первый запрос и второй запрос из очереди 302 могут содержать разное количество токенов и, следовательно, иметь разную длину. Предполагается, что запросы в очереди 302 являются неделимыми, т.е. все токены из запроса должны обрабатываться обрабатывающим блоком 210 совместно и не могут быть разделены на два или более подзапроса, поскольку они представляют общие входные данные сети DNN.
[0145] В некоторых вариантах осуществления изобретения запрос из очереди 302 представляет собой входную последовательность токенов, подлежащих обработке моделью Seq2Seq с целью формирования выходной последовательности токенов. В некоторых вариантах осуществления изобретения сеть DNN представляет собой по меньшей мере одно из следующего: модель на основе трансформера, сеть E2E-CNN, модель BERT, модель LSTM.
Шаг 604: выполнение текущей итерации для пакета запросов.
[0146] Способ 600 продолжается на шаге 604, на котором электронное устройство 200 может выполнять текущую итерацию для пакета запросов. Разработчики настоящей технологии установили, что группировка запросов из очереди и предоставление их обрабатывающему блоку в пакетах позволяет уменьшить общее время обработки этих запросов обрабатывающим блоком. Таким образом, электронное устройство 200 способно формировать один или несколько таких пакетов запросов для предоставления обрабатывающему блоку 210 для обработки. Иными словами, электронное устройство 200 может выполнять одну или несколько операций пакетирования в отношении запросов из очереди 302 так, чтобы формировать соответствующие пакеты запросов.
[0147] Формирование пакета запросов представляет собой итеративный процесс. Это означает, что при формировании пакета электронное устройство 200 способно итеративно добавлять запросы в текущий пакет на основе одного или нескольких правил. Таким образом, можно сказать, что на каждой итерации итеративного процесса к текущему количеству запросов в пакете добавляется дополнительный запрос из очереди 302.
[0148] На текущей итерации пакетирования электронное устройство 200 может определять первое значение стоимости для добавления в пакет первого запроса-кандидата из очереди. Первое значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет первого запроса-кандидата. Аналогично, электронное устройство 200 может определять второе значение стоимости для добавления в пакет второго запроса-кандидата из очереди. Второе значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет второго запроса-кандидата. Затем на текущей операции пакетирования электронное устройство 200 может селективно добавлять в пакет целевой запрос из числа первого запроса-кандидата и второго запроса-кандидата. Целевой запрос связан с наименьшим значением из числа первого значения стоимости и второго значения стоимости.
[0149] В некоторых вариантах осуществления настоящей технологии электронное устройство 200 может выполнять заранее заданное количество итераций для формирования пакета запросов. В этих вариантах осуществления изобретения можно сказать, что общее количество запросов в пакете может быть задано заранее.
[0150] В других вариантах осуществления настоящей технологии электронное устройство 200 может прекращать итеративное добавление запросов в пакет, если выполняются условия останова других видов. Например, условие останова может соответствовать заранее заданной максимальной длине запросов в пакете. Если текущая длина запросов в пакете достигает этой заранее заданной максимальной длины, то итеративный процесс может быть остановлен и пакет может быть отправлен на обработку. Следует отметить, что время обработки пакета может в бóльшей степени зависеть от длины запросов в пакете, чем от общего количества запросов в пакете. В другом примере условие останова может соответствовать заранее заданному общему количеству дополнительных токенов в пакете, требуемых для выравнивания длин всех запросов в пакете. Если текущее общее количество дополнительных токенов в пакете достигает заранее заданного общего количества дополнительных токенов, то итеративный процесс может быть остановлен и пакет может быть отправлен на обработку.
[0151] Также следует отметить, что при отправке на обработку запросы в пакете должны иметь одинаковую длину. Иными словами, пакет, который должен быть предоставлен обрабатывающему блоку 210 для обработки, не должен содержать запросов разной длины. Вследствие разнообразия фактических длин запросов в очереди 302 электронное устройство 200 может вводить в некоторые запросы дополнительные токены для выравнивания длин всех запросов в пакете.
[0152] В некоторых вариантах осуществления изобретения электронное устройство 200 может выполнять следующую итерацию для пакета запросов, содержащего запрос и целевой запрос из очереди подобно тому, как выполняется текущая итерация.
[0153] В других вариантах осуществления изобретения можно сказать, что во время итерационного процесса электронное устройство 200 может выполнять заранее заданное количество итераций для пакета запросов и/или прекращать итеративное добавление запросов из очереди в пакет, если выполняется условие останова. В других вариантах осуществления изобретения способ 600 может дополнительно включать в себя предоставление пакета запросов обрабатывающему блоку 210 для обработки.
[0154] В дополнительных вариантах осуществления изобретения электронное устройство 200 может использовать очередь 302 для формирования следующего пакета запросов подобно тому, как был сформирован текущий пакет. Следующий пакет запросов не содержит запросов из текущего пакета.
[0155] Для специалистов в данной области могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И СЕРВЕР ДЛЯ ОБРАБОТКИ ТЕКСТОВОЙ ПОСЛЕДОВАТЕЛЬНОСТИ В ЗАДАЧЕ МАШИННОЙ ОБРАБОТКИ | 2020 |
|
RU2775820C2 |
СПОСОБ И СЕРВЕР ДЛЯ ВЫПОЛНЕНИЯ ПРОБЛЕМНО-ОРИЕНТИРОВАННОГО ПЕРЕВОДА | 2021 |
|
RU2820953C2 |
Способ и сервер для выполнения контекстно-зависимого перевода | 2021 |
|
RU2812301C2 |
СПОСОБ И СИСТЕМА РАНЖИРОВАНИЯ НАБОРА ДОКУМЕНТОВ ИЗ РЕЗУЛЬТАТА ПОИСКА | 2021 |
|
RU2821294C2 |
СПОСОБЫ И СЕРВЕРЫ ДЛЯ ОПРЕДЕЛЕНИЯ ЗАВИСЯЩИХ ОТ МЕТРИКИ ПОРОГОВ, ИСПОЛЬЗУЕМЫХ СО МНОЖЕСТВОМ ВЛОЖЕННЫХ МЕТРИК ДЛЯ БИНАРНОЙ КЛАССИФИКАЦИИ ЦИФРОВОГО ОБЪЕКТА | 2020 |
|
RU2795202C2 |
СПОСОБ И СИСТЕМА ОБУЧЕНИЯ СИСТЕМЫ ЧАТ-БОТА | 2023 |
|
RU2820264C1 |
СПОСОБ И СИСТЕМА СОЗДАНИЯ ИНФОРМАЦИИ О МАРШРУТЕ В КАРТОГРАФИЧЕСКОМ ПРИЛОЖЕНИИ НА ЭЛЕКТРОННОМ УСТРОЙСТВЕ | 2018 |
|
RU2720953C2 |
Способ и сервер для обучения алгоритму машинного обучения для выполнения перевода | 2020 |
|
RU2789796C2 |
Способ и сервер для формирования расширенного запроса | 2021 |
|
RU2813582C2 |
СПОСОБ И СИСТЕМА ДЛЯ РАСПОЗНАВАНИЯ РЕЧЕВОГО ФРАГМЕНТА ПОЛЬЗОВАТЕЛЯ | 2021 |
|
RU2808582C2 |
Настоящее техническое решение относится к области вычислительной техники. Технический результат заключается в уменьшении времени обработки запросов процессором. Технический результат достигается за счёт того, что способ включает в себя получение очереди запросов, подлежащих обработке, и выполнение текущей итерации для пакета запросов, содержащего запрос из очереди. На текущей итерации способ включает в себя определение первого значения стоимости для добавления в пакет первого запроса-кандидата из очереди, определение второго значения стоимости для добавления в пакет второго запроса-кандидата из очереди и селективное добавление в пакет целевого запроса из числа первого запроса-кандидата и второго запроса-кандидата. Целевой запрос связан с наименьшим значением из числа первого значения стоимости и второго значения стоимости. 2 н. и 28 з.п. ф-лы, 6 ил.
1. Способ пакетирования запросов, предназначенных для обработки обрабатывающим блоком, выполняемый электронным устройством и включающий в себя:
- получение электронным устройством очереди запросов, подлежащих обработке обрабатывающим блоком, при этом запрос содержит некоторое количество токенов, определяющее длину запроса, и все токены из запроса должны совместно обрабатываться обрабатывающим блоком,
- выполнение электронным устройством текущей итерации для пакета запросов, содержащего запрос из очереди, ранее добавленный в пакет, включая:
- определение первого значения стоимости для добавления в пакет первого запроса-кандидата из очереди, при этом первое значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет первого запроса-кандидата;
- определение второго значения стоимости для добавления в пакет второго запроса-кандидата из очереди, при этом второе значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет второго запроса-кандидата; и
- селективное добавление электронным устройством в пакет целевого запроса из числа первого запроса-кандидата и второго запроса-кандидата, при этом целевой запрос связан с наименьшим значением из числа первого значения стоимости и второго значения стоимости.
2. Способ по п. 1, отличающийся тем, что пакет на текущей итерации имеет текущую длину пакета, соответствующую наибольшей длине запроса из числа всех запросов, добавленных в пакет на по меньшей мере одной итерации до текущей итерации.
3. Способ по п. 2, отличающийся тем, что длина первого запроса-кандидата меньше текущей длины пакета, а первое значение стоимости равно разности между текущей длиной пакета и длиной первого запроса-кандидата.
4. Способ по п. 2, отличающийся тем, что длина первого запроса-кандидата больше текущей длины пакета, а первое значение стоимости равно разности между длиной первого запроса-кандидата и текущей длиной пакета, умноженной на текущее количество запросов в пакете.
5. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя выполнение следующей итерации для пакета запросов, содержащего упомянутый запрос и целевой запрос из очереди.
6. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя выполнение заранее заданного количества итераций для пакета запросов.
7. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя прекращение итеративного добавления запросов из очереди в пакет, если выполняется условие останова.
8. Способ по п. 1, отличающийся тем, что он дополнительно включает в себя отправку пакета запросов обрабатывающему блоку для обработки.
9. Способ по п. 8, отличающийся тем, что он дополнительно включает в себя формирование следующего пакета запросов из очереди для обработки, не содержащего запросов из данного пакета.
10. Способ по п. 1, отличающийся тем, что дополнительные токены представляют собой пустые токены.
11. Способ по п. 1, отличающийся тем, что электронное устройство содержит обрабатывающий блок.
12. Способ по п. 1, отличающийся тем, что обрабатывающий блок представляет собой центральный процессор и/или графический процессор.
13. Способ по п. 1, отличающийся тем, что запрос представляет собой последовательность токенов, подлежащих использованию при обучении глубокой нейронной сети.
14. Способ по п. 1, отличающийся тем, что запрос из очереди представляет собой входную последовательность токенов, подлежащих обработке моделью «последовательность в последовательность» (Seq2Seq) с целью формирования выходной последовательности токенов.
15. Способ по п. 13, отличающийся тем, что глубокая нейронная сеть представляет собой по меньшей мере одно из следующего: модель на основе трансформера, сквозная сверточная нейронная сеть (E2E-CNN), модель «представления двунаправленного кодера из трансформеров» (BERT) и модель с долгой краткосрочной памятью (LSTM).
16. Электронное устройство для пакетирования запросов, предназначенных для обработки обрабатывающим блоком, выполненное с возможностью:
- получения очереди запросов, подлежащих обработке обрабатывающим блоком, при этом запрос содержит некоторое количество токенов, определяющее длину запроса, и все токены из запроса должны совместно обрабатываться обрабатывающим блоком,
- выполнения текущей итерации для пакета запросов, содержащего запрос из очереди, ранее добавленный в пакет, при этом для выполнения текущей итерации электронное устройство выполнено с возможностью:
- определения первого значения стоимости для добавления в пакет первого запроса-кандидата из очереди, при этом первое значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет первого запроса-кандидата;
- определения второго значения стоимости для добавления в пакет второго запроса-кандидата из очереди, при этом второе значение стоимости указывает на количество дополнительных токенов, которые должны быть добавлены в пакет для выравнивания длин всех запросов в пакете в случае добавления в пакет второго запроса-кандидата; и
- селективного добавления в пакет целевого запроса из числа первого запроса-кандидата и второго запроса-кандидата, при этом целевой запрос связан с наименьшим значением из числа первого значения стоимости и второго значения стоимости.
17. Электронное устройство по п. 16, отличающееся тем, что пакет на текущей итерации имеет текущую длину пакета, соответствующую наибольшей длине запроса из числа всех запросов, добавленных в пакет на по меньшей мере одной итерации до текущей итерации.
18. Электронное устройство по п. 17, отличающееся тем, что длина первого запроса-кандидата меньше текущей длины пакета, а первое значение стоимости равно разности между текущей длиной пакета и длиной первого запроса-кандидата.
19. Электронное устройство по п. 17, отличающееся тем, что длина первого запроса-кандидата больше текущей длины пакета, а первое значение стоимости равно разности между длиной первого запроса-кандидата и текущей длиной пакета, умноженной на текущее количество запросов в пакете.
20. Электронное устройство по п. 16, отличающееся тем, что оно дополнительно выполнено с возможностью выполнения следующей итерации для пакета запросов, содержащего упомянутый запрос и целевой запрос из очереди.
21. Электронное устройство по п. 16, отличающееся тем, что оно дополнительно выполнено с возможностью выполнения заранее заданного количества итераций для пакета запросов.
22. Электронное устройство по п. 16, отличающееся тем, что оно дополнительно выполнено с возможностью прекращения итеративного добавления запросов из очереди в пакет, если выполняется условие останова.
23. Электронное устройство по п. 16, отличающееся тем, что оно дополнительно выполнено с возможностью отправки пакета запросов обрабатывающему блоку для обработки.
24. Электронное устройство по п. 23, отличающееся тем, что оно дополнительно выполнено с возможностью формирования следующего пакета запросов из очереди для обработки, не содержащего запросов из данного пакета.
25. Электронное устройство по п. 16, отличающееся тем, что дополнительные токены представляют собой пустые токены.
26. Электронное устройство по п. 16, отличающееся тем, что оно содержит обрабатывающий блок.
27. Электронное устройство по п. 16, отличающееся тем, что обрабатывающий блок представляет собой центральный процессор и/или графический процессор.
28. Электронное устройство по п. 16, отличающееся тем, что запрос представляет собой последовательность токенов, подлежащих использованию при обучении глубокой нейронной сети.
29. Электронное устройство по п. 16, отличающееся тем, что запрос из очереди представляет собой входную последовательность токенов, подлежащих обработке моделью «последовательность в последовательность» (Seq2Seq) с целью формирования выходной последовательности токенов.
30. Электронное устройство по п. 28, отличающееся тем, что глубокая нейронная сеть представляет собой по меньшей мере одно из следующего: модель на основе трансформера, сквозная сверточная нейронная сеть (E2E-CNN), модель «представления двунаправленного кодера из трансформеров» (BERT) и модель с долгой краткосрочной памятью (LSTM).
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
US 9146690 B2, 29.09.2015 | |||
JP 4723260 B2, 13.07.2011 | |||
СПОСОБ И СЕРВЕР ДЛЯ КЛАСТЕРИЗАЦИИ ПРЕДЛОЖЕНИЙ ДЛЯ ПОИСКОВЫХ ЗАПРОСОВ | 2015 |
|
RU2632140C2 |
US 6880028 B2, 12.04.2005. |
Авторы
Даты
2023-12-29—Публикация
2021-10-21—Подача