AI Powered Auto-curation
Describes the AI Powered Auto-curation feature that improves software inventory results. Using the AI Powered Auto-curation feature, you'll be able to increase the total amount of normalized software in your Inventory repositories. This is done using AI that integrates with the inventory consolidation process. By using AI, your organization will benefit from significant numbers of normalized software and a reduced manual effort needed to normalize software.
Note
The Inventory Insights app captures data from different sources, then consolidates, normalizes, and stores it in Inventory repositories. It is also used to view, export, and manage associations.
Inventory Insights uses connectors to capture software, hardware, and other data from sources such as 1E, Configuration Manager, Big Fix, and vCenter where it is consolidated, de-duplicated, and normalized. Normalization uses software and hardware entries in The 1E Catalog.
An empty repository called Default Inventory is provided out-of-the-box. You can optionally create additional inventory repositories to partition data by source, time period, or another purpose. To populate a repository, you must use one or more inventory connectors, and either manually sync the data or schedule a sync. For more detail, please refer to Repositories page and Schedules page in Settings.
In old versions normalization of software product names was handled by 1E Catalog. This used rules that map source Programs and Features data into an accurate standardized form of Vendor, Title, Version, and Edition (VTVE) fields. These normalized records could then be referred to with the same signature. Although the rules in the 1E Catalog cover the most common software, there is always new software that needs to be manually mapped.
AI Powered Auto-curation normalizes software product names that are not in the 1E Catalog. It first extracts the VTVE from varied raw Programs and Features data by removing excess data and extracting the relevant strings. The AI then standardizes the VTVE fields to a single, accurate form of representation. It also produces a numeric value called the confidence score, this score:
Represents how confident the AI is in its prediction.
Is set to a high threshold through testing and validation across a large data set.
Can be calibrated according to the variety of software data at a customer site to optimize the normalization rate.
Is controlled by 1E through collaboration with customers.
You can enable AI Powered Auto-curation either during or after the installation of 1E.
Note
AI Powered Auto-curation is used by all Inventory connectors. Please refer to the Connectors page for more information about how Connectors are used to connect to other 1E and third party systems.
AI Powered Auto-curation uses model files that govern its behavior and, when the feature is enabled, the versions of the files are compared with the versions in the 1E Cloud, and downloaded whenever a new version is made available.
Preparation
Before you enable AI Powered Auto-curation, ensure you've met the additional disk and memory requirements on the 1E web server.
Note
The minimum total disk space required for the downloaded AI Package ZIP is approximately 13 GB at installation. This includes:
Binary and support files for AI and the directory structure is 8 GB
The ZIP file is approximately 5 GB and stored in the Download path - this location is not configurable
The ZIP file is then temporarily copied to the Deployment path, and extracted - the ZIP plus extracted files are approx. 13 GB
The temporary ZIP is then deleted from the Deployment path, leaving approx. 8GB of extracted files - this location is configurable, as described below.
1E Catalog regularly checks it has the latest AI package synced from the 1E Catalog cloud. It downloads the AI Package ZIP (5GB) from the Cloud into the Download path folder.
Whenever the Basic Inventory Consolidation (BIC) process runs, with the AI Engine option enabled, the 1E-AIEngine.exe uses the AI package files to run the AI process.
When the 1E-AIEngine.exe is run, it uses a hash comparison of its current AI package, with the Catalog's ZIP.
If the hash is different, it will make a copy of the new ZIP (5GB) to its Deployment path, extract it (8GB), and then delete the ZIP copy.
If the folder contains the correct AI package, the BIC processes the new inventory data using the package.
Note
1E Catalog is included in the 1E platform zip, and installed by 1E Setup.
Memory requirements
Distinct Software Titles | Extra GB RAM for AI engine |
---|---|
1 to 5000 | 17 |
10000 | 19 |
20000 | 21 |
30000 | 24 |
40000 | 26 |
50000 | 29 |
60000 | 32 |
70000 | 35 |
80000 | 39 |
90000 | 42 |
100000 | 46 |
110000 | 50 |
120000 | 54 |
130000 | 58 |
140000 | 62 |
150000 | 66 |
160000 | 71 |
170000 | 76 |
Values last updated 04 Mar 2022.
The physical memory required for AI Powered Auto-curation is based on the number of distinct software titles in your source data, that AI has to process that do not already have a match in the 1E Catalog. Use the accompanying table as a quick reference for the memory requirements needed by the AI.
Note
For virtual machines, the AI Engine action will not work if you're using a dynamic memory configuration. You'll need to allocate dedicated memory.
If you're only using a System Center Configuration Manager connector for your source data, then use the below SCCM database query as a guide for how much extra RAM you need on the Tachyon web server before installing Tachyon.
SCCM database query Expand source
/*SCCM database query to get number of distinct software titles from SCCM database*/ USE [YourSCCMDBName] GO SELECT COUNT(*) AS 'Distinct Software Titles' FROM ( SELECT DISTINCT DisplayName0 AS Title FROM [v_ADD_REMOVE_PROGRAMS] WITH (NOLOCK) UNION SELECT DISTINCT [Caption0] AS Title FROM [v_GS_OPERATING_SYSTEM] WITH (NOLOCK) ) AS Titles
After installation, we recommend you use the below SLA-Data database query to double-check memory requirements. You will need to use the SLA query anyway, if you use a 1E connector (for Inventory Insights or Patch Success) either on its own, or with other connectors including SCCM. In this case, use the SLA-Data database query after installation and you have collected your source data.
SLA-Data database query Expand source
/*SLA query to get number of distinct software titles from SLA-Data database*/ USE [SLA-Data] CREATE TABLE #Software ( [SoftwareID] INT IDENTITY(1,1) PRIMARY KEY, [DataSource] NVARCHAR(255) COLLATE DATABASE_DEFAULT, [SoftwareIdent] NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, [SoftwareIdent_Hash] VARBINARY(128), [Vendor] NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, [Vendor_Hash] VARBINARY(128), [Title] NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, [Title_Hash] VARBINARY(128), [Version] NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, [Version_Hash] VARBINARY(128), [ColloquialVersion] NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, [ColloquialVersion_Hash] VARBINARY(128), [Edition] NVARCHAR(MAX) COLLATE DATABASE_DEFAULT, [Edition_Hash] VARBINARY(128), [NormalizedProductID] INT ); SELECT * FROM #Software EXEC [usp_ReportDataEx_se] 1, N'Software', N'#Software'; SELECT count(*) AS 'Distinct Software Titles' FROM ( SELECT DISTINCT [Title] FROM #Software ) a DROP TABLE #Software
Enabling AI Powered Auto-curation
You can enable AI Powered Auto-curation either during or after installation of 1E.
Enabling AI Powered Auto-curation during installation of 1E
AI is switched off by default in the 1E Setup, this is because the feature requires additional memory to run correctly. For more details please refer to the AI Powered Auto-curation requirements.
During 1E setup you'll need to check the Enable AI-based auto-curation checkbox on the SLA and Catalog screen of the 1E Setup wizard. For more details please refer to the 1E Server Setup and SLA and 1E Catalog .
Enabling AI Powered Auto-curation after installation of 1E
You can enable AI Powered Auto-curation after you've installed 1E, but before enabling check these pages for more details on the disk space and RAM requirements: 1E Server Setup and SLA and 1E Catalog .
Once you have confirmed the pre requisites to enable AI you should access the Settings → Configuration → Components and toggle the Enabled switch on the AI Engine row.
At the point when you enable AI, a popup will be displayed, shown opposite.
Disabling AI Powered Auto-curation after installation of 1E
You can use the same Enabled toggle on the AI Engine row in the Settings → Configuration → Components page to turn off the AI Powered Auto-curation by sliding it to the left, off position.
Changing the AI Deployment path
The AI feature consists of an 1E-AIEngine.exe and AI model files contained in an AIPackage_<version>.zip.
The minimum total disk space required for the downloaded AI Package ZIP is approximately 13 GB at installation. This includes:
Binary and support files for AI and the directory structure is 8 GB
The ZIP file is approximately 5 GB and stored in the Download path - this location is not configurable
The ZIP file is then temporarily copied to the Deployment path, and extracted - the ZIP plus extracted files are approx. 13 GB
The temporary ZIP is then deleted from the Deployment path, leaving approx. 8GB of extracted files - this location is configurable, as described below.
1E Catalog regularly checks it has the latest AI package synced from the 1E Catalog cloud. It downloads the AI Package ZIP (5GB) from the Cloud into the Download path folder.
Whenever the Basic Inventory Consolidation (BIC) process runs, with the AI Engine option enabled, the 1E-AIEngine.exe uses the AI package files to run the AI process.
When the 1E-AIEngine.exe is run, it uses a hash comparison of its current AI package, with the Catalog's ZIP.
If the hash is different, it will make a copy of the new ZIP (5GB) to its Deployment path, extract it (8GB), and then delete the ZIP copy.
If the folder contains the correct AI package, the BIC processes the new inventory data using the package.
Name | Default path | Purpose |
---|---|---|
Download path | C:\ProgramData\1E\Catalog\CatalogSynchronization\PredictionModel | This path is not configurable. |
Deployment path | C:\ProgramData\1E\SLA Platform\AI | This path is configurable using the SQL script described below. |
SQL script to configure AIModelDeploymentPath setting Expand source
/* Script to change SLA Deployment Path for AI Package */ /* The value is copied from SLA-Shared to instance in SLA-Data when a new inventory repository is created */ /* Updating SLA-Shared means script is not required for each new repository */ /* Updating all values in SLA-Data means all repositories use the same value */ DECLARE @setting nvarchar(max), @oldvalue nvarchar(max), @newvalue nvarchar(max) SELECT @newvalue = 'C:\ProgramData\1E\SLA Platform\AI' SELECT @setting = 'AIModelDeploymentPath' USE [SLA-Shared] SELECT @oldvalue = [VALUE] FROM [dbo].[ProjectSetting] WHERE [Group] = 'ProcessAIEngine' AND [Name] = @setting UPDATE [dbo].[ProjectSetting] SET [Value]=@newvalue WHERE [Name]=@setting SELECT DB_NAME() + '.dbo.ProjectSetting' AS 'Table', @setting AS 'Setting', @oldvalue AS 'Before', [Value] AS 'After' FROM [dbo].[ProjectSetting] WHERE [Name]=@setting USE [SLA-Data] SELECT @oldvalue = [VALUE] FROM [dbo].InstanceSetting WHERE [Group] = 'ProcessAIEngine' AND [Name] = @setting AND [InstanceID] = 1 UPDATE [dbo].[InstanceSetting] SET [Value]=@newvalue WHERE [Name]=@setting SELECT DISTINCT DB_NAME() + '.dbo.InstanceSetting' AS 'Table', @setting AS 'Setting', @oldvalue AS 'Before', [Value] AS 'After' FROM [dbo].[InstanceSetting] WHERE [Name]=@setting GO
Verifying AI Auto-curation is working
The process for downloading the latest AI Package is described above in Changing the AI Deployment path.
You can review the Catalog sync progress in the following logs located at: C:\ProgramData\1E\Catalog\
Catalog.Integration.UI.log
Catalog.UpdateService.log
A successful sync should be similar to the example Catalog.UpdateService.log opposite.
Catalog.UpdateService.log Expand source
[Info] T11 2020-01-31 15:45:48.567: Syncing AI Package with cloud [Info] T11 2020-01-31 15:45:48.756: Downloading AI Package version 1.3.0.700 with cloud of size 4804685823 from url api/sync/aiengine?Version=1.3.0.700 [Info] T11 2020-01-31 15:45:48.772: Indexes re-creation started after Sync. [Info] T12 2020-01-31 15:58:25.929: Indexes are created successfully after Sync. [Info] T5 2020-01-31 16:30:47.930: Download complete. Comparing file hash.. [Info] T5 2020-01-31 16:31:07.120: Successfully synced AI Package version 1.3.0.700 with cloud
When enabled, a new action called Process AIEngine is created. This is automatically run after the Sync Data action for a supported connector. The sync time for the Process AIEngine action depends on the number of distinct software records being processed, hardware and environment configuration.
AI Powered Auto-curation is used by all Inventory connectors. Please refer to the Connectors page for more information about how Connectors are used to connect to other 1E and third party systems.
You can see the Process AIEngine action in Settings→Monitoring→Process log .
You can review its progress using the Engine.log located at C:\ProgramData\1E\SLA Platform\
In the log, you should see something similar to the opposite example.
Engine.log Expand source
2020-03-31 08:46:25.0274 INFO Action Process AIEngine starting! Jobs: 1/5 2020-03-31 08:46:25.0274 INFO ID=612d1b08-7eb7-4bf1-9c23-46dea29d9b6d Starting action: 11065 2020-03-31 08:46:25.0274 DEBUG [HubConnection] Adding notification '11065' to queue. Queue count:3. 2020-03-31 08:46:25.0274 INFO Folder's available in PreProcessAsync: output- True, input- True, tempDir- True, training- True 2020-03-31 08:46:25.0500 INFO Catalog web address: http://LAB.LAB.local/CatalogWeb/ 2020-03-31 08:46:25.0704 INFO Is higher version False, localVersion 1.3.0.700, serverVersion 1.3.0.700 2020-03-31 08:46:25.0704 INFO serverFileDetails.Base64filehash 0x853E29401B209301C9F9C4D381202C931816C871, modelFileDetails.Base64filehash 0x853E29401B209301C9F9C4D381202C931816C871 2020-03-31 08:46:25.0724 INFO Condition for download before checking: False 2020-03-31 08:46:25.0724 INFO Saving Model file hash (0x853E29401B209301C9F9C4D381202C931816C871) and version (1.3.0.700) 2020-03-31 08:46:25.1124 DEBUG [HubConnection] Notification sent '11064' 2020-03-31 08:46:25.1484 DEBUG [HubConnection] Adding notification '0' to queue. Queue count:2. 2020-03-31 08:46:25.1484 INFO Folder's available in ProcessAsync: output- True, input- True, tempDir- True, training- True 2020-03-31 08:46:25.1504 INFO Folder's available in Before Invoking AI EXE: output- True, input- True, tempDir- True, training- True 2020-03-31 08:46:25.1504 DEBUG [HubConnection] Notification sent '0' 2020-03-31 08:46:25.1504 INFO process started - 9636process name is 1E-AIEngine 2020-03-31 08:46:25.1504 INFO in wait for exit async 2020-03-31 08:46:25.1504 INFO In Read Async 2020-03-31 08:46:25.1724 DEBUG [HubConnection] Notification sent '11065' 2020-03-31 08:46:25.1967 DEBUG [HubConnection] Notification sent '0' 2020-03-31 08:51:05.5709 INFO Folder's available in After Invoking AI EXE: output- True, input- True, tempDir- True, training- True 2020-03-31 08:51:05.5709 INFO AI process completed with exit code: 0
If you see a red warning triangle in the Process log, this indicates a problem.
The most common reason for the Process AIEngine to fail is due to insufficient memory when it runs, refer to Memory requirements for details.
In this example, clicking on the red warning triangle displays an error message explaining that the Process AIEngine has failed.
You can review the AI logs at: C:\ProgramData\1E\SLA Platform\AI\Log_*.txt
The picture opposite shows an example of a failure logged due to insufficient memory. Log_*.txt
Note
If the AI processing step does fail, the overall inventory consolidation will not. In the event of a failure, the AI processing step is skipped, making sure the rest of the process takes place as expected.
Log_*.txt > Expand
Differences in SLA Inventory screens when AI Powered Auto-curation is enabled
The SLA Inventory UI screens differ if AI Powered Auto-curation is enabled or disabled.
The process of setting up connectors, creating inventory repositories and running the basic inventory consolidation remains the same.
Basic Summary screen
You can access the Basic Summary screen using the Inventory Insights app and by choosing SLA Inventory from the left-hand menu. The data in this screen is updated by the Basic Inventory Consolidation process.
The Summary table now includes software records curated by AI. The first column in the table shows the total Records Collected. The next three columns are:
Normalized Records-Direct Catalog Matches (Distinct Products) - corresponds to software records identified using existing rules in the 1E Catalog. Exploring these will show you the normalized entries with enriched data regarding licensability, end-of-support date etc.
Normalized Records-AI Assisted Matches (Distinct Products) - the software records which AI has automatically matched and normalized. The AI recognizes the vendor, title, version and edition and normalizes them. Over time, the 1E Catalog reviews records identified by AI and enriches them with data regarding licensability, end-of-support date etc. for inclusion in future downloads.
Non-Normalized Records (With AI Suggestions) - software records which AI has low confidence in automatically matching. AI makes predictions for all source data, but predictions with a low confidence score should be manually reviewed by drilling down to the Unidentified Software Records screen.
The numbered links in brackets allow you to drill down to more detailed screens.
Unidentified Software Records screen
You can access this screen by clicking on the number link in the Non-Normalized Records (With AI Suggestions) column of the Basic Summary screen. This screen shows AI predictions that have a low confidence score preventing them being automatically matched and normalized. These predictions should still be close to accurate, therefore making the task of manually adding rules to the Catalog much easier.
This screen has the following elements:
Overview
Shows a count of distinct software records to be identified, so you can keep track of progress.
Software Products left to identify - show all records
AI predicted - records the AI was unable to identify, but was able to provide suggestions
AI predicted and partially matched - where the vendor or title was identified through previous knowledge from the 1E Catalog, these records have a default high confidence score
Cannot be identified - these records have insufficient information to recognize the software or make a prediction.
Application Type
Filters by application type.
Show only Secondary Applications -filters to only secondary applications (for example, updates, hotfixes or language packs)
Newly discovered (Last 30 days) - filters to applications discovered within the last 30 days
New to Catalog - filters to applications that are either new vendors or titles previously unknown to the 1E Catalog
Exclude Secondary Apps - removes any applications considered secondary, like updates, hot fixes or language packs.
AI Prediction Confidence
Confidence scores for predictions are divided into three equal parts below the threshold. High, Medium and Low confidence relate to the ease at which the AI engine suggestions can be manually reviewed and added as rules.
FILTER BY
Use this to add conditional filters for various fields on the Unidentified Software Records Table, for example you could filter on "Vendor Contains Micro" to return results based on Microsoft as a software vendor.
Note
If the AI feature is disabled the Basic Summary screen will differ to when AI is enabled, note the difference in the Overview element.
Unidentified Software Records Table
Each row on this table corresponds to a distinct set of software records. There are four values Install Count, Source Data , AI Prediction , Confidence and a number of actions to perform for each distinct record. The values are:
Action | Explanation |
---|---|
Install Count | The total number of records found with the same source data across the estate. |
Source Data | ARP data extracted into Vendor, Title, Version, Edition, Colloquial Version and Licensable fields. |
AI Prediction | The AI suggestion after attempting to extract Title, Version, Vendor, Edition, Colloquial Version and Licensable fields from source data, Licensability is set to a default of No on the suggestions table, this can be edited before adding. |
Confidence | Abstracted to high, medium or low based on the exact numeric value for prediction confidence, these confidences values will always be lower than the threshold required to automatically normalize records. |
For each record the Actions are:
Action | Explanation |
---|---|
Add | When clicked, this will add records directly to 1E Catalog. This option is enabled if AI suggestions for a source Vendor, Title, Version and Edition (VTVE) are generated. In case the product is not Edition based then Vendor, Title and Version (VTV) suggestions are enough. After the record(s) is added to 1E Catalog then whenever you run the nextBasic Inventory Consolidation then the same record(s) will be available in the Catalog Matched items. |
Edit | Edit functionality is available for all unidentified records. When clicked, it opens a dialog where you can provide details for the selected software record. You also have the option to add this information to 1E Catalog. |
Exclude | Exclude is available for all Unidentified Software Records, except for Partially Matched and Secondary Application types of records. Once excluded, the items are moved to Secondary Applications. You can also Include it again until the next Basic Inventory Consolidation is run, afterwards the Include option will be unavailable, and the item will become a part of Secondary Applications. |
You can explore these records to see what the AI has curated by clicking on the related links in the Basic Summary Report.
Note
We have also introduced a new screen for AI suggestions for any software records that remain non-normalized. This is a replacement for the Best Match Screen which allowed you to add rules.