サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
techblog.gmo-ap.jp
はじめに こんにちは。GMOアドパートナーズ 24年新卒の嘉山です。Slackで社内規程や制度について質問できるRAG(Retrieval Augmented Generation)アプリ「tomoc(トモック)」を、新卒2人で開発しました。本プロジェクトが発足してからというもの、界隈のテック系の記事を眺めていると「RAG」系のテーマが大半を占めており、昨今のRAGの流行り方は尋常じゃありません。(※ 確証バイアス:自分がすでに持っている先入観や仮説を肯定するため、自分にとって都合のよい情報ばかりを集める傾向のこと。) そこで一度、プロジェクト発足からリリースまでの直近数ヶ月を振り返ってみると、実際に手を動かしてコーディングしていく時間と同じくらい、いやそれ以上に技術選定やシステム構成、UIのデザイン、分析フロー、データの運用方法といった、「設計」の部分に多くの時間を費やしてきたことに気が
GMO NIKKOのT.Kです。 この記事の内容は、執筆時点で作業日から経過しているので情報が古くなっている可能性があります。MariaDBのアップグレードは環境によって異なるので、必ずバックアップを取って自己責任で行ってください。万が一トラブルが発生しても、責任は負いかねますのでご了承ください。 バージョン選定 タイトルに「最新バージョン」とありますが、実はLTS版を使いたかったので、MariaDB Serverの11.4を選びました。 手順の検討 Galera Cluster構成だったので、最初はローリングアップデートを考えました。しかし、かなり古いバージョンから一気に最新にするのは難しくて、いくつか中間バージョンを経由しないといけませんでした。各バージョンごとに動作検証をするのは手間がかかるんですよね。 幸い、MariaDBは古いバージョンから新しいバージョンへのレプリケーションがス
お久しぶりです。GMOインサイトの天河です。 ついこの間、JavaScriptのジェネレータについて社内勉強会で発表したのでその内容をまとめます。 ※ 注意 本記事で言及している「ジェネレータ」はJavaScriptでの言語仕様です。一部通ずる箇所もあると思いますが、Python や C# など他の言語での使われ方についてはしかるべき文献を見てください。 目的 ジェネレータ が何かわかるようになる ジェネレータについて面接で聞かれても余裕で答えられるようになる 実装時にジェネレータを選択肢として持てるようになる 対象読者 ジェネレータ が何か全くわかっていない人 ジェネレータ について認知はしているものの、どういうものかは把握していない人 ジェネレータ を知ってはいるものの、使い所がわからない人 はじめに ジェネレータを理解するためには、「イテレータ」と「イテラブル」について知る必要があり
はじめに こんにちは! GMO NIKKO株式会社の石丸(@thomi40)です。 GMOインターネットグループ横断イベント「GMO Developers Day 2024」を今年も開催いたします! 開催概要 今年は「Sync Visions」をテーマに、「セキュリティ」「AI」「エンジニア」「クリエイティブ」にフォーカスした過去最多の全35セッションを2日間にわたりオンラインとオフラインのハイブリッド形式でお届けします。 開催日時:DAY1 2024年11月29日(金) ≪YouTube LIVE≫ 13:00~17:00 DAY2 2024年11月30日(土) ≪会場≫ (開場)10:30 (プログラム)11:00~20:00 ≪YouTube LIVE≫ 11:00~18:00 開催会場:GMOグローバルスタジオ(※DAY2のみ) 東急田園都市線 用賀駅直結 GMOインターネットTO
はじめに GMO NIKKOのK.A.です。 先日、プレビュー版が公開された「Gemini in Looker」 の「会話分析(Conversational Analytics)機能」を実際に使って試してみる機会がありましたので、その利用方法と使用感についてレビューさせて頂きます。 Chat with your business data – Conversational Analytics comes to Gemini in Looker September 17, 2024 Gemini in Looker とは Gemini in Lookerは、Gemini for Google Cloud ポートフォリオのプロダクトで、生成 AI による支援を受けながらデータの処理を行うことができます。 ※参考:Gemini in Looker の概要 Gemini in Looker は L
こんにちは! GMOインサイトのMです。 AIはプロンプトエンジニアが与える指示に従い、結果を出しますが、プロンプトにバイアスがあれば、その結果も偏ったものになります。公平な出力を得るためには、プロンプト作成時にバイアスを防ぐことが不可欠です。 AIバイアスの原因 バイアスは主に3つの要因から生じます: トレーニングデータの偏り:過去のデータが不平等を反映していると、その影響がAIに現れます。 アルゴリズムの偏り:中立なデータでも、アルゴリズム自体が不平等な結果を出すことがあります。 プロンプトの無意識バイアス:エンジニアが無意識に特定の前提を持ち込むことがあります。 バイアスを防ぐ方法 中立的な言語を使用:性別や特定のグループを前提とせず、多様性に配慮した言葉を選ぶ。 明確な指示を与える:AIにバイアスを排除するよう具体的に指示する。 公平性を考慮:すべてのグループが平等に扱われるように
こんにちは。GMO NIKKOのH.Tと申します。 PITRでCloud SQL(MySQL)のインスタンスを復元する機会があったのでご紹介します。 まず、PITRとはDBのバイナリログからポジション指定でインスタンスを復元する方法です。 今回、自動バックアップも有効にしていましたが一日一回の自動バックアップが取れる前に復元する必要があったためPITRからインスタンスを復元しました。 以下、簡単な手順です。 1. MySQLクライアントでインスタンスに接続 今回はローカルからCloud SQL Auth Proxyで接続しましたがCloud Shellでも良さそうです。 2. バイナリ ログファイルの表示 ファイル名を取得します。 SHOW BINARY LOGS; 3. ファイルの中身を確認 復元したいポイントを特定していきます。 コンソールで表示するのも良いですが、今回ファイルに書き出
はじめに GMO NIKKOの吉岡です。 前回の記事ではPhi-3-MediumをGPUで動かしてみましたが、今回はもう一つの気になるモデル、Phi-3-visionを紹介します。 新しいバージョン3.5が公開されているので、こちらを試してみます。 Phi-3.5-visionは画像を読み取り、質問から結果を返すLLMとなっています。 サーバー構成・準備 前回の記事でサーバー構成や準備を紹介したので、こちらを参照ください。 LLM LLM:https://huggingface.co/microsoft/Phi-3.5-vision-instruct 4.15B 今回は画像を読み取り結果を返してくれるPhi-3.5-visionを使います。 git clone フォルダを作成し、huggingfaceからcloneします。 大きなファイルがあるため、git lfsが必要です。 mkdir
はじめに こんにちは、GMOソリューションパートナーのTKです。 当社には、AWSの学習用のアカウントがあります。 今回はそれを活用して、ローカルのdocker環境上で動かしていたSeleniumを ECSのFargateで動作させてみることにしました。 構成 root ├ python │ └ Dockerfile │ └ requirements.txt │ └ script.py ├ selenium │ └ Dockerfile └ docker-compose.yml コード pythonディレクトリ配下 FROM python:3.12 ENV TZ Asia/Tokyo RUN apt-get update && \ apt-get install -y sudo vim && \ apt-get clean COPY ./ /app RUN pip install -r /
はじめに こんにちは。GMO アドパートナーズ新卒の樋笠です。 最近業務で、Pythonの非同期処理を書いているのですが、初めて非同期処理を学んだときに苦悶したことを思い出しました。 そこで、過去の自分に「こう伝えたら理解できるんじゃないかな」と考えながら記事を書きました。 非同期処理について学んだことがない人でも、これを読めば、「非同期処理がやろうとしていること」や「Pythonの非同期処理の基本的な書き方」が分かるようになる、というものを目指しました。 ぜひ最後までお読みください ※ わかりやすく説明するために、あえて言い切っている箇所があります。ご了承ください。 非同期処理ってなに? まず、非同期処理ってなに?という話ですが、「非同期処理」を理解するために、その対になる「同期処理」を考えてみましょう。 同期処理 たとえして、こんな状況を考えてみましょう。 AとBの2つのタスクがあり、
GMO NIKKOのT.Nです。 最近弊社のプロダクトで使用しているOpenAIのモデルを、 gpt-4oやgpt-4o-miniに切り替えました。 gpt-3.5-turboを使用していた時と比較して、 トークン数に変化があったので、 tiktokenの処理時間も含めて確認してみました。 確認方法 以下のようなプログラムで、 トークン数と処理時間の平均を確認しました。 import tiktoken import timeit import statistics with open('sv_jp.txt', encoding="utf-8") as f: sv_text = f.read() model_name = "gpt-4o" tokenizer = tiktoken.encoding_for_model(model_name) # トークン数 token_count = len
こんにちは。GMO NIKKOのH.Tと申します。 GoogleからNotebookLMというサービスが出ましたので触ってみました。 NotebookLMの使い方 NotebookLM は簡単にはじめることができます。 NotebookLM にアクセスし、新しいノートブックを作成します。 そして自分が作成したいプロジェクトのための参照資料をアップロードすると、読み上げやブリーフィングシートの作成、FAQ、アイデアの整理などが可能になります。また、NotebookLM に質問して、すべてのソースの概要 ( 学習ガイドや目次など ) を自動的に作成することもできます。 Googleのブログより やってみた 早速使ってみました。 まず、上図のTry NotebookLMをクリックしますと以下のような画面が開きます。 「新しいノートブック」をクリックします。 あらかじめ青空文庫より「吾輩は猫である
こんにちは。 GMO NIKKOのT.Cです。 今回は、Dataflowで、特定のゾーンにあるリソースが一時的な不足(= ZONE_RESOURCE_POOL_EXHAUSTED)により、間欠的にJobが失敗した内容について話したいと思います。 ※ 本ブログで発信される情報は、個人の見解でドキュメントで直接言及されてない内容も含まれているため、実際とは異なる可能性もあるので、参考までにしてください 1日何回も、Cloud FunctionでDataflow(batch・dataflow shuffle)を動かしてGCSにあるログを処理していますが、ゾーンのリソース不足により、Jobが失敗する現象が数日にわたって間欠的に発生していました。 Startup of the worker pool in zone us-central1-a failed to bring up any of th
こんにちわ。 GMO NIKKOのT.Mです。 Google AI Studioとは Google AI Studioは、GoogleのAIモデルであるGeminiを使ってプロンプトの検証やモデルのチューニングなどが行える開発ツールです。Gemini APIのAPIキーの取得もできます。 Google AI Studioの始め方 Googleアカウントがあれば始められます。 企業などでGoogle Workspaceを使っている場合は、「早期アクセスアプリ」を有効にする必要がありました。システム管理者に相談してみましょう。 Google AI Studioの起動 Google AI Studioの公式ページから「Google AI Studioにログイン」ボタンを押せば、画面が開きます。 ログインするとGoogle AI Studioが開きます。 クイックスタート クイックスタートのドキュ
はじめに こんにちは。 GMO NIKKOのKONCEです。 今回はJS製エディタのAceについて調べる機会があったのでブログの題材にしてみます。 使用するケースはかなり限られてくると思いますがよければご覧ください 背景 ネイティブアドの取り扱い 僕の担当しているプロダクトGMOSSPではネイティブアドを取り扱っています。 ネイティブアドはデマンド側のサービスに対して広告素材を要求してGMOSSPでデザインを当てていきます。そのため、管理画面からデザインを登録更新できるフォームを用意しています。 運用面の課題 基本的には担当者がHTML/CSS/JavaScript のタグを登録/編集して運用しています。その中で通常のテキストエリアを使用してきましたが、 タグの不備 全角の混入 画面上での操作性 など課題がありました。不備などはバックエンドのバリデーションでケアできればベストだと思いますが
こんにちは、GMO NIKKOのM.Hです。 この度、第38回人工知能学会全国大会(以下、JSAI大会)に2日間参加してきました。JSAIは日本国内では最大規模となるAI学会の大会となり、1年に1回開催されております。 今回は出展側としてではなく聴講側として参加し、その中で非常に興味深い発表がいくつかありましたので、そのハイライトをいくつかご紹介しようと思います。 はじめに 本記事の内容は筆者の個人的な感想や理解に基づくものです。 本記事で言及している論文・講演に対する認識と理解は全て筆者によるものであり、誤りを含んでいる可能性があります。 JSAI大会について 人工知能学会とは、AIに関する研究の進展と知識の普及を図り、その発展に寄与することを目的として設立された学会です。その学会が開催する全国大会は、主軸となるAIやそれに関連する研究成果の発信や研究のネットワーク形成の場として毎年1回
はじめに GMO NIKKOの吉岡です。 みなさん、生成AIは活用してますか? ChatGPTに始まり、Claude3やGeminiなど、実用的なAIがどんどん出てきてますね。 自分も使ってはきましたが、課金が気になってしまいます。 これではサービスに組み込むことは難しいですよね。 そのためローカルで動くLLMを追ってきましたが、今年に入って実用的な日本語を返すことができるモデルがいくつか出てきているので、サーバー構成からインストール方法、LLMの起動まで紹介しようと思います。 ローカルLLMを動かす上で一番重要なのはGPUのVRAMです。 LLMは7B、13B、70Bモデルが多いですが、量子化しない場合、必要なVRAM容量は動かすモデルの大体2倍なので、13Bモデルでは26GのVRAMが必要です。 NVIDIAのGPUを使ったCUDAが前提になっているのですが、一般向けでは24Gモデルが
GMO Solution Partner のM.Sです。 Gmailにおけるガイドラインが2023年10月に発表され、2024年の2月1日の適用開始に 対応するため、多くの方々が対応をされたのではないかと思います。 当社並びに連結各社においても例外ではなく、間際までいろいろと対応が入っておりました。 影響力は絶大で、DMARC(ディーマーク)の導入が上場企業225社において8割以上になった というような記事も目にしました。 2024年6月1日より配信の規制を更に拡大予定であり、 改めて、主要な対応と見落としがちなポイントを振り返ってみたいと思います。 対象と影響 Googleのガイドラインが影響を与える対象ですが、 個人用 Gmail アカウントにメールを送信する場合となっており、 具体的な送信先は、@gmail.com または @googlemail.com となります。 Google
こんにちは、GMO NIKKO インフラエヴァンジェリスト(メンバーに命名してもらいました!)のhakumaiです。 前回の記事「弊社初!SLOモニタリングを導入してみた話」を読んでいただいた方々、ありがとうございます。 GMOアドパートナーズ TECH BLOG byGMO弊社初!SLOモニタリングを導入してみた話こんにちは、GMOアドマーケティング インフラ開発部のhakumaiです。 前回の記事「AWSエンジニアから見たGCP(データ分析編)」を読んでいただいた方々、ありがとうございます。 最近、弊社のプロダクトにSLOモニタリングを導入し運用し始めたこともあり、今回はその導入までの道のりを個人的に思ったことも含めてお話いたします。きっかけSLI/SLO文化を導入しようと思ったきっかけは、「プロダクトをより成長させていきたい」という思いが自身としてもインフラチームとしてもあったからで
GMO NIKKOのT.Nです。 Google Cloud の Container Registry が非推奨になったことで、 既に Artifact Registry に移行したプロジェクトや、これから移行するプロジェクトも多いと思います。 2024年3月から自動移行ツールが使用できるようになったため、 今回は自動移行ツールでの移行について書きました。 移行方法 移行方法は以下の Google Cloud のサイトに記載されています。 https://cloud.google.com/artifact-registry/docs/transition/auto-migrate-gcr-ar?hl=ja 移行用のコマンドを実行すると、移行に必要な手順が自動的に実行されます。 移行先は以下の二通りがあります。 Artifact Registry でホストされている gcr.io リポジトリに
お疲れ様です。GMOインサイトの天河です。 天河は2024年1月をもって、GMOアドマーケティング株式会社からGMOインサイト株式会社に転籍となり、michill という女性向けウェブメディアの開発を担当していました。 michill by GMO 天河は転籍後の3ヶ月間のタスクの中で、michillの自動テスト/ユニットテストを実装してきました。200以上のメソッドのテストを実装し、プロダクト品質向上と、問題点の発見 / 改善に貢献することができました。 この記事では、Laravelのテストを実装する中で「このテスト、どうやって書いたらいいんだ?」と苦労したケースの解決方法を紹介したいと思います! 「リレーションを持つデータベースに関するテスト」 「データを偽装する必要があるテスト(依存性の注入 / DI)」 の実装方法がメインになります。上記二つはなかなか情報が無く苦労したので、同じ状
お久しぶりです。GMO NIKKOのharuです。 私が担当するサービスGood!Appsは、GCPを用いて本番環境をクラウド上に構築しております。当然データベースもCloud SQLを使用しているのですが、次のような用途でローカルからCloud SQLに接続したいことがあります。今回は、公式が提供しているCloud SQL Auth ProxyというCloud SQLコネクタを使用した方法をお伝えします。 主な用途 データ確認: 開発中にCloud SQL内のデータを確認したい場合。 データ修正: 何らかの理由でCloud SQL内のデータを直接修正する必要がある場合。 データベースマイグレーション: Cloud Runなどのコンテナ環境からCloud SQLにデータを移行したい場合。 注意点 本番環境のデータベースに接続するため、操作は慎重に行ってください。 不要な時は接続を閉じること
GMO NIKKOのT.Kです。 AlmaLinuxのブログ記事によると、GPG keyが更新されており、新しいGPG keyをインポートする必要がありました。先日Ansibleで下記のタスクを追加したものの、インポートが適切に行われない問題が発生しました。
GMOアドパートナーズのtakedaです。 長年システムエンジニアやってると事故の一つや二つは起こすことあると思います。規模の大小はともかくとして。 で、事故対応に必ずついてくるのが再発防止策。ここで「確認不足のためダブルチェックします」みたいな防止策を述べたり見たりした人はまあまあ多いんじゃないでしょうか。これを撲滅したいっていう話をします。 あ、きちんと設計されたダブルチェックは有意義なものなので、そこは誤解されないよう始めに断っておきます。 なぜ撲滅したいのか ダブルチェックを再発防止策に採用することにはいくつか問題があると思います。 ・単純に工数が増大する 当然ながらチェッカーの工数がかかります。さらにいうとチェッカーたり得るのはより生産性の高いエンジニアであることが多く、チームとしての生産性に悪影響があります。 ・問題を未然に発見するための施策であり、そもそも問題を作りこまないと
こんにちは、GMO NIKKOのryoutakoです。普段はRuby on Railsを使った開発やプロダクトの脆弱性診断などセキュリティ関連の業務をしています。 今回はHTTPヘッダーの一つであるContent Security Policy(以降CSPヘッダー)について書いていきたいと思います。 経緯 最近の業務でCSPヘッダーに関連する業務を行う機会があったのですが、正直CSPヘッダーのことはぼんやりとしか理解できていない状態でした。なので着手するにあたってCSPヘッダーの知識を復習したので、今回はその内容を共有しようと思います。 CSPヘッダーとは CSPヘッダーはウェブサーバーがブラウザに送信するHTTPヘッダーの一種で、コンテンツセキュリティポリシーを定義します。このポリシーは特定のリソースの読み込みや実行を制御し、ウェブページ上での潜在的なセキュリティリスクを軽減します。 ま
はじめに こんにちは。GMO NIKKOの石丸です。 私が所属する部署では案件管理にBacklogを活用していますが、Backlogプロジェクトの容量削減の一環で課題に添付されたファイルやファイル容量の一覧を抽出することになりました。 Backlogの画面上で課題に添付されたファイルの詳細を確認するには課題を一つずつ開く必要があるため、課題が大量に作成されたプロジェクトで課題添付ファイルの一覧やファイル容量を確認するには非常に時間がかかってしまいます。 Backlogには課題添付ファイルの詳細を取得するためのAPIが用意されているため、今回はAPIを活用してプロジェクト内の課題添付ファイルの一覧や各ファイルの容量を取得しました。 本記事ではBacklog APIを使う手順や実際に使ったスクリプトを紹介します。 前準備 Backlog APIを使うための毎準備として、まずはAPIキーを発行し
はじめに こんにちは。 GMOソリューションパートナーのzakisanbaimanです。 GraphQLのOSSフレームワークであるApollo Serverのバージョン3が2024年10月22をもってEOLを迎えます。 それに伴って現時点(2024年3月)で最新バージョンである Apollo Server 4 へのアップデートが必要となるため、本記事で変更点および注意点について解説します。 この記事の要点 Apollo Server3が2024年10月22日にEOLを迎える apollo-serverやapollo-server-codeなどは@apollo/serverパッケージに統合される サーバ起動の関数が変更となる 環境 Node.js: 20 Apollo Server: 3 → 4 変更点 1. パッケージ構成の変更 各パッケージが @apollo/~ へ統合されます。 ap
はじめに GMO NIKKOの吉岡です。 今期は新しいウェブアプリをゼロから作成しましたが、各機能は1〜2日で作る必要があったため、タグ機能を作る際にはacts-as-taggable-onというGemを使いました。 初めは良いですが、タグが増えるにつれてパフォーマンスが気になってきます。 この原因は大体がN+1問題で、includesを使った先読みで改善されますが、細かい動作については忘れてしまうことも多いので、備忘録として残しておきます。 N+1問題とは? acts-as-taggable-onは特定のモデルに関連テーブルとしてタグを追加する機能です。 今回は記事モデルに追加しましたが、記事に関連する一つのタグを取得するのに、1SQLが発行されてしまいます。 タグが含まれている複数記事を一覧表示する場合、無駄なSQLが大量に発行されてしまうでしょう。 この現象がN+1問題です。関連テー
GMOアドマーケティングのデザイナー、R.Mです。 コーポレートサイト配下のコンテンツについて、GA4の数値をSlack通知する仕組みをGASで作成してみました。 実現したいこと 週報的な形で、PV TOP3のコンテンツ記事をSlack通知して、サイト訪問ユーザーが今関心を持っているコンテンツをお知らせする 毎週自動的にポストすることで、能動的にGA管理画面に見に行かなくても傾向を知ることができるようにする 結果を見て深掘りしたい(どこからの流入が多いのか?検索キーワードは何か?等)ときにすぐに確認できるようにする 実装したい仕様 集計期間 前週(昨日〜7日前まで) 通知する項目 PVの多いコンテンツトップ3のタイトル・表示回数(PV数) コンテンツ閲覧ユーザーの回遊率(ユーザーあたりのビュー) Looker Studio であらかじめ設定・作成したレポートURL 通知タイミング 毎週月曜
次のページ
このページを最初にブックマークしてみませんか?
『GMOアドパートナーズ TECH BLOG byGMO』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く