Hire the Best Graph Neural Network Specialists

More than 3,000 reviews on G2
Rating is 4.5 out of 5.
4.5/5
of Upwork by G2 peer reviewers
Nikhil R.

Kathmandu, Nepal

$11/hr
5.0
2 jobs

NIKHIL ROKKA MLOPS | Deep Learning & Computer Vision Specialist | Full stack developer | AI and IT consulting, Masters thesis 𝗔𝗩𝗔𝗜𝗟𝗔𝗕𝗟𝗘 𝗧𝗢 𝗦𝗧𝗔𝗥𝗧 | 🏅 Expert-Vetted AI Developer & AI Engineer | 100% Job Success | 💰 $1m+ Earned and raised on freelancer Professional Summary I am a proactive Full stack ML engineer with 11+ years of experience in data analysis, machine learning, and AI-driven solutions and full stack development. I help companies achieve their goals through AI, ML, software development, and technical consulting, supporting projects that have helped companies pursue and achieve $1M+ USD in growth. I consult IT companies to develop practical technical solutions and reach their business objectives. I also guide master's-level students with thesis research, AI/ML coding, project development, technical report writing, assignments, and semester exam preparation and pass their exams when they are very much to get best scores. Technical Skills • Strong programming and data-processing skills using Python, R, SQL, NumPy, Pandas, Jupyter Notebook, and Anaconda. • Machine learning experience with TensorFlow, PyTorch, Scikit-learn, predictive modeling, data cleaning, preprocessing, statistical analysis, and model development. • Deep learning and computer vision experience with CNNs, ResNet, Transfer Learning, YOLO, U-Net, Autoencoders, Grad-CAM, image classification, object detection, object tracking, and image segmentation. • Data analysis and visualization experience using Pandas, NumPy, Matplotlib, Power BI, and Excel to analyze data and communicate insights. • Deployment and MLOps experience with FastAPI, REST APIs, Uvicorn, Docker, Dockerfiles, containerization, model serving, API deployment, and Linux. • LLM, RAG & AI Agents: Large Language Models, prompt engineering, embeddings, semantic search, document processing, retrieval-augmented generation, vector databases, knowledge bases, context-aware AI applications, and AI agent workflows. • Data Mining & Data Processing: Web scraping, data collection, data cleaning, data transformation, exploratory data analysis, feature extraction, pattern discovery, structured and unstructured data processing, and automated data workflows. • Backend & API Development: Python, FastAPI, REST APIs, Uvicorn, Node.js, API development, model serving, authentication, backend services, Docker, containerization, and integration of AI/ML models with web applications. • Frontend Development: React.js, JavaScript, HTML, CSS, responsive interfaces, frontend-to-backend API integration, AI application interfaces, dashboards, and interactive web applications. • Databases & Data Storage: SQL databases, relational database concepts, database querying, data modeling, and NoSQL databases for storing structured, semi-structured, and application data. My Big Projects that i helped companies raised around 1M+ • LLM & RAG Applications — Developed AI workflows involving document processing, embeddings, semantic retrieval, vector databases, and LLM-based responses to create knowledge-based question-answering applications. • AI Agent Development — Built AI agent workflows that combine LLMs with tools, data sources, retrieval systems, and application logic to automate multi-step tasks and provide intelligent responses. • Traffic Video Monitoring & Vehicle Counting — Built an end-to-end traffic analytics system using YOLO11 for vehicle detection and ByteTrack for multi-object tracking, with vehicle counting from video frames. • Full-Stack AI Applications — Developed web-based AI applications combining React.js frontend interfaces with Python/FastAPI or Node.js backend services, databases, machine learning models, and API-based AI functionality. • AI & IT Consulting and Master’s Student Mentoring — Help companies achieve their goals through AI, ML, software development, and technical consulting, while guiding Master’s students with thesis research, coding, project development, report writing, assignments, and semester exam preparation. • Brain Tumor Detection using Deep Learning — Developed a binary MRI image classification system using a pretrained ResNet50 model to distinguish Brain Tumor from Normal cases, including image preprocessing, augmentation, training, validation, inference, and confidence-score prediction. • Vehicle Gap Guard — Developed a computer vision solution for monitoring vehicle spacing and identifying potentially unsafe gaps between vehicles using object detection, video/image processing, and rule-based gap analysis. • Data Mining & Web Scraping — Developed data collection and processing workflows using Python, web scraping, Pandas, and data analysis techniques to collect, clean, transform, validate, and analyze information from online sources. • Production-Oriented AI Deployment — Applied FastAPI, Uvicorn, REST APIs, and Docker to expose machine learning inference workflows as APIs and package models for containerized deployment

  • Neural Network
  • Computer Vision
  • Image Processing
  • Python
  • Deep Learning
  • Model Optimization
  • Data Visualization
  • OpenCV
  • Model Tuning
  • Machine Learning
  • Data Preprocessing
  • Image Analysis
  • Natural Language Processing
  • MLOps
  • PyTorch
  • Docker
  • FastAPI
  • AWS Cloud9
  • Transfer Learning
  • GitHub
