HomeBlogTesla DigitalOptimizing AI Models for Edge Devices

Optimizing AI Models for Edge Devices

As we push AI to the edges, where power, memory, and latency are scarce, we're forced to reinvent our approach to model design. We're talking precision-engineered models that thrive on devices with limited processing capabilities – think microcontrollers, SoCs, and GPU accelerators. To get there, we're leveraging techniques like quantization, knowledge distillation, and neural network pruning to slim down our models without sacrificing performance. We're also exploring AI model optimization tools like TensorFlow Lite and OpenVINO to unleash our models' full potential on the edge. The efficiency and effectiveness of these models might just surprise you – their true limits are still waiting to be tested.

Benefits of Edge AI Models

As we step into the domain of Edge AI models, we're met with a world of possibilities that redefine the way we interact with artificial intelligence.

The benefits of these models are vast, and they're transforming the way we live, work, and interact with the world around us. One of the most significant advantages of Edge AI is its ability to process data in real-time, without relying on a centralized server or cloud.

This means that we can enjoy faster, more efficient, and more personalized experiences. By leveraging AI and ML solutions, we can automate, simplify, and accelerate business journeys, making Edge AI a valuable tool for various industries.

Additionally, Edge AI can be combined with computer vision to enable image recognition and object detection, further expanding its capabilities.

With Edge AI, we can also enjoy greater autonomy and control over our data. By processing data locally, we can keep our sensitive information private and secure, without having to send it to a cloud or server.

This is especially important in an era where data privacy is becoming increasingly important. Additionally, Edge AI enables us to create more immersive and interactive experiences, such as augmented reality and IoT applications.

As we continue to push the boundaries of Edge AI, we're seeing new applications emerge in areas like healthcare, education, and entertainment.

For example, Edge AI can be used to power medical devices that provide real-time health monitoring and analysis. It can also be used to create personalized learning experiences that adapt to individual students' needs.

The possibilities are endless, and we're excited to see how Edge AI will continue to transform our lives in the years to come.

Challenges of Edge AI

As we push the boundaries of Edge AI, we're met with the harsh realities of its limitations.

Our models are only as strong as the processing power that fuels them, and the truth is, we're often working with less-than-ideal hardware.

To overcome these challenges, many companies are turning to innovative solutions like AI ML Development and outsourcing to experts in the field.

Now, we must confront the trio of troubles that threaten to undermine our progress: limited processing power, data security concerns, and bandwidth constraints.

Limited Processing Power

We're pushing AI to the edge – literally – by deploying it on devices with limited processing power, and that's where things get tricky.

Our innovative spirit is fueled by the prospect of liberating AI from the shackles of data centers and cloud computing. However, the harsh reality is that edge devices, such as smartphones, smart home devices, and autonomous vehicles, have limited processing capabilities.

This constraint forces us to rethink how we design and optimize AI models, particularly when it comes to data annotation and ensuring that our models can accurately recognize features in new images and videos.

By leveraging techniques like image and video annotation, we can create more efficient models that can operate effectively on edge devices.

The processing power of edge devices is a fraction of what's available in data centers or the cloud. This limited capacity restricts the complexity and size of AI models we can deploy.

As a result, we must carefully select the most critical features and algorithms to include in our models. We're constantly seeking ways to balance model accuracy with processing efficiency.

Data Security Concerns

Edge AI's rise to power is tempered by the specter of data security concerns. As we push the boundaries of what's possible with edge devices, we're also creating new vulnerabilities that can be exploited by malicious actors.

The decentralized nature of edge AI, where data is processed and stored on devices at the edge of the network, increases the attack surface and makes it harder to secure. Data annotation techniques such as image and video annotation are essential to develop AI models, which further require data security and storage at various stages.

To handle and label datasets effectively for tasks such as image and video annotation machine learning model, edge devices demand additional measures.

We're not just talking about protecting sensitive information; we're talking about safeguarding our very way of life. As edge AI becomes more pervasive, it's not just our personal data that's at risk – it's our homes, our cities, and our critical infrastructure.

The stakes are high, and we need to take a proactive approach to securing our edge AI systems. This means implementing robust encryption, secure authentication protocols, and regular software updates to patch vulnerabilities.

It also means being mindful of data storage and transmission, ensuring that sensitive information is handled with care. By prioritizing data security, we can tap into the full potential of edge AI and create a safer, more liberated world for all.

