Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Створюйте, навчайте та розгортайте модель мови з мільярдом параметрів на терабайтах даних за допомогою TensorFlow та Amazon SageMaker

Збільшення розміру мовних моделей було однією з найбільших тенденцій в обробці природної мови (NLP) за останні роки. З 2018 року ми спостерігаємо безпрецедентну розробку та розгортання все більших мовних моделей, включаючи BERT та його варіанти, GPT-2, T-NLG та GPT-3 (175 мільярдів параметрів).

Ці моделі розсунули межі можливих архітектурних інновацій. Ми стикаємося з кількома проблемами під час навчання широкомасштабних моделей глибокого навчання, особливо нової хвилі генеративних попередньо навчених трансформаторів. Ці проблеми включають апаратні обмеження та компроміси з обчисленнями та ефективністю. Щоб подолати ці проблеми паралельності моделей і даних, AWS пропонує широкий спектр можливостей.

У цій публікації ми представляємо два основних підходи: розпаралелювання даних і використання моделі Amazon SageMaker, та обговорити їхні плюси та мінуси.

Модель

Для мовної моделі ми використовуємо трансформатори, представлені в статті Увага – це все, що вам потрібно. Трансформатори — це моделі глибокого навчання, розроблені, щоб свідомо уникати підводних каменів RNN, покладаючись на механізм самоуваги, щоб створити глобальні залежності між входом і виходом. Архітектура моделі Transformer дозволяє значно краще розпаралелювати і може досягти високої продуктивності за відносно короткий час навчання. Створений на основі успіху Transformers, BERT, представлений у статті BERT: Попередня підготовка глибоких двонаправлених трансформаторів для розуміння мови, додано двонаправлене попереднє навчання для мовного представлення. Натхненний завданням Cloze, BERT попередньо навчається моделюванню маскованої мови (MLM), за допомогою якого модель вчиться відновлювати оригінальні слова для випадково замаскованих маркерів. Модель BERT також попередньо підготовлена ​​до виконання завдання передбачення наступного речення (NSP), щоб передбачити, чи два речення знаходяться в правильному порядку читання. З моменту його появи в 2018 році BERT і його варіації широко використовувалися в мовних моделях.

Ми починаємо зі створення двох шарів вбудовування для маркерного та позиційного вбудовування. Вхідні вбудовування є сумою вбудовування токенів і вбудовування позиції.

class TokenAndPositionEmbedding(tf.keras.layers.Layer): """ Creates two separate embedding layers: one for tokens and one for token index (positions). """ def __init__(self, maxlen, vocab_size, embed_dim): super(TokenAndPositionEmbedding, self).__init__() self.token_emb = tf.keras.layers.Embedding(input_dim=vocab_size, output_dim=embed_dim) self.pos_emb = tf.keras.layers.Embedding(input_dim=maxlen, output_dim=embed_dim) def call(self, x): maxlen = tf.shape(x)[-1] # positions are represented by a token's index positions = tf.range(start=0, limit=maxlen, delta=1) positions = self.pos_emb(positions) # token embedding x = self.token_emb(x) # return sum as input return x + positions

Потім ми визначаємо блок декодера трансформатора з двома підрівнями: шаром самоуваги з кількома головками та простою повністю підключеною мережею з прямим зв’язком з наступною нормалізацією рівня та випаданням:

class TransformerBlock(tf.keras.layers.Layer): def __init__(self, embed_dim, num_heads, ff_dim, rate=0.1): # self attention layer super(TransformerBlock, self).__init__() self.att = tf.keras.layers.MultiHeadAttention( num_heads=num_heads, key_dim=embed_dim) # feed forward layer self.ffn = [tf.keras.layers.Dense(ff_dim, activation="relu"), tf.keras.layers.Dense(embed_dim)] # layer normalization self.layernorm1 = tf.keras.layers.LayerNormalization(epsilon=1e-6) self.layernorm2 = tf.keras.layers.LayerNormalization(epsilon=1e-6) # dropout self.dropout1 = tf.keras.layers.Dropout(rate) self.dropout2 = tf.keras.layers.Dropout(rate) def call(self, inputs): # getting batch size and seq len from input shape input_shape = tf.shape(inputs) batch_size = input_shape[0] seq_len = input_shape[1] # decoder casual mask casual_mask = casual_attention_mask(batch_size, seq_len, seq_len, tf.bool) # self attention forward pass attention_output = self.att(inputs, inputs, attention_mask=causal_mask) # dense layers, dropout and normalization attention_output = self.dropout1(attention_output) ffn_output = self.ffn[0](out1) ffn_output = self.ffn[1](ffn_output) out2 = self.dropout2(ffn_output) return self.layernorm2(out1 + out2)