Soyabul Islam L.

Narayanganj, Bangladesh

$11/hr
5.0
12 jobs

I am a Machine Learning Engineer with four years of experience working across deep learning research, large scale AI systems, and production model deployment. Over the years, I have worked extensively in medical imaging, computer vision, NLP, signal processing, and large language models, building systems that range from experimental research pipelines to deployed real world AI applications. My day to day work primarily involves Python, PyTorch, TensorFlow, Keras, HuggingFace Transformers, sentence transformers, scikit learn, OpenCV, Pandas, and NumPy. I enjoy working deeply on both the research and engineering sides of machine learning, especially problems that require understanding model behavior rather than simply applying existing architectures blindly. A large part of my background is research driven. I have authored multiple peer reviewed publications in indexed journals and IEEE conferences, including publications in Neurocomputing, Healthcare Analytics, Engineering Applications of Artificial Intelligence, Telematics and Informatics Reports, and other Elsevier and IEEE venues. My research has focused heavily on explainable AI, healthcare AI, and advanced deep learning systems. Some of my published work includes CARDxnosis, an explainable knowledge driven framework for ECG diagnosis and clinical report generation, an explainable AI system for trustworthy arrhythmia detection, a CNN RNN Attention hybrid architecture for automatic modulation classification, ensemble deep learning approaches for lung cancer detection from CT scans, and SRGAN based white blood cell image generation and classification pipelines. Alongside published work, I am currently involved in research on brain tumor segmentation, ADHD and ASD classification from brain connectome graphs, epileptic seizure prediction from EEG signals, and interpretable tabular learning using graph neural networks combined with Kolmogorov Arnold Networks. Beyond research, I have substantial hands on experience building and deploying production grade AI systems. One of my major recent projects was LaborBERT v4, a domain adaptive transformer fine tuning system processing hundreds of thousands of records through a large scale training pipeline. The project involved multiple experimental setups including contrastive learning, masked language model pretraining, temporal contrastive learning, cross attention based fusion, multi task training, and Matryoshka Representation Learning. I have also built hybrid embeddings plus LLM systems for taxonomy mapping using OpenAI embeddings alongside locally hosted LLaMA and Mistral models through Ollama. In addition, I have worked on deployed clinical AI systems and a portable on device diagnostic AI solution with embedded deep learning models for point of care inference, which gave me valuable experience in optimization, deployment constraints, inference design, and production reliability. My broader project portfolio includes vehicle detection using Mask R CNN, human activity recognition on the Kinetics 700 dataset, facial keypoint detection with MultiRes UNet, semantic segmentation pipeline redesign, Stable Diffusion based image editing workflows, toxic comment classification, RASA based conversational AI systems, and large scale scraping and automation pipelines using Playwright and Selenium. I have also worked with Flask and Django based deployment pipelines and cloud hosted ML systems. From an engineering perspective, I care strongly about clean and maintainable systems. I follow disciplined workflows involving modular code design, Git based version control, reproducible experimentation, structured evaluation, bootstrap validated metrics, and detailed documentation. I am also comfortable preparing scientific reports, research papers, and journal submissions using both LaTeX and Word. What ties all of this together is that I genuinely enjoy solving difficult technical problems, especially the kind that require balancing research depth with practical engineering constraints. I am most motivated by projects where thoughtful experimentation, careful system design, and real world usability matter equally.

  • Machine Learning Model
  • Machine Learning
  • Artificial Intelligence
  • Data Analysis
  • Data Extraction
  • Deep Learning
  • Deep Learning Modeling
  • Deep Neural Network
  • Generative AI
  • Data Segmentation
  • Image Processing
  • Image Segmentation
  • Digital Signal Processing