Bandwidth Constraints

Bandwidth bottlenecks strangle our AI ambitions, threatening to turn the promise of edge computing into a distant dream.

We're on the cusp of revolutionizing industries with AI-driven insights, but our progress is being stifled by the very infrastructure that's supposed to support it.

The harsh reality is that many edge devices are still tethered to slow, unreliable networks that can't keep up with the demands of data-hungry AI models.

We're talking about a world where smart cameras can detect anomalies in real-time, where industrial sensors can predict equipment failures before they happen, and where autonomous vehicles can navigate complex environments with ease.

But without sufficient bandwidth, these applications are reduced to mere fantasies.

We need to break free from the shackles of bandwidth constraints and tap the true potential of edge AI.

It's time to rethink our network architectures, to explore new technologies that can deliver the speed and reliability we need to power our AI ambitions.

The future of edge computing depends on it.

Types of Edge Devices

Relying on billions of IoT devices that constantly produce, transmit, and consume vast amounts of data, today's data-intensive AI models crave rapid, on-device processing capabilities that not only meet our increasingly insatiable data appetites but also challenge our expectations.

As we endeavor to break free from the shackles of cloud dependency, we're witnessing a proliferation of edge devices that are redefining the AI landscape.

These devices are the unsung heroes of our data-driven world, working tirelessly behind the scenes to process, analyze, and act on the data that surrounds us.

From smartphones and smart home devices to industrial sensors and autonomous vehicles, the types of edge devices are as diverse as they're numerous.

We've consumer-grade devices like smartwatches and fitness trackers that monitor our every move, while industrial-grade devices like robots and drones are revolutionizing the manufacturing and logistics sectors.

Then there are the specialized devices like medical implants and wearables that are transforming the healthcare industry.

Each of these devices has its unique characteristics, capabilities, and constraints, requiring AI models that are tailored to their specific needs.

As we explore the vast expanse of edge devices, we're forced to confront the harsh realities of device heterogeneity.

With varying levels of processing power, memory, and storage, these devices demand AI models that are adaptable, efficient, and resilient.

Model Compression Techniques

As we push the boundaries of edge AI, we're faced with the formidable task of squeezing massive AI models into the limited confines of these devices. The constraints of memory, power, and computational resources on edge devices demand innovative solutions to compress AI models without sacrificing their performance. This is where model compression techniques come in – a set of methods that liberate AI models from their bulky weights, allowing them to thrive in the wild.

Technique Description
Quantization Reduces the precision of model weights, resulting in significant memory savings.
Knowledge Distillation Transfers knowledge from a large model to a smaller one, preserving performance.
Huffman Coding Compresses model weights using variable-length codes, reducing storage needs.
Arithmetic Coding Encodes model weights using a probability-based approach, achieving high compression ratios.
Lossless Compression Utilizes algorithms like LZ77 and LZ78 to compress model weights without losing information.

Neural Network Pruning

As we continue to refine our AI models, we're faced with the formidable task of stripping away the unnecessary, of cutting through the noise to reveal the lean, efficient machine beneath.

We'll explore the art of neural network pruning, where we'll examine weight pruning techniques that surgically remove redundant connections, model compression methods that distill complex networks into their essence, and structural sparsity strategies that reshape the very architecture of our models.

Weight Pruning Techniques

We're about to enter a neural network's equivalent of a sparse, serene landscape – one where weight pruning techniques reign supreme. This technique is a form of neural network pruning that involves removing non-essential weights from a model, freeing it from the weight of unnecessary computations. By doing so, we can liberate our models from the constraints of heavy computational loads, allowing them to run efficiently on edge devices.

Weight Pruning Techniques Description
Heuristic Pruning Prune weights based on a predefined heuristic, such as the magnitude of the weight.
Regularized Pruning Prune weights by adding a regularization term to the loss function.
Gradual Pruning Prune weights gradually during the training process.
Dynamic Pruning Prune weights dynamically based on the input data.
Deep Connection Pruning Prune entire connections between layers.

Model Compression Methods

A vast, uncharted expanse of model compression methods stretches before us, with neural network pruning as its guiding star.

As we venture into this territory, we're driven by the promise of liberation from the constraints of resource-intensive AI models. Neural network pruning, a key model compression method, is our beacon, illuminating the path to efficient AI deployment on edge devices.

