2020年の研究振り返り

今年は、エンジニアから研究者になって2年目になる。

社会情勢の変化を除いては、さくらインターネット研究所での研究活動の一貫として、京大情報学研究科の博士課程に進学したことが最も大きな変化だった。 とはいえ、博士課程ではなにか特別新しいことをやり始めたということはない。 研究内容はそのままに、自分にとっての「普遍的学術的貢献」とは何かを考えるプロセスとして博士課程を位置づけている。 自分にとっての研究活動や博士課程の位置づけについては、キャリアについて寄稿する機会をいただいたので、次の記事にまとめてある。

今年は、研究報告、国際会議、ジャーナル(論文誌)への採録と、学術研究の一連のプロセスをこなせるようになった。 国内では、山下記念研究賞やシンポジウムで連続して賞をいただくようになり、対外的な評価も少しずつついてきた。 論文誌の査読も依頼されるようになってきた。 投稿論文をリジェクトされたりしながらも、概ねに順調に研究は進捗している。

所属する研究所、研究室、共同研究先でのディスカッション、論文の査読を通し、過去の自分と比べて、研究スキル、とりわけ言語思考能力が大幅に高まっていることを実感している。 エンジニアをやっていたころは、具体的なテクニックや専門知識を習得・披露することに拘泥していたせいもあって、より一般的な思考能力にこんなに伸びしろがあるとは思っていなかった。

自分のスキルが向上する一方で、クラウド分野のトップカンファレンスの論文と自分が書く論文との差がどこにあって、その差がどの程度大きいかも徐々に精緻にみえるようになってきた。 GoogleやFacebook、Amazonからでている有名論文だけに着目すると、もはや研究環境が違いすぎてどうしようもなくみえてくるが、それ以外の論文に目を向ける機会が増えてきた。 その結果、実環境のデータの差よりもむしろ、既存の手法を泥臭く実装して比較したり、比較の結果みえてくる具体的な課題が設定されていたり、何回も投稿してはリジェクトされては修正を繰り返したりと、努力量の差が大きいのではないかと思うようになってきた。

その一方で、個人でやれることの限界もすこしずつみえてきた。 実践的な研究の理想形は、学術としての貢献を示しながらも、事業で実践できるレベルにソフトウェアを作り込み、なおかつ、実際に現場に導入し、事業での貢献も示すことになる。 今個人でできるのは論文を書いて、論文の評価のための実験環境とプロトタイプ実装をつくるところまでだ。 この序盤の範囲であっても、機械学習のように別分野の手法を組み合わせようとすると、その専門家とチームでやっていく必要があった。 さらに、自分と同じようなクラウド分野の研究者が少なく、この分野で世界でどんな研究がされているかの情報収集も個人でやっているが、なかなかキャッチアップが追いつかない。 現場に導入しようとすると、研究で解決するような問題以前の組織的課題やマインドセットの課題に行き当たる可能性を考えると、なかなか積極的にはなりづらい。

この個人の限界をゆくゆくは超えていくために、研究所内での連携を充実させたり、研究者とエンジニアが議論する場であるWSA研を継続したり、社内で発表したり、他の会社さんと情報交換の場を設定したりと、僅かではあるけれども、先鞭をつけている。 この限界に対して、ここで述べているよりもより広い範囲で同僚のまつもとりーさんが来年取り組まれていく

時系列の振り返り

ここまでで大まかに今年を振り返った。以降では、年始から年末までの出来事を順番に振り返っていく。

今年の冬から春先までは、寒さだけを感じながらも、大学院の入試の準備をしていた。 昔大学院を中退した結果、修士の学位がないので、入学審査を受ける前段の資格審査も必要だったこともあり、書類と研究計画をまとめることに時間がかかっていた。 このとき出版済みの博士論文をいくつか眺めたり、E・M・フィリップス著「博士号のとり方」を読んだりして、学術や博士とは何かについて思いを巡らせていた。 ネットワークメディア専攻を志望したので、試験勉強のために、TCP技術入門――進化を続ける基本プロトコルを一夜漬け程度に読んだりしていた。

研究所では、量子アニーリングが研究テーマの一つだったので、藤井先生の著書 驚異の量子コンピュータ 宇宙最強マシンへの挑戦を読んだり、たまたまこの時期に京都で開催された藤井先生の講演に参加して、量子コンピュータを簡単に勉強していたりした。

同時に、1月末には、SREの初の国内カンファレンスであるSRE NEXT 2020で基調講演の機会に恵まれた。 前年から言い続けている、SREとそれ以前の運用との差は、失敗を前提とし信頼性はコントロール対象であることを大勢の方々を前に改めて述べられた。 どれだけ僕の言が寄与しているかはわからないが、SREに対する世の中の認知と、自分の認知はこの1,2年で揃ってきたように感じた。 このころは、あまり余裕がなく、発表内容が博士課程の研究に寄りすぎていたきらいがあった。 今なら、もうすこし夢をふくらませるような話ができそうだと思っている。 次回開催されるようなら、ぜひCfPに応募して発表したい。

