Splatoon2のウデマエがやっとXに到達した

一番好きなルールのガチエリアでウデマエXに到達したので、結構うれしい。 苦節(?)N年、やっとウデマエXまでたどり着いた!!!— Yasuhisa Yoshida (@syou6162) April 23, 2019 これや! pic.twitter.com/AqfnovLzDX— Yasuhisa Yoshida (@syou6162) April 23…

AWS Fargate上でMackerelのプラグインを実行 & 監視する

特定のホストの紐付かないメトリックをMackerelのプラグイン経由で監視する場合、AWSであればEC2上に監視専用のホスト(いわゆるmonitoringホスト)を立てることが多いです。これは便利な一方で、以下のような問題点があります。 EC2ホストの面倒を見ないとい…

2018年の砂場活動振り返り

インフラやミドルウェアにとにかく苦手意識があるが、仕事的にいつまでもそう言ってられない。そこで、最悪全部ぶっ壊れても大丈夫な砂場を作り、そこを土台に活動をするというのを2018年の目標に設定していた。 結構な時間をかけたこともあり、それなりの砂…

最近の砂場活動その11: Nuxt.jsでサーバーサードレンダリング

タイトルの通りやりましたというお話です。以前は$http_user_agentを見て、googlebotだったらrendertronを経由させてレンダリングした結果を見せることでお茶を濁して凌いでいた。 この方法、SPA自体は全く変更する必要なくbotにレンダリングされた結果を見…

最近の砂場活動その10: songmu/horensoを使ってバッチの処理時間をMackerelのサービスメトリックに記録する

機械学習の前処理をやるバッチの処理時間が以前は20分くらいだったのにいつの間にか2時間かかっていた...ということがありました。処理時間を短かくする修正は入れたものの、処理時間がどれくらいかかっているかを継続的に監視する仕組みがそもそもないのが…

最近の砂場活動その9: Cognitoで認証済みのユーザーでAPI Gatewayを呼び出す

AWS

ML NewsのWeb UIにアノテーションボタンを付けたい、でもユーザー管理機能は作りたくない(アノテーションするのは自分だけなので)。AWSのCognitoとAPI Gatewayを組み合せると簡単にできると聞いたので、やってみました。色々てこずったので正直あまり簡単で…

Pretraining Sentiment Classifiers with Unlabeled Dialog Dataを読んだ

論文読み会をやるので久しぶりに論文を読みました。久しぶりじゃダメなんだけど...。今年のACL2018でYahoo! JAPAN Researchの方が発表された内容です。 pretrainingを教師なしの対話データを使って精度向上させる Y!のリアルタイム検索でも使われているっぽ…

ついに開幕したTリーグを観戦しに行きました

10/24に開幕した卓球リーグ、Tリーグに観戦してきたので日記を書きます。 京都から名古屋の武田テバオーシャンアリーナに、以下の3試合を観戦しにいきました。 10/27 TT彩たま vs 岡山リベッツ 10/27 木下マイスター東京 vs 琉球アスティーダ 10/28 TT彩たま…

最近の砂場活動その8: Nginxとrendertronでprerenderingされた結果をクローラに見せる

趣味サイトをVue.jsを使ってSPAとして作っている。人間が見る分には問題ないが、GoogleBotがきたときにレンダリングされていなくて解釈された結果が悲しい感じになっている。 Vue.jsでもサーバーサイドレンダリングができたりするようだが、アプリケーション…

最近の砂場活動その7: Nginxで特定のパスはVPC内からしか接続できないようにする

しょうもないことですが、Nginx初心者なので自分用メモです。用語とか色々間違ってるかもしれない...。 Client => ALB => Nginx => Appのような構成を考える。ヘルスチェックやサーバーの特定の負荷状況を返すエンドポイント(こういうやつ)が存在し、これはA…

最近の砂場活動その6: パフォーマンスを改善する

最近は登壇とかでエネルギーを取られて、砂場活動シリーズ(?)全然できていませんでした。せっかく前期に砂場を作ったので、勉強の場にしていきます。現状のボトルネックがどこにあって、どこを改善していきましょう、というループを回します。ISUCONとかやっ…

特定のエンドポイントの負荷試験の結果を投稿するMackerelプラグインを書いた

これ何 特定のエンドポイントに毎秒XリクエストをY秒流した結果をMackerelのメトリックとして投稿するプラグインを書きました。こんな感じでレスポンスタイムの99パーセンタルなどが可視化できます。 mkrを使っている人は以下でインストールできます。 % mkr…

MACHINE LEARNING Meetup KANSAI #3で機械学習を使った趣味サービスにおける工夫を紹介しました

最近、仕事のちゃんとした登壇が多かったので、趣味でやっているWebサービスにおける機械学習関連の工夫について発表してきました。基本的に昔ブログで紹介したエントリのまとめバージョンです。 趣味の余暇時間で開発しているサービスなので、いかに手間を…

「今日から始める機械学習〜はてなの事例〜」というタイトルでデブサミ2018関西で登壇しました

株式会社ハカルスの染田さん(Machine Learning Meetup KANSAI繋がり)からご紹介頂きまして、タイトルの内容で登壇してきました。 今日から始める機械学習〜はてなの事例〜 from syou6162 A-3セッション『今日から始める機械学習~はてなの事例~』吉田 康久…

Mackerel Meetup #12で異常検知機能について発表しました

タイトルの通りですが、Mackerel Meetup #12で登壇してきました。 ユーザーの皆さんからご要望を直接聞けるので、Meetupは開発者としてもとてもありがたい場になっています。参加してくださった皆さま、ありがとうございました。私が発表したスライドはこち…

