「第12期サイボウズ・ラボユース成果発表会」開催

サイボウズ・ラボの光成です。 今回は2023年3月29日に開催された第12期サイボウズ・ラボユース成果発表会の模様を紹介します。

サイボウズ・ラボユース

サイボウズ・ラボユースとは日本の若手エンジニアを発掘し、育成する場を提供する制度です。

ラボユース生が作りたいものをサイボウズ・ラボの社員がメンターとしてサポートし、開発機材や開発活動に応じた補助金、旅費の援助をします。 開発物をオープンソースとして公開するという条件の元で著作権は開発者本人に帰属します。

詳細は2021年のまとめ記事「若手エンジニアの育成と輩出を目的とするサイボウズ・ラボユースが創立10周年」のPDFもごらんください。

発表会レポート

今年も発表者が多いため、ごく簡単なコメントにて失礼します。

第12期サイボウズ・ラボユース成果発表会

第一部

伊藤 愛香 「日常利用を想定したAR空間における情報配置デザインの比較検討」(メンター:生田)

今期からラボユースで初めてインタラクティブシステムゼミが始まりました。 本発表はAR空間に天気/スケジュール/ToDoリストのメニューを3通りの方法で表示し、そのUIを実際に試してもらって評価しました。 通常のUIに似たメニュー型表示、常にユーザの近くに画面表示する浮遊パネル型表示、環境に溶け込むように表示するオブジェクト投影型表示の利点や欠点が紹介されました。 UIによっては被験者の利き手に影響があったり、スケジュールのようなプライベイトな情報が遠くの壁に表示されていると違和感を覚えた人がいた、などの結果が面白かったです。

米内 悠 「感情を反映して絵を描くサポートをするアプリ」(メンター:生田)

言葉によるコミュニケーションではなく、感情を直接やりとりできないかというのがプロジェクトの発端です。 感情を絵にできればよいが、そもそもそれが難しい。 そこで、ユーザが絵を描くときにその意図を言語化することを支援するアプリケーションを提案しました。ユーザがより自分の感情を言語化しやすいように、気持ちに応じた状況やオノマトペを選択して描画できるようなUIを設計し、実装を進めています。

河野 雄也 「Sisku: Language Server Protocolに基づくプログラミング特化型検索エンジン」(メンター:川合)

プログラミング開発において検索は重要です。たとえばHaskellにはHoogleという型からAPIを検索できます。 様々なプログラミング言語でHoogleのような検索が可能なエンジンを開発しました。 LSP(Language Server Protocol)というIDEが必要とする情報をやりとりするプロトコルを使ってよい感じにドキュメントできるのではないかと考えました。

高名 典雅 「RISC-Vエミュレータの開発」(メンター:川合)

RustでRISC-Vエミュレータを開発しました。rv32imac/rv64imacに対応しています。 自作Cコンパイラのセルフホストのバイナリが動きます。標準出力はProxy Kernelを使いました。 デバッグはかなりきつかったのですが、riscv-testsを活用しました。MMUのバグなどを直してなんとか動くようにし、Linuxも動作させました。 今後は速度向上や、そのLinux上での自作Cコンパイラのセルフホストなどが目標です。

山口 雄翔 「MikanOSへのユーザスレッド機能の実装 + xv6へのNICドライバ実装とLinuxへの移植」(メンター:川合)

MikanOSユーザスレッドを実装しました。 開発が順調に進んだので、他のOSでの開発にも興味がわきました。 そこでxv6向けにNICドライバの開発をやり、今はLinuxへの移植を始めているところです。

第二部

加藤 万理子 「枝刈りとLerankによる文書要約手法の提案」(メンター:中谷)

ニューラルネットワークを使わずに従来の自然言語処理でどこまで要約ができるのかに挑戦しました。 複数の文から重要な文を抽出するためにMMR(Maximal Marginal Relevance)を用いて文同士の類似度から重要度を決めます。 そのあと文の構造木を枝刈りして圧縮します。元手法に近い性能を達成したとのことです。 ChatGPTでやってみると「ちゃんと賢かった」そうです。 論文を沢山読んでいる内にニューラルネットワークにも興味を持つようになったとのことです。

