リアルタイム言語モデルを実現するには、(1)データの更新処理の高性能化、ならびに(2)学習データの高速統合、(3)脳神経科学的知見、(4)機械学習の数理的理解、が必要である。初年度となる今年度は、これらについて次の研究を行った。紙面の都合から(1)と(2)について以下に述べる。
(1)データベースに存在するデータを高速に更新するにはトランザクション処理が必須となる。2 Phase Locking (2PL)はトランザクション処理で幅広く使われており、その応用例にはGoogle Cloud Spannerがある。Bambooは最先端の2PLに基づくプロトコルである。Bambooの問題点は、トランザクションが単一の集中型アトミックカウンタからタイムスタンプをフェッチすることである。本研究では、この問題を解決するために、2つの分散化の方法を提案した。一つ目はスレッドID方式(TID)である。トランザクションはスレッドIDをタイムスタンプとして使用する。2つ目の方法(RandID)は、乱数生成器を用いてタイムスタンプを割り当てる方法である。実験の結果、FairTIDとRandIDを用いたBambooのスループットは、それぞれ60%と34%の向上を見せた。
(2) 機械学習の入力となるデータが分散しているとき、それを統合する必要がある。この目的のために包含従属性(IND)が良く使われる。従来のINDは、列から列への対応を考慮するため、その性能は貧弱だった。本研究ではタプルINDを検出するためのアルゴリズムを提案し、列から列への検出を行から行への検出に変換し、分散システムにおける実世界のデータ検索タスクに合致するようにした。提案手法は従来手法よりも高精度と高性能を同時に提供した。特にメニーコア環境における線形スケラビリティを実現した。
Realising real-time language models requires (1) high performance in data update processing, (2) fast integration of training data, (3) neuroscientific knowledge, and (4) mathematical understanding of machine learning. In the first year of the project, the following research was carried out on these topics. Due to space limitations, (1) and (2) are described below.
(1) Transactional processing is essential for fast updating of data in databases. 2 Phase Locking (2PL) is widely used in transactional processing and its application example is Google Cloud Spanner. The problem with Bamboo is that transactions fetch timestamps from a single centralised atomic counter. In this study, two decentralised methods have been proposed to solve this problem. The first is the Thread ID (TID) method. Transactions use the thread ID as a timestamp; the second method (RandID) uses a random number generator to assign timestamps. Experimental results show that the throughput of Bamboo using FairTID and RandID improved by 60% and 34% respectively.
(2) When the input data for machine learning is distributed, it needs to be integrated. Inclusion dependency (IND) is often used for this purpose. Traditional INDs consider column-to-column correspondence and their performance is poor. In this study, an algorithm for detecting tuple INDs is proposed, which transforms column-to-column detection into row-to-row detection and meets real data retrieval tasks in distributed systems. The proposed method simultaneously provided higher accuracy and higher performance than previous methods. In particular, it achieved linear scalability on many-cores.
|