はてな社内でKaggleハッカソンを行ないました(TakingDataリベンジマッチ編)

先週末、はてな社内でKaggleハッカソンを行ないました。丸一日、各自好きなKaggleのコンペに取り組んで、得られた知見を共有するという会です。 自分は以前TalkingDataというコンペに参加していたのですが、データサイズが結構大きく、一月くらいやってみた…

最近の砂場活動その5: AWS Step Functionsで機械学習のワークフローの管理をする

はてなブログのHTTPS配信をやっていた同僚からAWS Step Functionsはいいぞ!というのを教えてもらいました(発表資料)。機械学習のワークフロー管理にもこれは便利そうだなーと思って、自分でも試してみました。やってる内容はN番煎じです...。 機械学習とワー…

AWS Batchとそのモニタリング方法について

AWS

最近、仕事や趣味でAWS Batchをよく使っています。仕事と趣味のそれぞれの用途は以下の通りです。 仕事: 機械学習を用いた異常検知システムのパラメータ学習 PyCon mini Osakaで異常検知システム構築の裏側について発表しました - yasuhisa's blog 学習デー…

pg_activityで刺さっているクエリを殺す

サービス運用しているとクエリが刺さってパフォーマンスが悪くなってしまっているとき、ありますよね。根本対応は別途やるとして、今はひとまずこの刺さっているクエリを殺して凌ぎたい。PostgreSQLではpg_stat_activityというテーブルに現在実行中の情報が…

最近の砂場活動その4: CloudWatch Logs/Kinesis Firehose/S3/Athenaを利用してログ分析をやってみる

Fargateを使うようになり、EC2サーバーを管理しなくなってよくなりました(東京リージョン、7月ですね!)。一方、これまでサーバーにログとして吐かれていたファイルの閲覧や集計に困ることも増えてきました(sshでログインして、ログファイルをgrepなどができ…

Go言語でWebアプリを書くときにオートリロードどうするといいの問題

Go

Go言語を書く際、成果物がシングルバイナリになるのは便利です。deployするときや他人に使ってもらうときに、それだけ渡せば使ってもらえるので。cliツールやapiサーバーを書くときにはこの方式で困っていなかったのですが、いわゆるWebアプリをGo言語で書く…

最近の砂場活動その3: フロントエンド編(Vue.js/SPA)

Vue.jsでフロントエンド再入門しました。仕事でjs触るけど、ゼロからあれこれやると分からないことが無限に発生しますね...。成果物はこちら。 GitHub - syou6162/go-active-learning-web ML News サーバーサイドはGoで書いていて、フロント周りがVue.jsです…

PyCon mini Osakaで異常検知システム構築の裏側について発表しました

現在仕事で作っている異常検知システムについてPyCon mini Osakaで登壇してきました。異常検知というマイナーなトピックですが、多くの人に聞いてもらえてよかったです。 #pyconjp #pyconosaka 「Pythonを用いた異常検知システム構築の裏側」吉田康久さんで…

最近の砂場活動その2: ECS/Fargate/AWS Batch編

ゴールデンウィークということもあり、前回に引き続き砂場活動をやりました。前回はCloudFormationを使い、ElastiCache/RDSを立てて、EC2の上でWebアプリを動かすところまでをやりました。 今回はECSやFargate、AWS Batchなどコンテナの恩恵をより受けられる…

最近の砂場活動その1: CloudFormation/RDS/ElastiCache編

機械学習っぽいエントリばっかり書いているけど、普段はWebアプリケーションエンジニアをやっている。そちらの方面の勉強もちょびちょび進めていく。圧倒的に知識と経験が足りなくて、危機感しかない。 アプリケーションエンジニアがインフラオーナーシップ…

NLP(言語処理学会)2018で面白かった論文メモ

あれこれ雑にメモっていて、きちんとしてから外に出そうと思っていましたが、下書きのままお蔵入りしそうだった。出せるところで出す...!すでに開催から一ヶ月も経ってしまった。 A1-1: ニューラルヘッドライン生成における誤生成問題の改善 B2-4: ニューラ…

社内でKaggleの布教活動をやっている話

最近、社内勉強会で機械学習についてエンジニアに説明する機会があり、その際にKaggleについても説明しました。一方で うーん、「Kaggler はパラメータチューニングやアンサンブル等の自明でインクリメンタルな改善『しか』できない」というような誤解はどう…

KaggleのCTR予測コンペで上位10%に入るまでの試行錯誤

週末KagglerとしてavazuのCTR予測コンペに参加しました。Kaggleは機械学習版のISUCONだと思ってもらえばよいです。コンペ自体は終わっているので、late submiteであまり意味はないかもしれません、練習です。leaderboard上で上位10%以内に行けたので、そこま…

S3のログをAmazon Athenaを経由してRedashで分析/可視化

DWHやログ基盤を色々試してみたいけど、Amazon Redshiftよりお手軽に始められるツールとしてAmazon Athenaを教えてもらいました。S3にtsv/csv/json...を置いておくと、SQLで分析できるってやつです。BigQueryと同じくクエリ単位で課金だけど、ログはS3に上が…

Hacker Tackleで「はてなにおける機械学習の取り組み」について登壇しました

LINE福岡で行なわれたHacker Tackleにて登壇してきました。 発表内容は(1)機械学習を使ったサービス開発の難しい点について整理し(2)その難しさを乗り越えていくためにはてながどのような取り組みを行なっているかについてでした。一口に機械学習を使ったサ…