Muzammil A.

Karachi, Pakistan

$15/hr
5.0
16 jobs

I help companies turn AI ideas into reliable applications — from RAG pipelines and AI agents to custom ML models, evaluation systems, APIs, and cloud deployment. Recent work includes: • Improved a hierarchical ML classification system from 76.7% → 87.8% terminal-node accuracy and 0.799 → 0.891 F1 across 19 model configurations. • Built RAG systems using Qdrant, PostgreSQL, FastAPI, LangGraph and knowledge graphs with Neo4j. • Designed a multi-agent AI system with six specialized agents and a deterministic Python validation layer backed by 181 automated tests. • Built LLM evaluation and testing workflows covering 1,205 tests and 199 graded responses, identifying failure patterns and performance bottlenecks. • Developed Retrieval-Augmented Classification combining vector retrieval, LLM reasoning and supervised ML models with confidence-based routing. • Deployed ML systems using Azure ML, Azure Functions, Azure DevOps, Databricks, MLflow, Docker and Kubernetes. What I can help you build → RAG applications and knowledge assistants → AI agents and multi-agent workflows → LLM integrations with OpenAI / Anthropic → LLM evaluation, testing and optimization → NLP and text classification → Custom ML / deep learning models → FastAPI AI backends → Vector search and knowledge graphs → ML deployment and MLOps Core stack: Python, LangGraph, LangChain, OpenAI, Anthropic Claude, FastAPI, Qdrant, PostgreSQL, Neo4j, XGBoost, LightGBM, PyTorch, BERT, Azure ML, MLflow, Docker. I focus on measurable results, clean architecture, testing, and production deployment rather than simply connecting an API and calling it an AI system. Send me your requirements, existing architecture, or current problem and I can help turn it into a practical implementation plan.

  • Microsoft Excel
  • Microsoft Power BI
  • Google Sheets
  • Data Analysis
  • Python
  • Data Science
  • Machine Learning
  • Microsoft Excel PowerPivot
  • Machine Learning Model
  • Microsoft Power BI Data Visualization
  • SQL Programming
  • Excel Formula
  • Deep Learning
  • Artificial Intelligence
  • Generative AI
  • Natural Language Processing
  • AI Agent Development
  • LangChain
  • FastAPI
  • TensorFlow
Ahsan I.

Nowshera Kalan, Pakistan

$15/hr
5.0
29 jobs

𝐓𝐫𝐚𝐧𝐬𝐟𝐨𝐫𝐦 𝐘𝐨𝐮𝐫 𝐁𝐮𝐬𝐢𝐧𝐞𝐬𝐬 𝐰𝐢𝐭𝐡 𝐏𝐫𝐨𝐝𝐮𝐜𝐭𝐢𝐨𝐧-𝐑𝐞𝐚𝐝𝐲 𝐀𝐈 𝐒𝐨𝐥𝐮𝐭𝐢𝐨𝐧𝐬 | 𝟓𝟎+ 𝐏𝐫𝐨𝐣𝐞𝐜𝐭𝐬 𝐃𝐞𝐥𝐢𝐯𝐞𝐫𝐞𝐝 I am an AI/ML engineer specializing in end-to-end artificial intelligence development — from concept to deployed, scalable systems that solve real business problems. With 8+ years building machine learning, deep learning, and generative AI solutions for global clients (including Huawei and Turing), I deliver reliable, production-grade systems — not just prototypes. 𝐖𝐡𝐚𝐭 𝐒𝐞𝐭𝐬 𝐌𝐞 𝐀𝐩𝐚𝐫𝐭: ✓ Full-stack AI delivery: requirements → architecture → deployment → maintenance ✓ Battle-tested across 50+ international projects ✓ Focus on business impact, not just technical complexity ✓ Clear communication and rapid iteration cycles 𝐂𝐨𝐫𝐞 𝐓𝐞𝐜𝐡𝐧𝐢𝐜𝐚𝐥 𝐂𝐚𝐩𝐚𝐛𝐢𝐥𝐢𝐭𝐢𝐞𝐬: Computer Vision & Image Processing: Object detection | Image classification | ANPR systems | Face recognition | Video analytics | Image segmentation | OCR | Real-time tracking Natural Language Processing & LLMs: Chatbot development | RAG systems | LLM fine-tuning | Text generation | Sentiment analysis | Document summarization | Named entity recognition | GPT/Claude integration Audio & Speech Technologies: Automatic speech recognition (ASR) | Text-to-speech (TTS) | Speaker identification | Audio classification | Voice cloning | Noise reduction 𝐓𝐞𝐜𝐡 𝐒𝐭𝐚𝐜𝐤:Python | TensorFlow | PyTorch | Keras | Scikit-learn | Hugging Face | LangChain | OpenAI API | FastAPI | Flask | Docker | AWS | Azure 𝐃𝐞𝐥𝐢𝐯𝐞𝐫𝐲 𝐀𝐩𝐩𝐫𝐨𝐚𝐜𝐡:I take full ownership — understanding your use case, recommending the right approach, building the solution, and ensuring it works reliably in production. You get working software, comprehensive documentation, and post-deployment support. 𝐈𝐝𝐞𝐚𝐥 𝐅𝐨𝐫: Custom AI model development and training ML pipeline design and automation API development and third-party integration Proof-of-concept to production scaling Legacy system modernization with AI Let's discuss how AI can create measurable value for your business. Message me with your project details, and I'll respond with relevant examples and a clear path forward.

  • Neural Network
  • Python
  • Artificial Intelligence
  • Image Processing
  • Machine Learning Model
  • Flask
  • PyTorch
  • Computer Science
  • Deep Neural Network
  • Machine Learning
  • Apache MXNet
  • Convolutional Neural Network
  • Computer Vision
  • API Development
  • TensorFlow