Pruning involves systematically removing non-essential neural connections, much like a sculptor chisels away at excess stone to reveal the masterpiece within.

By eliminating redundant or low-value connections, we can substantially reduce the model's computational overhead without sacrificing its accuracy. This process can be done manually or automatically, using techniques such as heuristic pruning or automated neural network pruning algorithms.

As we prune our models, we're not only reducing their size and computational requirements but also enhancing their performance.

By focusing on the most critical connections, we're allowing our models to run faster and more efficiently, freeing them from the constraints of resource-intensive hardware.

With neural network pruning, we're releasing the potential for AI to thrive on edge devices, bringing us closer to the liberation we seek.

Structural Sparsity Strategies

Beyond the domain of brute-force model compression lies a more nuanced approach: structural sparsity strategies, where neural network pruning takes center stage. This strategy involves identifying and removing non-essential neural connections, freeing our models from the weight of unnecessary computations. As we venture into this sphere, we find ourselves at the threshold of liberation, where AI models are no longer bound by the constraints of heavy computational loads.

Pruning Method Description
Manual Pruning Remove specific neural connections based on human intuition or manual analysis.
Automatic Pruning Use algorithms to automatically identify and remove non-essential neural connections.
Dynamic Pruning Prune neural connections during the training process, allowing the model to adapt and learn.
Incremental Pruning Prune neural connections in stages, gradually refining the model's architecture.

As we wield the power of neural network pruning, we begin to release the true potential of our AI models. By stripping away the non-essential, we reveal the elegant simplicity of our models, liberating them to perform at their best in the most demanding edge device environments.

AI Model Optimization Tools

As we plunge into the world of AI model optimization, the tools at our disposal become the linchpin of our success.

We're no longer bound by the shackles of cumbersome models, and the freedom to innovate is within our grasp. With the right tools, we can liberate our AI models from the constraints of size, speed, and power consumption.

We wield the power of pruning tools like TensorFlow Model Optimization Toolkit and OpenVINO, which strip away unnecessary weights and connections, leaving our models lean and mean.

Quantization tools like TensorFlow Lite and Core ML reduce the precision of our models' weights, triggering a torrent of speed and efficiency.

Knowledge distillation tools like Distiller and Keras distill the essence of our models, transferring knowledge from cumbersome teachers to agile students.

We harness the might of model compression tools like SqueezeNet and MobileNet, which shrink our models to a fraction of their original size.

We orchestrate the symphony of optimization with frameworks like Apache TVM and TensorFlow, which harmonize the disparate tools and techniques into a cohesive whole.

With these tools at our command, we're free to push the boundaries of what's possible, to innovate and experiment, and to set free the full fury of AI on the world.

The future is ours to shape, and the tools of AI model optimization are our instruments of liberation.

Edge Device Hardware Options

As we push AI models to the edge, we're met with a critical choice: what hardware will we use to bring them to life?

We're talking about the tiny powerhouses that will crunch data in real-time, and the two front-runners are microcontrollers and Systems on a Chip (SoCs), and GPU accelerators.

These options represent a fork in the road, each promising to turbocharge our AI models in its own unique way.

Microcontrollers and SoCs

Our edge devices' processing power is what sets them apart, and microcontrollers and Systems-on-Chip (SoCs) are the brains behind this operation. These tiny powerhouses are the key to tapping the full potential of our AI models, allowing them to run efficiently and effectively on the edge. But what exactly are microcontrollers and SoCs, and how do they differ?

Microcontrollers Systems-on-Chip (SoCs)
Small, low-power devices that execute specific tasks Integrated circuits that combine multiple components, including processors, memory, and interfaces
Typically used in simple applications, such as sensors and actuators Used in more complex applications, such as smartphones and laptops
Limited processing power and memory More powerful processing capabilities and larger memory capacity
Often used in IoT devices, such as smart home appliances Used in a wide range of applications, from consumer electronics to industrial control systems
Typically cost-effective and low-power consumption Can be more expensive and power-hungry than microcontrollers

GPU Accelerators

Millions of calculations per second – that's the power we need to tap the true potential of our AI models. We're not just talking about crunching numbers; we're talking about triggering a revolution in edge computing.

