Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
本記事は、形式検証 / 形式手法 Advent Calendar 2021 の 19 日目の記事です。 Amazon S3が形式手法を採用した論文 "Using Lightweight Formal Methods to Validate a Key-Value Storage Node in Amazon S3" を読みました。 論文全体については、yohei-aさんがブログ記事で主要な部分を訳してくれています。本記事では自分なりのまとめに加えて、自分の形式手法導入の経験から思うところについても書いてみます。 論文は、Amazon S3の新しいKey ValueストレージのShardStoreの正当性を軽量形式手法で検証した話です。論文の主張をまとめると、 実装に使用した言語(Rust)と同じ言語で仕様となるリファレンスモデルを記述した。 検証したい性質によってツールを使い分けた。機能的
この記事はClassi developers Advent Calendar 2021の18日目の記事です。 昨日は基盤インフラチームのめるさんによる「バックエンドエンジニアが基盤インフラチームに異動して半年ほど経った話」でした。 こんにちは、データAI部でデータサイエンティストをしている高木です。 弊社では顧客である先生、生徒、保護者からClassiの機能や契約に関する問い合わせを日々頂いております。 これらの問い合わせの内容を分析し、Classiの現状の課題や今後解決していくための施策などを社内で検討しています。 今回は問い合わせ内容を言語処理技術の一つであるトピックモデルを使って分析した内容についてご紹介します。 なぜ分析する必要があったのか? Classiへの問い合わせやその対応の内容は、担当者によってテキスト化された状態で管理されています。 弊社のカスタマーサポート・カスタマーサ
初学者の分かりやすさを優先するため,多少正確でない表現が混在することがあります。もし致命的な間違いがあればご指摘いただけると助かります。 はじめに 機械学習を勉強したことのある方であれば,変分ベイズ(VB:variational bayes)の難しさには辟易したことがあるでしょう。私自身,学部生時代に意気揚々と機械学習のバイブルと言われている「パターン認識と機械学習(通称PRML)」を手に取って中身をペラペラめくってみたのですが,あまりの難しさから途方に暮れてしまったことを覚えています。 機械学習の登竜門は,変分ベイズ(変分推論)だと私は考えています。また,VAE(変分オートエンコーダ;variational autoencoder)に代表されるように,変分ベイズは最近の深層学習ブームにおいて理論面の立役者となっている側面もあります。一方で,多くの書籍やWeb上の資料では式変形の行間が詰ま
この記事ははてなブログからの筆者自身による転載です。 総論: なぜログが必要か 可観測性 たとえ目的は自明でも、その動作までが自明なアプリケーションというものはほぼ存在しません。現実の世界のアプリケーションというものは、動作パラメータだったり実行環境だったり、起動時点でのさまざまな要因によって挙動を変えるものだからです。そして、そうしたアプリケーションにはライフサイクルというものがあります。ここでいうライフサイクルは、アプリケーションの処理が実行されるにつれ、アプリケーションの内外との情報のやりとりで生じる大局的な状態の変化のことです。アプリケーションが並行処理を行うようなものであれば、個々の並行処理の単位にもライフサイクルがあることでしょう。アプリケーションはそれ単独で複雑な系であるということです。 また、現実の世界においては、単一のソフトウェアで自己完結するということも非常にまれなこと
課題編 シェルスクリプトで「あるグローバルな状態を変える操作を行い、その結果をチェックし、状態をもとに戻す」みたいなタスクをするときに「その結果をチェックし」のところでコマンドの終了ステータスを変数に入れて置きたいみたいなことがあります。例えば、次のようなコマンド操作です。 set -e # グローバルな状態を変える操作を行う git merge --no-ff --no-commit $main_branch || true # 結果をチェックしてexit codeを変数に入れる git diff --cached --exit-code --quiet ; code=$? # グローバルな状態をもとに戻す git merge --abort # 上位プロセスに結果を渡す exit $code スクリプト全体には set -e (コマンドが失敗するとシェルスクリプトが即座に終了する)を効
こんにちは。メルペイのMachine Learningチームの@hiroです。Merpay Advent Calendar 2021 の18日目の記事をお届けします。 機械学習の社会的重要性の高まり 近年、機械学習という技術領域が人口に膾炙し、多くの産業やプロダクトに用いられるようになってきています。機械学習は、アルゴリズムによって、蓄積されたデータのパターンを学習し、従来ひとの判断やルールベースで行ってきた意思決定を自動化、高精度化することで、様々な産業の生産性向上に寄与し、私達の生活を豊かにしてきました。私達の社会にとってなくてはならない技術領域のひとつになっています。 一方、そうした機械学習の自動判断において、結果的に差別的な振る舞いをしてしまったり、お客さまに不愉快な体験をさせてしまったりといった、社会にネガティブな影響を与えてしまう事案も発生しています。この記事で具体的な事例をと
https://www.cyberagent.co.jp/careers/students/career_event/detail/id=26831
¥販売手数料+発送手数料手順作成したい仕訳の元になるデータは、 技術書典のマイページから参照出来るので、コピーしてCSV形式にします。 技術書典サイトにログインし、マイページ→売上管理→確定売上「月別確定売上」を選択しExcel等にコピーし、「sales.csv」という名称のCSV形式で出力作成した「sales.csv」を、 以下のスクリプトで、MoneyFoward会計用のインポートファイルに変換します。 techbookfest_mf_import.py | gist https://gist.github.com/takemikami/f734457637b66f7ec6899b95fb7b08f8 techbookfest_mf_import.pyの以下の部分を、必要に応じて変更します。 以下のコードでは、次のような設定になっています。 2021年1月〜12月の売上データが取得対象
TIGの伊藤真彦です。 フロントエンドアプリケーションの開発においてVue、Reactと触ってきましたがFlutterの開発も始めました。モバイルアプリ、WEBアプリ、更にはデスクトップアプリへの高いポータビリティが期待できる、Adobe XDでのデザインを高速にアプリケーションに反映できる、といった期待値が高いことが選定の理由です。 フューチャーではDart/Flutter連載で様々なネタを取り上げましたが、汎用的なハウツー記事が意外と少なかったため書いてみました。 FlutterとはFlutterはDart言語で実装されたアプリケーションフレームワークです。 元々はAndroid、iOS向けのモバイルアプリケーションを実装するためのSDKでしたが、Flutter on the web、Flutter on Desktopの公開により、Flutterで作っておけばどのようなプラットフォー
Tailwind CSS v3がリリースされ、ますます注目されているTailwind CSSのチートシートを紹介します。 Tailwind CSSに使用されているすべてのクラスとそのプロパティ・値を参照および検索もでき、非常に便利なチートシートです。 Tailwind CSS Cheat Sheet Tailwind CSSとは Tailwind CSSのチートシート Tailwind CSSとは Tailwind CSS(Tailwind CSS -GitHub)はユーティリティファーストのCSSのフレームワークで、汎用的なクラスを組み合わせてWebサイトやスマホアプリのレイアウト・コンポーネントを実装します。 たとえば、メールの入力欄だと下記のように記述します。 <input class="block appearance-none bg-white placeholder-gray-
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo! JAPAN研究所で自然言語処理の研究開発をしている柴田です。 私は自然言語処理の研究と、最新の自然言語処理技術を社内のサービスに適用できるようにする開発の両方を行っています。今日は後者の話をします。 この記事ではBERTというモデルに焦点をあて、BERTの概要と、社内でのBERTの利用、最後に具体例として検索クエリのカテゴリ分類について紹介します。 ※この記事で取り扱っているデータは、プライバシーポリシーの範囲内で取得したデータを個人が特定できない状態に加工しています。 1. BERTとは 2018年にGoogleからBERT (Bidirectional Encoder Representations
この記事は、慶應理工アドベントカレンダー2021の20日目の記事です。 カレンダー全日埋まってすごい 🎉🎉 adventar.org 「Database Design and Implementation」という簡素なDBをスクラッチで作っていく本に取り組んだので、その読了エントリです。 Database Design and Implementation: Second Edition (Data-Centric Systems and Applications) (English Edition) 作者:Sciore, EdwardSpringerAmazon こんな人におすすめ MySQLやPostgreSQLを使った経験はあるが、DBの理論やその実装はあまり詳しくない人に特におすすめです。特に自作〇〇*1に興味がある人は間違いなく楽しめると思います。単純に本に紹介されている理論
概要 同じ介入を比較するA/Aテストで統計的に有意な差が出てしまうケースがある その原因は、A/Bテストの指標の設計に失敗していることかもしれない この問題の対処法としてユーザベースCTR、デルタメソッド、クラスターロバスト標準誤差を紹介する これらの手法は実務で運用する上では一長一短 はじめに AI事業本部Dynalystの伊藤、小売セクターの藤田(@6km6km)です。 DynalystはReal Time Biddingと呼ばれる広告オークションにおいて広告枠の買付を行うプラットフォーム(DSP: Demand Side Platform)です。DSPでは、ユーザに広告を表示する際に複数あるクリエイティブの候補からひとつクリエイティブを選ぶ必要があり、その選択ロジックにバンディットアルゴリズムを用いています。(参考リンク1, 2) 以下では、バンディットアルゴリズムのA/Bテストをす
1. IntroductionNetflix has been among the best online subscription-based video streaming services in the world ([12]) for many years, accounting for over 15% of the world’s Internet bandwidth capacity. In 2019, Netflix already acquired over 167 million subscribers, with more than 5 million new subscribers added every quarter, and operates in more than 200 countries. More specifically, Netflix’s su
この記事はMLOps Advent Calendar 2021の18日目の記事です。 2016年にもTensorFlowとMLサービスの2016年の布教活動報告を書きましたが、ここ3年くらいはMLOps系の活動をメインにしてきたので、その報告です。COVID後はイベント登壇も減り、ブログ記事の執筆が多くなりました。その裏話的な内容です。 Feature Store のブログ記事 今年5月のGoogle I/OでVertex AIのMLOps系プロダクトがいくつかリリースされたので、その後にフォローアップのブログ記事を出し始めました。まずは6月にPMのAnandと書いた Kickstart your organization’s ML application development flywheel with the Vertex Feature Store(日本語版)です。 このプロダクト
昨今では自社のプロダクトやシステムのエンゲージメント向上のために、「DevOps」や「アジャイル」といったキーワードのもと、大小さまざまな企業がシステムやアプリの開発手法の改善を試みています。その中において、最近だと「SRE」というキーワードを聞く頻度も多くなってきたかと思います。 しかしアジャイルやCICDなどと比べ、SREについては「言葉は知ってるけど具体的になんなのかはよくわからない」という方もいるのではないでしょうか?ここではそんな方々向けに、SREの最初の一歩となる概要について、独自の解釈を交えつつまとめていきます。 ここで話すこと SREって何? なぜSREが必要? SREってどんなことするの? ここで話さないこと SREの技術の具体的なところ(k8sやAPMの導入手順、設定方法など) プラクティスの実践例・具体例(アーキテクチャ、各種設定値、モニタリング指標など) TL;DR
Introduction to Data Validation: MLOps における重要性とその分類、実用上の注意点についてMachineLearningMLOps この記事では MLOps における Data Validation (データバリデーション: データの検証) について概要を述べます。 Data Validation はこれ単体では新しい概念ではありません。たとえば入力フォームで入力値に制約を設け、その制約を満たすデータのみを入力値として受け入れるようにするのは、サービス開発では一般的なことでしょう。入力欄において空欄を許さない、値は特定のリストからのみ選択できるといった制約を設けている例は、開発者でなくても一般的に目にしたことがあるかと思います。 このように Data Validation は一般的な概念ですが、MLOps においては非常に重要な概念となります。また、そこ
はじめに 私はこれまで機械学習のパラメータチューニングに関し、様々な書籍やサイトで学習を進めてきました。 しかしどれもテクニックの解説が主体のものが多く、 「なぜチューニングが必要なのか?」 という目的に関する記載が非常に少なかったため、体系的な理解に苦労しました。 この経験を後世に役立てられるよう、「初心者でも体系的に理解できる丁寧さ!」をモットーに記事にまとめたいと思います。 具体的には、 1. パラメータチューニングの目的 2. チューニングの手順とアルゴリズム一覧 3. Pythonでの実装手順 (SVMでの分類を例に) の手順で解説を進めます。 独自解釈も含まれるため、間違っている点等ございましたら指摘頂けると有難いです。 なお、文中のコードはこちらのGitHubにもアップロードしております。 2021/9/6追記:LightGBMのチューニング実行例追加 以下の記事に、Ligh
エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。好きな言語はGo。情報検索系の話が好物です。今回は多様性を考慮したリランキング手法と実際にPythonで実装を試した話をします。 課題 検索結果のリランキング リランキング実装 アーキテクチャ 前準備 TF-IDF vector Jaccard係数 本実装の課題 まとめ We're hiring !!! Reference 課題 エムスリーのAskDoctorsというサービスではユーザーがお医者さんに直接質問ができるサービスです。質問できる以外にも、ユーザーは自分の症状や悩みに近い質問を検索できます。 www.askdoctors.jp Askdoctorsの検索の問題点として、同じようなタイトルが並んでしまうという問題があります。ユーザーの投稿ドキュメントのタイトルには「
こんにちは。メルカリのNotification teamでソフトウェアエンジニアをしている@naruseです。 この記事は、Mercari Advent Calendar 2021 の19日目の記事です。 はじめに 私が所属しているBusiness Platform Notification teamでは、2つの役割で通知周りの基盤を担当しています。 1つ目はアプリケーションとしての役割の通知です。メルカリでは、アプリ内でのお知らせや個別メッセージ、やることリストなどを提供しています。私たちはそれらの膨大なデータを管理し、作成や取得のリクエストに応えています。これらの膨大なデータに対する私たちのチームの過去の記事として、昨年のAdvent calenderの一部である本番稼働中の Spanner にダウンタイム無しに57時間かけてインデックスを追加して得た知見をぜひご覧ください。 2つ目は
知られたくないドメインのSSL/TLS証明書を取得する場合は証明書の透明性(CT)を無効にしよう(AWS Certificate Manager編) SSL/TLS証明書(以下証明書)には証明書の監視や監査を行って証明書の信頼性を高める「Certificate Transparency(証明書の透明性;以下CT)」という仕組みがあります。 Certificate Transparency : Certificate Transparency CAが証明書を発行する際には、パブリックなCTログサーバーに発行履歴を登録し、ログサーバーから受け取った署名付きのタイムスタンプ(SCT;Signed Certificate Timestamp)を埋め込んだ証明書を発行します(埋め込まない方法も有り)。 ブラウザは証明書に埋め込まれたSCTを確認し、存在しなければ証明書を不正とみなします(ブラウザによ
クラスAは5%下がってしまいましたが、クラスBは+10%、クラスCは+15%になりました。実は先程のmicro averageによる精度を計算すると、 5000×90% + 100×80% + 25×65% ÷ (5000+100+25) = 89.7% 5%近く下がっています。全体の精度が下がったほうが嬉しい、ちょっとおかしいですよね。 microとmacro この感覚のズレを解消するために、macro averageによる精度を計算します。macro averageとはクラス単位の精度を単純平均で求めます1。 前者:(95% + 70% + 50%) ÷ 3 = 71.7% 後者:(90% + 80% + 65%) ÷ 3 = 78.3% 直感と一致しました。microを使うか、macroを使うかは問題によりけりです。macro averageで集計するコンペもあります。不均衡データ対
こんにちは。DA事業本部の春田です。 年末の大掃除のように、たまに行いたいS3オブジェクトの棚卸し作業。AWS CLIを使って何も考えずにバケットの中身をチェックしてると、請求金額が結構お高くつきますよ、という注意書きです。 S3のLISTリクエスト バケットの中身を確認する時、AWS CLIのaws s3 lsというコマンドがよく使われますが、これの裏で動いているLISTリクエストの料金は、1,000リクエスト毎に0.0047USDかかります。1リクエストで取得できるオブジェクトの最大数は1,000件なので、0.0047USDで最大100万個のオブジェクトの情報を取得することができます。 大量のオブジェクトをLISTで取得するのは効率が悪いですし、何しろお金がもったいないです。データの棚卸しをしたい時は、S3インベントリがおすすめです。 S3インベントリ S3インベントリは、バケット内の
この記事は BASE Advent Calendar 2021 の21日目の記事です。 devblog.thebase.in はじめに Payment Devグループの山本(@msysyamamoto)です。 この記事は私たちのグループで行っている読書会の紹介になります。これから読書会を開催しようとしている方や、いまの読書会を改善したいと思っている方の参考になれば幸いです。 こんな感じで行っています 参加者 基本的にはグループのメンバは全員参加になっています(もちろん、業務が忙しい場合などは欠席することは可能です)。現在は14名のメンバが参加しています。 グループの読書会となってはいますが、別のグループからの参加も可能だったりします。 体制 グループのメンバの中の一人が読書会のまとめ役となります。まとめ役は立候補制になっています。もし、立候補する方がいなかった場合は、グループのマネージャか
最近、セキュリティの立ち上げで何をやったらいいかわからない、という質問を何度か受けるケースがあったので、最初に何をやるか、というのを情シスやセキュリティ担当者としての考えをまとめてみる。 著者のキャリアについて セキュリティの立ち上げについて書く以上、信頼に足る情報源なのか?という疑問がわくと思うので、簡単に著者のキャリアを書いておきます。 2002年にSIerでIT業界に入り、研究所のNetwork Admin、Web penetration test、ISMSコンサルの補佐などやり、その後外資プリセール分野で7年仕事して、最初のSIに戻ってセキュリティソリューションの立ち上げを担当、その後ユーザーサイドにキャリアを変えて、外資石油系企業のセキュリティアナリスト、中国系スタートアップのInfoSec Director&一人情シスをやってきたキャリアです。CISSPは2019年に取得してお
本エントリーは PostgreSQL Advent Calendar 2021 の 20日目 です。 昨日は @kingtomo1122 さんの「Towers of Hanoi on PostgreSQL」でした。 ロボットアームまで持ち出すとは素晴らしい記事でしたね! はじめに (ポエム風?) よなよなエールを愛する PostgreSQL Contributor の @yamatattsu です 1。 今年をふりかえると、社内PJへの技術支援の傍らでコミュニティ活動としては以下を頑張りました。 PGConf.Online 2021 で講演 Europa PostgreSQL User Group の依頼によるインタビュー記事執筆 PG14 で拡張統計の一覧機能 (\dX) の実装2 など 限られた時間の中で成果を出したと言えますが、改善の余地もあります。 それは "英語" なのですが、上
はじめに 普段ニュースサイトや機械学習関連のプロダクトを開発している中村と申します。 もともと大学院まで機械学習を研究しており、最近は自然言語処理が流行っているというニュースを聞きつけて、ずっと興味を持っていました。 (会社のお金で機械学習を勉強したいという願いが最近叶いました。) リモートワーク寂しい問題 最近のコロナ禍により、例にもれず弊社もリモートワークが盛んに行われ、現在ではリモートワークが当たり前になっています。 しかし、もちろん業務は円滑に進むのですが、コミュニケーションの量も少なくなることもまた事実。 ただし、チームメンバーの時間を雑談で奪うのも何か気がひける・・・。 こういうときはエンジニアリングの力で解決するのが、エンジニアという生き物ですよね。 そこで、今回は深層学習による自然言語処理モデルで、雑談のためのチャットボットを構築してみます。 深層学習時代の自然言語処理 今
Pythonにはclickというコマンドラインパーサとして使えるライブラリがあります。同様のライブラリとして以前からargparseがありますが、clickはargparseよりももっと簡単に使えるライブラリです。 clickでコマンドラインパーサを書く例は以下になります。 # main.py import click @click.command() @click.option( "--count", type=int, default=1, required=True, help="Number of greetings.", ) @click.option( "--name", type=str, default="Your name", required=True, help="The person to greet.", ) def hello( count: int, name
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く