JX通信社エンジニアブログ

https://tech.jxpress.net/

JX通信社エンジニアブログ

フィード

記事のアイキャッチ画像
生成AIでニュースアプリの精度改善を競う社内コンペを開催しました
JX通信社エンジニアブログ
JX通信社CTOの小笠原(@yamitzky)です。4月19日に「AIコンペティション」を社内勉強会として開催したので、その取り組みを紹介します。 開催の目的 JX通信社では、AIで世界中のリスク情報を解析する「FASTALERT」という製品を開発しています。ただ、普段からエンジニアの全員がAI開発に取り組んでいるわけではなく、フロントエンドやバックエンドなど、AI以外のコンポーネントを開発しているエンジニアも多くいます。 数年前まではDeep Learningなどの高度なAIを活用した製品開発は敷居の高いものでしたが、 近年ではAutoMLやAmazon SageMakerのようなマネージド…
2日前
記事のアイキャッチ画像
リモートワークでもできる、気軽に始める勉強会のすすめ
JX通信社エンジニアブログ
スクラムマスターの@sakebookです。今回は「リモートワークでもできる、気軽に始める勉強会のすすめ」です。 「勉強会」というと、想像するものが人によって異なるので、事前にどんなものかを書いておくと 「直接の業務ではないが何かのテーマについて一緒に学んでいる会」 のことを勉強会と、この記事では定義します。 そんなのは勉強会じゃない!という人は適宜読み替えて、こういうことをやったよ気になったらやってみてねくらいの温度感で読んでください。 この日は動画再生が上手くいかなかった リモートワークにより開催機会の減少 コロナ禍以前からリモートワークを取り入れていた弊社ですが、コロナ禍に伴い、地方へ移住…
21日前
記事のアイキャッチ画像
KiotaでOpenAPIの定義からGoのクライアントを生成してみる
JX通信社エンジニアブログ
こんにちは。 kimihiro_nです。 Microsoftから「Kiota」というOpenAPIの定義からクライアントコードを生成するツールが公開されていたのでちょっと触ってみました。 learn.microsoft.com Kiota の特徴 JSON、YAMLで書かれたOpenAPIのAPI仕様から、APIを呼び出すためのクライアント部分を自動生成してくれるツールです。 特徴としてはGoやPythonなど様々な言語への書き出しに対応していて、似たようなインターフェースで扱える点になります。 API仕様を一度共通の内部的なモデルに変換し、そこから各言語のクライアントを生成する面白いアプロー…
2ヶ月前
記事のアイキャッチ画像
APIクライアント「Insomnia」で始める、チーム開発効率化
JX通信社エンジニアブログ
JX通信社の CTO の小笠原(@yamitzky)です。本日は、最近社内で検証している API クライアントの「Insomnia」や、Insomnia を活用したチームでの API 開発の効率化についてご紹介します。 Insomnia とは Insomnia は、オープンソースの API クライアントです。API 通信を GUI で直感的に検証・保存できる、というのが最も基本的な機能です。似たようなツールだと Postman などが有名だと思います。 insomnia.rest Insomnia は一般的な REST API だけでなく、GraphQL や gRPC の API にも対応した…
4ヶ月前
記事のアイキャッチ画像
ダウンタイムを抑えてAWSからGoogle Cloudにデータベースを移行したはなし
JX通信社エンジニアブログ
こんにちは。kimihiro_nです。 今回はプロダクトで使用しているデータベース(MySQL 互換)を AWS から Google Cloud に引っ越ししたときのはなしを紹介します。 AWSから Google Cloud へ AWS では MySQL 5.7 互換の Aurora グローバルデータベースを利用していました。 グローバルデータベースを使っているのは、大規模災害時におけるリージョンレベルでの障害に備えるためのもので、万一リージョンレベルの障害が発生してもサービス継続できるような体制を作っていました。 今回ある事情から Google Cloud の CloudSQL へのお引っ越…
10ヶ月前
記事のアイキャッチ画像
チーム規模が変動するチームでスクラムマスターとしてやってきたこと
JX通信社エンジニアブログ
お久しぶりです。シニアエンジニアの @sakebook です。今回私がスクラムマスター(以下SM)として所属するチームで、SMとして、およびチームで取り組んできたことなどを共有します。 背景 他社事例なども見聞きするなかで、今まで何をやってきたのかを共有することはそれなりに誰かの役に立つことがあると思ったのでこの度まとめました。 前提 この手の話を見聞きする上で前提が異なっていると解釈しにくいので、私たちのチームについて説明します。 チームには業務委託や副業の方、つまり週5稼動ではない人たちもいました。 最大でエンジニアは10人強いました。出入りは数ヶ月単位で発生していて、最小は5人です。 P…
1年前
記事のアイキャッチ画像
APIをダウンタイムなしでAWSからGCPに引越しました
JX通信社エンジニアブログ
こんにちは。JX通信社 サーバーサイドエンジニアの内山です。 私が所属するNewsDigestチームでは先日、モバイルアプリ用APIをAWSからGCPにお引越しする、というプロジェクトを行いました。 会社の方針としてGCP利用を推進していることや、GCP特有のマネージドサービスの活用を視野に入れ、移行を決めました。 今回のAPI移行では、大きく以下2パートの作業がありました。 APIのホスティングサービスをGCP上のものにするためのCI/CD設定, 定義作成, アプリケーション修正などの作業 APIドメインのルーティング先をAWS -> GCPに切り替えるインフラ作業 本記事では、後者のルーテ…
1年前
記事のアイキャッチ画像
Hydraで書かれたコードをVertex AI Pipelineで動作できるようにした
JX通信社エンジニアブログ
背景 ML Pipelineについて ML Pipelineとはなにか? Vertex AI pipelineとは? HydraとVertex AI Pipeline 問題点 解決法 実際に動かしてみた 各コンポーネントのコンテナイメージを作成 data prepare train 各コンポーネントの設定を行う 各コンポーネントの接続 まとめ 背景 こんにちは!JX通信社シニアMLエンジニアのファンヨンテです。 JX通信社では 属人化しがちなR&Dをチーム開発するため社内共通のテンプレートコードを用いて機械学習が行われています。テンプレートコードにはハイパーパラメータ管理のパッケージとして、H…
2年前
記事のアイキャッチ画像
Sentry で Go 製アプリケーションのエラーを楽に管理する
JX通信社エンジニアブログ
今回はSentryというエラー集約管理システムをGo言語で扱う場合の知見を共有したいと思います。## Sentry とはSentryはエラーの集約管理を行うためのシステムで、作成したアプリケーション内で発生したエラーを一括で収集して見やすく管理することができます。
2年前
記事のアイキャッチ画像
AI開発時に、あるClassのデータを集中的に追加する時のTipsと注意点
JX通信社エンジニアブログ
こんにちは!JX通信社シニアMLエンジニアのファンヨンテです。私は普段から、顧客にとって価値の高い(言い変えれば、顧客を幸せにできる)AIを開発することをモットーに仕事に励んでます。そのためには、AI開発の速度を高め、様々なAIやその見せ方を顧客に試していただくことで、顧客の幸福度を上げる方向性を見出していく必要があります。 効率性を高め、AIの開発速度を上げるために、JX通信社では様々な工夫を行っており、これまでもブログで紹介してきました。 tech.jxpress.net tech.jxpress.net tech.jxpress.net 今回はその取り組みの中でも、あるClassのデータ…
2年前
記事のアイキャッチ画像
AWS Lambdaの構成管理のためにterraformを導入してみた
JX通信社エンジニアブログ
FASTALERT開発チームバックエンドエンジニアの鈴木(泰)です。 本記事は、AWS Lambdaの構成管理のためにTerraformを導入してみたというお話です。 TL;DR FASTALERTチームの開発文化とTerraformの導入に至った背景 AWS Lambda関数をTerraformでどう管理しているか もくじ TL;DR もくじ 本対応の背景 FASTALERTとチーム文化 workerレポジトリ apexのメンテナンス停止 Lambdaの構成管理ツールとしてTerraformを採用した理由 AWS Lambdaの構成管理のためにTerraformを導入(詳細) ディレクトリ構…
2年前
記事のアイキャッチ画像
Hydraで書かれたコードをVertex AIでハイパーパラメータ調整できるようにした
JX通信社エンジニアブログ
背景 問題点 Vertex AIの公式ドキュメントに記載されている形式 Hydraの形式 解決方法 Hydra形式へ変換し、本来の学習コードを実行するスクリプトの作成 HydraのコードでVertex AIのハイパーパラメータ調整ができた まとめ 補足:チームでR&Dに取り組む工夫 我々とともに挑戦する仲間を求めています 初めまして、JX通信社のMLチームでインターンをしている田中です。これまで物体検知や深層距離学習を使った画像分類、自然言語の分類や生成などのAI作成、MLOpsなどをやっています。今回、MLエンジニアのヨンテさんのもとで文書生成AIのハイパーパラメータ調整の並列化に挑戦しまし…
2年前
記事のアイキャッチ画像
リスク検知SaaSを支えるマルチモーダル・マルチタスクなExplainable AI
JX通信社エンジニアブログ
皆様こんにちは!JX通信社で機械学習エンジニアを担っているファンヨンテです。 弊社提供のビックデータ リスク情報サービスFASTALERTでは、Deep Learningを使ってSNSの投稿をリアルタイムに解析し、火事や事故などのリスク情報の検知を行っています。 SNSの投稿には、文字だけでなく、画像、動画などの情報も含まれているため、SNS解析にはよくマルチモーダルなAIモデルが用いられます。今回は「SNS の投稿からのリスク情報の判定」というタスクをテーマに、マルチモーダルなAIモデルの判定根拠の可視化や、精度を上げるための工夫などをご紹介します。 FASTALERT(ファストアラート)に…
2年前
記事のアイキャッチ画像
slack-goとZapierで障害対応初動を自動化した話
JX通信社エンジニアブログ
サーバサイド開発やインフラ周りをいじっているたっち(TatchNicolas)です。今回はJX通信社における障害対応フローの改善について書きます。 はじめに TL;DR; slack-goとZapierを組み合わせて、障害対応時の提携作業を自動化するツールを作った 「自動化しよう」という意見がでやすい場自体を仕組みとして整備したことが改善のきっかけになった 今回の話の背景 少し前に、ビープラウドさんとのイベントにて、JX通信社NewsDigestチームのCI/CDおよび障害対応についてお話しさせていただきました。*1 そのなかで、「障害対応時に専用のSlackチャンネルを都度作成していること」…
2年前
記事のアイキャッチ画像
AWS 上のシステムでリージョン切り替えの避難訓練を年末にやってみた
JX通信社エンジニアブログ
あけましておめでとうございます。 サーバーサイドエンジニアの @kimihiro_n です。 今日はAWSに載っているシステムの避難訓練を実施したことについて書いてみようと思います。 弊社が提供している FASTALERT というサービスでは、全国の災害や事件などを検知して報道機関や自治体、インフラを支える企業などにリスク情報として提供しています。 リスク情報を提供するという性質上、情報検知の素早さや網羅性に加えて「システムの可用性」も重要なサービスの要素となっています。 FASTALERT の多くのシステムは AWS の東京リージョンで動いており、複数データセンターを活用した冗長化(マルチA…
2年前
記事のアイキャッチ画像
爆速開発を目指して NewsDigest を Flutter にリプレイスします
JX通信社エンジニアブログ
爆速開発を目指して NewsDigest を Flutter にリプレイスします JX通信社 Engineering Manager の @jazzsasori です。 最近アークナイツというソシャゲに課金してしまいましたが妻には内緒にしています。 弊社は NewsDigest という無料ニュースアプリを運営しています。 NewsDigest は記者が業務で愛用するほど、その圧倒的スピードに強みがある速報アプリです。また、一般的なニュース分野での速報に加えて、報道はされにくいが個人にとって価値の高い情報も to B 向けのリスク情報SaaS である FASTALERT と連携して即時に伝える、…
2年前
記事のアイキャッチ画像
ヘビーユーザーが解説するPyTorch Lightning
JX通信社エンジニアブログ
こんにちは!私はファンヨンテと申します!JX通信社で機械学習エンジニアを行っております! 私はPyTorch Lightningを初めて使ったときの便利さに感動した以来、PyTorch Lightningのヘビーユーザーです! この解説記事ベビーユーザーの私が皆様にPyTorch Lightningを知っていただき、利用のきっかけになってほしいと思って公開しています! 今回の解説記事のサンプルコードはこちらにあります。ぜひ、実際のコードを手にとって体験しPyTorch Lightningの素晴らしさに触れてみてください! この記事内容は13回のMLOps勉強会で発表しました! speakerd…
2年前
記事のアイキャッチ画像
JX通信社は Go Conference 2021 Autumn に協賛します!【11/13(土)開催】
JX通信社エンジニアブログ
こんにちは! CDO(開発担当役員)の小笠原(@yamitzky)です。 Python のイメージが強い(?)JX 通信社ですが、実は Go に関してもかなり積極的に利用しています。Go のコミュニティ発展を目的として、Go Conference 2021 Autumn にブロンズプランでの協賛を行っています。 Go Conference 2021 Autumn は、今週土曜日 2021/11/13(土) 10:00 〜 20:00 で開催 されますので、ぜひ奮ってご参加ください(参加費無料)。 gocon.connpass.com JX 通信社と Go AI リスク情報SaaS「FASTAL…
2年前
記事のアイキャッチ画像
属人化しがちなR&Dをチーム開発するためのJX通信社での工夫
JX通信社エンジニアブログ
こんにちは!JX通信社でMLエンジニアのファンヨンテです。私は自分だけでなくMLチームの成果を最大化するために日々全力を尽くしています! JX通信社のMLチームでは人的リソースを最大限活用するため "力を使うべき所にのみ注力しよう!" をスローガンに徹底的に効率化しています。 今回はちゅらでーた様と弊社の共同勉強会で私が発表した内容をより掘り下げてお伝えできればと思います。 本内容については ちゅらデータさんとの共同勉強会にて発表しております! speakerdeck.com 動画を見たい方はこちら を御覧ください〜 R&Dタスクの属人化について 図1 アプリ開発におけるチーム開発(左)とR&…
3年前
記事のアイキャッチ画像
PyCon JP 2021 でのミニゲームをGoogle Cloud RunとFirebase Hostingで作った話
JX通信社エンジニアブログ
JX通信社はPyCon JP 2021のゴールドスポンサーとしてスポンサーさせていただきました。 今回弊社平瀬さんがLocastの内容で登壇されました!内容はこちらからご覧ください。 speakerdeck.com その際、会社のブースではPythonを使ったミニゲームを実施していました。 PyCon JP 2021について PythonのカンファレンスであるPyCon JP 2021はオンラインとオフラインでのハイブリッド開催となりました。スポンサーブースはオンラインのみで、Discordのチャンネルに参加者の方に入っていただき、そこで会社の紹介や、参加者の方と交流するという流れになっていま…
3年前
記事のアイキャッチ画像
GCPをフル活用して東京五輪の2週間で約5000万ツイートをさばいた話
JX通信社エンジニアブログ
はじめまして。JX通信社でデータアナリストをしている @nrtaking です。 弊社では、7/23〜8/8に行われた東京オリンピック、8/25〜9/5に行われた東京パラリンピックにあわせて関連した日本語ツイートを全量収集し、Twitter Japanなど各社に提供していました。 内容に関する簡単な分析についてはプレスリリースでお伝えしているので、そちらもあわせてご覧ください。 prtimes.jp 実はこのツイート収集システムは、2週間ほどでほぼゼロから立ち上げたものでした。 今回は五輪関連のツイート収集を支えた技術について紹介します。 叶えたかった要件 五輪に関するツイートを、NTTデータ…
3年前
記事のアイキャッチ画像
BERTの推論速度を最大10倍にしてデプロイした話とそのTips
JX通信社エンジニアブログ
背景 はじめまして、JX通信社でインターンをしている原田です。 近年深層学習ではモデルが肥大化する傾向にあります。2020年にopen aiが示したScaling Laws([2001.08361] Scaling Laws for Neural Language Models) の衝撃は記憶に新しく、MLP-Mixerが示したように、モデルを大きくすればAttention構造やCNNでさえも不必要という説もあります。([2105.01601] MLP-Mixer: An all-MLP Architecture for Vision) しかし大きな深層学習モデルを利用しようとすると、しばしば…
3年前
記事のアイキャッチ画像
Reactのパフォーマンス改善を勉強会で開催しました
JX通信社エンジニアブログ
はじめまして、新卒フロントエンドエンジニアのぺいです。 JX通信社でフロントエンドの開発はReactが主流になっており、React Hooksを使った開発が欠かせません。hooksは便利な反面、適材適所使い所を理解していないと逆にパフォーマンスが悪くなってしまう場合があります。そこで今回は普段フロントエンドを書かない人も勉強会に参加するのを考慮し簡単な改善から応用としてReactで書かれたFASTALERT *1の改善まで行ってもらいました。 前提条件 勉強会の内容 再レンダリングされているコンポーネントを見つける なぜ再レンダリングされてしまうのか 改善方法 コンポーネントのメモ化 関数のメ…
3年前
記事のアイキャッチ画像
Python multiprocessing vs threading vs asyncio
JX通信社エンジニアブログ
エンジニアの鈴木(泰)です。 今回は、multiprocessingとthreadingとasyncioの違いとはなんだろう?という問に挑戦してみたいと思います。 この問の答えをグーグル先生に聞いてみると、非常にたくさんの情報がヒットします。しかしながら、どの情報も断片的なものばかりで(本記事もそうなのかもしれません)、色々と本を読んだりネットを漁ったりして、情報を補完しなければなりませんでした。 本記事は、僕が調べた限りの情報を集約し、この問に対する結論を1つの記事にまとめたものとなっています。 前提 マルチプロセスとは マルチスレッドとは Pythonにおけるマルチスレッド 本題 マルチプ…
3年前
記事のアイキャッチ画像
JX Press Tech Talk #python で「StreamlitとFlaskではじめる爆速プロトタイピングとTV砲対策」というトークをしました
JX通信社エンジニアブログ
JX通信社シニア・エンジニアかつ, 最近は自社のテックイベント「JX Press Tech Talk」の司会者をやってる@shinyorke(しんよーく)です. 6/23(水)に, 「JX Tech Talk #python Pythonista 達が語る速報サービス開発の舞台裏」というイベントを開催しました. jxpress.connpass.com 参加いただいた皆さま, ありがとうございました! 私は前述の通り, このイベントの司会をさせていただいたと同時に, 登壇者として「StreamlitとFlaskではじめる爆速プロトタイピングとTV砲対策」というテーマでトークもさせていただきまし…
3年前
記事のアイキャッチ画像
Slackアプリ開発の社内勉強会を開催しました
JX通信社エンジニアブログ
サーバサイド開発やインフラ周りをいじっているたっち(TatchNicolas)です。 JX通信社の日々の運用では、Slack workflowやbotが大活躍しています。 かなり作り込まれた高機能なBotもあり欠かせないものになっていますが、開発者メンバーのなかには普段そのリポジトリを触らない人・すでにあるものに機能追加・改修はするがゼロから立ち上げたことはない人などもいます。ハードルをグッとさげることで自分たちの斧を研ぎやすくできないか?と考えました。 そこで毎月開催している社内勉強会にて、今回はSlackアプリ開発をテーマにしましたのでその様子について紹介します。 内容 初めて触る人でも開…
3年前
記事のアイキャッチ画像
サーバーサイドで動的にOGP画像をシュッと作る方法 - FastAPIとCairoSVGで作る画像生成API
JX通信社エンジニアブログ
JX通信社シニア・エンジニアの@shinyorke(しんよーく)です. 最近は色んなエンジニアリングをしつつ, イベントの司会業をしています(詳細は最後の方を見てね). 開発しているサービス・プロダクトの要件で, TwitterやLINE, FacebookでシェアするOGP*1コンテンツ(タイトル・本文・画像)が欲しい コンテンツはユーザーさんの操作で動的に変わる テキストだけじゃなくて, 画像も変えたい←これ なんて事は非常によくある話だと思います. 私はちょっと前に開発したAIワクチン接種予測でそれがありました. こういうやつです 例えば上記画像のテキスト(地域・年齢・接種可能時期)は予…
3年前
記事のアイキャッチ画像
GitLabとKubernetesで作る、自動で起動・停止できるブランチ別環境
JX通信社エンジニアブログ
先日のJX Press Tech Talk #backend で、GitLabのenvironmentとHelmのreleaseを対応させることで動的な環境の作成・削除を実現した話をした発表の詳細の記事です
3年前
記事のアイキャッチ画像
APIとフロントのテスト環境を気軽に作れるようにして、動作検証の渋滞を解消したはなし
JX通信社エンジニアブログ
こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回はみんなが利用するテスト環境の渋滞を解消したはなしを。 テスト環境の渋滞 最近開発チームのメンバーが増えてきたりして、「テスト環境の渋滞」というのがよく発生するようになりました。 テスト環境というのは動作検証目的で AWS 上に作成している環境で、本番と同じようなシステム構成でデータだけダミーのものを用意してあるような環境です。 ローカルの Docker Compose で開発や動作確認が全部完結出来るというのが理想なのですが、「常時入ってくるデータを扱いたい」「本番に近いデータ量でパフォーマンスをみたい」「エミュレー…
3年前
記事のアイキャッチ画像
Utility First な CSS in JS フレームワークの導入と3ライブラリの比較
JX通信社エンジニアブログ
JX 通信社のフロントエンドでは React TypeScript や Emotion のような CSS in JS を技術選定することが多いです。弊社 SaaS の FASTALERT、新型コロナ関連情報などでも同様の技術選定で、過去にもエンジニアブログで紹介してきました。 tech.jxpress.net tech.jxpress.net 今日は、Emotion の活用の極地「Utility First な CSS in JS フレームワーク」についてご紹介します。 Emotion で開発する悩み 素の Emotion や類似の CSS in JS ライブラリでは、 1 つの TS/JS …
3年前