プログラミングサイボウズ・ラボの光成です。3月30日に第6期サイボウズ・ラボユース成果発表会を開催したのでその報告をします。サイボウズ・ラボユースサイボウズ・ラボユースとは日本の若手エンジニアを発掘し、育成する場として2011年に設立されました。ラボユース生が作りたいものをサイボウズ・ラボの社員がメンターとしてサポートします。開発物の著作権は開発者本人に帰属します。基本的にオープンソースとして公開するのが条件です。去年からは最大1年の通年募集となっています。今年は3月で修了される3人の方と、現在開発継続中の4人、ラボユースOBから一人の発表がありました。緑川志穂さん緑川さんは楕円曲線計算ライブラリecpyのC++による高速化というテーマで発表しました。去年の中間発表ではペアリング暗号ライブラリのPython実装を紹介しましたが、今年はC++で開発したライブラリをPythonから呼べる形に改良しました(ecpy)。PythonからC++ライブラリを呼び出すところでかなり苦労されたのですが、何度か実装・設計をやり直してきれいな形にもっていけました。結果としてPython版に比べて約5倍の高速化を達成しています。今後はPythonのパッケージ管理サイトPyPIへの登録を考えているそうです。高性能通信基盤というテーマで発表しました。DPDKとはカーネルをバイパスしてユーザランドから直接ネットワークカードを参照して高速通信をするライブラリです。高速なのはありがたいのですが、ハードウェアに密着していてなかなか癖のあるライブラリです。城倉さんはDPDKを使って高速通信をしつつも、なるべく簡単にアプリを作れるようなフレームワークSTCPの開発を目指しました。ICMPなどの実装は完了し、TCPも動いています。10GbEのNICをつないだマシン間でpingをとばし、そのレイテンシを計測しました。Linuxよりも2倍速かったとのことです。それでもまだまだ全然DPDKの性能を出し切れていないので、今後はどのぐらい高性能通信ができるか研究開発を続けるそうです。篠崎慎之介さん篠崎さんは「強化学習による文字認識」というテーマで発表しました。メンターは岩波データサイエンスの刊行委員を務める中谷さんです。残念ながら諸般の事情で4カ月ほどしか参加できなかったのですが、一般的な画像の文字認識というチャレンジングな課題に対して非常に精力的に最新の論文を読んで実装していました。attentionという技法を用いて一文字の画像を認識します。attentionという技法で複数物体を認識できるように拡張しました。MNISTの数値データを適当にくっつけて3文字にしたデータセットに対して評価していました。84だと98%ほどの認識率になったそうです。西田耀さん西田さんはヒトと機械に優しい言語nvというテーマで発表しました。OS自作入門の著者の川合さんです。西田さんはこの本の熱狂的愛読者で2冊も購入したそうです。今回開発中の言語nvは永続変数が使えて実行状態を復元可能なものを目指しています。ここで永続変数とはプログラムを終了しても値が保持される変数で、nvでは一つの関数呼び出しで保存できるようにしました。変数だけ保存してもプログラムを再開することはできないので、合わせて実行状態も復元できる機能を追加しました。i}と書くと、実行中いつkillしても次回再開するとそこから動くようになるそうです。今後はプログラムを表現可能なグラフ構造を扱う機能や複数のプログラム間で変数を共有できる機能を追加したいとのことです。質疑応答ではメンターの川合さんが作成されたpersistent-Cとの比較で熱い議論をされていました。小津泰生さん小津さんは「自由度の高いグラフ描画言語の開発」というテーマで発表しました。メンターは川合さんです。小津さんは当初は別の言語の課題をしていたのですが、途中でテーマを今回のものに変更しました。ExcelやGnuplotなどの既存のグラフ描画ソフトは細かいデザインを指定できないのが不満なのだそうです。大学ではレポートのグラフに関していろいろ細かい指定があるのに、なかなか対応しづらいそうです。開発バージョンでできるグラフの紹介をしました。複雑な数式を書けたり、グラフの値をLaTeXなどから参照できることにすることで論文を書きやすくすることも考えているそうです。make_now_justさんmake_now_justさんは「先読みと後読みが可能なO(n)で動く正規表現エンジン」というテーマで発表されました。メンターは西尾さんです。狭義の正規表現では「AまたはBまたはCを含む文字列にマッチする正規表現」はかなり複雑な形になります。これを簡潔に表現するために導入されたのが先読みや後読みという機能です。正規表現ライブラリはたくさんのものがあり、たとえばre2は決定性有限オートマトン(DFA)を用いて入力サイズNに対してO(N)の計算量で処理します。re2は高速なのですが先読みや後読みをサポートしていません。そこでO(N)の計算量でそれらの機能を実現する方法を設計、実装するのが目的です。現在はまず先読みを事前に処理してから、それを除いた正規表現を処理するアルゴリズムを実装しました。automata)と状態を論理式や論理値で持つ方法やそれ以外の方法を検討しているとのことです。高品佑也さん高品さんは多変量の時系列データに対する異常検知アルゴリズムの実装というテーマで発表しました。メンターは中谷さんです。異常検知とは、予期されるパターンにそぐわないデータを検出するというタスクです。サーバのアクセスログから不審な動きを検出して警告する、といった応用があります。開発を初めて1カ月半なのですが、まずデータをクラスタリングし、小さなクラスタを異常とみなす方法をとりました。1アルゴリズムというものを用いました。Setという下水処理のセンサーログのデータセットで実験したのですが、残念ながらよい性能はでませんでした。1が連続値の扱いに向いていない点や、そもそももっとシンプルなモデルで十分なデータだった可能性などをあげていました。今後は既存の様々な手法を試したり、自分で考えた新しいアルゴリズムを試していきたいとのことです。ラボユースOB内田公太さん内田さんは第2期OBでkprobesでカーネル空間ブレークポイントというテーマで発表しました。連携する図書管理システムを作ってみた)。pointをおけるもの、関数の先頭のみのもの、関数から戻るときのものなどの機能や使い方の紹介をしました。来月発売予定の『Linuxカーネルモジュール自作入門』という書籍の紹介もしていました。終わりにみなさん成長が著しく、また熱心なのに圧倒されます。質疑応答に参加してくださった方、OBの方どうもありがとうございました。修了生の方が感想を書いてくださったのでリンクします。メンターも逆にいろいろ教えてもらうことも多く勉強になりました。正式な第7期サイボウズ・ラボユースの募集は4月に出す予定です。開発意欲の高い方の応募をお待ちしています。08:00関連記事2019-09-09「サイボウズ・ラボユース合宿2019」開催しましたこんにちは。サイボウズ・ラボの生田です。湯河原のおんやど恵...2019-04-02「第8期サイボウズ・ラボユース成果発表会」開催2019/03/22に開催された第8期サイボウズ・ラボユース成果発表会...2018-04-05「第7期サイボウズ・ラボユース成果発表会」開催こんにちは、サイボウズ・ラボの光成です。今回は3/30にあった...2016-04-01「第5期サイボウズ・ラボユース成果報告会」開催サイボウズ・ラボの光成です。LINKサイボウズ・ラボサイボウズ株式会社プライバシーポリシースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。