And that's where GPU accelerators come in – the game-changers that can catapult our AI models to unprecedented heights.

Imagine a world where AI models can process vast amounts of data in real-time, without being tethered to the cloud.

That's the world we're creating with GPU accelerators. These tiny powerhouses can handle the most demanding AI workloads, from computer vision to natural language processing.

With their massively parallel architecture, they can perform calculations at speeds that leave traditional CPUs in the dust.

But what does this mean for us?

It means we can deploy AI models at the edge, where they can make a real difference.

We can create smart cities, autonomous vehicles, and intelligent homes – all powered by AI models that can think and act in real-time.

The possibilities are endless, and with GPU accelerators, we're one step closer to making them a reality.

Deep Learning on Edge

We're standing at the edge of a revolution, where the boundaries between the physical and digital worlds are blurring at an unprecedented pace. The once-exclusive domain of high-performance computing is now accessible on the edge – the countless devices that surround us.

As AI becomes an integral part of these edge devices, the term 'Deep Learning on Edge' emerges, sparking our curiosity.

We can imagine it – powerful neural networks thriving in devices like smartphones, cameras, and home assistants, weaving magic without a second thought.

In this envisioned reality, every action and reaction will be determined by machine intelligence – unhindered, uncompromising, and absolutely instant.

Think autonomous cars driving flawlessly without data transfers or intelligent drones deftly identifying people amidst their tasks, but minus cloud latency.

And consider surveillance devices shielding society's values more consistently with timely decisions powered by video feeds with this magic incorporated – devoid of clouds that also face danger when responding at rates nearing to normal reflex actions – ultimately accelerating in milliseconds only with minimal decision risks taken through embedded response modes to analyze decisions beyond imagination's deep abyss – simply mesmerizing!

AI Model Deployment Options

As Deep Learning on Edge transforms the fabric of our reality, it's time to confront the next pivotal question: how do we deploy these powerful AI models into the wild?

We're no longer confined to the data center; our creations can now thrive in the real world, unshackled from the chains of latency and connectivity.

But with this newfound freedom comes the overwhelming challenge of choosing the right deployment strategy.

We have several options at our disposal.

Cloud-based deployment allows us to harness the power of the cloud, leveraging its scalability and flexibility to deploy our models.

But this approach comes with its own set of limitations, including latency and connectivity issues.

On the other hand, on-device deployment enables us to run our models directly on the edge device, eliminating the need for cloud connectivity.

This approach is ideal for applications that require real-time processing and low latency.

We can also opt for a hybrid approach, combining the benefits of cloud and on-device deployment.

This allows us to leverage the cloud for tasks that require massive computational resources, while running our models on-device for tasks that require real-time processing.

Ultimately, the choice of deployment strategy depends on our specific use case and requirements.

Edge AI Model Maintenance

As we push AI models to the edge, we're faced with a formidable reality: they're only as good as their last update.

We need to develop model update strategies that balance the need for fresh data with the constraints of limited bandwidth and processing power.

Model Update Strategies

Model update strategies are the unsung heroes of Edge AI model maintenance – the pivotal lifelines that breathe new life into our AI systems, keeping them sharp and relevant in an ever-changing world.

We've all experienced the frustration of outdated models, struggling to keep up with the relentless pace of innovation.

But what if we could liberate our models from the shackles of stagnation? By harnessing the power of model update strategies, we can.

Three key approaches to unleashing the full potential of our Edge AI models:

  1. Incremental learning: We can update our models incrementally, integrating new data and insights without overwriting existing knowledge. This approach enables our models to learn and adapt continuously, like a dynamic, living entity.
  2. Transfer learning: We can leverage pre-trained models as a starting point, fine-tuning them to fit our specific use cases. This approach allows us to tap into the collective knowledge of the AI community, accelerating our own development.
  3. Online learning: We can update our models in real-time, as new data streams in. This approach enables our models to respond to changing circumstances, staying agile and responsive in the face of uncertainty.

Offline Performance Tracking

In the shadows of our Edge AI systems, a silent guardian watches over our models' performance – offline performance tracking.

This unsung hero guarantees our AI models remain accurate and reliable, even when disconnected from the cloud. By monitoring performance locally, we can identify issues before they escalate, freeing us from the shackles of cloud dependency.

Offline performance tracking empowers us to take control of our Edge AI systems.

