С появлением генеративного ИИ современные базовые модели (FM), такие как большие языковые модели (LLM) Claude 2 и Llama 2, могут выполнять ряд генеративных задач, таких как ответы на вопросы, обобщение и создание контента на основе текстовых данных. Однако реальные данные существуют в нескольких модальностях, таких как текст, изображения, видео и аудио. Возьмем, к примеру, набор слайдов PowerPoint. Он может содержать информацию в виде текста или в виде графиков, таблиц и изображений.
В этом посте мы представляем решение, которое использует мультимодальные FM, такие как Мультимодальные встраивания Amazon Titan модель и ЛЛаВА 1.5 и сервисы AWS, включая Коренная порода Амазонки и Создатель мудреца Амазонки для выполнения аналогичных генеративных задач над мультимодальными данными.
Обзор решения
Решение обеспечивает реализацию ответов на вопросы с использованием информации, содержащейся в тексте и визуальных элементах слайдов. В основе конструкции лежит концепция извлечения дополненной генерации (RAG). Традиционно RAG ассоциировался с текстовыми данными, которые могут обрабатываться LLM. В этом посте мы расширяем RAG, включив в него также изображения. Это обеспечивает мощные возможности поиска для извлечения контекстуально релевантного контента из визуальных элементов, таких как таблицы и графики, вместе с текстом.
Существуют разные способы разработки решения RAG, включающего изображения. Мы представили здесь один подход и рассмотрим альтернативный подход во второй статье этой серии из трех частей.
Это решение включает в себя следующие компоненты:
- Модель мультимодальных вложений Amazon Titan – Этот FM используется для создания вложений для содержимого слайд-колоды, используемой в этом посте. Будучи мультимодальной моделью, эта модель Titan может обрабатывать текст, изображения или их комбинацию в качестве входных данных и генерировать вложения. Модель Titan Multimodal Embeddings генерирует векторы (вложения) 1,024 измерений, доступ к которым осуществляется через Amazon Bedrock.
- Большой помощник по языку и зрению (LLaVA) – LLaVA – это мультимодальная модель с открытым исходным кодом для визуального и языкового понимания, которая используется для интерпретации данных на слайдах, включая визуальные элементы, такие как графики и таблицы. Мы используем версию с 7 миллиардами параметров. ЛЛаВА 1.5-7б в этом растворе.
- Создатель мудреца Амазонки – Модель LLaVA развертывается на конечной точке SageMaker с использованием служб хостинга SageMaker, и мы используем полученную конечную точку для выполнения выводов по модели LLaVA. Мы также используем блокноты SageMaker для комплексной организации и демонстрации этого решения.
- Amazon OpenSearch без сервера – OpenSearch Serverless — это бессерверная конфигурация по требованию для Сервис Amazon OpenSearch. Мы используем OpenSearch Serverless в качестве векторной базы данных для хранения вложений, сгенерированных моделью Titan Multimodal Embeddings. Индекс, созданный в бессерверной коллекции OpenSearch, служит хранилищем векторов для нашего решения RAG.
- Прием Amazon OpenSearch (OSI) – OSI — это полностью управляемый бессерверный сборщик данных, который доставляет данные в домены службы OpenSearch и бессерверные коллекции OpenSearch. В этом посте мы используем конвейер OSI для доставки данных в бессерверное векторное хранилище OpenSearch.
Архитектура решения
Конструкция решения состоит из двух частей: приема и взаимодействия с пользователем. Во время приема мы обрабатываем набор входных слайдов, преобразуя каждый слайд в изображение, генерируем вложения для этих изображений, а затем заполняем хранилище векторных данных. Эти шаги выполняются до шагов взаимодействия с пользователем.
На этапе взаимодействия с пользователем вопрос пользователя преобразуется во встраивания, и в векторной базе данных выполняется поиск по сходству, чтобы найти слайд, который потенциально может содержать ответы на вопрос пользователя. Затем мы предоставляем этот слайд (в виде файла изображения) модели LLaVA и вопрос пользователя в качестве подсказки для генерации ответа на запрос. Весь код для этого поста доступен в GitHub Сделки РЕПО.
На следующей диаграмме показана архитектура приема.
Этапы рабочего процесса следующие:
- Слайды преобразуются в файлы изображений (по одному на слайд) в формате JPG и передаются в модель Titan Multimodal Embeddings для создания вложений. В этом посте мы используем слайд-колоду под названием Обучение и развертывание Stable Diffusion с помощью AWS Trainium и AWS Inferentia на саммите AWS в Торонто в июне 2023 года, чтобы продемонстрировать решение. В демонстрационном наборе 31 слайд, поэтому мы создаем 31 набор векторных вложений, каждый из которых имеет 1,024 измерения. Мы добавляем дополнительные поля метаданных к этим сгенерированным векторным внедрениям и создаем файл JSON. Эти дополнительные поля метаданных можно использовать для выполнения расширенных поисковых запросов с использованием мощных поисковых возможностей OpenSearch.
- Сгенерированные внедрения объединяются в один файл JSON, который загружается в Простой сервис хранения Amazon (Amazon S3).
- С помощью Уведомления о событиях Amazon S3, событие помещается в Простой сервис очередей Amazon (Amazon SQS) очередь.
- Это событие в очереди SQS действует как триггер для запуска конвейера OSI, который, в свою очередь, принимает данные (файл JSON) в виде документов в бессерверный индекс OpenSearch. Обратите внимание, что индекс OpenSearch Serverless настроен как приемник для этого конвейера и создается как часть коллекции OpenSearch Serverless.
На следующей диаграмме показана архитектура взаимодействия с пользователем.
Этапы рабочего процесса следующие:
- Пользователь отправляет вопрос, связанный с загруженным набором слайдов.
- Пользовательский ввод преобразуется во внедрения с использованием модели Titan Multimodal Embeddings, доступ к которой осуществляется через Amazon Bedrock. С использованием этих вложений выполняется векторный поиск OpenSearch. Мы выполняем поиск по k-ближайшим соседям (k=1), чтобы получить наиболее релевантное вложение, соответствующее запросу пользователя. Установка k=1 позволяет получить слайд, наиболее соответствующий вопросу пользователя.
- Метаданные ответа OpenSearch Serverless содержат путь к изображению, соответствующему наиболее релевантному слайду.
- Подсказка создается путем объединения вопроса пользователя и пути к изображению и передается в LLaVA, размещенную на SageMaker. Модель LLaVA способна понять вопрос пользователя и ответить на него, изучая данные на изображении.
- Результат этого вывода возвращается пользователю.
Эти шаги подробно обсуждаются в следующих разделах. См. Итоги раздел со скриншотами и подробностями о выходе.
Предпосылки
Чтобы реализовать решение, представленное в этом посте, у вас должен быть Аккаунт AWS и знакомство с FM, Amazon Bedrock, SageMaker и OpenSearch Service.
В этом решении используется модель Titan Multimodal Embeddings. Убедитесь, что эта модель включена для использования в Amazon Bedrock. На консоли Amazon Bedrock выберите Доступ к модели в панели навигации. Если включена поддержка Titan Multimodal Embeddings, в статусе доступа будет указано: Доступ предоставлен.
Если модель недоступна, включите доступ к модели, выбрав Управление доступом к модели, выбирая Мультимодальные вложения Titan G1, и выбор Запросить доступ к модели. Модель сразу же становится доступной для использования.
Используйте шаблон AWS CloudFormation для создания стека решений.
Используйте одно из следующих AWS CloudFormation шаблоны (в зависимости от вашего региона) для запуска ресурсов решения.
AWS Регион | Ссылка |
---|---|
us-east-1 |
|
us-west-2 |
После успешного создания стека перейдите к его Выходы вкладку в консоли AWS CloudFormation и запишите значение MultimodalCollectionEndpoint
, который мы используем на последующих шагах.
Шаблон CloudFormation создает следующие ресурсы:
- Роли IAM - Следующее Управление идентификацией и доступом AWS (IAM) роли созданы. Обновите эти роли, чтобы применить их. разрешения с наименьшими привилегиями.
SMExecutionRole
с полным доступом к Amazon S3, SageMaker, OpenSearch Service и Bedrock.OSPipelineExecutionRole
с доступом к определенным действиям Amazon SQS и OSI.
- Блокнот SageMaker – Весь код для этого поста выполняется через этот блокнот.
- Бессерверная коллекция OpenSearch – Это векторная база данных для хранения и извлечения вложений.
- конвейер OSI – Это конвейер для приема данных в OpenSearch Serverless.
- Ковш S3 – Все данные для этого поста хранятся в этом ведре.
- очередь SQS – В эту очередь помещаются события, запускающие запуск конвейера OSI.
Шаблон CloudFormation настраивает конвейер OSI с обработкой Amazon S3 и Amazon SQS в качестве источника и бессерверным индексом OpenSearch в качестве приемника. Любые объекты, созданные в указанном сегменте S3 и префиксе (multimodal/osi-embeddings-json
) вызовет уведомления SQS, которые используются конвейером OSI для приема данных в OpenSearch Serverless.
Шаблон CloudFormation также создает сеть, шифрованиеи доступ к данным политики, необходимые для бессерверной коллекции OpenSearch. Обновите эти политики, чтобы применить разрешения с наименьшими привилегиями.
Обратите внимание, что имя шаблона CloudFormation упоминается в записных книжках SageMaker. Если имя шаблона по умолчанию изменено, обязательно обновите его в globals.py
Проверить решение
После выполнения необходимых шагов и успешного создания стека CloudFormation вы готовы протестировать решение:
- На консоли SageMaker выберите Ноутбуки в навигационной панели.
- Выберите
MultimodalNotebookInstance
экземпляр ноутбука и выберите Откройте JupyterLab. - In File Browser, перейдите в папку записных книжек, чтобы просмотреть записные книжки и вспомогательные файлы.
Блокноты пронумерованы в той последовательности, в которой они запускаются. Инструкции и комментарии в каждом блокноте описывают действия, выполняемые этим блокнотом. Мы запускаем эти блокноты один за другим.
- Выберите 0_deploy_llava.ipynb чтобы открыть его в JupyterLab.
- На Run Меню, выберите Запустить все ячейки чтобы запустить код в этом блокноте.
В этом блокноте модель LLaVA-v1.5-7B развертывается на конечной точке SageMaker. В этом блокноте загружаем модель LLaVA-v1.5-7B из HuggingFace Hub, заменяем скрипт inference.py на llava_inference.pyи создайте файл model.tar.gz для этой модели. Файл model.tar.gz загружается в Amazon S3 и используется для развертывания модели на конечной точке SageMaker. llava_inference.py В скрипте есть дополнительный код, позволяющий читать файл изображения из Amazon S3 и выполнять по нему логический вывод.
- Выберите 1_data_prep.ipynb чтобы открыть его в JupyterLab.
- На Run Меню, выберите Запустить все ячейки чтобы запустить код в этом блокноте.
Этот блокнот загружает слайд-колода, преобразует каждый слайд в формат файла JPG и загружает их в корзину S3, используемую для этой публикации.
- Выберите 2_data_ingestion.ipynb чтобы открыть его в JupyterLab.
- На Run Меню, выберите Запустить все ячейки чтобы запустить код в этом блокноте.
В этом блокноте делаем следующее:
- Мы создаем индекс в коллекции OpenSearch Serverless. Этот индекс хранит данные внедрения для набора слайдов. См. следующий код:
- Мы используем модель Titan Multimodal Embeddings для преобразования изображений JPG, созданных в предыдущем блокноте, в векторные внедрения. Эти внедрения и дополнительные метаданные (например, путь S3 к файлу изображения) сохраняются в файле JSON и загружаются в Amazon S3. Обратите внимание, что создается один файл JSON, который содержит документы для всех слайдов (изображений), преобразованных во встраивания. В следующем фрагменте кода показано, как изображение (в виде строки в кодировке Base64) преобразуется во встроенные элементы:
- Это действие запускает конвейер приема OpenSearch, который обрабатывает файл и помещает его в бессерверный индекс OpenSearch. Ниже приведен образец созданного файла JSON. (В примере кода показан вектор с четырьмя измерениями. Модель Titan Multimodal Embeddings генерирует 1,024 измерения.)
- Выберите 3_rag_inference.ipynb чтобы открыть его в JupyterLab.
- На Run Меню, выберите Запустить все ячейки чтобы запустить код в этом блокноте.
В этом блокноте реализовано решение RAG: мы преобразуем вопрос пользователя во встраивания, находим похожее изображение (слайд) из векторной базы данных и предоставляем полученное изображение в LLaVA для генерации ответа на вопрос пользователя. Мы используем следующий шаблон приглашения:
Следующий фрагмент кода описывает рабочий процесс RAG:
Итоги
Ниже приводится подборка некоторых вопросов и ответов пользователей, полученных в результате нашей реализации. Question столбец фиксирует вопрос пользователя, а столбец Ответ Столбец — это текстовый ответ, сгенерированный LLaVA. Фото товара — это k-ближайшее (k=1) совпадение слайдов, возвращаемое бессерверным векторным поиском OpenSearch. LLaVA интерпретирует этот слайд, чтобы дать ответ.
Результаты мультимодального RAG
Question | Ответ | Фото товара |
---|---|---|
Как Inf2 сравнивается по производительности с сопоставимыми экземплярами EC2? Мне нужны цифры. | Согласно слайдам, инстансы Inf2 от AWS Inferentia2 обеспечивают до 4 раз большую пропускную способность и в 10 раз меньшую задержку по сравнению с сопоставимыми инстансами EC2. | |
Что же предоставляют сервисы AWS AI/ML в соответствии с маховиком AI/ML? | Сервисы AWS AI/ML обеспечивают более высокую стоимость работы, новые возможности и инвестиции в инновации. | |
Насколько больше параметров у GPT-2 по сравнению с GPT-3? Какова численная разница между размером параметра GPT-2 и GPT-3? | Согласно слайду, GPT-3 имеет 175 миллиардов параметров, а GPT-2 — 1.5 миллиарда параметров. Численная разница между размером параметра GPT-2 и GPT-3 составляет 173.5 миллиарда. | |
Что такое кварки в физике элементарных частиц? | В слайд-колоде я не нашел ответа на этот вопрос. |
Не стесняйтесь распространять это решение на свои слайды. Просто обновите переменную SLIDE_DECK в globals.py, указав URL-адрес вашего набора слайдов, и выполните шаги по приему, подробно описанные в предыдущем разделе.
Функции
Вы можете использовать панели мониторинга OpenSearch для взаимодействия с API OpenSearch и запуска быстрых тестов вашего индекса и полученных данных. На следующем снимке экрана показан пример GET панели управления OpenSearch.
Убирать
Чтобы избежать будущих расходов, удалите созданные вами ресурсы. Вы можете сделать это, удалив стек через консоль CloudFormation.
Кроме того, удалите конечную точку вывода SageMaker, созданную для вывода LLaVA. Вы можете сделать это, раскомментировав шаг очистки в 3_rag_inference.ipynb и запустив ячейку, или удалив конечную точку через консоль SageMaker: выберите вывод и Endpoints в панели навигации, затем выберите конечную точку и удалите ее.
Заключение
Предприятия постоянно создают новый контент, а слайды — это общий механизм, используемый для обмена и распространения информации внутри организации и за ее пределами среди клиентов или на конференциях. Со временем богатая информация может остаться скрытой в нетекстовых формах, таких как графики и таблицы, в этих слайдах. Вы можете использовать это решение и возможности мультимодальных FM, таких как модель Titan Multimodal Embeddings и LLaVA, для поиска новой информации или раскрытия новых взглядов на контент в слайдах.
Мы рекомендуем вам узнать больше, изучив Amazon SageMaker JumpStart, Модели Амазон Титан, Amazon Bedrock и OpenSearch Service, а также создать решение с использованием примера реализации, представленного в этом посте.
Ждите еще двух публикаций в этой серии. Во второй части рассматривается еще один подход, который вы можете использовать для общения со слайдами. Этот подход генерирует и сохраняет выводы LLaVA и использует эти сохраненные выводы для ответа на запросы пользователей. В части 2 сравниваются два подхода.
Об авторах
Амит Арора является архитектором-специалистом по искусственному интеллекту и машинному обучению в Amazon Web Services, помогая корпоративным клиентам использовать облачные сервисы машинного обучения для быстрого масштабирования своих инноваций. Он также является адъюнкт-лектором программы MS по науке о данных и аналитике в Джорджтаунском университете в Вашингтоне, округ Колумбия.
Манджу Прасад является старшим архитектором решений в отделе стратегических счетов Amazon Web Services. Она специализируется на предоставлении технических рекомендаций в различных областях, включая AI/ML, для крупных клиентов M&E. До прихода в AWS она проектировала и создавала решения для компаний сектора финансовых услуг, а также для стартапов.
Арчана Инапуди — старший архитектор решений в AWS, занимающийся поддержкой стратегических клиентов. Она имеет более чем десятилетний опыт помощи клиентам в проектировании и создании решений для анализа данных и баз данных. Она увлечена использованием технологий для повышения ценности клиентов и достижения бизнес-результатов.
Антара Раиса — архитектор решений искусственного интеллекта и машинного обучения в Amazon Web Services, поддерживающий стратегических клиентов из Далласа, штат Техас. У нее также есть предыдущий опыт работы с крупными корпоративными партнерами в AWS, где она работала архитектором решений для успеха партнеров для собственных цифровых клиентов.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-1/
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 10
- 100
- 13
- 15%
- 16
- 173
- 20
- 2023
- 26%
- 29
- 31
- 7
- 8
- 9
- a
- в состоянии
- О нас
- доступ
- Доступ
- Учетные записи
- Достигать
- Действие
- действия
- акты
- Добавить
- дополнительный
- адъюнкт
- приход
- против
- AI
- AI / ML
- Все
- позволять
- вдоль
- причислены
- Amazon
- Создатель мудреца Амазонки
- Amazon Web Services
- an
- аналитика
- и
- Другой
- ответ
- ответ
- ответы
- любой
- API
- Применить
- подхода
- подходы
- архитектура
- МЫ
- AS
- спросить
- помощник
- связанный
- At
- аудио
- дополненная
- Auth
- доступен
- избежать
- AWS
- AWS CloudFormation
- основанный
- BE
- было
- Лучшая
- между
- миллиард
- тело
- строить
- Строительство
- построенный
- бизнес
- by
- CAN
- возможности
- возможности
- перехватывает
- ячейка
- менялась
- расходы
- Выберите
- Выбирая
- клиент
- код
- лыжных шлемов
- Коллекции
- коллектор
- Column
- сочетание
- комбинируя
- Комментарии
- Общий
- Компании
- сравнимый
- сравнить
- сравненный
- полный
- Заполненная
- компоненты
- сама концепция
- конференции
- Конфигурация
- настроить
- состоит
- Консоли
- содержать
- содержащегося
- содержит
- содержание
- контентного создание
- конвертировать
- переделанный
- преобразование
- соответствующий
- может
- Обложки
- Создайте
- создали
- создает
- Создающий
- создание
- Полномочия
- клиент
- Клиенты
- Dallas
- приборная панель
- щитки
- данным
- Анализ данных
- наука о данных
- База данных
- десятилетие
- палуба
- По умолчанию
- доставить
- обеспечивает
- демонстрировать
- в зависимости
- развертывание
- развернуть
- развертывание
- развертывает
- описывать
- Проект
- предназначенный
- подробность
- подробный
- подробнее
- ДИКТ
- DID
- разница
- различный
- Вещание
- Интернет
- Размеры
- размеры
- обнаружить
- обсуждается
- Дисплей
- do
- Документация
- приносит
- доменов
- скачать
- загрузок
- в течение
- e
- каждый
- элементы
- встроенный
- вложения
- включить
- включен
- закодированный
- поощрять
- конец
- Конечная точка
- Двигатель
- обеспечивать
- Предприятие
- ошибка
- События
- События
- Изучение
- пример
- Кроме
- исключение
- существует
- опыт
- Исследование
- продлить
- внешне
- извлечение
- фамильярность
- Поля
- Файл
- Файлы
- финансовый
- финансовые услуги
- Найдите
- фокусируется
- следовать
- после
- следующим образом
- Что касается
- форма
- формат
- Год основания
- 4
- Бесплатно
- от
- полный
- полностью
- будущее
- порождать
- генерируется
- генерирует
- поколение
- генеративный
- Генеративный ИИ
- Джорджтаун
- получить
- GitHub
- будет
- Графики
- руководство
- Есть
- he
- полезный
- помощь
- здесь
- Скрытый
- высший
- Хиты
- кашель
- состоялся
- хостинг
- услуги хостинга
- хостов
- Как
- Однако
- HTML
- HTTP
- HTTPS
- хаб
- ОбниматьЛицо
- i
- Личность
- if
- иллюстрирует
- изображение
- изображений
- немедленно
- осуществлять
- реализация
- инвентарь
- in
- включают
- включает в себя
- В том числе
- индекс
- Индексы
- информация
- Инновации
- инновации
- вход
- пример
- инструкции
- взаимодействовать
- взаимодействие
- внутренне
- в
- инвестиций
- IT
- присоединение
- JPG
- JSON
- июнь
- язык
- большой
- Задержка
- запуск
- УЧИТЬСЯ
- изучение
- такое как
- LINK
- Лама
- локальным
- ниже
- машина
- обучение с помощью машины
- сделать
- управлять
- управляемого
- многих
- Совпадение
- согласование
- механизм
- Меню
- Метаданные
- метод
- ML
- модель
- Модели
- БОЛЕЕ
- самых
- MS
- с разными
- имя
- родной
- Откройте
- Навигация
- Необходимость
- Новые
- Ничто
- в своих размышлениях
- ноутбук
- Уведомления
- сейчас
- нумерованный
- номера
- объекты
- of
- предлагают
- on
- On-Demand
- ONE
- только
- открытый
- с открытым исходным кодом
- or
- организация
- OS
- наши
- внешний
- Результаты
- выходной
- за
- хлеб
- параметр
- параметры
- часть
- партнер
- партнеры
- части
- Прошло
- страстный
- путь
- для
- Выполнять
- производительность
- выполнены
- Разрешения
- перспективы
- фаза
- Физика
- Картинки
- трубопровод
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- сборах
- После
- Блог
- потенциально
- мощностью
- мощный
- Predictor
- представить
- представлены
- предыдущий
- Предварительный
- процесс
- Обработанный
- Процессы
- обработка
- FitPartner™
- свойства
- обеспечивать
- при условии
- приводит
- обеспечение
- положил
- Кварки
- Запросы
- вопрос
- Вопросы
- САЙТ
- тряпка
- ассортимент
- быстро
- Reading
- готовый
- реальный мир
- получила
- ссылка
- область
- Связанный
- соответствующие
- оставаться
- замещать
- запросить
- обязательный
- Полезные ресурсы
- Реагируйте
- ответ
- ответы
- результат
- в результате
- Итоги
- поиск
- возвращают
- Богатые
- роли
- Run
- Бег
- sagemaker
- Вывод SageMaker
- то же
- сообщили
- Шкала
- Наука
- скриншоты
- скрипт
- Поиск
- Во-вторых
- Раздел
- разделах
- сектор
- посмотреть
- выберите
- выбор
- старший
- Последовательность
- Серии
- Serverless
- служит
- обслуживание
- Услуги
- Сессия
- Наборы
- установка
- настройки
- Поделиться
- она
- должен
- показанный
- Шоу
- аналогичный
- просто
- просто
- одинарной
- Размер
- Слайд-шоу
- Горки
- отрывок
- So
- Решение
- Решения
- некоторые
- Источник
- специалист
- конкретный
- указанный
- стабильный
- стек
- ввод в эксплуатацию
- Область
- Статус:
- Шаг
- Шаги
- диск
- магазин
- хранить
- магазины
- хранение
- Стратегический
- строка
- последующее
- успех
- Успешно
- такие
- Саммит
- поддержки
- Убедитесь
- ТАБЛИЦЫ
- взять
- Говорить
- задачи
- Технический
- Технологии
- шаблон
- шаблоны
- тестXNUMX
- тестов
- Техас
- текст
- текстовый
- который
- Ассоциация
- информация
- их
- тогда
- Эти
- этой
- те
- пропускная способность
- время
- исполин
- титулованный
- в
- Сегодняшних
- вместе
- Торонто
- Традиционно
- траверс
- вызвать
- срабатывание
- правда
- стараться
- ОЧЕРЕДЬ
- два
- напишите
- открывай
- понимать
- понимание
- Университет
- Обновление ПО
- загружено
- URL
- использование
- используемый
- Информация о пользователе
- использования
- через
- ценностное
- переменная
- разнообразие
- версия
- с помощью
- Видео
- Вид
- видение
- визуальный
- Вашингтон
- способы
- we
- Web
- веб-сервисы
- ЧТО Ж
- Что
- Что такое
- который
- в то время как
- будете
- в
- работавший
- рабочий
- работает
- Ты
- ВАШЕ
- зефирнет