タグ

yuutookunのブックマーク (449)

  • LLMのプロンプトをCI/CDで評価する。promptfooを使って - Gunosy Tech Blog

    こんにちは。 LLM事業部のUTです。 概要 promptfoo の紹介 起動 CI での評価 GitHub Action まとめ 概要 OpenAI による ChatGPT 登場の衝撃から1年ほど経ちましたが、 LLM を活用する企業はものすごく増えました。 OpenAI だけでなく、大手クラウドや Hugging Face などを通して各企業も提供しています。 遊びで使う分にはどの LLM を使うかは適当で良いかと思いますが、プロダクトとして提供する場合利用を想定しているシーンに対して、最適なモデルを選びたいと思うのは必然でしょう。 また LLM を利用してレスポンスを受けるに当たり、最も重要なのがプロンプトです。 様々な研究結果にもある通り、プロンプトの書き方一つで出力結果が大きく変わります。 欲しいアウトプットを出すプロンプトを探すには、プロンプトを複数作り比較する必要があります。

    LLMのプロンプトをCI/CDで評価する。promptfooを使って - Gunosy Tech Blog
    yuutookun
    yuutookun 2024/01/16
    生成AIのCICDについて書きました
  • コスト削減できる箇所をひねり出す - Gunosy Tech Blog

    こんにちはUTです。 この記事は Gunosy Advent Calendar 2023 の 18 日目の記事です。 17 日目の記事は k.oshiro さんの 社内勉強会での発表内容の紹介 〜MessagePackの仕様を読む〜 - Gunosyデータ分析ブログ でした。 最近広告チームからLLMのチームに異動したのですが、今回紹介する話は広告チームでの話になります。 今年は円安だったのでクラウドインフラコストを削減するというネタをいくつかアドベントカレンダーで流れてくるのを見ました。 例にもれず、自分のチームでもコスト削減をしようという話があがりました。 しかし、以下で記事を記載した通り大きなコスト削減はすでに実施しており、大幅な削減は見込めない状況でした。 tech.gunosy.io tech.gunosy.io そこでコスト削減をする箇所をひねり出す必要があり、今回はその際に実

    コスト削減できる箇所をひねり出す - Gunosy Tech Blog
    yuutookun
    yuutookun 2023/12/18
    書いた
  • サードパーティ Cookie を使わない広告効果計測 ~Privacy Sandbox の Attribution Reporting API について~ - Gunosy Tech Blog

    この記事は Gunosy Advent Calendar 2023 の 16 日目の記事です。 昨日の記事は吉岡さんの「iOSアプリのSWIFT_STRICT_CONCURRENCYをcompleteにした」でした。 プロダクト開発部 Ads チームの yamayu です。 最近は専ら蛮カラな街でインクを塗り塗りしています。 持ち武器のブラスター種に数年ぶりの強化が入り熱いです。 題ですが、Gunosy Ads では、サードパーティ Cookie に依存しない広告効果の計測への対応を進めています。 その一環として、GooglePrivacy Sandbox についても検証を行なっているので、その話について書ければと思います。 サードパーティ Cookie が廃止されるとどうなるのか サードパーティ Cookie を使わずに広告効果を計測する Privacy Sandbox とは A

    サードパーティ Cookie を使わない広告効果計測 ~Privacy Sandbox の Attribution Reporting API について~ - Gunosy Tech Blog
    yuutookun
    yuutookun 2023/12/17
    情報が少ないPrivacySandboxに関してまとまってる
  • tfaction を導入したら便利だった話 - Gunosy Tech Blog

    この記事は Gunosy Advent Calendar 2023 の 14 日目の記事です。昨日の記事は上村さんの「ChatGPTを活用した業務支援ツール「ウデキキ」のチャット実装」でした。 こんにちは、プロダクト開発部 Ads チームの fujishiro です。最近は年末に行われる RIZIN.45 が楽しみで YouTube で試合予想動画を見ていることが多いです。 さて、今回は弊チームが管理している Terraform のリポジトリの CI/CD 環境を CircleCI から GitHub Actions に移行した際に tfaction という Action を導入したのですが、これが便利だったので紹介したいと思います。 tfaction とは 実現したいワークフロー 必要な設定*1 1. tfaction-root.yaml を追加する 2. tfaction.yaml

    tfaction を導入したら便利だった話 - Gunosy Tech Blog
    yuutookun
    yuutookun 2023/12/17
    tfaction便利
  • コンテナがバタバタ死んだ障害と恒久対策 - Gunosy Tech Blog

    こんにちは。部署が変わってプロダクト開発部の広告担当のUTです。 今回は障害が発生した経緯とその障害に対してどう対策したのかというところを紹介したいと思います。 概要 どのような障害が起こったのか 障害発生詳細 恒久対応 障害の原因 自動ロールアウト ConfigMapが最新しか保持されない まとめ 概要 今回紹介するのは、設定(ConfigMap)を変更した際にコンテナ側が設定を読み込めなくなりコンテナが再起動、そして負荷が高まり連鎖的にコンテナが死んでいくという障害に関する話です。 別管理の設定が稼働するサーバーに反映されず、起動しなかったり実行時エラーになったりというのはよくある話ですが、今回はKubernetesにおけるConfigMapの設定でのエラーに関する話になります。 どのような障害が起こったのか 具体的にどのような障害が起こったのかを紹介していきたいと思います。 まず前提

    コンテナがバタバタ死んだ障害と恒久対策 - Gunosy Tech Blog
    yuutookun
    yuutookun 2023/06/20
    かいた
  • GitHub Actions でテストを並列化して CI 時間を短縮する - Gunosy Tech Blog

    広告技術部の yamayu です。 ホグワーツレガシーが気になっているのですがまだ手を出せていません。 映画はファンタビ以外は全部見ており、原作は 7 巻の上巻まで読んでいるため楽しめそうとは思っています。 さて、弊社ではこれまで CI/CD ツールとして CircleCI をメインに利用していたのですが、最近は GitHub Actions でも同等の機能が提供されるようになりつつあり、また GitHub の他の機能との連携が容易である等の理由から徐々に切り替えていくような動きがあります。 広告技術部で管理しているリポジトリも少しずつ GitHub Actions への移行を進めており、その中で CI/CD のプロセスの見直しを行いました。 結果として、CI の実行時間を大幅に短縮することができたので、今回はそのことについて書いていきます。 長い重い多いテスト テストの並列化 マルチノー

    GitHub Actions でテストを並列化して CI 時間を短縮する - Gunosy Tech Blog
    yuutookun
    yuutookun 2023/04/28
  • チームが有機的に動くための取り組み - Gunosy Tech Blog

    概要 こんにちは。 ホグワーツレガシーで魔法を使わず白菜ばかり使っている、広告技術部のUTです。 今回はチームが有機的に動くために実施している取り組みを紹介したいと思います。 概要 有機的とは なにをやっているか やることの明確化と振り返り スクラム それぞれが責任を持つ 他チームとのコミュニケーション まとめ 有機的とは 「機械的組織」とは、職務権限が明確で、上層部に情報が集中し、トップの命令と指示によって統制される中央集権型組織だ。 それに対して「有機的組織」とは、職務権限が柔軟で、情報は組織内のあらゆる場所に分散し、水平的なネットワーク型の伝達構造をもつ分散型組織を指す。 by Salesforce https://www.salesforce.com/jp/blog/2012/12/vol5-be-social-empowerment.html 労働力の物量で戦うのではなく、片手で

    チームが有機的に動くための取り組み - Gunosy Tech Blog
  • RailsのフロントをReactへリファクタしたとき、スキーマをOpenAPIベースの自動生成にした話 - Gunosy Tech Blog

    広告技術部のUT@mocyuto です。 この記事は Gunosy Advent Calendar 2022の10日目の記事です。 前回の記事はkoizumiさんの Snyk IaC + reviewdog + aquaではじめるDevSecOps - Gunosy Tech Blog でした。 今回の記事では、OpenAPIRailsTypeScriptのスキーマを共有する方法に関して紹介します。 概要 弊社の管理画面では長くRailsを使っており、最初のPRは2013年の10月でした。 長らくの運用で複雑になったRailsのerbだった部分をReactを使って書き換えるというプロジェクトが始まりました。 すでにいくつかの新規ページはReactで作成されていましたが、大きなページを置き換えるというのは心理的ハードルと時間的コストから進められずにいました。 しかし、メンバーが入れ替わる

    RailsのフロントをReactへリファクタしたとき、スキーマをOpenAPIベースの自動生成にした話 - Gunosy Tech Blog
    yuutookun
    yuutookun 2022/12/10
    かいた
  • マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing - Gunosy Tech Blog

    広告技術部のUT@mocyutoです。 大幅コスト削減シリーズ第二弾です。 前回はこちら tech.gunosy.io 今回はアベイラビリティゾーン(AZ)間通信のコストをIstioのlocality load balancingを使って削減した話になります。 概要 Istioとは どのようにコスト削減したか まとめ 概要 みなさんはマイクロサービスを導入しているでしょうか? 最近はモジュラモノリスが流行り始めている雰囲気を感じてきていますが、弊社の広告配信サーバは以下のようなマイクロサービス化された設計(と言っても2つのサービスしかないのですが)になっています。 構成図 一般的にクラウドプロバイダ上で構築している場合、耐障害性を高めるために複数AZ、複数リージョンに分散させることが基になるかと思います。 弊社では、単一リージョン複数AZに分散させて稼働しています。 リージョン間の通信に

    マイクロサービスにおけるAZ間通信のコスト大幅削減した話 with Istio Locality Load Balancing - Gunosy Tech Blog
    yuutookun
    yuutookun 2022/08/24
    書いた
  • 管理画面にGitOpsを導入しました 〜GitOpsとは編〜 - Gunosy Tech Blog

    はじめに 管理画面の課題 GitOpsとは Push型 Pull型 なぜPush型よりPull型なのか Push型のデメリット Pull型のメリット GitOpsにおけるPull型の構成 GitOpsで課題は解決されるのか まとめ 参考リンク はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。 広告技術部では、広告配信に関わる様々なアプリケーションを管理しており、その多くがEKSのKubernetesクラスタ上で動作しています。 広告の入稿や審査を行う管理画面もそのうちの一つです。フレームワークにはRailsを使っています。 管理画面をEKSに移行する際の記事はいくつかブログにも上がっているので、興味があればぜひご覧ください。 tech.gunosy.io tech.gunosy.io 今回、その管理画面のCDにGitOpsを導

    管理画面にGitOpsを導入しました 〜GitOpsとは編〜 - Gunosy Tech Blog
    yuutookun
    yuutookun 2022/08/19
    わかりやすい
  • ゼロダウンタイムでPodをロールアウトする - Gunosy Tech Blog

    こんにちは、広告技術部のyamaYuです。 最近は『SPY×FAMILY』にハマっています。 めちゃめちゃ面白いです。 それとヨルさんの声優さんが好きです。 さて、先日 GunosyAds の管理画面をEKSに移行したのですが、Podのロールアウト時に5xxエラーが発生するという問題に当たりました。 その際にダウンタイムなしにPodをロールアウトするための設定について調べたので、この記事ではそのことについてまとめようと思います。 前提 問題: Podのロールアウト時に5xxエラーが発生する 解決策 (1) Pod削除時の5xx (2) Pod作成時の5xx まとめ 前提 まず前提の共有のために今回扱うシステムであるGunosyAdsの管理画面の構成を簡単に説明します。 このシステムはAWS EKS上のKubernetesクラスターに展開されたサービスの一つです。 AWS Load Bala

    ゼロダウンタイムでPodをロールアウトする - Gunosy Tech Blog
    yuutookun
    yuutookun 2022/05/31
    わかりやすい
  • S3のコストを大幅に削減した話 - Gunosy Tech Blog

    広告技術部のUTです。 最近はカービィディスカバリーをゆっくりやってます 概要 過去の失敗 どうやったか 仕組み 結果 まとめ 概要 昨今ではデータドリブンな意思決定を重視する企業がどんどん増えており、データを活用することにより事業成長へのインパクトを出そうとしています。 データを事業へと活用するためには、蓄積されるデータを分析するために保管しておく必要があります。 弊社も創業時からデータを蓄積し事業に活用することに力を入れてきた企業の一つであり、日々大量のログが収集されています。 またAWSアカウントを複数運用していますが、一番データ量の多い広告アカウントのS3にはペタバイトレベルのデータが保管されています。 普段何気なく使っているデータレイクとしてのS3ですが、少量であれば無視できるくらい小さいので、コストを気にせず使っておられる方も多いのではないでしょうか? そのようなS3でも巨大な

    S3のコストを大幅に削減した話 - Gunosy Tech Blog
    yuutookun
    yuutookun 2022/04/13
    かいた
  • 更新できるデータレイクを作る 〜Apache Hudiを用いたユーザデータ基盤の刷新〜 - Gunosy Tech Blog

    広告技術部のUT@mocyutoです。 こちらの記事はGunosy Advent Calendar 2021の4日目の記事です。 昨日は内田さんの その設定、pyproject.tomlに全部書けます - Gunosyデータ分析ブログ でした 今回はApache Hudiを用いたユーザデータ基盤の刷新を紹介します。 背景 仕組み 課題 対応策 データの持ち方を変える Apache Hudiとは 構成 Glue + PySpark Athenaによる抽出 移行し終えて 背景 Gunosyの広告システムではユーザに対して最適な広告を届けるために、接触済みのユーザに対して何度も同じ広告を出さないようにする仕組みを提供しています。 例えば、すでにある広告Aをクリックしたユーザには広告Aは再度配信しないのような設定です。 仕組み この仕組みを実現するためには以下のようなアーキテクチャになっていました

    更新できるデータレイクを作る 〜Apache Hudiを用いたユーザデータ基盤の刷新〜 - Gunosy Tech Blog
    yuutookun
    yuutookun 2021/12/04
    かいた
  • Local Debugging of AWS Glue Jobs | Wharton Knowledge Base

  • 10倍スパイクの速報時に耐えうるAPIのスケーリングの仕組み - Gunosy Tech Blog

    広告技術部のUT@mocyutoです Gunosyではニュース記事を配信運用するメディア部門とアプリ上などに広告を配信運用する広告部門があります。 (記事では「メディア」とはグノシーやニュースパスなどのサービスを指し、「広告」はそのメディアに出す広告を指します。) 今回は広告部門が運用している広告システムのスケールの仕組みについて紹介します。 課題 解決策 仕組み スパイクスケーリング スケジュールスケーリング スケールのロジックを記述 まとめ 課題 メディア側のシステムは各サービスごとにチームが分かれており、それぞれ別のシステムで稼働しています。 しかし、広告側のシステムは単一のシステムで動いており、各メディアの広告配信すべてを担っています。 そのため、サービスが増えるごとにトラフィックが増える仕様になっています。 特に速報などのプッシュ通知をメディアが送信すると一気にユーザはアプリを

    10倍スパイクの速報時に耐えうるAPIのスケーリングの仕組み - Gunosy Tech Blog
    yuutookun
    yuutookun 2021/06/22
    かいた
  • Building the Google Photos Web UI

    A few years ago I had the privilege of being an engineer on the Google Photos team and part of the initial launch in 2015. A lot of people contributed to the product — designers, product managers, researchers, and countless engineers (across Android, iOS, Web, and the server) to name just some of the major roles. My responsibility was the web UI, and more specifically the photo grid. We wanted to

    Building the Google Photos Web UI
    yuutookun
    yuutookun 2021/04/20
  • 既存のEKSクラスタにFargate for EKS でAPI作成する際の導入でハマったところ - Screaming Loud

    既存のEKSクラスタにterraformでFargateのPodを導入する際に、ハマったところを紹介します。 TL;DR クラスタセキュリティグループ の設定を見直しましょう。 クラスタセキュリティグループ mapRoleへの付与漏れ Farage導入においては以下の記事がわかりやすいのですが、書いてあるとおりfargate profileを生成すると自動でmapRoleに pod execution roleが入ります。 tech.recruit-mp.co.jp しかし、terraformで導入していてmapRoleもterraformで管理していると、 terraformでfargate profileを作成 aws側がmapRoleにpod execution roleの権限を追加 terraformに記載されているmapRoleで上書き となってしまい、mapRoleが消えてしま

    既存のEKSクラスタにFargate for EKS でAPI作成する際の導入でハマったところ - Screaming Loud
  • GitHub Actionでtagを打った際にgit-pr-releaseみたいなリリースノートを作る - Screaming Loud

    今年はコロナで出かけていないので、ちょっとGitHub Actionいじってます。 やりたいこと タイトル通りですが、やりたいことは「GitHub Actionでタグを打ったときに、git-pr-releaseみたいな前のタグからのPRのリストをリリースノートに乗せたい」です。 実際の自動で生成したリリースノート やりかた これを実施するにあたり、git-pr-releaseと違ってメインブランチとサブブランチを決めてそのPRを取るという手法が使えないので以下のようにする必要があります 前のタグからの今のタグへの全コミット取得 PRのコミット取得 対象のPRを取得 リリースノートに反映 前のタグからの今のタグへの全コミット取得 これはGitHubAPIからは取れなかったので、Git操作で取得します。 git log を使えば、あるタグから別のタグまでのコミットログを取れます。 また通常の

    GitHub Actionでtagを打った際にgit-pr-releaseみたいなリリースノートを作る - Screaming Loud
    yuutookun
    yuutookun 2021/01/02
    書いた
  • GitHub - mocyuto/ec2-search: ec2-search can search EC2 service easily. named "ec2s"

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mocyuto/ec2-search: ec2-search can search EC2 service easily. named "ec2s"
  • RustでEC2検索を簡単にするCLIを作った ~ ec2-search ~ - Screaming Loud

    記事は Rust Advent Calenderの9日目の記事です。 今回はRustでCLIを作ったので、機能紹介と作る上でのポイントなどを紹介します。 書こうと思っていたネタが、7日目の 2020 年版 Command Line Tool を作ってみる in Rust - Qiita と結構被ってしまったのですが、 どうやってコードを書くかというより、自分がハマったどうやってデプロイするか周りをメインに紹介します。 なぜ作ろうと思ったか ec2-search 機能一覧 RustでCLIを作るためのパーツ コマンドラインパーサ aws sdk 実行バイナリ 表示 CI CD バイナリのリリース crates.ioへのpublish homebrew まとめ 追記 なぜ作ろうと思ったか 今回このCLIを作ったモチベーションとしてはRustでなにか作りたいという気持ちがメインではありますが、

    RustでEC2検索を簡単にするCLIを作った ~ ec2-search ~ - Screaming Loud
    yuutookun
    yuutookun 2020/12/09
    書いた