We can analyze data in real-time, detecting anomalies and trends that might otherwise go unnoticed. This insight allows us to refine our models, making them more efficient and effective.

By doing so, we break free from the limitations of cloud-centric AI, releasing the full potential of Edge AI.

As we continue to push the boundaries of Edge AI, offline performance tracking becomes an indispensable tool.

It enables us to deploy AI models in remote or resource-constrained environments, where cloud connectivity is unreliable or non-existent.

Model Training for Edge

We're pushing AI to the edge – literally.

As we endeavor to liberate devices from the shackles of cloud dependency, we're forced to rethink the way we train our AI models.

The edge demands efficiency, speed, and agility – qualities that traditional training methods often can't provide.

To overcome these challenges, we're adopting new training strategies that prioritize the unique needs of edge devices.

  1. Knowledge Distillation: We're using knowledge distillation to transfer the knowledge from large, complex models to smaller, more efficient ones. This process allows us to preserve the accuracy of our models while reducing their computational requirements.
  2. Transfer Learning: We're leveraging transfer learning to adapt pre-trained models to our specific edge use cases. By building on the knowledge and features learned from large datasets, we can train our models faster and with less data.
  3. Federated Learning: We're exploring federated learning to enable edge devices to learn from each other and improve their performance over time. This decentralized approach allows us to train models on-device, reducing the need for cloud connectivity and enhancing data privacy.

Edge AI Security Considerations

Edge AI's dark underbelly is security – a ticking time bomb that threatens to upend the very fabric of our connected world. As we increasingly rely on edge devices to power our daily lives, the risk of security breaches and data exploitation grows exponentially. We can't afford to ignore this elephant in the room; the stakes are too high.

Security Threat Description Consequences
Data Tampering Malicious actors alter or manipulate data in transit or at rest Compromised data integrity, faulty decision-making
Model Poisoning Attackers inject malicious data into AI models, compromising their accuracy Biased or inaccurate model outputs
Unauthorized Access Hackers gain access to sensitive data or systems Data breaches, financial losses, reputational damage
Side-Channel Attacks Attackers exploit device vulnerabilities to steal sensitive info Confidential data exposure
Firmware Exploits Hackers target edge device firmware to gain control or steal data Device hijacking, data breaches

We must take a proactive approach to securing our edge AI systems. This means implementing robust encryption, secure authentication protocols, and regular software updates to prevent vulnerabilities. We owe it to ourselves, our users, and the future of our connected world to prioritize security. By doing so, we can guarantee that edge AI empowers us, rather than enslaving us to the whims of malicious actors. The time to act is now; our freedom and security depend on it.

Comparing Edge AI Models

As we navigate the vast expanse of AI models, the journey gets increasingly complex.

With a multitude of choices, each promising to deliver the perfect blend of speed and accuracy, selecting the ideal edge AI model can feel overwhelming.

The landscape of possibilities stretches before us, each with its strengths and weaknesses.

So how do we cut through the noise and choose the one that sets us free?

In this ocean of uncertainty, a guiding light emerges – a careful evaluation of key characteristics that illuminate our path.

As we chart our course, consider the following crucial metrics:

Model Evaluation Metrics

  1. Model size: Does it fit snugly within the limited storage of our edge device?
  2. Latency: How swiftly does it deliver its results – quickly enough to match our rapid-fire queries?
  3. Energy consumption: Can our power source keep up with the demands of our chosen model, or will we find ourselves crippled by exhaustion?

These yardsticks in hand, we forge forward with purpose, surveying the available options and considering how they might bring balance to our systems.

But comparison alone isn't enough.

The results we're searching for can only emerge from understanding each model's individual rhythm, meshing that cadence with the heartbeats of our device and finding that sublime equilibrium where harmony prevails and all hums smoothly in sweet accord.

Real World Edge AI Applications

In the grand tapestry of artificial intelligence, a vibrant thread stands out – the real-world applications of edge AI.

As we weave this narrative, we find ourselves in the midst of a revolution that's redefining the fabric of our daily lives.

We're witnessing the emergence of a world where intelligence is no longer confined to the cloud, but is instead dispersed across the edge, empowering devices to think, act, and respond in real-time.

We're seeing this play out in industries like healthcare, where edge AI-powered devices are monitoring patients' crucial signs, detecting anomalies, and alerting medical professionals to potential threats.

