Останніми місяцями генеративні моделі штучного інтелекту стрімко розвиваються завдяки своїм вражаючим можливостям у створенні реалістичного тексту, зображень, коду та аудіо. Серед цих моделей моделі Stable Diffusion виділяються своєю унікальною силою у створенні високоякісних зображень на основі текстових підказок. Stable Diffusion може створювати різноманітні високоякісні зображення, включаючи реалістичні портрети, пейзажі та навіть абстрактне мистецтво. Як і інші генеративні моделі штучного інтелекту, моделі стабільної дифузії потребують потужних обчислень, щоб забезпечити висновки з низькою затримкою.
У цьому дописі ми покажемо, як запустити моделі стабільної дифузії та досягти високої продуктивності за найнижчих витрат у Обчислювальна хмара Amazon Elastic (Amazon EC2) за допомогою Екземпляри Amazon EC2 Inf2 живлення від AWS Inferentia2. Ми розглянемо архітектуру моделі стабільної дифузії та пройдемо кроки компіляції моделі стабільної дифузії за допомогою AWS нейрон і розгортання його на примірнику Inf2. Ми також обговорюємо оптимізацію, яку Neuron SDK автоматично здійснює для підвищення продуктивності. Ви можете запустити обидві версії Stable Diffusion 2.1 і 1.5 на AWS Inferentia2 без витрат. Нарешті, ми показуємо, як можна розгорнути модель Stable Diffusion в екземплярі Inf2 за допомогою Amazon SageMaker.
Розмір моделі Stable Diffusion 2.1 у форматі з плаваючою комою 32 (FP32) становить 5 ГБ і 2.5 ГБ у bfoat16 (BF16). Один екземпляр inf2.xlarge має один прискорювач AWS Inferentia2 із 32 ГБ пам’яті HBM. Модель Stable Diffusion 2.1 може поміститися в один екземпляр inf2.xlarge. Stable Diffusion — це модель перетворення тексту в зображення, яку можна використовувати для створення зображень різних стилів і вмісту, просто надаючи текстову підказку як вхідні дані. Щоб дізнатися більше про архітектуру моделі Stable Diffusion, див Створюйте високоякісні зображення за допомогою моделей Stable Diffusion і рентабельно розгортайте їх за допомогою Amazon SageMaker.
Як Neuron SDK оптимізує продуктивність Stable Diffusion
Перш ніж ми зможемо розгорнути модель Stable Diffusion 2.1 на примірниках AWS Inferentia2, нам потрібно скомпілювати компоненти моделі за допомогою Neuron SDK. Neuron SDK, який включає компілятор глибокого навчання, середовище виконання та інструменти, компілює та автоматично оптимізує моделі глибокого навчання, щоб вони могли ефективно працювати на екземплярах Inf2 і отримати повну продуктивність прискорювача AWS Inferentia2. У нас є доступні приклади для моделі Stable Diffusion 2.1 на GitHub репо. Цей блокнот представляє наскрізний приклад того, як скомпілювати модель Stable Diffusion, зберегти скомпільовані моделі Neuron і завантажити їх у середовище виконання для висновків.
Ми використовуємо StableDiffusionPipeline
від Hugging Face diffusers
бібліотека для завантаження та компіляції моделі. Потім ми компілюємо всі компоненти моделі для використання Neuron torch_neuronx.trace()
і збережіть оптимізовану модель як TorchScript. Процеси компіляції можуть займати досить інтенсивну пам'ять, вимагаючи значного обсягу оперативної пам'яті. Щоб уникнути цього, перед трасуванням кожної моделі ми створюємо a deepcopy
частини трубопроводу, яка трасується. Після цього ми видаляємо об’єкт конвеєра з пам’яті за допомогою del pipe
. Ця техніка особливо корисна під час компіляції на екземплярах із малим обсягом оперативної пам’яті.
Крім того, ми також виконуємо оптимізацію моделей стабільної дифузії. UNet має найбільш обчислювально інтенсивний аспект висновку. Компонент UNet працює з вхідними тензорами, які мають розмір партії, що дорівнює двом, генеруючи відповідний вихідний тензор також із розміром партії, що дорівнює двом, для отримання єдиного зображення. Елементи в цих пакетах повністю незалежні один від одного. Ми можемо скористатися цією поведінкою, щоб отримати оптимальну затримку, запустивши одну партію на кожному ядрі Neuron. Ми компілюємо UNet для одного пакету (за допомогою тензорів введення з одним пакетом), а потім використовуємо torch_neuronx.DataParallel
API для завантаження цієї єдиної пакетної моделі в кожне ядро. Результатом цього API є безшовний двопакетний модуль: ми можемо передати в UNet вхідні дані двох пакетів, і повертається двопакетний вихід, але внутрішньо дві однопакетні моделі працюють на двох ядрах Neuron . Ця стратегія оптимізує використання ресурсів і зменшує затримку.
Скомпілюйте та розгорніть модель Stable Diffusion на примірнику Inf2 EC2
Щоб скомпілювати та розгорнути модель Stable Diffusion на примірнику Inf2 EC2, підпишіться на Консоль управління AWS і створіть екземпляр inf2.8xlarge. Зауважте, що екземпляр inf2.8xlarge потрібен лише для компіляції моделі, оскільки для компіляції потрібна більша пам’ять хоста. Модель Stable Diffusion можна розмістити на примірнику inf2.xlarge. Ви можете знайти найновіші AMI з бібліотеками Neuron за допомогою наступного Інтерфейс командного рядка AWS (AWS CLI) команда:
Для цього прикладу ми створили екземпляр EC2 за допомогою Deep Learning AMI Neuron PyTorch 1.13 (Ubuntu 20.04). Потім ви можете створити лабораторне середовище JupyterLab, підключившись до примірника та виконавши такі кроки:
Блокнот з усіма кроками для складання та розміщення моделі розташований на GitHub.
Давайте розглянемо кроки компіляції для одного з блоків текстового кодувальника. Інші блоки, які є частиною конвеєра Stable Diffusion, можна скомпілювати подібним чином.
Першим кроком є завантаження попередньо підготовленої моделі з Hugging Face. The StableDiffusionPipeline.from_pretrained
метод завантажує попередньо навчену модель у наш конвеєрний об’єкт, pipe
. Потім ми створюємо a deepcopy
текстового кодувальника з нашого конвеєра, фактично клонуючи його. The del pipe
Потім команда використовується для видалення оригінального об’єкта конвеєра, звільняючи пам’ять, яку він споживав. Тут ми квантуємо модель до ваг BF16:
Цей крок передбачає обгортання нашого кодувальника тексту за допомогою NeuronTextEncoder
обгортка. Вихід скомпільованого модуля кодувальника тексту буде з dict
. Ми перетворюємо його на a list
введіть за допомогою цієї оболонки:
Ми ініціалізуємо тензор PyTorch emb
з деякими значеннями. The emb
tensor використовується як приклад введення для torch_neuronx.trace
функція. Ця функція відстежує наш текстовий кодувальник і компілює його у формат, оптимізований для Neuron. Шлях до каталогу для скомпільованої моделі створюється шляхом об’єднання COMPILER_WORKDIR_ROOT
з підкаталогом text_encoder
:
Зібраний текстовий кодувальник зберігається за допомогою torch.jit.save
. Він зберігається під назвою файлу model.pt у text_encoder
каталог робочої області нашого компілятора:
Команда ноутбук містить аналогічні кроки для компіляції інших компонентів моделі: UNet, декодера VAE та VAE post_quant_conv
. Після компіляції всіх моделей ви можете завантажити та запустити модель, виконавши такі дії:
- Визначте шляхи для скомпільованих моделей.
- Завантажте попередньо підготовлену
StableDiffusionPipeline
моделі, у конфігурації якої вказано використання типу даних bfloat16. - Завантажте модель UNet на два ядра Neuron за допомогою
torch_neuronx.DataParallel
API. Це дозволяє виконувати паралельний висновок даних, що може значно прискорити роботу моделі. - Завантажте інші частини моделі (
text_encoder
,decoder
таpost_quant_conv
) на одне ядро нейрона.
Потім ви можете запустити конвеєр, надавши вхідний текст як підказки. Нижче наведено кілька зображень, створених моделлю для підказок:
- Портрет Рено Сечана, перо та чорнило, складні штрихові малюнки, художники Крейг Маллінс, Руан Цзя, Кентаро Міура, Грег Рутковскі, Лаундро
- Портрет старого вугільного шахтаря в 19 столітті, гарна картина з дуже деталізованим малюнком обличчя від Грега Рутковскі
- Замок посеред лісу
Розмістіть Stable Diffusion 2.1 на AWS Inferentia2 і SageMaker
Розміщення моделей Stable Diffusion за допомогою SageMaker також потребує компіляції за допомогою Neuron SDK. Ви можете завершити компіляцію заздалегідь або під час виконання, використовуючи контейнери Large Model Inference (LMI). Попередня компіляція дозволяє швидше завантажувати модель і є кращим варіантом.
Контейнери SageMaker LMI пропонують два способи розгортання моделі:
- Варіант без коду, де ми просто надаємо a
serving.properties
файл з необхідними конфігураціями - Принесіть власний сценарій висновків
Ми розглядаємо обидва рішення та переглядаємо конфігурації та сценарій висновку (model.py
). У цій публікації ми демонструємо розгортання за допомогою попередньо скомпільованої моделі, що зберігається в Служба простого зберігання Amazon (Amazon S3) відро. Ви можете використовувати цю попередньо скомпільовану модель для своїх розгортань.
Налаштуйте модель за допомогою наданого сценарію
У цьому розділі ми покажемо, як налаштувати контейнер LMI для розміщення моделей Stable Diffusion. Ноутбук SD2.1 доступний на GitHub. Першим кроком є створення пакета конфігурації моделі відповідно до наведеної нижче структури каталогів. Наша мета — використовувати мінімальні конфігурації моделі, необхідні для розміщення моделі. Потрібна структура каталогу така:
Далі створюємо обслуговуючі.властивості файл із такими параметрами:
Параметри визначають наступне:
- option.model_id – Контейнери LMI використовують s5cmd для завантаження моделі з розташування S3, тому нам потрібно вказати місце, де знаходяться наші скомпільовані ваги.
- option.entryPoint – Для використання вбудованих обробників ми вказуємо клас transformers-neuronx. Якщо у вас є спеціальний сценарій висновку, вам потрібно надати його замість цього.
- option.dtype – Це вказує на завантаження ваг певного розміру. Для цієї публікації ми використовуємо BF16, який додатково зменшує наші вимоги до пам’яті порівняно з FP32 і завдяки цьому зменшує нашу затримку.
- option.tensor_parallel_degree – Цей параметр визначає кількість прискорювачів, які ми використовуємо для цієї моделі. Прискорювач мікросхеми AWS Inferentia2 має два ядра Neuron, тому вказівка значення 2 означає, що ми використовуємо один прискорювач (два ядра). Це означає, що тепер ми можемо створити кілька робітників, щоб збільшити пропускну здатність кінцевої точки.
- option.engine – Тут встановлено значення Python, щоб вказати, що ми не будемо використовувати інші компілятори, такі як DeepSpeed або Faster Transformer, для цього хостингу.
Принесіть власний сценарій
Якщо ви хочете додати свій власний сценарій висновку, вам потрібно видалити option.entryPoint
від serving.properties
. У цьому випадку контейнер LMI шукатиме a model.py
файл у тому ж місці, що й файл serving.properties
і використовуйте це для запуску висновків.
Створіть власний сценарій висновку (model.py)
Створення власного сценарію висновку відносно просте за допомогою контейнера LMI. Контейнер вимагає вашого model.py
файл, щоб мати реалізацію такого методу:
Давайте розглянемо деякі з критичних областей додається блокнот, який демонструє функцію доведення власного сценарію.
Замініть cross_attention
модуль з оптимізованою версією:
Це назви скомпільованого файлу ваг, який ми використовували під час створення компіляцій. Не соромтеся змінювати назви файлів, але переконайтеся, що назви файлів ваших ваг відповідають тим, що ви тут вказали.
Потім нам потрібно завантажити їх за допомогою Neuron SDK і встановити їх у фактичних вагах моделі. Під час завантаження оптимізованих вагових коефіцієнтів UNet зверніть увагу, що ми також вказуємо кількість ядер Neuron, на які їх потрібно завантажити. Тут ми завантажуємо один прискорювач з двома ядрами:
Запуск висновку з підказкою викликає об’єкт труби для створення зображення.
Створіть кінцеву точку SageMaker
Ми використовуємо Boto3 API для створення кінцевої точки SageMaker. Виконайте наступні дії:
- Створіть архів лише з обслуговуванням і необов’язковим
model.py
файли та завантажте їх на Amazon S3. - Створіть модель за допомогою контейнера зображень і архіву моделі, завантаженого раніше.
- Створіть конфігурацію кінцевої точки, використовуючи такі ключові параметри:
- Використовуйте a
ml.inf2.xlarge
екземпляр - Установка
ContainerStartupHealthCheckTimeoutInSeconds
до 240, щоб переконатися, що перевірка справності починається після розгортання моделі. - Установка
VolumeInGB
до більшого значення, щоб його можна було використовувати для завантаження ваг моделі розміром 32 ГБ.
- Використовуйте a
Створіть модель SageMaker
Після того як ви створите файл model.tar.gz і завантажите його в Amazon S3, нам потрібно створити модель SageMaker. Ми використовуємо контейнер LMI та артефакт моделі з попереднього кроку для створення моделі SageMaker. SageMaker дозволяє нам налаштовувати та вводити різні змінні середовища. Для цього робочого процесу ми можемо залишити все за замовчуванням. Перегляньте наступний код:
Створіть об’єкт моделі, який, по суті, створює контейнер блокування, який завантажується в екземпляр і використовується для висновків:
Створіть кінцеву точку SageMaker
У цій демонстрації ми використовуємо екземпляр ml.inf2.xlarge. Нам потрібно встановити VolumeSizeInGB
параметри, щоб забезпечити необхідний дисковий простір для завантаження моделі та ваг. Цей параметр застосовний до екземплярів, які підтримують Магазин еластичних блоків Amazon (Amazon EBS) вкладення томів. Ми можемо залишити для тайм-ауту завантаження моделі та перевірки працездатності при запуску контейнера більше значення, що дасть достатньо часу для контейнера, щоб отримати ваги з Amazon S3 і завантажити в прискорювачі AWS Inferentia2. Для отримання додаткової інформації див CreateEndpointConfig.
Нарешті, ми створюємо кінцеву точку SageMaker:
Викликати кінцеву точку моделі
Це генеративна модель, тому ми передаємо підказку, яку модель використовує для створення зображення. Корисне навантаження має тип JSON:
Порівняльний аналіз моделі Stable Diffusion на Inf2
Ми провели кілька тестів, щоб порівняти модель Stable Diffusion з типом даних BF 16 на Inf2, і ми можемо отримати значення затримки, які конкурують або перевищують деякі інші прискорювачі для Stable Diffusion. Це, у поєднанні з нижчою вартістю мікросхем AWS Inferentia2, робить цю пропозицію надзвичайно цінною.
Наступні цифри взято з моделі Stable Diffusion, розгорнутої на примірнику inf2.xl. Додаткову інформацію про витрати див Примірники Amazon EC2 Inf2.
Model | дозвіл | Тип даних | Ітерації | P95 Затримка (мс) | Вартість Inf2.xl On-Demand за годину | Inf2.xl (ціна за зображення) |
Стабільна дифузія 1.5 | 512 × 512 | bf16 | 50 | 2,427.4 | $0.76 | $0.0005125 |
Стабільна дифузія 1.5 | 768 × 768 | bf16 | 50 | 8,235.9 | $0.76 | $0.0017387 |
Стабільна дифузія 1.5 | 512 × 512 | bf16 | 30 | 1,456.5 | $0.76 | $0.0003075 |
Стабільна дифузія 1.5 | 768 × 768 | bf16 | 30 | 4,941.6 | $0.76 | $0.0010432 |
Стабільна дифузія 2.1 | 512 × 512 | bf16 | 50 | 1,976.9 | $0.76 | $0.0004174 |
Стабільна дифузія 2.1 | 768 × 768 | bf16 | 50 | 6,836.3 | $0.76 | $0.0014432 |
Стабільна дифузія 2.1 | 512 × 512 | bf16 | 30 | 1,186.2 | $0.76 | $0.0002504 |
Стабільна дифузія 2.1 | 768 × 768 | bf16 | 30 | 4,101.8 | $0.76 | $0.0008659 |
Висновок
У цій публікації ми детально заглибились у компіляцію, оптимізацію та розгортання моделі Stable Diffusion 2.1 за допомогою екземплярів Inf2. Ми також продемонстрували розгортання моделей Stable Diffusion за допомогою SageMaker. Примірники Inf2 також забезпечують чудову цінову ефективність для Stable Diffusion 1.5. Щоб дізнатися більше про те, чому екземпляри Inf2 чудово підходять для генеративного ШІ та великих мовних моделей, див Інстанси Amazon EC2 Inf2 для недорогих, високопродуктивних генеративних висновків AI тепер загальнодоступні. Щоб дізнатися більше про продуктивність, див Продуктивність Inf2. Перегляньте додаткові приклади на GitHub репо.
Особлива подяка Метью Макклейну, Бені Хегедусу, Камрану Хану, Шруті Копаркару та Кінг Лану за перегляд і надання цінних матеріалів.
Про авторів
Вівек Гангасані є старшим архітектором рішень машинного навчання в Amazon Web Services. Він працює зі стартапами машинного навчання, створюючи та розгортаючи додатки AI/ML на AWS. Наразі він зосереджений на розробці рішень для MLOps, ML inference та low-code ML. Він працював над проектами в різних областях, включаючи обробку природної мови та комп’ютерне бачення.
KC Tung є старшим архітектором рішень в AWS Annapurna Labs. Він спеціалізується на навчанні та розгортанні великої моделі глибокого навчання в хмарі. Має ступінь доктора філософії. доктор молекулярної біофізики в Південно-Західному медичному центрі Техаського університету в Далласі. Він виступав на AWS Summits і AWS Reinvent. Сьогодні він допомагає клієнтам навчати та розгортати великі моделі PyTorch і TensorFlow у хмарі AWS. Він є автором двох книг: Дізнайтеся про TensorFlow Enterprise та Кишеньковий довідник TensorFlow 2.
Рупіндер Гревал є старшим архітектором рішень Ai/ML в AWS. Зараз він зосереджується на обслуговуванні моделей і MLO на SageMaker. До цієї посади він працював інженером машинного навчання, створюючи та розміщуючи моделі. Поза роботою він любить грати в теніс і їздити на велосипеді гірськими стежками.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/maximize-stable-diffusion-performance-and-lower-inference-costs-with-aws-inferentia2/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 20
- 32
- 7
- 8
- 9
- a
- Здатний
- МЕНЮ
- РЕЗЮМЕ
- прискорювач
- прискорювачі
- Achieve
- фактичний
- Додатковий
- Перевага
- після
- попереду
- AI
- AI / ML
- мета
- ВСІ
- дозволяє
- Також
- Amazon
- Amazon EC2
- Amazon Web Services
- серед
- кількість
- an
- та
- API
- Інтерфейси
- застосовно
- застосування
- архітектура
- ЕСТЬ
- області
- Art
- AS
- зовнішній вигляд
- At
- аудіо
- автор
- автоматично
- доступний
- AWS
- заснований
- BE
- красивий
- оскільки
- було
- перед тим
- поведінка
- буття
- еталонний тест
- Краще
- Біофізика
- Блокувати
- блоки
- книги
- обидва
- приносити
- будувати
- Створюємо
- вбудований
- але
- by
- CAN
- можливості
- випадок
- Центр
- Століття
- зміна
- перевірка
- чіп
- Чіпси
- клас
- хмара
- Вугілля
- код
- повний
- компонент
- Компоненти
- обчислення
- комп'ютер
- Комп'ютерне бачення
- обчислення
- конфігурація
- З'єднувальний
- спожитий
- Контейнер
- Контейнери
- зміст
- конвертувати
- Core
- Відповідний
- Коштувати
- витрати
- з'єднаний
- Крейг
- створювати
- створений
- створює
- створення
- критичний
- В даний час
- виготовлений на замовлення
- Клієнти
- налаштувати
- Даллас
- дані
- глибокий
- глибоке навчання
- дефолт
- доставляти
- надання
- демонстрація
- демонструвати
- продемонстрований
- демонструє
- розгортання
- розгорнути
- розгортання
- розгортання
- розгортання
- докладно
- деталі
- різний
- радіомовлення
- обговорювати
- домени
- голуб
- скачати
- Креслення
- два
- під час
- кожен
- Раніше
- фактично
- продуктивно
- елементи
- кінець в кінець
- Кінцева точка
- інженер
- забезпечувати
- повністю
- Навколишнє середовище
- по суті
- Навіть
- все
- досліджувати
- приклад
- Приклади
- перевищувати
- зазнають
- витяг
- надзвичайно
- Face
- швидше
- почувати
- кілька
- філе
- Файли
- знайти
- Перший
- відповідати
- плаваючий
- увагу
- фокусується
- після
- слідує
- для
- формат
- Безкоштовна
- від
- Повний
- функція
- далі
- в цілому
- породжувати
- генерується
- породжує
- генеративний
- Генеративний ШІ
- отримати
- Давати
- Go
- великий
- Зростання
- Мати
- he
- здоров'я
- допомагає
- тут
- Високий
- висока продуктивність
- високоякісний
- вище
- дуже
- тримає
- господар
- відбувся
- хостинг
- Як
- How To
- HTML
- HTTP
- HTTPS
- IDX
- if
- зображення
- зображень
- реалізація
- вражаючий
- удосконалювати
- in
- includes
- У тому числі
- Augmenter
- незалежний
- вказувати
- інформація
- вводити
- вхід
- витрати
- встановлювати
- екземпляр
- замість
- внутрішньо
- в
- викликає
- IT
- ЙОГО
- JIT-
- приєднання
- JPG
- json
- просто
- ключ
- lab
- Labs
- ландшафт
- мова
- великий
- більше
- Затримка
- останній
- УЧИТЬСЯ
- вивчення
- Залишати
- libraries
- бібліотека
- як
- Лінія
- Linux
- загрузка
- погрузка
- вантажі
- розташований
- розташування
- блокування
- каротаж
- подивитися
- низький
- недорогий
- знизити
- найнижчий
- машина
- навчання за допомогою машини
- зробити
- РОБОТИ
- управління
- матч
- Матвій
- Максимізувати
- засоби
- медичний
- пам'ять
- метод
- Середній
- шахтар
- мінімальний
- ML
- MLOps
- модель
- Моделі
- Модулі
- молекулярний
- місяців
- більше
- найбільш
- Гора
- MS
- множинний
- ім'я
- Імена
- Природний
- Обробка природних мов
- необхідно
- Необхідність
- необхідний
- ноутбук
- зараз
- номер
- номера
- Nvidia
- об'єкт
- of
- Старий
- on
- On-Demand
- ONE
- тільки
- на
- працює
- оптимальний
- оптимізація
- оптимізований
- Оптимізує
- варіант
- or
- оригінал
- OS
- Інше
- наші
- з
- вихід
- поза
- над
- власний
- пакет
- Картина
- Паралельні
- параметр
- параметри
- частина
- особливо
- частини
- проходити
- шлях
- для
- Виконувати
- продуктивність
- виконується
- фотографії
- труба
- трубопровід
- plato
- Інформація про дані Платона
- PlatoData
- ігри
- точка
- портрети
- пошта
- Харчування
- потужний
- переважним
- подарунки
- попередній
- price
- попередній
- процеси
- обробка
- виробляти
- проектів
- властивості
- пропозиція
- забезпечувати
- за умови
- забезпечення
- Python
- піторх
- Оперативна пам'ять
- швидко
- реалістичний
- останній
- знижує
- щодо
- решті
- видаляти
- замінювати
- вимагати
- вимагається
- Вимога
- Вимагається
- ресурс
- Умови повернення
- рецензування
- Суперник
- Роль
- прогін
- біг
- мудрець
- то ж
- зберегти
- шкала
- Sdk
- безшовні
- розділ
- побачити
- старший
- Послуги
- виступаючої
- комплект
- Показувати
- підпис
- значний
- істотно
- аналогічний
- Аналогічно
- простий
- просто
- один
- Розмір
- So
- рішення
- Рішення
- деякі
- Source
- Простір
- спеціаліст
- спеціалізується
- конкретний
- зазначений
- швидкість
- говорять
- стабільний
- стояти
- починається
- введення в експлуатацію
- Стартапи
- Крок
- заходи
- зберігання
- зберігати
- просто
- Стратегія
- сила
- структура
- саміти
- Підтримуючий
- Переконайтеся
- Приймати
- тензорний потік
- Тести
- Техас
- Дякую
- Що
- Команда
- їх
- Їх
- потім
- отже
- Ці
- вони
- це
- через
- пропускна здатність
- час
- times
- до
- сьогодні
- інструменти
- факел
- Простеження
- поїзд
- Навчання
- трансформатор
- два
- тип
- Ubuntu
- при
- створеного
- університет
- завантажено
- us
- використання
- використовуваний
- використовує
- використання
- Цінний
- значення
- Цінності
- різноманітність
- різний
- версія
- версії
- бачення
- обсяг
- vs
- хотіти
- було
- способи
- we
- Web
- веб-сервіси
- Що
- коли
- який
- чому
- широкий
- волі
- з
- в
- Work
- працював
- робочі
- робочий
- працює
- Ти
- вашу
- зефірнет