您的位置:首页 > 运维架构

How Did Watson Answer —— Computation Optimization

2015-11-25 17:38 246 查看

一、摘要

本文主要介绍DeepQA架构中大量的并行计算如何进行和加速,以及针对CPU计算的优化。并行加速无非就是将一项大任务切分为几个子任务同时进行,这个框架名字叫“非结构化信息管理架构”(UIMA, Unstructured Information Management Architecture)。最直观的效果就是,将单核运行时间2-3小时的程序通过上千个核在3秒内运行出结果,加速比大概为2500-3500。

二、DeepQA中的UIMA实现

为了在UIMA框架中使用分析应用,需要在UIMA的Annotator中封装分析代码,统一所有的输入与输出格式,将数据组织进统一分析结构(Common Analysis Structurees)。下面是UIMA的一些常用概念:

1. 类型系统——一种声明性的数据模型,定义了类型和特征;

2. 统一分析结构(CAS)——在UMA构建中传递使用的数据结构;

3. 执行器(Annotator)——在UIMA中负责进行计算的组件;

4. 流控制器(Flow Controller)——在UIMA的各组件中分配CASes;

5. CAS倍增器(CAS Multiplier)——一种特殊的执行器,输入是一类CAS,然后输出一些由此产生的CAS。

高级系统结构图如下:



(一)组件类型

每一个DeepQA的组件都被作为一个执行器来实现,其作用见Overview

(二)类型系统

UIMA的任何组价之间的数据通信都是基于类型系统的,这里系统大致分为两类,一种是用来进行语言分析的通用NLP类型,另一种是在QA中特有的DeepQA类型。

(三)流控制器

流控制器用来控制CASes在各组件之间的调用使用情况。不同的流在上图中用不同的颜色来表现。

(四)CAS倍增器

每个CAS都有ID,所以在经过组件处理之后,会由CAS倍增器产生新的CASes来存储处理结果。

写到这里,笔者要跟大家说再见了。本系列,我值得借鉴的部分就到此为止了,缺失了优化、答题策略、现场强大系统这些部分。闲暇之余,会慢慢写出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: