# Раздел 1: Основи на EdgeAI EdgeAI представлява промяна в парадигмата на внедряване на изкуствения интелект, като пренася AI възможностите директно към крайни устройства, вместо да разчита единствено на обработка в облака. Важно е да се разбере как EdgeAI позволява локална AI обработка на устройства с ограничени ресурси, като същевременно поддържа разумна производителност и се справя с предизвикателства като поверителност, латентност и офлайн възможности. ## Въведение В този урок ще разгледаме EdgeAI и неговите основни концепции. Ще обхванем традиционната парадигма на AI изчисления, предизвикателствата на крайното изчисление, ключовите технологии, които позволяват EdgeAI, и практическите приложения в различни индустрии. ## Цели на обучението До края на този урок ще можете: - Да разберете разликата между традиционния подход на AI, базиран на облака, и EdgeAI. - Да идентифицирате ключовите технологии, които позволяват AI обработка на крайни устройства. - Да разпознаете предимствата и ограниченията на внедряването на EdgeAI. - Да приложите знанията за EdgeAI в реални сценарии и случаи на употреба. ## Разбиране на традиционната парадигма на AI изчисления Традиционно, приложенията за генеративен AI разчитат на инфраструктура за високопроизводителни изчисления, за да изпълняват големи езикови модели (LLMs) ефективно. Организациите обикновено внедряват тези модели на GPU клъстери в облачни среди, като достъпът до техните възможности се осъществява чрез API интерфейси. Този централизираният модел работи добре за много приложения, но има присъщи ограничения, когато става въпрос за сценарии на крайно изчисление. Традиционният подход включва изпращане на потребителски заявки към отдалечени сървъри, обработката им с мощен хардуер и връщане на резултати през интернет. Въпреки че този метод предоставя достъп до най-съвременни модели, той създава зависимости от интернет свързаност, въвежда проблеми с латентността и повдига въпроси за поверителност, когато чувствителни данни трябва да бъдат предадени на външни сървъри. Има някои основни концепции, които трябва да разберем, когато работим с традиционната парадигма на AI изчисления, а именно: - **☁️ Обработка в облака**: AI моделите работят на мощна сървърна инфраструктура с високи изчислителни ресурси. - **🔌 Достъп чрез API**: Приложенията получават достъп до AI възможности чрез отдалечени API заявки, вместо локална обработка. - **🎛️ Централизирано управление на модели**: Моделите се поддържат и актуализират централизирано, което осигурява последователност, но изисква мрежова свързаност. - **📈 Скалиране на ресурси**: Облачната инфраструктура може динамично да се адаптира към променящите се изчислителни нужди. ## Предизвикателствата на крайното изчисление Крайни устройства като лаптопи, мобилни телефони и устройства от Интернет на нещата (IoT), като Raspberry Pi и NVIDIA Orin Nano, имат уникални ограничения в изчислителната мощност. Тези устройства обикновено разполагат с ограничена изчислителна мощност, памет и енергийни ресурси в сравнение с инфраструктурата на центровете за данни. Изпълнението на традиционни LLMs на такива устройства исторически е било предизвикателство поради тези хардуерни ограничения. Въпреки това, необходимостта от AI обработка на крайни устройства става все по-важна в различни сценарии. Помислете за ситуации, в които интернет свързаността е ненадеждна или недостъпна, като например отдалечени индустриални обекти, превозни средства в движение или райони с лошо мрежово покритие. Освен това, приложения, изискващи високи стандарти за сигурност, като медицински устройства, финансови системи или правителствени приложения, може да се нуждаят от локална обработка на чувствителни данни, за да се поддържат изискванията за поверителност и съответствие. ### Основни ограничения на крайното изчисление Крайните изчислителни среди се сблъскват с няколко основни ограничения, които традиционните AI решения, базирани на облака, не срещат: - **Ограничена изчислителна мощност**: Крайните устройства обикновено имат по-малко ядра на процесора и по-ниски тактови честоти в сравнение със сървърния хардуер. - **Ограничения в паметта**: Наличната RAM и капацитетът за съхранение са значително намалени на крайни устройства. - **Ограничения в енергията**: Устройства, захранвани от батерии, трябва да балансират производителността с консумацията на енергия за продължителна работа. - **Термично управление**: Компактните форм-фактори ограничават възможностите за охлаждане, което влияе на устойчивата производителност при натоварване. ## Какво е EdgeAI? ### Концепция: Определение на Edge AI Edge AI се отнася до внедряването и изпълнението на алгоритми за изкуствен интелект директно на крайни устройства—физическия хардуер, който съществува на "края" на мрежата, близо до мястото, където се генерират и събират данни. Тези устройства включват смартфони, IoT сензори, умни камери, автономни превозни средства, носими устройства и индустриално оборудване. За разлика от традиционните AI системи, които разчитат на облачни сървъри за обработка, Edge AI пренася интелигентността директно към източника на данни. В основата си Edge AI е за децентрализация на AI обработката, като я премества от централизирани центрове за данни и я разпределя в обширната мрежа от устройства, които съставляват нашата дигитална екосистема. Това представлява фундаментална промяна в архитектурата на начина, по който се проектират и внедряват AI системи. Основните концептуални стълбове на Edge AI включват: - **Обработка в близост**: Изчисленията се извършват физически близо до мястото, където произхождат данните. - **Децентрализирана интелигентност**: Възможностите за вземане на решения са разпределени между множество устройства. - **Суверенитет на данните**: Информацията остава под локален контрол, често никога не напуска устройството. - **Автономна работа**: Устройствата могат да функционират интелигентно без необходимост от постоянна свързаност. - **Вграден AI**: Интелигентността става присъща способност на ежедневните устройства. ### Визуализация на архитектурата на Edge AI ``` ┌─────────────────────────────────────────────────────────────────────┐ │ TRADITIONAL AI ARCHITECTURE │ └─────────────────────────────────────────────────────────────────────┘ │ ┌──────────────┐ Data Transfer ┌───────────────┐ API Response ┌───────────┐ │ Edge Devices ├─────────────────>│ Cloud Servers │────────────────> │ End Users │ └──────────────┘ └───────────────┘ └───────────┘ Data Model Inference Results Collection High Latency High Bandwidth Privacy Concerns ┌─────────────────────────────────────────────────────────────────────┐ │ EDGE AI ARCHITECTURE │ └─────────────────────────────────────────────────────────────────────┘ │ ┌────────────────────────────────────────────────────┐ Direct Response ┌───────────┐ │ Edge Devices with Embedded AI │───────────────────>│ End Users │ │ ┌─────────┐ ┌───────────────┐ ┌──────────────┐ │ └───────────┘ │ │ Sensors │─>│ SLM Inference │─>│ Local Action │ │ │ └─────────┘ └───────────────┘ └──────────────┘ │ └────────────────────────────────────────────────────┘ Data Low Latency Immediate Collection Processing Response No Data Transfer Enhanced Privacy ``` EdgeAI представлява промяна в парадигмата на внедряване на изкуствения интелект, като пренася AI възможностите директно към крайни устройства, вместо да разчита единствено на обработка в облака. Този подход позволява AI моделите да работят локално на устройства с ограничени изчислителни ресурси, предоставяйки възможности за реално време без необходимост от постоянна интернет свързаност. EdgeAI обхваща различни технологии и техники, предназначени да направят AI моделите по-ефективни и подходящи за внедряване на устройства с ограничени ресурси. Целта е да се поддържа разумна производителност, като същевременно значително се намаляват изчислителните и паметните изисквания на AI моделите. Нека разгледаме основните подходи, които позволяват внедряването на EdgeAI в различни типове устройства и случаи на употреба. ### Основни принципи на EdgeAI EdgeAI се основава на няколко основни принципа, които го отличават от традиционния AI, базиран на облака: - **Локална обработка**: AI изводите се извършват директно на крайното устройство без необходимост от външна свързаност. - **Оптимизация на ресурсите**: Моделите са оптимизирани специално за хардуерните ограничения на целевите устройства. - **Производителност в реално време**: Обработката се извършва с минимална латентност за приложения, чувствителни към времето. - **Поверителност по дизайн**: Чувствителните данни остават на устройството, подобрявайки сигурността и съответствието. ## Ключови технологии, които позволяват EdgeAI ### Квантизация на модела Една от най-важните техники в EdgeAI е квантизацията на модела. Този процес включва намаляване на прецизността на параметрите на модела, обикновено от 32-битови числа с плаваща запетая до 8-битови цели числа или дори формати с по-ниска прецизност. Въпреки че това намаляване на прецизността може да изглежда притеснително, изследванията показват, че много AI модели могат да запазят своята производителност дори при значително намалена прецизност. Квантизацията работи чрез картографиране на диапазона от стойности с плаваща запетая към по-малък набор от дискретни стойности. Например, вместо да се използват 32 бита за представяне на всеки параметър, квантизацията може да използва само 8 бита, което води до 4-кратно намаляване на изискванията за памет и често води до по-бързи времена за извод. ```python # Example: PyTorch model quantization import torch # Load a pre-trained model model = torch.load('large_model.pth') # Quantize the model to INT8 quantized_model = torch.quantization.quantize_dynamic( model, # model to quantize {torch.nn.Linear, torch.nn.Conv2d}, # layers to quantize dtype=torch.qint8 # quantization data type ) # Save the quantized model torch.save(quantized_model, 'quantized_model.pth') # Memory usage comparison original_size = model.size() quantized_size = quantized_model.size() print(f"Memory reduction: {original_size / quantized_size:.2f}x") ``` Различните техники за квантизация включват: - **Квантизация след обучение (PTQ)**: Прилага се след обучение на модела без необходимост от повторно обучение. - **Квантизация, осъзната за обучение (QAT)**: Включва ефектите от квантизацията по време на обучението за по-добра точност. - **Динамична квантизация**: Квантизира теглата до int8, но изчислява активациите динамично. - **Статична квантизация**: Предварително изчислява всички параметри на квантизация както за теглата, така и за активациите. За внедрявания на EdgeAI изборът на подходяща стратегия за квантизация зависи от конкретната архитектура на модела, изискванията за производителност и хардуерните възможности на целевото устройство. ### Компресия и оптимизация на модела Освен квантизацията, различни техники за компресия помагат за намаляване на размера на модела и изчислителните изисквания. Те включват: **Прореждане**: Тази техника премахва ненужни връзки или неврони от невронните мрежи. Чрез идентифициране и елиминиране на параметри, които допринасят малко за производителността на модела, прореждането може значително да намали размера на модела, като същевременно запази точността. ```python # Example: Neural network pruning in TensorFlow import tensorflow as tf import tensorflow_model_optimization as tfmot # Define the model model = tf.keras.Sequential([ tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)), tf.keras.layers.Dense(64, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) # Apply pruning during training pruning_schedule = tfmot.sparsity.keras.PolynomialDecay( initial_sparsity=0.0, final_sparsity=0.5, # 50% of connections will be pruned begin_step=0, end_step=10000 ) pruned_model = tfmot.sparsity.keras.prune_low_magnitude( model, pruning_schedule=pruning_schedule ) # Compile the pruned model pruned_model.compile( optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'] ) # Train the model while pruning pruned_model.fit(x_train, y_train, epochs=10) # Convert to a smaller model for deployment final_model = tfmot.sparsity.keras.strip_pruning(pruned_model) ``` **Дистилация на знания**: Този подход включва обучение на по-малък "ученик" модел да имитира поведението на по-голям "учител" модел. Ученикът се учи да приближава изходите на учителя, често постигайки подобна производителност със значително по-малко параметри. **Оптимизация на архитектурата на модела**: Изследователите са разработили специализирани архитектури, предназначени специално за крайно внедряване, като MobileNets, EfficientNets и други леки архитектури, които балансират производителността с изчислителната ефективност. ### Малки езикови модели (SLMs) Нарастваща тенденция в EdgeAI е разработването на малки езикови модели (SLMs). Тези модели са проектирани от самото начало да бъдат компактни и ефективни, като същевременно предоставят значими възможности за естествен език. SLMs постигат това чрез внимателен избор на архитектура, ефективни техники за обучение и фокусирано обучение върху специфични домейни или задачи. За разлика от традиционните подходи, които включват компресиране на големи модели, SLMs често се обучават с по-малки набори от данни и оптимизирани архитектури, специално проектирани за крайно внедряване. Този подход може да доведе до модели, които не само са по-малки, но и по-ефективни за специфични случаи на употреба. ## Хардуерно ускорение за EdgeAI Съвременните крайни устройства все повече включват специализиран хардуер, предназначен за ускоряване на AI натоварвания: ### Невронни процесорни единици (NPUs) NPUs са специализирани процесори, предназначени специално за изчисления на невронни мрежи. Тези чипове могат да изпълняват задачи за AI изводи много по-ефективно от традиционните CPU, често с по-ниска консумация на енергия. Много съвременни смартфони, лаптопи и IoT устройства вече включват NPUs, за да позволят AI обработка на устройството. ```csharp // Example: Using Windows ML to target NPU acceleration in C# using Microsoft.ML.OnnxRuntime; // Create session options with NPU provider var sessionOptions = new SessionOptions(); sessionOptions.AppendExecutionProvider_DmlExecutionProvider(); // DirectML for NPU // Load the ONNX model using var session = new InferenceSession("model.onnx", sessionOptions); // Create input tensor var inputTensor = new DenseTensor(new[] { 1, 3, 224, 224 }); // Example input shape var inputs = new List { NamedOnnxValue.CreateFromTensor("input", inputTensor) }; // Run inference with NPU acceleration using var results = session.Run(inputs); var output = results.First().AsTensor(); // Process output Console.WriteLine($"Inference result: {output[0]}"); ``` Устройства с NPUs включват: - **Apple**: Чипове от серия A и M с Neural Engine - **Qualcomm**: Процесори Snapdragon с Hexagon DSP/NPU - **Samsung**: Процесори Exynos с NPU - **Intel**: Movidius VPUs и ускорители Habana Labs - **Microsoft**: Windows Copilot+ компютри с NPUs ### 🎮 GPU ускорение Въпреки че крайни устройства може да нямат мощните GPU, които се намират в центровете за данни, много от тях все пак включват интегрирани или дискретни GPU, които могат да ускорят AI натоварванията. Съвременните мобилни GPU и интегрирани графични процесори могат да предоставят значителни подобрения в производителността за задачи за AI изводи. ```python # Example: Using TensorRT for GPU acceleration on edge devices import tensorrt as trt import numpy as np # Create TensorRT logger and builder TRT_LOGGER = trt.Logger(trt.Logger.WARNING) builder = trt.Builder(TRT_LOGGER) network = builder.create_network(1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) parser = trt.OnnxParser(network, TRT_LOGGER) # Parse ONNX model with open('model.onnx', 'rb') as model: parser.parse(model.read()) # Configure builder config = builder.create_builder_config() config.max_workspace_size = 1 << 28 # 256 MiB config.set_flag(trt.BuilderFlag.FP16) # Use FP16 precision for edge GPU # Build and serialize engine engine = builder.build_engine(network, config) with open('model.trt', 'wb') as f: f.write(engine.serialize()) ``` ### Оптимизация на CPU Дори устройства само с CPU могат да се възползват от EdgeAI чрез оптимизирани реализации. Съвременните CPU включват специализирани инструкции за AI натоварвания, а софтуерни рамки са разработени, за да максимизират производителността на CPU за AI изводи. ```bash # Example: Using XNNPACK with TFLite for optimized CPU inference # Compilation command with XNNPACK acceleration enabled bazel build -c opt --copt=-O3 --copt=-march=native \ tensorflow/lite/delegates/xnnpack:libxnnpack_delegate.so # Convert TensorFlow model to TFLite with optimization tflite_convert \ --keras_model_file=model.h5 \ --output_file=model.tflite \ --inference_type=FLOAT \ --experimental_new_converter \ --experimental_new_quantizer ``` За софтуерните инженери, работещи с EdgeAI, разбирането как да се използват тези опции за хардуерно ускорение е критично за оптимизиране на производителността на изводите и енергийната ефективност на целевите устройства. ## Предимства на EdgeAI ### Поверителност и сигурност Едно от най-значимите предимства на EdgeAI е подобрената поверителност и сигурност. Чрез обработка на данни локално на устройството, чувствителната информация никога не напуска контрола на потребителя. Това е особено важно за приложения, които обработват лични данни, медицинска информация или поверителни бизнес данни. ### Намалена латентност EdgeAI елиминира необходимостта от изпращане на данни към отдалечени сървъри за обработка, значително намалявайки латентността. Това е от решаващо значение за приложения в реално време, като автономни превозни средства, индустриална автоматизация или интерактивни приложения, където са необходими незабавни отговори. ### Офлайн възможности EdgeAI позволява AI функционалност дори когато интернет свързаността не е налична. Това е ценно за приложения в отдалечени локации, по време на пътуване или в ситуации, където надеждността на мрежата е проблем. ### Ефективност на разходите Чрез намаляване на зависимостта от AI услуги, базирани на облака, EdgeAI може да помогне за намаляване на оперативните разходи, особено за приложения с високи обеми на употреба. Организациите могат да избегнат текущите API разходи и да намалят изискванията за честотна лента. ### Скалиране EdgeAI разпределя изчислителното нат - [02: EdgeAI Приложения](02.RealWorldCaseStudies.md) --- **Отказ от отговорност**: Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или погрешни интерпретации, произтичащи от използването на този превод.