Microsoft Research Community
Infer.NET released!!

It's a very exciting week for the Infer.NET team as we go live with our first public release, which you can get hold of right now!

This release represents many years of work and we believe it is a significant step forward in how automatic inference is performed. Here's a quick summary of what you get:

  • Rich modelling language: support for univariate and multivariate variables, both continuous and discrete. Models can be constructed from a broad range of factors including arithmetic operations, linear algebra, range and positivity constraints, Boolean operators, Dirichlet-Discrete, Gaussian,and mixtures or hierachical mixtures of any of these.
  • Multiple inference algorithms: built-in algorithms include expectation propagation, belief propagation (a special case of EP) and variational message passing (variational Bayes).
  • Designed for large scale inference: Infer.NET is architected as a compiler allowing for very efficient inference through generated code. In addition, the generated code can be viewed, stepped through, profiled or modified as needed, using standard development tools.
  • User-extendable: a plug-in architecture which makes Infer.NET open-ended and adaptable. Probability distributions, factors, message-passing operations and inference algorithms can all be added by the user.

We have written a lot of documentation on how the framework works and how you can add your own components to it.  There are also lots of examples - ranging from simple explanatory tutorials to full applications - which should help you get into Infer.NET and then gain a deeper understanding of how it works.

Although we have spent many months of testing Infer.NET internally, it is inevitable that there will be some teething problems, with the system being used in ways which we have not anticipated.  For this reason, we are initially releasing the system as a 'beta' and we are looking for lots of feedback from the community (i.e. you!) on how well it is working and what you are using it for.  If you do encounter a problem, please raise it on the forum and we will aim to respond as quickly as we can.

We really hope that Infer.NET will prove to be a valuable platform for machine learning researchers and practitioners. Your comments and feedback will help us to make Infer.NET the machine learning solution of choice!

Thanks!

The Infer.NET team

 


Posted 12-09-2008 4:33 AM by jwinn

Comments

StevenLongmire wrote re: Infer.NET released!!
on 12-12-2008 7:35 AM

Hello Infer.NET team!

Awesome developments with your efforts!

Is there a way to "offload" into CUDA and Tesla the HMM modeling for mass data set inference?

I have been looking into this the last couple of years for text ontologies and recognition of context meanings in language for threat based scenairos.  Also, for use in AI on IT environment threat research.

Any info would be apperciated.

steven@stevenlongmire.com

jwinn wrote re: Infer.NET released!!
on 12-18-2008 10:55 AM

Steven,

Thanks for the positive comments!

We do not have built-in support for running inference on the GPU.  However, it would be possible to use the Infer.NET extension mechanism to do this, as described here:

research.microsoft.com/.../How%20to%20add%20a%20new%20factor%20and%20message%20operators.aspx

The idea is that you can insert customised message operators (the computations that act on the messages during message passing).  These can be used to support new types of factor, or different implementations of existing messages e.g. using the GPU or other distributed computing mechanisms.  In order to get the maximum speedup, you would want to create factors which operate on whole arrays of messages rather than individual messages - otherwise any gains would be lost in the overhead of invoking the GPU.

It would also be possible to eliminate most transfers to/from the GPU by using proxy message classes which would hold a pointer to an array of messages stored in the GPU.  Message operations on such messages would then operate entirely within the GPU with no data transfer required.

I would be happy to discuss this in more detail.  If you would like to do so, then please start a forum thread on this topic.

Best wishes,

John

©2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement | Feedback