Нарешті, ми створюємо нашу мовну модель з попереднім шаром вбудовування та блоками трансформатора:

class MyModel(tf.keras.Model): def __init__(self, maxlen, vocab_size, embed_dim, num_heads, feed_forward_dim, num_layers, learning_rate): super(MyModel, self).__init__(maxlen, vocab_size, embed_dim, num_heads, feed_forward_dim, num_layers, learning_rate) # embedding layer self.embedding_layer = TokenAndPositionEmbedding(maxlen, vocab_size, embed_dim) # transformer blocks self.transformer_blocks = [ TransformerBlock(embed_dim, num_heads, feed_forward_dim) for i in range(num_layers) ] # last dense layer self.dense = tf.keras.layers.Dense(vocab_size) def call(self, inputs, training=None): x_emb = self.embedding_layer(inputs) x = x_emb for transformer_block in self.transformer_blocks: x = transformer_block(x) outputs = self.dense(x) return [outputs, x_emb] def init_train_settings(maxlen, vocab_size, embed_dim, num_heads, feed_forward_dim, num_layers, learning_rate): """ Creates model, optimizer and loss function """ model = MyModel(maxlen, vocab_size, embed_dim, num_heads, feed_forward_dim, num_layers, learning_rate) loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate) return model, optimizer, loss_fn

Залежно від ваших гіперпараметрів ви можете масштабувати цю модель від тисяч параметрів до мільярдів параметрів. Основна проблема з моделями з мільярдними параметрами полягає в тому, що ви не можете розмістити модель в одному екземплярі, і вам потрібно розподілити модель на кілька вузлів для навчання та висновку.

Набір даних

У наших експериментах ми використовували Набір даних купи. The Pile — це набір текстових даних англійською мовою об’ємом 800 ГіБ, призначений для навчання великомасштабних мовних моделей. Він створений із 22 різноманітних високоякісних наборів даних, включаючи як усталені набори даних НЛП, так і нещодавно введені.

Набір даних створюється з різних джерел даних, включаючи книги; репозиторії GitHub; веб-сторінки; журнали чатів; і медичні, фізичні, математичні, інформатичні та філософські роботи. Зокрема, він використовує такі джерела: Pile-CC, PubMed Central, ArXiv, GitHub, FreeLaw Project, Stack Exchange, Бюро патентів і товарних знаків США, PubMed, Ubuntu, IRC, HackerNews, YouTube, PhilPapers, Books3, Project Gutenberg ( PG-19), OpenSubtitles, англійська Вікіпедія, DM Mathematics, EuroParl, корпус Enron Emails і NIH ExPorter. Він також включає OpenWebText2 і BookCorpus2, які є розширеннями оригінальних наборів даних OpenWebText і BookCorpus відповідно. Різноманітність джерел даних може покращити загальні міждоменні знання і, отже, покращити можливості подальшого узагальнення.

Основною проблемою з цим набором даних є самий розмір; набір даних містить 825 ГіБ тексту, що перетворюється на 4.2 ТБ попередньо оброблених і стиснених точок даних. Подібно до проблем, з якими ми стикаємося під час навчання та розміщення моделей, навчання моделі з цим набором даних на одному екземплярі займе багато часу і непрактично.

Наше рішення полягає в тому, щоб розбити набір даних на блоки даних приблизно по 1 гіБ, завантажити та попередньо обробити функції в Набір даних TensorFlow об’єкти та зберігати їх у Служба файлів Amazon Elastic (Amazon EFS). Набори даних TensorFlow забезпечують простий у використанні та високопродуктивний конвеєр даних, який добре інтегрується з нашими моделями. Amazon EFS — це проста у використанні служба, яка дозволяє нам створити спільну файлову систему, яка автоматично масштабується в міру додавання та видалення файлів. Крім того, Amazon EFS здатний підвищити пропускну здатність, коли це необхідно, що є критичним для наших даних і процесу навчання моделей.

Далі ми розглянемо стратегії розподіленого навчання для вирішення цих проблем.

Розподілене навчання