Rayehe H.

Ankara, Turkey

$35/hr
4.6
17 jobs

I build LLM agent systems that hold up in production — LangGraph orchestration, RAG over messy real-world data, and the evaluation layers that keep them reliable. Recent work: a multi-agent platform managing 13 interdependent workstreams with automatic dependency invalidation and a reviewer agent gating output; a retrieval layer combining keyword and semantic search with cross-encoder reranking and MCP tool calling against live APIs; a LangGraph conversational agent with deterministic guardrails living outside the model and an adversarial evaluation harness; a healthcare claims pipeline combining deterministic rules with fine-tuned models under HIPAA, where auditability decided the architecture. Also a full-duplex voice assistant over an ERP backend — streaming ASR, semantic endpointing, barge-in, WebRTC. Most of my time goes to routing, evaluation and failure handling rather than model calls. Integrating an LLM API takes a week; making it reliable enough that someone acts on the output is the job. Stack: Python, LangGraph, FastAPI, PostgreSQL + pgvector, Docker, Anthropic/OpenAI/Gemini, self-hosted inference via vLLM and Ollama. 7+ years, MSc in Artificial Intelligence, two published papers (ACL, SemEval).

  • Python
  • Docker
  • Artificial Intelligence
  • LLM Prompt Engineering
  • LangChain
  • Retrieval Augmented Generation
  • Vector Database
  • AI Agent Development
  • AI Speech-to-Text
  • AI Text-to-Speech
  • API Integration
  • Large Language Model
  • LangGraph
  • FastAPI
  • Model Context Protocol (MCP)
  • PostgreSQL
  • pgvector
  • Pinecone
  • rag implementation
  • Natural Language Processing
Amna M.

Bahawalpur, Pakistan

$7/hr
5.0
14 jobs