SRE NEXT基調講演を終えて - ゆううきブログ

さらに同時に、国際会議IEEE COMPAC 2020のために、論文を英語化していた。 博士課程の審査と日程が近くて少し大変だった。 最終的に、昨年よりも劣るWorkshop採録になってしまった。 この論文を今ジャーナル投稿のために練り直している。 今読むと、この当時、校正にはだしたものの、英語の質もあまり高くなく、論文としての出来も国内シンポジウムに投稿したレベルからブラッシュアップできていなかったので、結果は当然とも言える。

3月は溜まっていた有給を一気に消化し、3週間ぐらい休んでいた。 おかげで、近所の川沿いの桜をながめながら、季節の変化を感じる心の余裕ができた。 寝る間を惜しんで、SFアドベンチャーゲーム「十三機兵防衛圏」とか「FF7 Remake」をやっていた(FF7は4月だけど)。 これだけ集中してゲームをクリアしたのは社会人になって初めてかもしれない。 近所のいろいろな料理店に通いまくるのが趣味だったので、ずっと自炊をやってなかったけど、ウイルスが飛び交う世界になったので、自炊道具を揃えて、引っ越してから6年目にしてかんたんな料理をするようになった。 とはいっても、次の月から締め切りに追われ始めると、あっという間に習慣は失われた。 休みながらも、shawkをコードを書いていて、性能を上げたり、テストを充実させたりしていた。

さくらインターネット研究所での1年 - ゆううきブログ

春から夏にかけては、リジェクトされたHeteroTSDBの論文を再構成していた。 論文のストーリーを大幅に変更し、プロトタイプ実装を一から作り直していた。 VictoriaMetricsやCassandraをはじめていじったり、性能がなかなかでない問題を解決していたりしていた。 Redis Clusterとgo-redisの深刻な性能劣化を解決した話 - ゆううきブログ 大学院の講義をいくつか受けていたのだけど、あっという間にでる暇もなくなっていった。 休日出勤を活用しながら、毎日、論文、実装、実験を行き来していて、元気だったが、睡眠が不安定で、いろんな時間に寝ては起きていたりした。 そのせいか、このころのエピソード記憶とカレンダーとの紐付けが狂っていて、このころに起きたはずの出来事が昨年起こったように感じたりする。

夏は、代休を使って、10日くらい休んだのちに、同僚のつるべーさんと一緒に、SREの問題を機械学習や統計的因果探索を使って解く研究を始めた。 SREの中で、僕が着目する問題意識は、サービスレベル目標(SLO)を軸にした異常の原因探索のための研究の調査 / SLO-based Causality Discovery in Distributed Applications - Speaker Deckにまとめている。 このときは何の成果もなかったが、見切り発車で9月締め切りのIOTS2020に投稿することだけは決めていた。 マイクロサービスを対象としたために、実験環境の構築に手間ひまをかけることになった。 GKE上にPrometheusとSock Shopを構築し、意図的に異常を起こすテクニックを模索していたりした。

締め切りが終わったら次の締め切りがやってくるものである。 秋口は、涼しさを感じる間もなく、HeteroTSDB論文の条件付き採録に対する回答文を作成していた。 採録条件が重たく、再実験が必要で、なおかつ、回答文の作成が初めてなこともあって、休日出勤もいれて2週間ぐらいかかりきりになった。 修正は大変だったけど、その分、いい論文になったと思う。

10月に代休と夏休みをいれて、3週間ほど休暇をいれた。 ずいぶん疲れていたようで、1週間ぐらいひたすら家でだらだらと過ごしていた。 友人とヴァイオレット・エヴァーガーデンの映画を見に行ったり、秋の散歩を楽しんでいた。 機械学習の勉強も始めた。 今更すぎるけど、機械学習はおもしろい。

秋から冬にかけては、国際会議や機械学習の国内研究会、LINE DEVELOPER DAYなどに参加していたり、研究所にNotionを導入したり、WSA研などTSifterの研究をいくつかの場でフィードバックをもらいながらブラッシュアップをしていた。 機械学習にせよ、LINE DEVELOPER DAYにせよ、学術とエンジニアリングが入り混じった空間が形成されているように感じた。 さらに、世界の最先端の研究の話を当たり前のように議論していたり、発表されていたりすることに羨望を感じた。 クラウド系の国際会議IEEE CLOUD 2020参加録 - ゆううきブログ

この時期は、自分の研究に集中しきれなくて、これまでやってなかった環境整備を進めていたりした。 Notionは本当によくできていて、研究所内での情報共有量も増えてきて、満足している。 研究室に入学後はじめて訪れた。秋の京大は紅葉が美しかった。

12月は、IOTS2020で発表した。 社会人学生の発表者だけで構成された疑惑の学生セッションだった。 互いの共著者や同僚同士で質問し合うセッションとなり、おもしろかった。

月単位ぐらいで開催されているさくらインターネット社内全体向けの研究会で、今年の活動を総括しながら、IPSJ-ONE 2017から考え続けてきた、もう少し先のビジョンをかんたんにまとめた。

]

