Take Your AI Model Development to the Next Level
The NeoPulse Framework is an automated AI solution that allows any developer to build and deploy state-of-the-art AI models in a fraction of the time, effort and cost of other software solutions. Some of the capabilities include automatically creating AI models with minimal human involvement, facilitating the curation and deployment of AI models onto any target environment – cloud, on-premise or device and managing all AI assets within an organization from a single interface.
NeoPulse® AI Studio Free Edition
Ready to build your first AI Model? NeoPulse is a complete framework for training, querying and managing AI models hosted on an AWS free tier instance*
*due to the computational constraints of the AWS free tier, we recommend that you do not use this version for complex models such as audio, image, video, DICOM or multimodal datasets.
NeoPulse® 3.0 on AWS SageMaker
Want to get started on NeoPulse 3.0 SageMarker version?
- Simplified workflow
- Leverages the powerful Amazon SageMaker distributed computing and deployment environment
- Task management, deployment, model management – all handled by Amazon SageMaker
Fact Sheet for NeoPulse® Studio
X86, X64, ARM64
CUDA compatible GPUs
ONNX, HD5, PIM
Time series prediction
Natural Language Processing
(others –please inquire)
Frequently Asked Questions
- Model Building
- Model Training
- Dataset Preparation
- AI Model Evaluation
How much storage should I choose?
We recommend a minimum of 32gb but it depends on how much data you plan to train on.
My key pair won't work. How do I fix this?
Try using the chmod 400 command and attempt to SSH with the key pair. If the issue persists, see this page.
Where do I find the public DNS?
The public DNS is located in the bottom right corner of your EC2 instance page.
NeoPulse won't start. What do I do?
Check your license status. Note that only one instance of NeoPulse Studio may run at a time. For further support contact us.
I ran out of storage. What do I do?
You can either add more storage to your instance or trim your projects to discard models and iterations.
Which types of tasks does NeoPulse Studio support?
NeoPulse Studio currently supports classification and regression.
Which types of tasks does NeoPulse Studio support?
NeoPulse Studio supports a variety of machine learning and deep learning tasks, though the auto feature can be used for the following tasks:
1) Classification (text, image, audio, video);
2) Regression (text, vector, image, audio, video).
How do I view model results?
Navigate to Port 6006 on your instance to view model results on Tensorboard.
What is the difference between “acc” and “val acc”?
“acc” refers to training accuracy and “val acc” refers to validation accuracy, or model accuracy on the portion of data used to validate the model. The model had not seen that portion of data before.
There was an error during training. How do I check the issue?
There are two logs that are kept; compiler and worker. The error message may be recorded in one of these. For further support contact us.
Why trim models?
Training models can sometimes produce hundreds or even thousands of models during a single training. At this rate you can easily run out of storage. Thus we recommend trimming your projects and saving the highest performing models of your choice.
How much data do I need for training?
It entirely depends on the question that you would like to ask. Contact us at firstname.lastname@example.org for further suggestions and assistance.
How do I prepare my dataset for training?
Create a CSV file containing one column for data and a second column containing labels. See Step Two tutorial for more details.
How do I know if I have trained a good model?
You can evaluate your model using two parameters:
- Accuracy: The accuracy represents how well the model learned to do the task at hand given the provided data. On Tensorboard you can view both training (from the training phase) and validation (data reserved to test how well model generalizes) accuracy.
- Loss: Loss represents the difference in error between the model predictions and actual data. For classification models, the loss is mean squared error (MSE) and for regression models it's typically root mean squared error (RMSE). A positive relationship between epochs (plotted on the x-axis in Tensorboard) and accuracy (plotted on the y-axis) indicates a good model. An inverse relationship between epochs and loss also indicates a good model. Training and validation accuracies should be similar as well.
How can I tell if a model needs to be improved?
Overfitting: Good training data but bad validation accuracy. If training accuracy is significantly higher than validation accuracy (more than 10% higher, this likely suggests overfitting which means the model simply memorized (rather than learn) training data. This can occur when the data contains too many independent variables or classifiers with an insufficient amount of data per independent variable. To reduce overfitting try reducing the number of categories and ensure that the dataset is balanced to avoid overlearning some categories over others. Setting the oracle('regularization') hint in the NML script to a value above 0.5 may help as well.
Underfitting: Poor training and validation accuracy. If both training and validation accuracy are low, this likely suggest underfitting. This occurs when the model is underpowered and the data contains too few features. To reduce underfitting try adding more features to the dataset.
NeoPulse® Tutorials on Examples
Launch EC2 Instance
1. Sign in to your AWS Console.
2. In the "Find Services" input, search for EC2 and press Enter. In EC2 Service page, click "Launch Instance".
3. Search for NeoPulse AMI, then select your desired AMI to launch. We have selected NeoPulse Studio GPU in this example. Click "Continue" to go to the next step.
4. Choose Instance Type. In this example, we chose p2.xlarge. If in the previous step, you have selected NeoPulse Studio CPU, then you should choose m4 instance.
5. We are not going to configure Instance Details and Storage in this example, so just click "Next" button through the steps 3 and 4.
6. Add Tags (optional). You can add tags like purpose, user, etc to the instance. Then click "Next:Configure Security Group"
7. Under "Assign a security group", please select "Select an existing security group" if you already have one that contains all ports required to run NeoPulse. If not, choose "Create a new security group" and add required ports 22 (SSH for anyone into the system), 46921 (API calls), 46924 (NeoPulse UI), 46925 (Tensorboard port) as shown below. Click "Review and Launch". On the next screen, if everything looks good to you, click "Launch".
8. Here you will see the screen that prompts you to choose existing key pair or create a new one. If you already have a key pair, select it and click "Launch Instance". Otherwise, select "Create a new key pair", type in a key pair name, click "Download Key Pair" and then click "Launch Instance" as shown below.
9. If everything went well, on the next screen, you should see the Launch Status page with the instance id link. Click that link and you will be taken to instances page.
Connect to EC2 Instance
1. In the Instances page, click "Connect" button that is located between "Launch Instance" and "Actions" buttons. In the pop up, copy the ssh command as shown below and paste to your terminal. Replace root to ubuntu and add the path to your .pem file.
2. Replace root to ubuntu and add the path to your .pem file. Run the ssh command. If you see an error message like "WARNING: UNPROTECTED PRIVATE KEY FILE!", then it means you need to provide file permission 400 for your key pair. Type
chmod 400 /path/filename.pem
then try to run the ssh command again.
3. Create a folder to store your data. In this tutorial, we will create a folder with the name "data". To do that, in terminal, type
Copy Data to the Instance
1. Go to our Github Examples page and click "Clone or download". You can either clone or download this repository. If you choose to download, don't forget to unzip it.
2. In terminal, open a new tab and cd to the downloaded repository folder, you will see different folders with examples. In this tutorial, we will use Sentiment data that is located inside Classification/Text. So cd to Text folder, then run a copy command using this structure:
scp -i your-keypair -r folder-name email@example.com:data
You should see how all files inside Sentiment folder now are being copied to our instance folder "data".
3. Switch to the tab where you have connected to the instance, cd to "data" folder. Now you should see the Sentiment folder, cd to it. First, we need to install the following package dependencies using pip: sklearn, pandas, natsort using the following command:
sudo pip install sklearn pandas natsort
4. Finally, to run this example, we need to download and pre-process the raw data for the task using the included build_csv.py script. Run the following command:
It might take a while, but after this script finishes, you can type ls and you will see that now we have short_query.csv, full_query.csv and training_data.csv.
Usage of CLI
To see available CLI commands for NeoPulse, type the following command in the terminal where you have a connected instance:
To see each command's examples, please visit our documentation page.
Usage of GUI
In order to access NeoPulse GUI, copy your IPv4 Public IP from your instance information page, open a new tab in your browser and paste it in the address bar, after ":", type in port 46924 (port for NeoPulse, that we have opened in security groups before).
In our GUI, you can do everything that CLI can do, even see list of your queries under "Queries" tab, which is not available on CLI.
training file error >> Negative dimension size caused by subtracting 3 from 1 for 'time_distributed_10/convolution' (op: 'Conv2D') with input shapes: [?,1,1,512], [3,3,512,512]
Check flat vector to ensure correct value is specified. In a classification task, for example, this value should equal the number of classes to be predicted.
training file error >> could not convert string to float: '?'
Check your CSV file to ensure it is formatted properly. The 'grep' command can be helpful for finding out of place characters.
Image Sequence must be correct length
Check video clip length to ensure there are enough frames for each given video. Extremely short videos (e.g. ~1sec. could throw an error)
training file error >> OOM when allocating tensor with shape
NeoPulse AI Studio ran out of error when attempting to train the model. If you are running a model with video data, try downsampling the videos or decreasing the sequence length to reduce memory load. If you are running a model with audio data try reducing the number of timesteps.
INFO: Disconnected from RabbitMQ at localhost:5672 (-1) ERROR: Connection close detected: result#BlockingConnec=None params=
This may occur when the database unexpectedly disconnects and thus NeoPulse stops running. We recommend the following workaround:
Restart NeoPulse on your instance by typing in the terminal:
> sudo NeoPulse start
(**Important**: Before restarting NeoPulse be sure to export all models you would like to save. Once NeoPulse restarts any models that have not been exported will be lost.)
Account has reached instance limit
It is common for new users to encounter this message. AWS automatically places instance limits on newer accounts to help users avoid unwanted charges. To remove this message you will need to request an EC2 instance by following the steps below (Requests are typically granted quickly):
- Go to aws.amazon.com
- Log onto your account
- From the top-left corner of the screen go to Services > Compute>EC2
- Limits (5th option down on the left-hand side)
- Find “Running On-Demand g2.2xlarge instances” in the list
- Click ‘Request Limit Increase”
- Add your email address to the CC box to be notified when case is resolved
- Choose “US West (Oregon)” region
- Under ‘Use Case Description’ you can state something like, “I am requesting 2 instances on my account in order to use a product in the AWS marketplace”.
I can't successfully import PIM.
In addition to using the 'NeoPulse export' command on AI Studio, make sure to copy the PIM file(s) to the NPQR instance. We recommend copying the file(s) from the AI Studio instance to your local machine and then to the NPQR instance.