I design and build reliable AI, LLM, RAG, NLP, machine learning, deep learning, and automation systems where retrieval quality, execution logic, and workflow stability matter. What I Build: ✅ RAG Systems: hybrid semantic + BM25 retrieval, reranking, vector databases, evaluation pipelines ✅ LLM Agents: LangChain, LangGraph, LlamaIndex, multi-step AI agents, tool calling ✅ NLP Pipelines: text classification, summarization, sentiment analysis, embeddings, POS tagging ✅ Language Models: RNN, LSTM, Transformers, BLEU/ROUGE evaluation ✅ ML/DL Systems: classification, regression, clustering, forecasting, CNNs, GANs, XGBoost ✅ Computer Vision: image processing, feature extraction, object detection, YOLO, transfer learning ✅ Robotics & Autonomous Systems: ROS, robot perception, localization, navigation, sensor fusion ✅ Graph AI: Graph Neural Networks, knowledge graphs, graph embeddings, graphical models ✅ Probabilistic AI: Bayesian networks, stochastic systems, Markov models, variational inference ✅ HCI/BCI & Signal Processing: EEG preprocessing, FFT, filtering, feature extraction, ML classification ✅ AI Automation: n8n, Make, OpenAI, Claude, Grok, Ollama, API integrations ✅ AI Lead Generation: scraping, enrichment, data cleaning, LLM-powered research automation ✅ Research & Prototyping: LaTeX, Overleaf, literature review, academic writing, journal research Core Skills: Artificial Intelligence, Machine Learning, Deep Learning, Natural Language Processing, Large Language Models, Generative AI, RAG, Vector Search, AI Agents, Prompt Engineering, Retrieval Evaluation, Data Preprocessing, Feature Engineering, Model Training, Hyperparameter Tuning, Transfer Learning, Reinforcement Learning, Explainable AI, Computer Vision, Robotics, ROS, Graph Neural Networks, Knowledge Graphs, Probabilistic Models, Stochastic Systems, Applied Linear Algebra, Optimization, Signal Processing, EEG Analysis, Human-Computer Interaction, Research Methodology. Tools: Python PyTorch TensorFlow Keras, Scikit-learn HuggingFace LangChain LangGraph LlamaIndex FAISS Pinecone ChromaDB, FastAPI OpenAI API Claude API Ollama Grok Jupyter Colab Anaconda PyCharm MATLAB ROS Overleaf LaTeX. I focus on practical AI systems that are testable, maintainable, and reliable after delivery. I clarify requirements early, check data quality, define evaluation criteria, and build workflows with validation, visibility, and error handling. If you need an AI prototype, RAG chatbot, NLP model, ML pipeline, research implementation, or automation workflow, send me your use case, and I’ll suggest a clear approach.

  • Neural Network
  • Artificial Intelligence
  • Generative AI
  • Python
  • LangChain
  • AI Development
  • Automation
  • OpenAI API
  • LLM Prompt Engineering
  • Machine Learning
  • Conversational AI
  • AI Chatbot
  • AI Agent Development
  • API Integration
  • Retrieval Augmented Generation
  • AI Instruction
  • Hugging Face
  • Vector Database
  • Data Processing
  • Academic Research

How it works

Post a job for freePost a job

Tell us what you need. Create your own job post or generate one with AI then filter talent matches.

Hire top talent fast

Consult, interview, and hire quickly, so you can meet the freelancers you're excited about.

Collaborate easily

Use Upwork to chat or video call, share files, and track project progress right from the app.

Payment simplified

Manage payments in one place with flexible billing options. Only pay for approved work, hourly or by milestone.

Don't just take our word for it

What does a Graph Neural network specialist do?

A Graph Neural network specialist builds deep learning models that process data structured as graphs rather than grids or sequences. This role captures relationships between entities by passing messages across nodes and edges to learn complex dependencies. You design architectures that respect the topology of the input data to solve tasks like node classification or link prediction.

  • Design and implement GNN layers using message-passing interfaces to aggregate information from neighboring nodes. You define how features propagate through the graph structure to update node representations at each layer. This work involves selecting aggregation functions and combining them with transformation matrices to capture local and global patterns in the data.
  • Prepare graph datasets by constructing node feature matrices and edge index arrays for supervised learning tasks. You split data into training and validation sets while preserving the structural integrity of the graph. This step allows the model to learn from representative samples and generalize well to unseen nodes or entire graphs during evaluation.
  • Build training loops that compute loss metrics and update model parameters through backpropagation. You configure optimizers and learning rate schedulers to stabilize convergence on large-scale graph data. This process includes monitoring performance on held-out data to detect overfitting and adjusting hyperparameters to improve predictive accuracy for specific business objectives.

How to hire a Graph Neural network specialist on Upwork

Step 1: Post a job

Define your graph structure and prediction goals clearly so candidates understand the data complexity. Use the Job Post Generator powered by Uma™, Upwork's Mindful AI to draft a precise description from a few sentences about your needs. You can write a new post, update a saved draft, or reuse an existing post to save time.

  • Specify whether the task involves node classification, link prediction, or graph-level property prediction to attract specialists with relevant experience.
  • List required frameworks such as PyTorch Geometric or Deep Graph Library so applicants know which technical stack they must master.
  • Describe the size and sparsity of your graph data to help freelancers estimate computational requirements and training time.

