Угода щодо типу даних.
У моделі маршруту Neat є два контракти:
- публічний контракт, який ваш застосунок бачить через
Tensor,Sample,InputOptions, специфікації моделі та кінцеві точки графа; - контракт маршруту моделі Neat визначається на основі скомпільованого архіву моделі та обраного шляху попередньої/пост-обробки.
Не варто вважати, що кожна публічна межа використовує формат FP32. Деякі межі містять зображення, кодовані медіадані, упаковані дані для виявлення об’єктів, тензори INT8, тензори BF16 або семантику тензорів, визначену застосунком. Спочатку перевірте специфікації; специфікації є основою угоди.
У межах маршруту Neat додає етапи квантування, теселяції, приведення типів, детеселяції, деквантування та постобробки, коли це передбачено контрактом скомпільованої моделі.
Чотири приклади вхідних даних MLA.
Архів моделі містить інформацію про те, що Neat дві важливі речі щодо першого етапу MLA:
- тип даних для вхідних даних MLA, зазвичай BF16 або INT8;
- чи вже реалізовано теселяцію на стороні MLA в скомпільованому ядрі.
Таким чином, ми отримуємо чотири родини графів для попередньої обробки:
| Тип даних MLA. | MLA tess | Попередня обробка сімейства графів. | Що Neat вставляє перед MLA? |
|---|---|---|---|
| BF16 | так | Preproc | Змінюйте розмір, конвертуйте кольори, нормалізуйте. На етапі MLA відбувається внутрішня теселяція. |
| BF16 | ні | Tess | Змінюйте розмір, конвертуйте кольори, нормалізуйте, розбивайте на мозаїку. |
| INT8 | так | Quant | Змінюйте розмір, конвертуйте кольори, нормалізуйте, квантуйте. На етапі MLA відбувається внутрішня теселяція. |
| INT8 | ні | QuantTess | Змінюйте розмір, конвертуйте кольори, нормалізуйте, квантуйте, розбивайте на мозаїку. |
Перегляньте ResolvedPreprocessPlan, щоб дізнатися, який план обрав планувальник.