How Did Watson Answer —— Computation Optimization

一、摘要

本文主要介绍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中的UIMA

(一)组件类型

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

(二)类型系统

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

(三)流控制器

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

(四)CAS倍增器

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

写到这里,笔者要跟大家说再见了。本系列,我值得借鉴的部分就到此为止了,缺失了优化、答题策略、现场强大系统这些部分。闲暇之余,会慢慢写出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值