年末の今は、鬼滅の刃の映画を観に行ったり、FF14で遊びながらも、Transtracerの研究のジャーナル投稿に向けて、実装を改良するために、eBPFと戦っている。

今年は、デッドラインに向かって、休日出勤して、研究に集中して、その後代休と有給を使ってゆっくり休むスタイルが根付いてきた。 緩急をつけやすく、休みの間は、罪悪感をあまり感じずにゲームしたり、だらだらしたりすることができた。

孤独との向き合い方

昨年から自宅でのリモートワークだったので、働き方の面では、コロナ禍の影響をあまり受けなかった。 ただし、昨年は、毎月研究会やカンファレンス参加のために出張していたことを踏まえると、部屋にいる時間は長くなって、人と話すことも減った。 部屋のなかで独りで黙々と研究するのは、性にあっているが、やはり孤独を感じることもあった。 また、同分野の研究者が少ない上に、同分野のエンジニアとは目指すところや議論の仕方にも違いがあるので、距離を感じることもあった。 そんなときは、「孤独を恐れない」を思い出すようにしている。

研究をする、まだ名前がない技術分野を突めようとする時に、先が見えずわけもわからず一人で苦しいと感じることがあるかもしれません。そんな時は孤独を友だちにしたい。 何かを突めるとき、孤独から逃げない姿というものに美しさを感じます。

孤独から逃げようとして動機を失うぐらいであれば、孤独を受け入れ、孤独だからこそ生まれる動機を大事にしていきたい。

2020年の研究成果リスト

最後に今年の研究成果のリストを貼っておく。

受賞

  1. 情報処理学会インターネットと運用技術シンポジウム2020(IOTS2020)優秀論文賞 坪内佑樹, 鶴田博文, 古川雅大, TSifter: マイクロサービスにおける性能異常の迅速な診断に向いた時系列データの次元削減手法, インターネットと運用技術シンポジウム論文集, 2020, 9-16 (2020-11-26), 2020年12月.
  2. 情報処理学会インターネットと運用技術シンポジウム2020(IOTS2020)優秀プレゼンテーション賞 坪内佑樹, TSifter: マイクロサービスにおける性能異常の迅速な診断に向いた時系列データの次元削減手法, 2020年12月.
  3. 2020年度 情報処理学会 山下記念研究賞,坪内佑樹, Transtracer: 分散システムにおけるTCP/UDP通信の終端点の監視によるプロセス間依存関係の自動追跡, 2020年.

論文誌論文

  1. 坪内佑樹, 脇坂朝人, 濱田健, 松木雅幸, 小林隆浩, 阿部博, 松本亮介, HeteroTSDB: 異種分散KVS間の自動階層化による高性能な時系列データベース, 情報処理学会論文誌, Vol.62, No.3, 2021年3月. [論文] code (to appear)

国際会議録(査読付き)

  1. Yuuki Tsubouchi, Masahiro Furukawa, Ryosuke Matsumoto, Transtracer: Socket-Based Tracing of Network Dependencies among Processes in Distributed Applications, The 1st IEEE International COMPSAC Workshop on Advanced IoT Computing (AIOT 2020), July 2020. [paper] [no presentation] code

国内会議録(査読付き)

  1. 坪内佑樹, 鶴田博文, 古川雅大, TSifter: マイクロサービスにおける性能異常の迅速な診断に向いた時系列データの次元削減手法, インターネットと運用技術シンポジウム論文集, 2020, 9-16 (2020-11-26), 2020年12月. [論文] [発表資料]

国内会議録(査読なし)

  1. 松本亮介, 坪内佑樹, クライアントプロセスの権限情報に基づくTCPを介した透過的な権限分離方式の設計, 情報処理学会研究報告インターネットと運用技術(IOT), No.2020-IOT-49, Vol.11, pp.1-6, 2020年5月.
  2. 林友佳, 伊勢田蓮, 松原克弥, 鷲北賢, 坪内佑樹, 松本亮介, 動的適応性を持つ分散システムを対象としたシステム状態可視化手法の検討, 情報処理学会研究報告インターネットと運用技術(IOT), No.2020-IOT-48, Vol.22, pp.1-8, 2020年3月.

国内講演

  1. 坪内佑樹, (基調講演) 分散アプリケーションの信頼性観測技術に関する研究, SRE NEXT 2020 IN TOKYO, 2020年1月25日 [動画]

国内口頭発表

  1. 坪内佑樹,鶴田博文,古川雅大 マイクロサービスにおける性能異常の迅速な診断に向いた時系列データの次元削減手法, 第7回WebSystemArchitecture研究会, 2020年11月14日.
  2. 坪内佑樹, 分散アプリケーションの異常の因果関係を即時に推論するための手法の構想, 第6回WebSystemArchitecture研究会, 2020年4月26日.

学会誌・商業誌等解説

  1. 坪内佑樹, ITエンジニアから研究者へ。社会人博士として大学院にも再挑戦し、自分の「代表的プロダクト」を追求するわけ, Findy Engineer Lab, 2020年5月.