Update on latest Artificial Intelligence API’s and services

The past few years has seen a blur of software giants releasing AI and Machine Learning themed APIs and services. I was, frankly, surprised at how many options there currently are for developers and companies. I think it’s a positive sign for the industry that there are multiple options from reputable brands when it comes to topics like visual and language recognition – these have almost become commodities. You also see strong consolidation into very typical categories like machine learning for building general predictive models, visual recognition, language and speech recognition, conversational bots and news analysis.

  • Google
    • Google Cloud Platform
      • Google Prediction API
        • Hosted Models (Demo)
          • Language Identifier
            • Spanish, English or French
          • Tag Categoriser
            • Android, appengine, chrome youtube
          • Sentiment Predictor
            • Positive or negative label for comments
        • Trained Models
          • Train your own model
      • Google Cloud Vision API
        • Label Detection
        • Explicit Content Detection
        • Logo Detection
        • Landmark Detection
        • Optical Character Recognition
        • Face Detection
        • Image Attributes
      • Cloud Speech API
        • Audio to text
        • >80 languages
        • Streaming Recognition
        • Inappropriate Content Filtering
        • Real-time or Buffered Audio Support
        • Noisy Audio Handling
      • Google Translate API
        • Text Translation
        • Language Detection
    • Tensor Flow
      • Open Source graph-based numerical computation and model building

 

  • Facebook
    • Bot for messenger
      • Ability to build a chat bot for your company that chats via facebook messenger

 

  • IBM
    • Bluemix
      • Alchemy
        • Alchemy Language
          • Keyword Extraction
          • Entity Extraction
          • Sentiment Analysis
          • Emotion Analysis
          • Concept Tagging
          • Relation Extraction
          • Taxonomy Classification
          • Author Extraction
        • Alchemy Data News
          • News and blog analysis
          • Sentiment, keyword, taxonomy matching
      • Concept Insights
        • Linking concepts between content
      • Dialog
        • Chat interaction
      • Language Translation
      • Natural Language Classifier
        • Phrase classification
      • Personality Insights
        • Social media content analysis to predict personal traits
      • Relationship Extraction
        • Finds relationships between objects and subjects in sentences
      • Retrieve and Rank
        • Detects signals in data
      • Speech To Text, Text to Speech
      • Tone Analyzer
        • Emotion analysis
      • Tradeoff Analytics
        • Decision making support
      • Visual Recognition
      • Cognitive Commerce
        • Support for driving commerce, recommendations etc
      • Cognitive Graph
        • Creates a knowledge graph of data thats typically difficult for a machine to understand
      • Cognitive Insights
        • Personalised commercial insights for commerce

 

 

  • Microsoft
    • Microsoft Cognitive Services
      • Vision
        • Categorise images
        • Emotion recognition
        • Facial detection
        • Anaylze video
      • Speech
        • Speech to text, text to speech
        • Speaker recognition
      • Language
        • Spell checking
        • Natural language processing
        • Complex linguistic analysis
        • Text analysis for sentiment, phrases, topics
        • Models trained on web data
      • Knowledge
        • Relationships between academic papers
        • Contextual linking
        • Interactive search
        • Recommendations
      • Search
        • Search
        • Search autosuggest
        • Image and metadata search
        • News search
        • Video search
      • Bot Framework
      • Content Moderator
      • Translator
      • Photo DNA Cloud Service

Did I miss something from this list? Comment and let me know!

Facebook at GTAC on using AI for Testing

As a follow-up to my post on Google’s use of AI in Testing at their GTAC 2014 conference, here is a review of the Facebook Testing session:

GTAC 2014: Never Send a Human to do a Machine’s Job: How Facebook uses bots to manage tests (Roy Williams)

In this talk, Roy Williams tells us about the Facebook code base growing until it became hard for developers to predict the system-wide effects of their changes. Checking in code caused seemingly unrelated tests to fail. As more and more tests failed, developers began ignoring failed tests when checking in and test integrity was compromised. With a release schedule of twice a day to the Facebook website, it was important to have trustworthy tests to validate changes.

To remedy this situation, they setup a test management system which manages the lifecycle of automated tests. It’s composed of several agents which monitor and assign test quality statuses. For instance, when new tests are created, they are not released immediately to run against everyone’s check-ins, but run against a few check-ins to judge the integrity of the test. If the test fails, it goes back to the author to improve.

Facebook test lifecycle

If a passing test starts to fail, an agent, FailBot marks the test as failing, and assigns a task to the owner of the test to fix it. If a test fails and passes sporadically, another agent, GreenWarden, marks it as a test of unknown quality and the owner needs to fix it. If a test keeps failing, it will get moved to the disabled state, and the owner gets 5 days to fix it. If it starts passing again, its status gets promoted, else it gets deleted after a month. This prevents the failing tests from getting out of hand and overwhelming developers, and eventually, test failures being ignored when checking in code.

Facebook test bots and wardens
Slides can be found here by the way.

This system improves the development process by maintaining the integrity of the test suite and ensuring people take can afford to take test failures seriously. It’s a great example of how to shift an intelligent process from humans to machines, but also highlights an advantage of using machines, which is the ability to scale.

Writing this post also made me ponder why I had classified this system as an application of artificial intelligence. I believe the key lies in transferring activities requiring some degree of judgement to machines. We have already allocated test execution to computers with test automation, but in this case, it is test management which has been delegated. I will dig into this topic more in a future post I am working on, about qualifiers for AI applied to testing. 

Overall, this talk was a pretty fascinating insight into Facebook’s development world, with some great concepts that can be applied to any development environment.