In the domain of smart homes, edge AI is transforming our living spaces into intuitive, responsive environments that adapt to our needs and preferences.

We're also witnessing its impact in industrial settings, where edge AI is optimizing production lines, predicting equipment failures, and streamlining logistics.

As we explore the vast expanse of edge AI applications, we begin to grasp the profound implications of this technology.

We're not just talking about incremental improvements; we're talking about a fundamental shift in how we interact with the world around us.

Edge AI is liberating us from the shackles of latency, freeing us to focus on what truly matters – innovation, creativity, and progress.

And as we continue to push the boundaries of this technology, we'll access new possibilities, new applications, and new frontiers that will redefine the future of artificial intelligence.

Future of Edge AI Development

The horizon beckons, and we're poised on the cusp of a revolution that will redefine the very fabric of edge AI development.

As we stand at the threshold of this new era, we can't help but feel a sense of excitement and anticipation.

The possibilities are endless, and the potential for innovation is vast.

We're on the verge of tapping into the true potential of edge AI, and it's going to change everything.

  1. Decentralized Intelligence: With the proliferation of edge devices, we'll see a shift towards decentralized intelligence, where AI is pushed to the periphery of the network, enabling real-time decision-making and autonomous action.
  2. Autonomous Systems: Edge AI will give rise to autonomous systems that can operate independently, making decisions and taking actions without human intervention. This will revolutionize industries like manufacturing, healthcare, and transportation.
  3. Ubiquitous Intelligence: As edge AI becomes more pervasive, we'll see intelligence embedded in every aspect of our lives, from our homes and cities to our cars and wearables.

The future of edge AI development is a future of liberation, where machines and devices are empowered to think and act independently.

It's a future where we're free to focus on the things that matter most – creativity, innovation, and progress.

We're on the cusp of a revolution that will change the world, and we're excited to see what the future holds.

Frequently Asked Questions

What Is the Typical Latency for Edge AI Model Inference?

The weight of waiting – it's a burden we all know too well.

You ask, what's the typical latency we're talking about here? In many cases, it's a mere fraction of a second – 10-50 milliseconds, to be exact.

But let's be real, even that can feel like an eternity when we're craving instant gratification. And that's precisely why we're pushing the boundaries of edge AI – to shatter those seconds and trigger a world of limitless possibility.

Can Edge AI Models Be Used for Real-Time Video Processing?

Can we truly harness the power of AI to process video in real-time, revealing new possibilities for human connection? We think so.

With edge AI models, we're on the cusp of a revolution. By pushing processing to the edge, we can analyze video feeds instantly, freeing us from the shackles of latency.

The potential is vast – from enhanced security to immersive experiences, we're poised to trigger a new era of innovation, and we're just getting started.

How Do Edge AI Models Handle Varying Network Connectivity?

We find ourselves in a world where connections are fleeting, and signals fade like whispers in the wind.

We wonder, how do AI models handle the uncertainty that comes with varying network connectivity?

It's a question that speaks to the fragility of our digital lives.

In this dance between connection and disconnection, edge AI models must adapt, using techniques like caching, buffering, and smart data processing to keep the flow of information uninterrupted.

Are Edge AI Models Compatible With All Operating Systems?

Freedom to choose – it's what we crave.

But, are we truly free when it comes to our tech?

Can we pick any operating system and still run our favorite AI models?

The answer's not a simple yes or no.

While many AI models are designed to be OS-agnostic, some may require specific software or hardware.

We're working towards a future where our choices aren't limited, but we're not there yet.

Can Edge AI Models Be Trained Using Limited Datasets?

Can we truly learn from the whispers of a few?

We're often told that more is better, that a deluge of data is needed to reveal the secrets of the universe.

But what if we don't have that luxury?

Can we still coax insight from limited datasets?

The answer is yes.

With careful curation and clever techniques, we can tease out patterns and meaning, even from the sparsest of information.

Conclusion

As we stand at the edge of this AI revolution, we're poised to unshackle a world where intelligence is woven into the very fabric of our daily lives. Edge AI models are the key, and with the right techniques, we can tap their full potential. The future beckons, and we're ready to take the leap – to a world where AI is no longer confined, but free to transform, to adapt, and to thrive.

Leave a Reply

Your email address will not be published. Required fields are marked *