У цьому проекті ми зіткнулися з двома проблемами: масштабування розміру моделі та обсягу даних. Збільшення розміру моделі та кількості параметрів, які можна навчати, може призвести до кращої точності, але існує обмеження для моделі, яку ви можете вмістити в одну пам’ять графічного процесора або навіть кілька графічних процесорів в одному екземплярі. Крім того, більші розміри моделі займають більше часу на навчання.

Ви можете вирішити ці проблеми двома різними способами: паралельність даних і паралельність моделі. Завдяки паралелізму даних ми виконуємо стохастичний градієнтний спуск (SGD), розподіляючи записи міні-пакету між різними пристроями, щоб прискорити навчання. Однак паралельне навчання даних супроводжується додатковою складністю обчислення середнього градієнта міні-партії з градієнтами з усіх пристроїв, крок, який називається AllReduce, що стає важчим у міру зростання навчального кластера. Використовуючи паралелізм даних, ми повинні мати можливість вмістити модель і одну точку даних в пристрій (ЦП або графічний процесор), що є обмежуючим фактором у наших експериментах, оскільки розмір такої великої моделі набагато більше, ніж пам’ять окремого графічного процесора. розмір.

Іншим рішенням є використання паралельності моделі, що розбиває модель на кілька пристроїв. Паралелізм моделі — це процес поділу моделі між кількома пристроями або вузлами (наприклад, екземпляри з GPU) і створення ефективного конвеєра для навчання моделі на цих пристроях для максимального використання GPU.

Паралелізація даних

Паралелізація даних є найпоширенішим підходом до кількох графічних процесорів або розподіленого навчання. Ви можете групувати свої дані, надсилати їх на кілька пристроїв (на кожному розміщено репліковану модель), а потім об’єднувати результати. Ми експериментували з двома пакетами для розпаралелювання даних: Horovod і the Паралельна бібліотека розподілених даних SageMaker.

Horovod — це розподілений навчальний фреймворк глибокого навчання для TensorFlow, Keras, PyTorch і Apache MXNet. Щоб використовувати Horovod, ми пройшли наступний процес:

  1. Ініціалізація за допомогою запуску hvd.init().
  2. Пов’яжіть кожен пристрій з одним процесом. Перший процес або обробник пов’язаний з першим пристроєм, другий процес пов’язаний з другим пристроєм і так далі.
  3. Налаштуйте швидкість навчання залежно від кількості пристроїв.
  4. Загорніть оптимізатор hvd.DistributedOptimizer.
  5. Передайте початкові стани змінної від першого працівника з рангом 0 на всі інші процеси. Це необхідно для забезпечення послідовної ініціалізації всіх працівників, коли навчання починається з випадковими вагами або відновлюється з контрольної точки.
  6. Переконайтеся, що лише пристрій 0 може зберігати контрольні точки, щоб інші працівники не пошкодили їх.

Нижче наведено сценарій навчання:

