サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
engineering.mobalab.net
なので Step Functions を使いましょうと言うお話です。 ある ECS で動いているバッチジョブの定期実行に EventBridge Rules を使って実装していたのですが、ある時ジョブがほぼ一定の頻度で失敗している事に気づきました。 AWS サポートに問い合わせると、今回のケースでは EventBridge Rules ではリトライできないので、 Step Functions を間に噛ませて下さいとご提案頂いたので、今回はその様にしました。 それでは以下経緯を交えながら実際のアーキテクチャをご紹介していきます。 構成 ECS クラスタは Fargate ではなく EC2 駆動Capacity providers を使って ASG (Spot Fleet は使っていない) をコントロールしているECS Task は普通のバッチジョブで、ワークロードが終わったら落ちるジョブの定
現在、社内の機械学習を用いたプロジェクトに関わっていて、その過程で学んだBERTについて今まで勉強したことをまとめてみようと思います。 自然言語処理(以下NLP)、とくにBERT周辺の理解したことを以下何回かに分けて書いていきます。 BERTとは? その特徴と解決しようとした問題、及び予備知識 ←この記事BERTの構造についてBERTの学習データ、BERTの汎用性がもたらしたもの、そして新しいモデルELECTRA 機械学習については、「なにかを入力して教師データを元に損失関数計算して、パラメータを更新して精度をよくするやつ」程度の認識があるものとします。 そもそも、既に様々な解説記事がありますが、それらは既にある程度既に詳しい人向けのものだと感じました。 完全な初心者向けとまではいかないものの、ある程度機械学習は知っていて、これからBERTを知るという人向けの記事を目指します。 BERTは
Go の interface は構造体の利用側が定義すると言う話October 04, 2021 - posted by issei_m Go を業務で使い始めてそろそろ 1 年が経ちました。Go には、これまで私が使ってきた Scala や PHP とは違う特性がいくつかあるのですが、その中でもユニークだったのが表題の件です。 これは、 Go 本体の Wiki ページ Go Code Review Comments (Go のコードレビュー時に頻出する、ありがちな誤りを集めた物) の一部である、 Interfaces と言う章に書かれています。 その一部を抜粋しますと、 Go interfaces generally belong in the package that uses values of the interface type, not the package that imp
先月、とある GitHub リポジトリで使っている Dependabot が送ってくる Pull request の CI が軒並み落ちるようになり、状況を見てみるとどうやらリポジトリの Secrets がうまく Workflow のジョブに渡せていない事が原因の様でした。 公式ブログによると 2021 年 3 月 1 日以降、 Dependabot が特定のいくつかのトリガーにより開始した Workflow (※) では Secrets が読み込めなくなり、また GITHUB_TOKEN についても書き込み権限が剥奪され、リポジトリへの書き込み操作ができなくなってしまった様です。 具体的には、 Dependabot からの Pull request は書き込み権限を有さないユーザーからの物と同様 (Fork 経由と同様) になっている様で、元々このポリシーについては去年の記事 Keepi
Terraform を使うとインフラの構成がコード化される、Infrastructure as Code (IoC) という利点があります。そして、Terraform をある程度使っていくと、ソフトウェア開発と同様に 「秘密情報をコードに直接書かないためにどうすれば良いか」 について考える必要が出てきます。 本記事では、Terraform で秘密情報を扱う方法や注意点など、雑多な話題について書いていきます。 なお、書いているうちに、以下のページの内容と似ているなと思ったので、なるべく違う視点からの内容を書こうと思います。 A comprehensive guide to managing secrets in your Terraform code | by Yevgeniy Brikman | Gruntwork 基本的な注意点 tf ファイルなどに秘密情報を直書きしない *.tf ファ
昨年くらいから、社内では自然言語処理関連のR&Dやプロジェクトを進めています。私自身は、今のところ実装などの細かい部分には関わっていませんが、プロジェクトの責任者として基本的な知識は求められます。 本記事では、私が機械学習・自然言語処理で参考になった書籍・ウェブサイトなどを紹介していきます。 概要 対象読者 書籍などは、人によって向き・不向きがありますし、既に持っている知識によってもお勧めが変わってきます。それを踏まえた上で、主に以下のような人が機械学習・自然言語処理を学ぶのに良いもの、という基準で選んでいきます。 ソフトウェア開発者高校レベルの数学(2×2の行列計算など)がある程度は分かるが、高度な数学は分からない自然言語処理について勉強したい一からモデルを作ったり理論的なところを深く知るよりは、自然言語処理を使った応用例に興味がある 紹介する本・サイトについて ジャンル(機械学習、自然
過去10年近く、開発環境に Mac を使っていたんですが、最近 Windows に乗り換えたので、それについて書きます。 Mac をやめた理由はキーボード 元々、Apple 信者というわけでも無く、Windows を使っている期間が長かったんですが、2011年頃(?)に MacBook Pro を買って以来、2013年、2017年にMBP を買い換えて、10年弱 MBP ユーザーでした。 その間、大きな不満は無かったんですが、2017年モデルは悪評高いバタフライキーボードのやつで、1年過ぎくらいでキーボードがおかしくなりました。一度修理したんですが、1〜2ヶ月くらい前からまたキーボードがおかしくなって、また修理が必要になりました。 上述の通り、元々 Apple 信者ではないので、せっかくの機会だし最近の Windows を見てみたいという気持ちが出てきて、Windows に乗り換えることに
はじめに パッケージ管理ツールnpmでのpackage.jsonとpackage-lock.jsonの違いや運用方法など、曖昧な点が多かったので調べてまとめてみました。基本的な内容かと思いますが、 参考になれば幸いです。 なぜpackage-lock.jsonが必要なのか? npmのv5以降に導入されたpackage-lock.jsonですが、npm installを実行した際にインストールされるパッケージのバージョンをpackage-lock.jsonに記載されたバージョンで固定することができ、全ての開発者で同じパッケージの環境を再現することができます。一方、package.jsonだけしかない場合では、npm installしたときに、それぞれの開発者で別バージョンのパッケージをインストールしてしまう可能性があります。 Git管理下では結局どのように運用すればいいの? package-
こんにちは。日本ではすっかり秋の空が近づいてきました。個人的に夏は暑さが苦手であまり好きではないのですが、終わってしまうとなると毎年どこか寂しい気持ちになります。 一方で、秋はご飯が美味しいので食べる事が好きな僕にとっては一番好きな季節でもあり、結構心が踊っています。笑 さて、前置きは置いといて今回は表題の通り、とあるRails 5.2プロジェクトをRails 6にアップグレードした際に、ActiveRecordのscopingの仕様変更を踏んでしまったのでその対処法をご紹介します。 そもそもscopingとは ActiveRecord::Relation の機能で、引数にブロックを受け取り、その中では、実行時に適用されていたスコープを全クエリでデフォルトで適用する、と言う物になります。 例として、deleted_at (timestamp, nullable) と言うattributeを
こんにちは。皆さんは普段どのような開発環境を使っていますか?僕はJetBrainsのIDEが好きなので、All Products Licenseを購入して各プロジェクトごとに適したIDEを愛用しており、RubyではRubeMineを使用しています。 さて、そんなRubyMineですが先日今年初のメジャーリリースである2019.1がリリースされ、以前はできなかったDocker Remote Interpreterでのプロセス起動が、 (docker runだけでなく) exec経由でも起動できるようになった様なので、試してみました。 ※RubyMineのDockerインテグレーションはまだまだ詰めが甘い所が多く、不具合が多いので使い物になるレベルでは無いと個人的に思っています。現にこの記事で紹介しているサンプルもまともには動きません。なので今回はあまり身になる記事となっていないですがご了承下
Python パッケージを使う、原始的な方法 過去に2回、Serverless Framework を使った Lambda 関数の管理について書きました。 Serverless Framework による AWS Lambda 関数の管理1 | もばらぶエンジニアブログ Serverless Framework による AWS Lambda 関数の管理2 | もばらぶエンジニアブログ 1回目の投稿の際、Python のパッケージを使いたい場合は、以下の通り、Lambda 関数の Python ファイルと同じディレクトリにパッケージをインストールして、それを sls deploy でパッケージ化&デプロイする方法を紹介しました。 pip install パッケージ名 -t . 「原始的な方法」の問題点 上に挙げた方法には2つの問題があります。 ディレクトリが汚れる pure Python で
世間では GW ですが、皆さんいかがお過ごしでしょうか。こちらは仕事も落ち着いてきたため、直近のプロジェクトでそこそこ時間を使う羽目になった Webpacker についてのブログ記事を書くことにしました。 はじめに Ruby on Rails では Sprockets というモジュール(?)によって、JavaScript, CSS, 画像などのアセットを管理する事が出来ます。これは Rails 独自の仕組みであり、それによる問題点なども目立つようになったため、フロントエンド界隈で広く使われている Webpack を使いたいという要望は以前からあったようです。(その辺りの経緯などは、検索すれば色々出てくるので、ここでは記載しません。) そうした要望に応えるものが Webpacker で、簡単に言うと Webpack の機能を Rails に組み込んだもので、使う側からすると主に以下の2つの機
概要 Terraform は、いわゆる Infrastructure as Code のためのツールですが、似たようなツールが色々ある中で、なぜ Terraform を使う必要があるのか分からない人もいると思います。本記事では、 Terraform 自体の説明 なぜ Terraform が必要か Terraform を使ったインフラ構築の方法 他のツールとの使い分け について説明していきます。 Terraform とは 概要 Terraform とは、前述の通り Infrastructure as Code (以下 IaC)のためのツールで、Vagrant などで有名な HashiCorp によって開発されています。 Terraform では、AWS, Azure, GCP のようなクラウドプラットフォームや、OpenStack などを使ったインフラを管理する事が出来ます。 Terrafo
このページを最初にブックマークしてみませんか?
『もばらぶエンジニアブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く