Step 2: Evaluate candidates

Look for portfolios that demonstrate end-to-end GNN implementation rather than just theoretical knowledge. Uma can run instant video interviews and build shortlists with side-by-side comparisons to speed up this review process.

  • Check for code samples showing custom message-passing layers or complex graph preprocessing pipelines using tools like PyTorch.
  • Verify experience with specific graph datasets and the ability to handle large-scale sparse matrices efficiently during training.
  • Review past projects for clear documentation on model architecture choices and hyperparameter tuning strategies for graph tasks.

Step 3: Interview your top choices

Discuss technical approaches to handling dynamic graph structures or heterogeneous node features during your conversation. Interviews can be scheduled and conducted within Upwork Messages with an immediate transcript and summary after each one.

  • Ask how they optimize memory usage when training deep GNNs on graphs with millions of edges or nodes.
  • Request examples of how they debugged poor convergence issues in previous graph-based machine learning projects.
  • Explore their method for evaluating model performance on imbalanced graph datasets where standard accuracy metrics fail.

Step 4: Agree on scope and begin work

Set clear milestones for data preparation, model prototyping, and final evaluation to track progress effectively. Use Upwork Messages and the contract workroom for communication and project management, plus identity verification, payment protection, hourly tracking, and project funds for security.

  • Define deliverables such as trained model checkpoints, reproducible training scripts, and performance metrics on held-out test data.
  • Agree on specific libraries and versions to ensure compatibility with your existing infrastructure and deployment environment.
  • Establish a schedule for code reviews and model validation checks to maintain quality throughout the development cycle.

Upwork is not affiliated with and does not sponsor or endorse any of the tools or services discussed in this article. These tools and services are provided only as potential options, and each reader and company should take the time needed to adequately analyze and determine the tools or services that would best fit their specific needs and situation.

The rates and information provided in this article are based on current data and industry sources available at the time of publication. Freelance rates can vary depending on factors such as experience, location, project scope, and market conditions. Readers are encouraged to conduct their own research to confirm current rates and trends, as this information may change over time.

How much does hiring a Graph Neural network specialist cost?

Hiring a Graph Neural network specialist typically costs $500-$1,500 per project. Final pricing depends on scope, technical complexity, required integrations, source-material quality, revision needs, and the freelancer's experience level.

Graph data preparation

$500-$1,200/project

Entry-level to mid-level
  • Structured node features and edge indices
  • Training and validation data partitions
  • Data schema and preprocessing notes

GNN architecture design

$1,200-$2,500/project

Mid-level
  • Custom message-passing layer implementation
  • Hyperparameter settings and model structure
  • Architecture visualization and flow chart

Model training and tuning

$2,500-$4,500/project

Mid-level to senior-level
  • Optimized forward pass and backpropagation code
  • Saved model states from training runs
  • Evaluation results on held-out test data

Node classification system

$4,500-$7,000/project

Senior-level
  • End-to-end inference script for node labels
  • Interface for real-time prediction requests
  • Performance analysis and error breakdown

Custom GNN research prototype

$7,000-$12,000/project

Expert-level
  • Novel graph neural network architecture code
  • Reproducible setup with config and run instructions
  • Technical documentation of methods and results

Frequently asked questions

Is hiring a Graph Neural network specialist worth it?

For most businesses, yes: hiring a Graph Neural network specialist is worthwhile. These experts build models that capture complex relationships in data structures like social networks or molecular graphs. They implement message-passing architectures that standard neural networks cannot process effectively.

How do I evaluate Graph Neural network specialist candidates?

Review their code for correct implementation of message-passing layers and graph data preparation. Ask them to explain how they handled node feature aggregation in a recent project using PyTorch Geometric or Deep Graph Library.

What tools do Graph Neural network specialists use?

Specialists primarily use PyTorch Geometric and Deep Graph Library to build and train models. They rely on PyTorch as the underlying framework for managing training loops and computing loss functions.

What deliverables should I expect from a Graph Neural network specialist?

You receive working model code for tasks like node or graph classification along with training scripts. The specialist also submits model checkpoints and documentation that explains the architecture and reproduction steps.