Flattened Prediction Model Chunks for Local Emoji Input

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Predictive emoji keyboards require large RAM-intensive models that are not suitable for personal computing devices like mobile devices, leading to either server-based predictions or reduced model quality on devices.

Innovation Solution

A flattened prediction model format is used, where words and their associated emojis are stored in a condensed list, allowing only necessary chunks to be loaded into RAM, reducing RAM usage through binary searches and parallel processing, enabling local predictions on devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a large prediction model is used to support a large vocabulary of text inputs, then prediction quality is improved, but RAM usage increases making it unsuitable for personal computing devices

Engineering Contradiction:
Improveprediction qualityVSAvoidRAM usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The prediction model is divided into multiple chunks that can be loaded independently into RAM. Instead of loading the entire 300MB model at once, the system segments it into smaller portions (e.g., 30MB or less) that can be managed within the limited RAM of personal computing devices, thereby resolving the contradiction between model size and available memory

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a traditional in-memory data structure approach to a file-based chunked approach with selective loading. By organizing the model as searchable chunks on storage that can be dynamically loaded into RAM only when needed, the system adds a temporal and spatial dimension to model access, allowing large models to function on devices with limited RAM

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If the prediction model is fully loaded into primary RAM from secondary memory, then prediction speed is improved, but the device requires excessive RAM resources

Engineering Contradiction:
Improveprediction speedVSAvoidRAM resources
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system performs preliminary organization of the prediction model into searchable chunks during model creation or initialization. This pre-segmentation allows the runtime system to quickly locate and load only the necessary chunks into RAM based on the input text, achieving fast prediction performance without requiring the entire model to be pre-loaded into memory

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements dynamic chunk loading where the amount of model data in RAM changes based on the prediction needs. Instead of a static full-model-loading approach, the system dynamically determines which chunks to load based on the input text, maintaining optimal prediction speed while adapting RAM usage to actual requirements

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10546061B2Predicting terms by using model chunks
Publication Date: 2020.01.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10546061B2 patent drawing
  • US10546061B2 patent drawing
  • US10546061B2 patent drawing

AI summary

The description relates to predicting terms based on text inputted by a user. One example can include a computing device comprising a prediction engine stored at the computing device. In this example, the prediction engine has previously been trained to predict terms from text. The computing device also comprises a secondary memory, for example a hard drive, storing a model used by the prediction engine to compute predicted terms from text. The computing device also comprises a primary memory, for example Random Access Memory (RAM), and a processor. The processor is configured to access one or more chunks of the model from the secondary memory based on the text input and to provide the one or more chunks to the primary memory during execution of the prediction engine.