import horovod.tensorflow as hvd
# Initialize Horovod
hvd.init() # Pin GPU to be used to process local rank (one GPU per process)
gpus = tf.config.experimental.list_physical_devices('GPU')
for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True)
if gpus: tf.config.experimental.set_visible_devices(gpus[hvd.local_rank()], 'GPU') # Build model
... @tf.function
def training_step(texts, labels, first_batch): with tf.GradientTape() as tape: predictions = model(texts, training=True) loss = loss_fn(labels, predictions[0]) # Horovod: add Horovod Distributed GradientTape. tape = hvd.DistributedGradientTape(tape) grads = tape.gradient(loss, model.trainable_variables) opt.apply_gradients(zip(grads, model.trainable_variables)) # Horovod: broadcast initial variable states from rank 0 to all other processes. # This is necessary to ensure consistent initialization of all workers when # training is started with random weights or restored from a checkpoint. # # Note: broadcast should be done after the first gradient step to ensure optimizer # initialization. if first_batch: hvd.broadcast_variables(model.variables, root_rank=0) hvd.broadcast_variables(opt.variables(), root_rank=0) return loss # Horovod: adjust number of steps based on number of GPUs.
for batch, (texts, labels) in enumerate(dataset.take(10000 // hvd.size())): loss = training_step(texts, labels, batch == 0) if batch % 10 == 0 and hvd.local_rank() == 0: print('Step #%dtLoss: %.6f' % (batch, loss)) # Horovod: save checkpoints only on worker 0 to prevent other workers from
# corrupting it.
if hvd.rank() == 0: checkpoint.save(checkpoint_dir)

Паралельна бібліотека даних SageMaker дозволяє нам масштабувати наше навчання з майже лінійною ефективністю, прискорюючи навчання з мінімальними змінами коду. Бібліотека виконує на замовлення AllReduce роботу та оптимізує зв’язок між пристроями, повністю використовуючи мережеву інфраструктуру AWS і Обчислювальна хмара Amazon Elastic Топологія екземпляра (Amazon EC2). Щоб використовувати паралельну бібліотеку даних SageMaker, ми пройшли наступний процес:

  1. Імпорт та ініціалізація sdp.init().
  2. Пов’яжіть кожен пристрій з одним smdistributed.dataparallel процес з local_rank. sdp.tensorflow.local_rank() дає нам локальний ранг пристроїв. Лідер — ранг 0, а робітники — 1, 2, 3 і так далі.
  3. Налаштуйте швидкість навчання залежно від кількості пристроїв.
  4. Оберніть tf.GradientTape з DistributedGradientTape для виконання AllReduce.
  5. Трансляція вихідних змінних моделі від провідного вузла до всіх робочих вузлів.
  6. Переконайтеся, що лише пристрій 0 може зберігати контрольні точки.

Паралелізація моделі

Ми можемо налаштувати гіперпараметри, щоб модель залишалася достатньо маленькою для навчання за допомогою одного графічного процесора, або ми можемо використовувати паралелізм моделі, щоб розділити модель між кількома графічними процесорами в кількох екземплярах. Збільшення кількості параметрів моделі, які можна навчати, може призвести до кращої точності, але існує обмеження на максимальний розмір моделі, який можна вмістити в одну пам’ять графічного процесора. Ми використовували паралельну бібліотеку розподілених моделей SageMaker для навчання наших більших моделей. Дії такі:

  1. Імпортуйте та ініціалізуйте бібліотеку за допомогою smp.init().
  2. Модель Keras має успадковуватися від smp.DistributedModel замість класу Keras Model.
  3. Установка drop_remainder=True в tf.Dataset.batch() метод, який гарантує, що розмір партії завжди ділиться на кількість мікропартій.
  4. Усі випадкові операції в конвеєрі даних мають використовувати одне і те ж насіння: smp.dp_rank()Наприклад, shuffle(ds, seed=smp.dp_rank()). Це забезпечує узгодженість вибірок даних на пристроях, які містять різні розділи моделі.
  5. Логіка прямого і зворотного зв’язку має бути в покроковій функції smp.step прикраса.
  6. Виконуйте постобробку вихідних даних у мікропакетах за допомогою методів StepOutput, таких як reduce_mean, smp.step функція повинна мати значення, що повертається, що залежить від результату smp.DistributedModel.

Сценарій навчання такий:

import smdistributed.modelparallel.tensorflow as smp # SMP: Initialize
smp.init() # SMP: Define smp.DistributedModel the same way as Keras sub-classing API
class MyModel(smp.DistributedModel): def __init__(self, maxlen, vocab_size, embed_dim, num_heads, feed_forward_dim, num_layers, learning_rate): super(MyModel, self).__init__(maxlen, vocab_size, embed_dim, num_heads, feed_forward_dim, num_layers, learning_rate) self.embedding_layer = gpt_model.TokenAndPositionEmbedding(maxlen, vocab_size, embed_dim) self.transformer_blocks = [ gpt_model.TransformerBlock(embed_dim, num_heads, feed_forward_dim) for i in range(num_layers) ] self.dense = tf.keras.layers.Dense(vocab_size) def call(self, inputs, training=None): x_emb = self.embedding_layer(inputs) x = x_emb for transformer_block in self.transformer_blocks: x = transformer_block(x) outputs = self.dense(x) return [outputs, x_emb] # SMP: Define smp.step. Return any tensors needed outside
@smp.step
def get_grads(texts, labels): predictions = model(texts, training=True) loss = loss_fn(labels, predictions[0]) grads = optimizer.get_gradients(loss, model.trainable_variables) return grads, loss, predictions[0] @tf.function
def train_step(texts, labels, first_batch): gradients, loss, predictions = get_grads(texts, labels) # SMP: Accumulate the gradients across microbatches gradients = [g.accumulate() for g in gradients] optimizer.apply_gradients(zip(gradients, model.trainable_variables)) # SMP: Average the loss across microbatches train_loss(loss.reduce_mean()) # SMP: Merge predictions across microbatches train_accuracy(labels, predictions.merge()) return loss.reduce_mean() histories = [] for _ in range(epochs): train_loss.reset_states() train_accuracy.reset_states() for texts, labels in text_ds: for i in range(128): text = tf.expand_dims(texts[0][i], axis=0) label = tf.expand_dims(labels[0][i], axis=0) train_step(text, label) 

Щоб отримати докладний посібник з увімкнення сценарію навчання TensorFlow для паралельної бібліотеки розподіленої моделі SageMaker, див. Змініть навчальний скрипт TensorFlow. Для PyTorch див Змініть навчальний скрипт PyTorch.

Налагоджувач SageMaker

У попередніх розділах ми обговорювали, як оптимізувати навчання за допомогою методів розпаралелювання моделей і даних. З Налагоджувач Amazon SageMaker, тепер ми можемо отримувати інформацію про профілювання ефективності з наших навчальних запусків, щоб визначити, наскільки навчання покращилося. За замовчуванням Debugger фіксує системні показники для кожного навчального завдання SageMaker, наприклад графічного процесора, використання ЦП, пам’яті, мережі та вводу-виводу, з інтервалом вибірки 500 мілісекунд. Ми можемо отримати доступ до даних наступним чином:

from smdebug.profiler.analysis.notebook_utils.training_job import TrainingJob
tj = TrainingJob('SMD-MP-demo-2022-01-21-06-43-23-841', "us-east-1")
tj.wait_for_sys_profiling_data_to_be_available()
system_metrics_reader = tj.get_systems_metrics_reader()

Налагоджувач надає утиліти для візуалізувати дані профілювання різними способами. У наступному прикладі ми бачимо загальне використання GPU та CPU, а також час очікування введення-виводу для навчального завдання з кількома GPU за допомогою Horovod. Щоб створити ці графіки, ми запускаємо наступний код:

from smdebug.profiler.analysis.notebook_utils.timeline_charts import TimelineCharts view_timeline_charts = TimelineCharts( system_metrics_reader, framework_metrics_reader, select_dimensions=["CPU", "GPU", "I/O"], select_events=["total"], show_workers=False )

Використання графічного процесора часто коливається в межах 0–100%, а високий час очікування введення-виводу з низьким використанням графічного процесора є показником вузького місця введення-виводу. Крім того, загальне використання ЦП ніколи не перевищує 70%, що означає, що ми можемо покращити попередню обробку даних, збільшуючи кількість робочих процесів.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми можемо підвищити продуктивність, перейшовши з Horovod на паралельну бібліотеку розподілених даних SageMaker. На наступних графіках ми бачимо, що графічні процесори використовуються ефективніше і лише протягом короткого періоду часу падають до низького рівня.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Навчальна інфраструктура

Для навчання моделей ми використали 10 екземплярів ml.p3.16xlarge за допомогою навчального завдання SageMaker. SageMaker скорочує час і витрати на навчання та налаштування моделей машинного навчання (ML) без необхідності керувати інфраструктурою. За допомогою SageMaker ви можете легко навчати й налаштовувати моделі ML за допомогою вбудованих інструментів для керування та відстеження навчальних експериментів, автоматичного вибору оптимальних гіперпараметрів, налагодження навчальних завдань та моніторингу використання системних ресурсів, таких як графічні процесори, центральні процесори та пропускна здатність мережі. Дані були розміщені в Amazon EFS, що дозволило нам розширюватися та зменшуватися, коли ми додаємо та видаляємо файли, не потребуючи керування чи надання. Наші основні цілі полягали в тому, щоб підвищити швидкість навчання та зменшити витрати.

Масштабованість моделі

Хоча ця інфраструктура в основному використовується для генерації мов, з архітектурою GPT і набором даних Pile ви можете використовувати ці методи для навчання великомасштабних моделей трансформаторів, що корисно в багатьох областях за межами NLP. У самому машинному навчанні багато завдань комп’ютерного зору тепер вирішуються за допомогою архітектур з великими параметрами (трансформаторів), де було показано, що вони перевершують традиційні CNN (згорткові нейронні мережі) у таких завданнях, як навчання репрезентації (див. Покращення сучасного рівня комп’ютерного зору за допомогою трансформаторів з самоконтролем та 10-кратного більш ефективного навчання) і великомасштабне відображення зображень у текст (наприклад CLIP). Моделі з великими параметрами також відкривають нові шляхи в науках про життя в таких галузях, як аналіз структури білка та аналіз даних медичних зображень.

Рішення, які ми докладно розповідаємо в цій публікації для розподіленого навчання та керування великими моделями, також мають застосовуватися до моделей у будь-якій із цих областей.

Компроміси

У дослідницькому співтоваристві тривають дискусії щодо ризиків навчання широкомасштабних мовних моделей, а також про те, чи достатньо міркувань було приділено потенційним ризикам, пов’язаним з їх розробкою, і стратегіям для пом’якшення цих ризиків, деякі з яких включають фінансові та екологічні витрати. За словами а папір Опубліковано в ACM, навчання однієї базової моделі BERT (без налаштування гіперпараметрів) на графічних процесорах вимагало стільки ж енергії, скільки й трансамериканський політ. Вплив на навколишнє середовище масштабується відповідно до розміру моделі, а можливість ефективно налаштувати такі моделі може потенційно значно скоротити викиди. AWS нещодавно запустила нову Інструмент вуглецевого сліду клієнта, доступний для всіх клієнтів AWS безкоштовно, як частина зусиль Amazon щодо підвищення стійкості та зменшення викидів вуглецю. Запуск додатків у хмарі AWS може потенційно знизити вуглецевий слід (у порівнянні з корпоративними центрами обробки даних, які були опитані в звіт 2019).

Висновок

У цій публікації продемонстровано рішення, яке полегшує тонке налаштування мовних моделей з мільярдом параметрів у хмарі AWS за допомогою SageMaker.

Додаткову інформацію про паралелізм моделі з SageMaker див Навчайте 175+ мільярдів моделей НЛП з параметрами з додаванням паралельних моделей і обнімаючим обличчям на Amazon SageMaker та Як Latent Space використовувала бібліотеку паралелізму моделі Amazon SageMaker, щоб розширити кордони великомасштабних трансформаторів.

Якщо ви бажаєте допомогти прискорити використання ML у своїх продуктах і процесах, зверніться до Лабораторія рішень Amazon ML.


Про авторів

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Сіа Голамі є старшим спеціалістом із обробки даних у Amazon ML Solutions Lab, де він створює рішення AI/ML для клієнтів у різних галузях. Він захоплений обробкою природної мови (НЛП) і глибоким навчанням. Поза роботою Сія любить проводити час на природі та грати в теніс.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Мехді Нуріє менеджером і старшим прикладним науковцем у Amazon ML Solutions Lab, де він працює з клієнтами в різних галузях і допомагає їм прискорити шлях міграції в хмару, а також вирішувати проблеми ML за допомогою найсучасніших рішень і технології.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Мухьон Кім є науковцем із даних у Amazon Machine Learning Solutions Lab. Він вирішує різноманітні бізнес-проблеми клієнтів, застосовуючи машинне навчання та глибоке навчання, а також допомагає їм здобути кваліфікацію.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Денні Берд є вченим-прикладником у Amazon ML Solutions Lab. У лабораторії він допомагав клієнтам розробляти передові рішення ML у спеціальностях ML від комп’ютерного зору до навчання з підкріпленням. Він захоплений просуванням технологій вперед і розкриттям нового потенціалу продуктів AWS на цьому шляху.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Франсіско Кальдерон Родрігес є дослідником даних у лабораторії рішень Amazon ML Solutions. Як член лабораторії ML Solutions Lab, він допомагає вирішувати критичні бізнес-проблеми для клієнтів AWS за допомогою глибокого навчання. У вільний час Франциско любить грати на музику та гітару, грати у футбол зі своїми дочками та насолоджуватися часом із сім’єю.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Йохей Накаяма є архітектором глибокого навчання в Amazon ML Solutions Lab. Він працює з клієнтами в різних галузях, щоб прискорити використання штучного інтелекту та хмарних сервісів AWS для вирішення їхніх бізнес-задач. Він зацікавлений у застосуванні технологій ML/AI в космічній галузі.

Створіть, навчіть і розгорніть мовну модель із мільярдами параметрів на терабайтах даних за допомогою TensorFlow і Amazon SageMaker PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai. Наталі Раушмайр є старшим прикладним науковцем у AWS, де вона допомагає клієнтам розробляти програми глибокого навчання.

Часова мітка:

Більше від AWS Машинне навчання