Bitphase solutions leverage a unique proprietary technology platform to deliver revolutionary capabilities, while remaining interoperable with existing standards and capable of a large degree of end-user customisation. The Bitphase platform consists of many artificial intelligence modules, each providing specific functionality applicable to a limited set of tasks. These modules are linked by a common communication, control and optimisation system. This 'active infrastructure' dynamically assembles modules into networks capable of carrying out specified tasks; it routes and translates information, allocates computing resources and constantly modifies both the processing network and the structure of the modules themselves for maximum performance. The diverse range of algorithms and approaches used, along with the active management system capable of adapting and intelligently combining them, allows robust and powerful applications to be developed even in domains beyond the scope of past AI techniques. Additional non-AI modules provide support services such as persistence, clustering, user interfaces, bridges to other applications (local or Internet) and management/health monitoring.
Design Philosophy
The Bitphase technology is the end product of a research effort focused on collecting together the most promising recent advances in AI research and bringing them together in a platform suitable for commercial use. While artificial intelligence research has produced some of the most exciting advances in the IT industry, many of the most important discoveries have proven remarkably resistant to commercialisation, to the extent that most derived products are spin-offs rather than applications of the core research. The single biggest barrier is the division of the field into many competing approaches, each of which is good at solving a narrow class of problems but which cannot alone tackle more general problems or deliver reliable performance in many real world situations. A second barrier is the tendency of academic efforts to focus on simplified prototypes which while quick to build and easy to describe in research papers, do not possess the scalability, robustness or rich user interface needed for a commercial system.
Hybrid systems are a logical step forward in AI, but have proven notoriously hard to develop. Approaches such as neural networks, genetic algorithms and predicate logic are incompatible at both the conceptual and technical levels. Hybrid systems often failed to deliver improvements in flexibility or performance because the interfaces between the components became a bottleneck, losing information and requiring painstaking redesign for each new application. The Bitphase platform overcomes these obstacles by a combination of careful redesign of the individual modules for maximum interoperability and an 'active substrate' that can design, manage and optimise inter-module connections in real time. Developing the system required taking a fresh look at the real merits, drawbacks and functional basis of each approach to AI, cumulating in the development of a common theoretical model that formed the basis for the system's 'active substrate'. With the focus on commercial applications from the beginning, commercial-grade scalability, reliability and extensibility are built into the system's basic engineering. It took all of these elements and a three year research project to create a system that could bring the cutting edge of AI directly to the market, but Bitphase AI is now in a position to incorporate these capabilities into your next generation business applications.
Application DevelopmentMost Bitphase applications are developed to specific customer requirements. The three basic scenarios for developing Bitphase applications are:
In all cases the process begins with an analysis phase, in which our experts will evaluate your existing processes and IT systems and assist in developing a general specification. We can usually put together an initial proof-of-concept at minimal cost or even no charge, depending on the novelty of the application. Application development is normally handled by our staff using an iterative refinement process, generally incorporating knowledge capture and initial data mining phases as the AI components are set up. Where required we will work with external development staff and adapt to customer software development practices, though this does impact on our ability to guarantee timescales.
A
series of Bitphase-based turn-key applications, designed for customer deployment
and minimal support requirements, are currently in an early stage of development. We
are open to joint development of new applications and licensing of Bitphase modules
as components in other software systems. To discuss partnering or licensing please
contact our business development manager;
if you'd like to hear about our turn-key applications as they become available you
can join our announcements list.
The two main deployment options are user interface and server model:
|
|
In all cases we work with customer staff to ensure a successful deployment and provide ongoing support (usually including remote system management). If required we can develop and supply staff training materials, or deliver on-site training from an experienced IT trainer. We can also provide technical documentation and training for customers' in-house development staff, to permit a high degree of in-house application support, maintenance and ongoing development.
The Bitphase system supports two basic activities; searching for pertinent information about the task environment (past, present or future) and searching for plans that can achieve useful goals (common examples are sequences of actions, game strategies and software source code). Both activities require common, module-independent representations as inputs and outputs. Some modules operate on these 'general' representations directly; activity in these modules appears to the control system as many small, separate inference steps. Other modules are more opaque and make heavy use of internal, hard-to-translate representations. Activity in this type of module consists of fewer explicit inference steps, but each step does more work and has more control & optimisation options.
Models
are virtual systems with features that correspond to the key features
of real-world systems the AI is required to predict or manipulate. Individual
representations define a constraint on the possible state of some part of a
model at some point in time (for dynamic systems) and are built up by composition
from the basic primitives available in a given model. Frequently representations
are probabilistic, consisting of soft constraints that explicitly or implicitly
define a probability distribution over the possible states an element of a system
could be in. In practice most Bitphase models are highly layered, with
representations that can be expanded and collapsed to adjust the local level of
detail for an optimal balance of performance and accuracy. Layers are not necessarily
well-separated or organised into a linear hierarchy from most detailed to least
detailed; models of complex and 'fuzzy' systems may have complex, non-linear
indexing structures. Practical inference typically relies on many layered models, both
passive (from the knowledge base) and active (constructed on the fly), linked by a
global semantics, causality and inferential support framework. Various 'mapping'
mechanisms are used to translate information between models, though some modules are
capable of direct cross-model inference.
Learning in the Bitphase system does not consist solely of acquiring abstract declarative knowledge, discovering patterns with predictive value, refining probability distributions over outcomes or generating and testing hypotheses. Applications may incorporate any or all of these processes, but they are special cases of the general process of creating new processing structures capable of generating useful information. The Bitphase architecture links numerous separate 'AI content generators' into a unified self-enhancement system that combines the power of diverse machine learning approaches without rendering the system unstable or unpredictable. Speculative and probabilistic techniques (including an enhanced form of genetic algorithms) are an important source of proposed modifications, but implementation is controlled by a sophisticated structural constraint and consequence analysis subsystem (based on an internal causality model) that ensures that the overall system structure, behaviour and worst-case performance stays within user-specified limits. This system works in concert with a performance monitoring and optimisation layer that attempts to detect and avoid local optima, as well as transforming newly created modules to reduce opacity and performing cross-optimisation of interacting modules.
A selection of learning-focused modules are part of the core system, including modules that replicate the key functionality of various forms of neural, classifier and Bayesian network, as well as modules based on various forms of simulated evolution (of which genetic algorithms are a special case), analogy-driven hypothesis search and conventional statistical analysis. Where possible we have designed these modules to be capable of combination and chaining, where an one module is used as a controller to mediate self-improvement of a system defined in another module. In all cases the system is designed to be able to use human-supplied knowledge as a starting point for further learning, while remaining as transparent as possible to human inspection and refinement. Special purpose information sources can be added as required to support specific applications; for example converters and search tools for mining existing knowledge bases.
Perception and Pattern RecognitionAlmost all inference activity in AI systems can be described in terms of recognising and completing 'patterns' of some description. 'Pattern recognition' modules in the Bitphase system focus on constructing compact descriptions of salient features in a system using functions that can detect instances of these features by analysis of a large quantity of lower-level representations. Perception is the process of turning raw data about the external world (real or a simulation) into relatively compact and predictively useful models. Bitphase applications implement perception via several layers of pattern recognition directed by attention allocation and expectation generation mechanisms; different modules and stored patterns may be used at various layers depending on the application and the current information gathering requirements. Many other inference processes rely on a combination of pattern recognition and completion, often to translate information between different models or different layers in a specific model.
All of our current pattern recognition modules are in principle based on probabilistic logic, but many have considerably relaxed consistency constraints and/or use intermediate weightings that don't have strict probabilistic semantics. There are essentially two types; modules that follow a connectionist pattern of explicit parallelism and many separate, locally optimised units, and modules that repeatedly perform fast scans looking for specific cues (usually derived from high-level hypotheses). The later type effectively evaluate cue-based categorisation trees with a priority structure and level of parallelism determined by available resources and priorities; the most powerful general-purpose pattern engine somewhat resembles an actively managed and explicitly probabilistic version of parallel terraced scanning. Cue based scanning is generally more efficient and scales better as the pattern size and complexity increases, while explicitly probabilistic methods generally provide better end-to-end predictive performance. However informal and connectionist methods may be able to learn faster, particularly in novel domains. Where possible the system will attempt to use structural translation to replace pattern recognisers based on less efficient techniques with higher-performance equivalents based on more efficient techniques.
Reasoning and SearchAs noted above, most computation in the Bitphase system consists of an attempt to generate useful new information, using existing information and the available repertoire of AI modules. In most applications the majority of inference aims to predict relevant details of parts of the external world the AI has no direct data on; either the future, or hidden aspects of the present or past. There are three key processes at work, which in practice are closely interdependent; search for applicable predictive mechanisms, selection of the mechanisms most likely to produce useful results and actual application of those mechanisms, which requires management of the resulting speculative models. Search for applicable mechanisms is a multi-stage process, where gross selection of inference toolkits resembles recall from long-term memory in humans, while fine selection of specific mechanisms resembles attention allocation. The former depends heavily on various forms of cue-based index that organise elements in the system's knowledge base. Final selection and prioritisation of inference activity may be implemented by either local 'fuzzy' mechanisms or a detailed abstract model of the inference process itself; both control methods support storage and reuse of successful multi-stage inference strategies via pattern generalisation and overlay (which may be simple or based on detailed analysis, depending on the tasks characteristics and past performance of each candidate control mechanism).
As with pattern recognition, inference mechanisms based directly on probability logic (utilising representations that specify explicit probability distributions) usually give the best accuracy when fully applied, but doing so is often intractable in many tasks. The Bitphase system uses various methods to locally relax consistency and completeness requirements during speculative inference, applying progressively more thorough checks as the conclusions become more relevant to the application's final output. Less powerful forms of logic (e.g. defeasible and predicate logic) are used (where possible) for accelerated inference in cases where explicit output probabilities are not required. Finally informal methods can be applied when the inference controller determines that they are the best use of computing resources; results from these modules are translated back into general probabilistic format for use by other modules. Again, practical applications usually combine multiple inference modules and techniques, with custom modules incorporated where necessary.
Decision MakingThe Bitphase system treats decision making as an ongoing search for the best possible sequence of actions, with a time constraint implied by evaluating processing delay as a null action. All inference activity is derived from this search process, while learning and optimisation is aimed at improving the quality of the actions selected and the efficiency of the search process. Action desirability is determined by searching for and evaluating discriminating evidence; in the general case this generates probabilities for certain action sequences being preferable over others. Various mechanisms are available for defining evidence and evaluating the resulting preference structure, which may be used individually or in combination for any specific action. Internally the search process works by generating many speculative 'subgoals', which are local preference mechanisms that are predicted to help make good global decisions. This can proceed through many levels of 'subgoals', which may be based on different preference mechanisms depending on the nature of the subtasks. Evidence and supporting inference used in decision making is fully logged by default, allowing users to query and analyse the system's reasoning at any time.
The most commonly used general-purpose 'preference generator' is the expected utility module, which uses simple functions to assign 'utility' to specific features in predicted outcomes of the system's actions. Under expected utility decision making the system searches for actions with the highest expected utility in their predicted outcome set (the sum of the products of the outcome utility and the outcome probability). Though powerful, expected utility decision making can be unpredictable; for autonomous applications this can be controlled by embedding the EU module instance within a simpler rules-based or direct prioritisation framework. Setting up an initial 'goal system' by explicit design is relatively complex process, requiring a detailed domain model and creation of an appropriate set of primitives in the relevant decision module(s). However the process is reliable and the system's goals can easily be changed by end-users (where access is granted). Alternatively the system can be configured to infer goals from reinforcement cues (such as a fitness function that measures task performance), which requires less human intervention but has less predictable results (technically this is a case of generalising subgoals from observed results and the initial goal of 'maximise positive reinforcement'). Applications may use a hybrid approach where appropriate, to reduce development time or make it easier for untrained users to tweak application behaviour.
Design and PlanningLong-term planning and design (of software and other technological systems) are similar activities in terms of the demands placed on the Bitphase system. Both processes make extensive reuse of existing patterns as well as search for new patterns, which are combined and customised to produce the behaviour desired for a specific task. System design typically makes more use of deterministic simulation, constraint satisfaction (with formal verification that constraints hold) and generation of a comprehensive set of tests/use cases. Action planning usually takes place in a fuzzier environment that requires probabilistic modelling, progressive refinement and pre-generated backup plans in case of expectation failure; it may also use game-theoretic modelling when competing agents are involved.
While the system's design and planning capabilities are still under heavy development, one capability that is already used extensively is the ability to generate software code from abstract specifications, then integrate it into an existing software system. Most of the learning and self-optimisation capability within the Bitphase platform ultimately relies on the code design and support (run-time compilation, linking and security management) modules; new cognitive content can initially be run under a local interpreter, but once new components have stabilised they are translated into tightly integrated code for maximum performance. Development of this technology is ongoing and will form the basis of our upcoming range of automated software engineering tools.
Support ComponentsSeveral support modules are integral to the operation of the system; these include thread and memory management, object indexing, event logging and the system management interface. Other such as the non-AI utility libraries, common GUI components and SQL, HTTP and SMTP bridges are loaded as required. A key capability provided by the support layer is the ability to distribute Bitphase computation efficiently over a cluster of servers, with load balancing and fail-over of AI tasks. In other cases applications can use either the integrated support services or rely on external applications and protocols, depending on customer requirements:
The majority of the Bitphase support components are based on IP acquired from Destiny Star Ltd, originally developed to support large scale distributed simulations (Internet-based shared 'virtual worlds').
Advanced ApplicationsOngoing research at Bitphase AI has produced many techniques that are not yet mature enough for inclusion in the main platform; there are also several approaches recently developed by academic projects that we consider promising but have not yet translated into a form suitable for integration. These experimental modules comprise a pipeline of additional capabilities which we will add to the Bitphase platform over time. They include a set of modules that will provide improved spatial and physical modeling for robotics applications, as well as a set dedicated to natural language parsing and generation for unstructured text semantics extraction and (limited context) human interaction applications.
In the long term we have a roadmap for developing the Bitphase platform into a system capable of artificial general intelligence, providing performance approaching or exceeding typical human ability on a wide range of cognitive tasks. While such capabilities have long been predicted by the more optimistic AI researchers, so far progress towards this goal has been slow; to date all projects that have explicitly set out to build a general-purpose 'strong AI' have failed, often spectacularly. At Bitphase we have an aggressive program to develop the necessary technological prerequisites, focusing on tangible, commercialisable capabilities at each stage while conducting detailed forward planning and exploratory prototyping to ensure that research does not stall in a local optimum or dead end approach. The roadmap specifies a series of additional modules and structural enhancements that will provide increasingly general and high-level reasoning and learning abilities, focusing on more powerful forms of generalisation (such as fuzzy, ultra-rich 'concept' structures as a means of directing inference and indexing knowledge).
Our methodology focuses on understanding the key principles behind core cognitive activities, gained from both theoretical work, observation of existing systems (natural and artificial) and rapid development of exploratory prototypes that can verify and refine our design decisions. Where appropriate we research competing approaches in parallel, while maintaining high-level compatibility, to minimise technical risk and maximise flexibility in the resulting combined system. This approach has been highly successful in the development of the Bitphase system to date and we believe it will continue to drive development of breakthrough AI technology all the way to the 'AGI' level. The enormous commercial potential of technology that can potentially replace humans in the majority of tasks is self-evident, though we acknowledge that the very significant social and safety implications must not be ignored.
To find out more about the Bitphase technology and software platform, email your query or get in touch with your application proposal.