西本 晋平 「深層学習を用いた赤外線リング構造の検出と大質量星形成シナリオの解明」(メンター:中谷)

太陽の8倍重たい星がなぜできるのか分かっていません。 リング状構造(赤外線リング構造)というものがメカニズムの解明に必要です。 従来は観測された天体の赤外線データを人間が同定していたため時間がかあり、見落としなどもありました。 そこで深層学習を用いて検出する方法を開発しました。

湯谷 承将 「CVAEを用いたウェーブテーブル合成の意味的な音色制御について」(メンター:中谷)

シンセサイザーは合成エンジンが複雑になり、パラメータも多くて思い描いた音を出すのが難しくなっています。 そこで、明るさ・暖かさ・リッチさという意味的なラベルを使って音色を操作するソフトを開発しました。 事前に様々な波形のテーブルを用意して周波数や速さを変えて音響合成するウェーブテーブル合成という基本的な手法があります。 今回は音声合成を深層学習モデルを用いて、ユーザが与えたラベルに応じてより直感的な音色制御ができるようにしました。

米田 龍生 「機械学習を用いたフィラメント構造の生成と検出」(メンター:中谷)

宇宙空間のダストや分子雲からなる密度の高いひも状の構造をフィラメントといいます。 フィラメントがどのようにできたかを調べるのが目標です。 そのために機械学習のセマンティックセグメンテーションを使ってフィラメントを検出するプログラムを作りました。 手動で作ったデータセットは数が少ないためGANを使ってデータを増やしたりしました。 現在は別の方法で作ったカタログセットを用いて学習させる予定です。

第三部

赤間 滉星 「Scrappy: SeCure Rate Assuring Protocol with PrivacY」(メンター:光成)

匿名性を保ちつつ、ユーザのアクセス回数を制限するプロトコルの提案と実装です。 論文投稿中のため、現時点で詳細は公開されていません。 開発中はGoogleによるTPMのGo実装への貢献もしました。

高田 敦生 「ルーティングソフトウェアの開発」(メンター:光成)

最初はデータ構造やマルチスレッドプログラミングの基礎的な部分を学び、Cで実装して理解を深めました。 それからGoでネットワークの経路情報を表示したり、操作したりするツールの開発を始めました。 機能を追加して完成度を上げるのが当面の目標です。

野崎 愛 「AArch64エミュレータの開発」(メンター:光成)

自分で作ってコンピュータアーキテクチャを深く理解するのが目標です。 CPUエミュレータがある程度動くようになったら、簡単なユーザアプリのELFを読んでいくつかのシステムコールをエミュレータ側で処理して動作させました。 本物をgdbで動作させたときとエミュレータの動作結果を比較しながらバグをつぶしていくのが大変でした。 gdbによるステップ実行をしていてもldxrという命令はlock処理のために複数命令進めることがあり、調査に時間がかかったことがあります。 現在はAArch64用に移植されたOS xv6を動作させるために、MMUやuartなどの実装を進めて現在bootの途中まで動いています。

吉田 琉夏 「耐量子計算機暗号CSIDHの実装」(メンター:光成)

現在TLSなどで使われているECDHは量子コンピュータが登場すると破られる可能性があります。 そこで量子コンピュータが登場しても安全な耐量子計算機暗号が提案されています。 その一つCSIDHの実装をしました。最初はPythonでアルゴリズムの理解を深め、徐々に最適化を進めて現在は既存実装より速くなってきました。

まとめ

今年もバラエティに富んだ発表ありがとうございました。 懇親会などでは、互いの普段の開発状況や発表を見て自分の開発モチベーションが上がったという声を聞きました。 オンライン開催も慣れてきましたが、今年はより交流を深めるために、しばらく中止していた夏合宿をできたらなと考えています。 4月から13期ラボユースの募集が始まっているテーマもありますので、興味ある方はチェックしてみてください。

第13期サイボウズ・ラボユース募集要項