2020年を振り返ります。

仕事

去年に引き続き音声認識に携わっていました。 6月まではスクラムマスター兼開発者として音声認識の製品開発をしていて、gRPCでサーバーを書いたりRHEL8に対応したりMLバックエンドをChainerからPyTorchに移行したりしました。

ChainerからPyTorchに移行した話は弊社の技術ブログに投稿しました。

https://tech.retrieva.jp/entry/2020/08/11/123453

音声認識エンジンの深層学習フレームワークをChainerからPyTorchに移行しました - Retrieva TECH BLOG

音声認識チームのソフトウェアエンジニアの西岡 @ysk24ok です。 弊社では音声認識エンジンを開発しており、これまでChainerを使って音声認識モデルの訓練・精度評価をおこなってきましたが、Chainer v7を最後に開発がストップすることが発表されたため、今回ChainerからPyTorchへの移行をおこないました。 本記事では、移行にあたってぶつかった問題や工夫した点について紹介します。

7月以降は社内の体制変更があり、製品開発は一旦ストップして音声認識モデルの精度向上やモデル作成ワークフローの改善をおこないました。 また、チームリーダーということで小さめのマネジメントをしたりもしました。

会社全体でいうと、新型コロナの影響でフルリモートになり(自分は週1で出社しているが)、自宅にちゃんとした作業環境を作るまでは少し苦労しました。

OSS活動

pficommon

半分仕事ですが、pficommonのv4.0をリリースしました。 それまではほぼメンテナンスがされていない状態でしたが、社内のC++製品は程度の差こそあれpficommonに依存しているので、少しずつメンテナンスを進めていく必要があると考えたためです。

https://github.com/retrieva/pficommon/releases/tag/v4.0.0

Release pficommon 4.0.0 Release Notes · retrieva/pficommon

pficommon 4.0.0 Release Notes Date: 2020/11/27 Download Download Link: https://github.com/retrieva/pficommon/releases/download/4.0.0/pficommon-4.0.0.tar.bz2 Overview pficommon 4.0.0: supports gcc ...

新機能の追加は無く、C++03のサポートをdropしてC++11前提にするための変更が主でした。 また、CIを充実させる・ドキュメントのビルド環境を整えるなど足回りも整備しました。

jekyll-linkpreview

ありがたいことにいくつかpull requestを頂いたので、それに対応する形でv0.3.0, v0.3.1, v0.3.2, v0.4.0をリリースしました。

https://github.com/ysk24ok/jekyll-linkpreview/releases/tag/v0.4.0

Release v0.4.0 · ysk24ok/jekyll-linkpreview

New Features Now this plugin is able to generate a page which does not have Open Graph protocol metadata by #23 Others Contains refactoring by #25

ESPnet

warp-ctcのwheelがPyTorchのバージョンxCUDAのバージョンごとに別wheelになってしまって管理が煩雑だったので、PEP440のlocal version identifiersを使って warpctc_pytorch の1wheelにまとめました。

https://pypi.org/project/warpctc-pytorch/

warpctc-pytorch

Pytorch Bindings for warp-ctc maintained by ESPnet

しかしこれは別の問題を引き起こしているので、早急に直さないといけない。

その他

Gaba

今年の1月から通い始めたのでもうすぐ1年になります。 フルリモートになるまでは週2、フルリモートになってからは週1のペースで通っていますが、英語を喋れるようになった実感があるかと言われると正直微妙。 自分の言いたいことを伝えるために、知っている単語+身振り手振りでどうにかする力は上がった気はしますが。

LeetCode

コロナ禍の影響でDaily Challengeが始まり、なるべく1日1問を継続したところついに400問に到達しました。 大手テック企業のソフトウェアエンジニア職に合格するためにはLeetCode 400問が最低ラインらしいので、一応受けられる水準には達したのか?400問解いても解けない問題は解けないが…

Kaggle

MoAコンペに参加してましたが、ちゃんと時間を割かなかったので惨憺たる結果でした。 時間を割いても大して変わらなかったかもしれん。厳しい。

まとめ

今年はいろいろ手を出してしまった結果、どれも中途半端になってしまった1年でした。 時間は有限だし何より自分は所詮凡人なので、来年は何か新しいことを始めるのであれば別の何かを捨てることを意識したいと思います。

本年もお世話になりました。来年もよろしくお願いします。