Introduction

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.

The Inventory app captures data from different sources, then consolidates, normalizes and stores it in Inventory repositories. The Inventory app is also used to view and export inventory, and manage associations.

Inventory uses connectors to capture software, hardware and other data from sources such as Tachyon, 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 periods, or other 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.

Inventory repositories are used by the following applications:

  • Patch Success 8.0 - reports on and ensures successful patching of your enterprise
  • Application Migration 8.0 - automates the migration of applications during a Configuration Manager OS deployment
  • AppClarity 8.0 - manages entitlements, compliance and reclaiming unused software
  • Any application - if you need it to use Management Groups.

On this page:

Prior to Tachyon 5.1 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 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 installation of Tachyon.

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 files versions 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 Requirements and completed the Preparation steps, in particular the additional disk and memory requirements on the Tachyon web server.

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.

1E Catalog is included in the Tachyon Platform zip, and installed by Tachyon 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 .

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.

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 (SCCM) 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
/*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 Tachyon connector (for Inventory 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
/*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 Tachyon.

Enabling AI Powered Auto-curation during installation of Tachyon

AI is switched off by default in the Tachyon Setup, this is because the feature requires additional memory to run correctly. For more details please refer to the AI Installation requirements on this page.

During Tachyon setup you'll need to check the Enable AI-based auto-curation checkbox on the SLA and Catalog screen of the Tachyon Setup wizard. For more details please refer to the Tachyon Setup and Tachyon Setup: SLA and 1E Catalog.

Enabling AI Powered Auto-curation after installation of Tachyon

You can enable AI Powered Auto-curation after you've installed Tachyon, but before enabling check these pages for more details on the disk space and RAM requirements: Tachyon Setup and Tachyon Setup: 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 Tachyon

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.

NameDefault pathPurpose
Download pathC:\ProgramData\1E\Catalog\CatalogSynchronization\PredictionModel

This path is not configurable.

Deployment pathC:\ProgramData\1E\SLA Platform\AI

This path is configurable using the SQL script described below.

SQL script to configure AIModelDeploymentPath setting
/* 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
[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  SettingsMonitoring→Process log .

Process AIEngine

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
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 Increase in memory requirements on this page for details. 

In this example, clicking on the red warning triangle displays an error message explaining that the Process AIEngine has failed.

AI Process Engine failed

Process AIEngine 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

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

AI log memory error example

Differences in SLA Inventory screens when AI Powered Auto-curation is enabled 

There are some changes to the SLA Inventory UI screens compared with Tachyon 4.1 and SLA Platform 3.3. These screens also 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 as previous versions of Tachyon.

Basic Summary screen

You can access the Basic Summary screen using the Inventory 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.

Basic Summary Screen

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. HighMedium 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.

Table Filters

AI Predictions for Unidentified Software Records

If the AI feature is disabled the Basic Summary screen will differ to when AI is enabled, note the difference in the Overview element.

AI Predictions for Unidentified Software Records AI disabled

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:

ActionExplanation
Install CountThe total number of records found with the same source data across the estate.
Source DataARP data extracted into Vendor, TitleVersion, EditionColloquial Version and Licensable fields.
AI PredictionThe AI suggestion after attempting to extract TitleVersionVendorEditionColloquial 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.
ConfidenceAbstracted 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:

ActionExplanation
AddWhen 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 next Basic Inventory Consolidation then the same record(s) will be available in the Catalog Matched items.
EditEdit 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.
ExcludeExclude 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 .

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.