タグ

ブックマーク / dev.classmethod.jp (75)

  • RAGの実案件に取り組んできた今までの知見をまとめてみた | DevelopersIO

    はじめに 新規事業部 生成AIチーム 山です。 ChatGPTOpenAI API)をはじめとしたAIの言語モデル(Large Language Model:以下、LLM)を使用して、チャットボットを構築するケースが増えています。通常、LLMが学習したときのデータに含まれている内容以外に関する質問には回答ができません。そのため、例えば社内システムに関するチャットボットを作成しようとしても、素のLLMでは質問に対してわからないという回答や異なる知識に基づいた回答が(当然ながら)得られてしまいます。 この問題を解決する方法として、Retrieval Augmented Generation(以下、RAG)という手法がよく使用されます。RAGでは、ユーザからの質問に回答するために必要そうな内容が書かれた文章を検索し、その文章をLLMへの入力(プロンプト)に付け加えて渡すことで、ユーザが欲しい

    RAGの実案件に取り組んできた今までの知見をまとめてみた | DevelopersIO
    atsuizo
    atsuizo 2024/02/06
  • PostgreSQLで多数のパーティションを持つテーブルに対してPrepared Statementを実行した際の性能劣化について調べてみた | DevelopersIO

    ※実行時間の単位は全てmsです パーティション数が1,000になると汎用プランの再検証で1000パーティションへのスキャンが発生するため、bindが遅くなっていることが分かります。気になっていたunnamedなPrepared Statementについては名前付きのPrepared Statementに比べて早いような気もするし、誤差のような気もするし...ここはもう少し計測回数を増やして詳しく見ていきたいところです。 WHERE句をリテラルで記述した非Prepared Statementの場合は1000パーティションかつforce_generic_planの場合でも6.2msで処理できており、汎用プラン再検証のオーバーヘッドが発生していないことが伺えます。 1000パーティションのテーブルに対して1000回クエリを発行してbindのオーバーヘッドを確認してみる 先程の検証結果から 100

    PostgreSQLで多数のパーティションを持つテーブルに対してPrepared Statementを実行した際の性能劣化について調べてみた | DevelopersIO
  • Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました | DevelopersIO

    AWSチームのすずきです。 2021年12月11日、 AWS の Managed Ruleとして提供されている AWSManagedRulesKnownBadInputsRuleSetに新しい保護ルール「Log4JRCE」が追加されました。 Apache Log4j2 Issue (CVE-2021-44228) Log4j の脆弱性(CVE-2021-44228)対策として、AWS WAFの有効性を確かめる機会がありましたので、紹介させていただきます。 AWS Managed Rule Known bad inputs 新しいルール 「Log4JRCE」 が追加されました。 試してみた WAF(ACLs)設定 AWSManagedRulesKnownBadInputsRuleSet のみ設定した WebACLを用意しました。 BadInputsRuleSetのバージョンはデフォルト、検証

    Log4jの脆弱性対策としてAWS WAFのマネージドルールに「Log4JRCE」が追加されました | DevelopersIO
  • LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO

    こちらの記事はRDS ProxyがGAされる前に執筆した記事です。現在はLambdaからRDSを利用する場合、間にRDS Proxyを挟むという選択肢が増えているので、まずはRDS Proxyを使う/使わないの検討をお願いします。以後で紹介しているトピックの一部はRDS Proxy利用時は考え方が変わってきます。 CX事業部@大阪の岩田です。私が現在関わっているプロジェクトではLambda × RDSというアーキテクチャを採用して開発を進めています。開発を進める中でLambda × RDS(RDB)という構成についてある程度ノウハウが貯まってきたので、注意したいポイントやオススメの設定をTIPS的に紹介していきます。 環境 以後の説明では以下の環境の一部もしくは組み合わせを利用しています。具体的なコードやSQLの例はプログラミング言語やDBエンジンに依存しますが、根底の考え方はどの言語、

    LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO
    atsuizo
    atsuizo 2020/06/07
    DBユーザーはFunction単位じゃなくても、どのアプリの接続・処理なのか解る粒度では分離しておきたいもの。たとえ権限が全く一緒でもね。Lambdaじゃない現場でもまずソレで提案してる。
  • AWS クラウドデザインシート テンプレートを公開してみた | DevelopersIO

    こんにちは。 ご機嫌いかがでしょうか。 "No human labor is no human error" が大好きな吉井 亮です。 パブリッククラウドの利用は今後も拡がっていくと予想しています。 比較的慎重であった社内基幹システムのクラウド移行も進んでいくことと思います。 今までとどう違うのか、AWS ならではの使い方はどうすればいいのか、という悩みをお持ちの方は大勢いらっしゃると感じています。 そんな方々のお役に少しでも立てばという想いでドキュメントテンプレートを公開しました。 クラウド上にシステム構築を行う前の設計フェーズで使用するドキュメントを想定して作成しました。 一般的に言う「インフラ基設計」にあたるドキュメントです。 ドキュメントはこちらで公開しています。ご自由にお使いください。 対象利用者 以下のような利用者を想定しています。 AWS 上で自社サービスを構築するインフラ

    AWS クラウドデザインシート テンプレートを公開してみた | DevelopersIO
    atsuizo
    atsuizo 2020/03/29
  • PostgreSQLでTRUNCATEをROLLBACKした際の内部の挙動を追いかけてみた | DevelopersIO

    PostgreSQL 11.5文書 68.6. データベースページのレイアウト このヘッダ情報のt_xminやt_xmaxを参照することで、どのトランザクションに対してどのバージョンの行データを見せるべきなのか?ということが判断できる訳です。※XID = トランザクションID また、PostgreSQLは基的に1リレーションにつき1ファイルを利用してデータを管理します(TOASTテーブルなどの例外もあります)。例えばOracleの場合は1つ以上のデータファイルから構成された表領域に複数のテーブルやインデックスが格納されますが、PostgreSQLの場合はテーブルやインデックスといったDB上のオブジェクト1つにつきOS上の1ファイルが対応付きます。PostgreSQLでTRUNCATEを実行すると、対象テーブル用の物理ファイルを新しく作成し、以後は新しい物理ファイルを参照するようになります

    PostgreSQLでTRUNCATEをROLLBACKした際の内部の挙動を追いかけてみた | DevelopersIO
  • Amazon Redshiftのシステムテーブルを見る時によく使うSQL 9選 | DevelopersIO

    はじめに Redshiftには多くのシステムビューがあり、それらを使ってRedshiftの状態を確認することができます。同じSQLをよく実行することがあるので、自分用のメモとして書き溜めていたものをブログにまとめたいと思います。 ログ記録のための STL テーブル - Amazon Redshift システムビューの一覧 - Amazon Redshift システムカタログテーブル - Amazon Redshift SQL一覧 統計情報の鮮度とソートされていない行の割合を確認したい どの程度テーブルに削除マーク付きのレコードが含まれているかを確認したい VACUUMコマンドの進捗を確認したい SQLの開始時間と終了時間を確認したい SQLの開始時間と終了時間を確認したい。(全部入り) 実行中のクエリの進捗を確認したい どの程度ストレージサイズを使っているかを確認したい 分散キー、ソートキ

    Amazon Redshiftのシステムテーブルを見る時によく使うSQL 9選 | DevelopersIO
  • CloudFormationの全てを味わいつくせ!「AWSの全てをコードで管理する方法〜その理想と現実〜」 #cmdevio | DevelopersIO

    CloudFormationの全てを味わいつくせ!「AWSの全てをコードで管理する方法〜その理想と現実〜」 #cmdevio AWSにおける代表的なIaCの手段、CloudFormationについて、その使いこなしについて主観強めに喋ってきました。あまりマニュアルにも乗ってないような事項も結構あるので、是非参考にしてください。 「俺は、なんだかんだCloudFormationが大好きだ!」 うららかな小春日和の11月、下記イベントで登壇してきました。 【11/1(金)東京】国内最大規模の技術フェス!Developers.IO 2019 東京開催!AWS機械学習、サーバーレス、SaaSからマネジメントまで60を越えるセッション数! | Developers.IO このブログでは、「AWSの全てをコードで管理する方法〜その理想と現実〜」というタイトルで思う存分喋ったその様子を丸ごと喋り含めて

    CloudFormationの全てを味わいつくせ!「AWSの全てをコードで管理する方法〜その理想と現実〜」 #cmdevio | DevelopersIO
  • 【初データレイク体験】AWS Loft Osakaで DataLake ハンズオンを受けてきた(公開資料URLあり) | DevelopersIO

    大阪オフィスのちゃだいんです。 日はAWS Pop-Up Loft Osakaにて、ハンズオンに参加してきました。 今回はそのハンズオンの内容をご紹介したいと思います。 その前に、 AWS Pop-Up Loft Osakaは期間限定でオープンしており、日が最終日でした...(涙) 大阪のど真ん中一等地に、無料でコーヒーももらえるコワーキングスペース。中之島の高層ビル26階からの眺めを楽しみながら、優雅にパソコンパチパチできる稀有な場所でした。 どんな場所だったのかは、このブログをご覧ください。 【AWS Loftが大阪に期間限定オープン!】オープンしたてのAWS Pop-Up Loft Osakaで早速リモートワークしてみた #awsloft ハンズオン概要 DataLake ハンズオン OCT 31,2019 About the event(上記ページより抜粋) 幅広いデータソース

    【初データレイク体験】AWS Loft Osakaで DataLake ハンズオンを受けてきた(公開資料URLあり) | DevelopersIO
    atsuizo
    atsuizo 2019/10/31
  • Developers.IO Cafe でのAWSアカウントとステージの構成 | DevelopersIO

    渡辺です。 Developers.IO Cafe のドキュメントシリーズ第4弾は、AWSの環境周り、つまりAWSアカウントの構成について解説します。 ステージ毎にAWSアカウントを分ける カフェでは、プロダクション環境(PRD)、ステージング環境(STG)、インテグレーション環境(ITG)、開発環境(DEV)のステージ(環境)を持ちます。 原則としては、 このように プロダクトをステージに分ける場合、AWSアカウントを分割する ことがセオリーです。 カフェではさらにIoTアカウントを作成しています(後述)。 AWSアカウントを分割した場合のメリットは多くあります。 各環境でアクセスポリシーが明確になる 例えばIAMでログイン可能なユーザを明確にすることができます。 他の環境へのアクセスは許可しなければできません。 間違えてプロダクションを操作といった誤操作を防止できます。 リソースが混在し

    Developers.IO Cafe でのAWSアカウントとステージの構成 | DevelopersIO
    atsuizo
    atsuizo 2019/09/17
  • Amazon Redshift: COPY時のエラー情報を見易い形で取得するSQL文 | DevelopersIO

    超々小ネタです。 Amazon RedshiftでCOPY操作を行う際、新しく取り込むようなファイルだとエラーとなるようなデータの形式であったり、テーブルデータ型との齟齬が頻繁に発生する事も往々にしてありますので都度エラーが発生した際に対象となるシステム系テーブルを参照する必要が出て来ます。その際、これまではあまり意識しては居なかったんですが『そう言えば都度、エラー情報を得る時に手動でSQLを書いてたな』とふと思い、また可変長文字列が多いテーブルでもありますのでそのままの情報を得ようとすると若干見辛いというのもあるのでその手間を省くべく確認用のSQLをネタとして用意しとこうと思いました。 stl_loar_errorsテーブル参照用SQL 以下はエラー発生時に参照すべきテーブル、『stl_loar_errors』テーブルを分割して表示させるSQL群です。対象となるテーブルのテーブル名が無か

    Amazon Redshift: COPY時のエラー情報を見易い形で取得するSQL文 | DevelopersIO
  • 【書評】「仕事ではじめる機械学習」を読んで、機械学習プロジェクトの大変さを知った夏 | DevelopersIO

    どうも。DI部@大阪オフィスの玉井です。 仕事ではじめる機械学習というを読んだので、久しぶりに書籍エントリを投下します。このはとってもとってもとってもとってもとってもとっても大スキよ ダーリン I like you. ダーリン素晴らしいので、ぜひこの気持ちをみなさんに伝えたいと思いました。 このを読もうと思った理由 今後、機械学習を扱う製品やサービスが増えてくるのではないか、と思ったから 現在、私は製品サポートエンジニアとして、データ分析に関係する製品やサービス(Tableauとか)のサポートや導入を行っています。機械学習は触れたことは一切ありません。また(少なくとも現時点では)機械学習エンジニアに転向する予定もありません。 ところで、データ分析関係の製品やサービスっていうのは、それはもうすごい勢いで色々なものがリリースされています。弊社ではTableauやAlteryxといった製品

    【書評】「仕事ではじめる機械学習」を読んで、機械学習プロジェクトの大変さを知った夏 | DevelopersIO
  • [小ネタ]S3の署名付きURLを利用して、非AWSユーザにWindows PCからファイルをアップロードしてもらった話 | DevelopersIO

    西澤です。メール添付ファイルサイズの制限にかかり、ファイルの受け渡しができない問題というあるあるに遭遇しました。非AWSユーザにWindows PCからS3の署名付きURLを利用してファイルをアップロードしてもらうよう案内する機会があったので、手順をまとめておきます。 前提 今回は、以下のような状況でした。 ファイルの送り手側 非AWSユーザ 端末はWindows 案内すればコマンドライン操作が行えるエンジニア ファイルの受け手側 私 管理者権限を有するAWSアカウントを持っている S3の署名付きURL S3の署名付きURLについては、古くからある機能ですので、目新しさはありません。どのようなものか、ご存知無い方はぜひ下記記事もお読みください。期限付きのアクセス権を有したURLを発行できる非常に便利なS3の標準機能です。 【小ネタ】AWS CLIでS3のPre-Signed URLを生成で

    [小ネタ]S3の署名付きURLを利用して、非AWSユーザにWindows PCからファイルをアップロードしてもらった話 | DevelopersIO
    atsuizo
    atsuizo 2019/06/07
    割と大きなファイルのやり取りをする機会(主にお客さんに送ってもらう側)が多いので、マネジメントコンソールだけでできるようになると嬉しい。
  • 【EKSWorkshop】EKSやkubernetes周辺を効率よく学ぶのにオススメなチュートリアル集 | DevelopersIO

    底なし沼のEKSやKubernetesを学ぶにあたって、そのよき道標となってくれるワークショップの紹介です。 30回ぐらいつぶやいてる気がするけれど、このWorkshopまじでええな。まじでええわ。 / 他3件のコメント https://t.co/iCPRKu7obr “Amazon EKS Workshop :: Amazon EKS Workshop” https://t.co/iJaJYaVVHf — 濱田孝治(ハマコー) (@hamako9999) June 1, 2019 ( ´・ω・`)_且~~ EKSWorkshopとは Amazon EKS Workshop :: Amazon EKS Workshop AWSが提供するWebを使って学べる、EKSのワークショップ。VPCやALBやEC2のワーカーノードの構築含めて、いろんな観点からEKSを学ぶことができます。 また、EKS

    【EKSWorkshop】EKSやkubernetes周辺を効率よく学ぶのにオススメなチュートリアル集 | DevelopersIO
  • [レポート]「JAWS-UG コンテナ支部 入門編 #6 コンテナの始め方」 ~コンテナワークロード編~ #jawsug_ct | DevelopersIO

    [レポート]「JAWS-UG コンテナ支部 入門編 #6 コンテナの始め方」 ~コンテナワークロード編~ #jawsug_ct 「Dockerについて使い方はわかったけど番環境にどうやって導入するの?」 こんな状態に陥っていません? そうです、私のことです。 自分の開発環境に導入して便利だなぁと思ったり、チュートリアルを一通り試してはみたものの、番環境にDockerを導入、運用するのかのイメージが全く浮かび上がりません。 そしてDockerを導入することがサービスのマイクロサービス化であるとどうしても意識してしまいより一層わからないものになっています。 そんな中今回受講した「JAWS-UG コンテナ支部 入門編 #6」では下記のような内容を学ぶことができました。 コンテナを導入するまでの流れを掴み、具体的なイメージできるようになる コンテナの導入までのタスクを理解する 記事では私が学

    [レポート]「JAWS-UG コンテナ支部 入門編 #6 コンテナの始め方」 ~コンテナワークロード編~ #jawsug_ct | DevelopersIO
  • これまでの常識は間違っていた?!Lambdaのコールドスタート対策にはメモリ割り当てを減らすという選択肢が有効に働く場面も | DevelopersIO

    2019/5/31追記 先日のBlack BeltでLambdaの内部構造について一部解説がありました。※スライド公開され次第更新します これまでWorkerというコンポーネントはMicroVMを指しているという理解だったのですが、実際にはMicroVMをホストするEC2インスタンスのレイヤーがWorkerに相当するようです。以後の「Worker」という表記は基的に「MicroVM」に置き換えて読んで頂くようお願いします。 はじめに サーバーレス開発部@大阪の岩田です。 既に多くの方がご存知だと思いますが、Lambdaにはコールドスタートという概念が存在します。一般的にはLambda関数実行時にLambda実行環境の初期化処理が伴う場合を「コールドスタート」と呼ぶことが多いですが、このLambda実行環境の初期化処理には大きく2つのパターンが存在するようです。※厳密に区別すればもっと多く

    これまでの常識は間違っていた?!Lambdaのコールドスタート対策にはメモリ割り当てを減らすという選択肢が有効に働く場面も | DevelopersIO
  • データパイプライン活用における「知見」だけでなく「つらみ」も共有 – Data Pipeline Casual Talk Vol.2 に参加してきた #DPCT | DevelopersIO

    前回「第1回」の開催となった「Data Pipeline Casual Talk」、参加レポートについては下記エントリで言及させて頂きましたが、イベントとしては驚異の競争率且つ実際参加した内容も非常に参加者に好評なものとなっておりました。 Data Pipeline Casual Talk - connpass データパイプラインに関する知見をカジュアルに語る! Data Pipeline Casual Talkに参加してきた #DPCT | DevelopersIO その1回目の好評を受けて、早速の「第2回」が予定され、2019年04月17日(水)にイベントとして開催されました。第2回は「ブログ枠」が設けられていましたのでその枠を使って参加を確保。当エントリはその参加レポートとなります。 Data Pipeline Casual Talk Vol.2 - connpass 目次 参加レポ

    データパイプライン活用における「知見」だけでなく「つらみ」も共有 – Data Pipeline Casual Talk Vol.2 に参加してきた #DPCT | DevelopersIO
  • プレゼンはなんのためにやるのか?澤円さんの「マイクロソフト 伝説マネジャーの世界№1プレゼン術」でITエンジニアのプレゼンを考える | DevelopersIO

    プレゼンはなんのためにやるのか?澤円さんの「マイクロソフト 伝説マネジャーの世界№1プレゼン術」でITエンジニアのプレゼンを考える 「エンジニアとしてプレゼンする時、実際に、聴く人になにを伝えればええんやろ?」と迷っていたときに買った書評です。学びが多く、よござんした! プレゼンってなんのためにやるんですかね? 【4/6(土)岡山】AWS最新技術の祭典Developers.IO 2019 at 岡山城を開催します! | DevelopersIO 今度、上のイベントでコンテナ周辺話題についてプレゼンするんですが、改めてプレゼン内容について考え込んでいる自分がいました。 技術的知識の共有かね? ググれば出てくることのまとめでええの? 困ったことや経験の共有? 当は資料に残せないようなぶっちゃけトークのほうがうけるの? hogehoge,fugafuga クラスメソッドに入社以来、社内外含

    プレゼンはなんのためにやるのか?澤円さんの「マイクロソフト 伝説マネジャーの世界№1プレゼン術」でITエンジニアのプレゼンを考える | DevelopersIO
    atsuizo
    atsuizo 2019/03/26
    いい話。ビジネスプレゼンでは、「3つのゴール」のうち、特に2(行動・決断を引き出す)が大事だって教わったことがある。「なぜ、何のためにプレゼンをやるのか」の根本に関わる話。
  • [AWS]RHEL7 よくある初期構築設定のコマンド詰め合わせ | DevelopersIO

    RHEL公式ドキュメントを引用した、RHEL7のよくある初期設定コマンド詰め合わせパックです。AWSの初期設定でご利用できるような情報も付加してます!! コンニチハ、千葉です。 昔こんな記事を書きましたが、今回はRHEL7版をお届けします。RHEL公式ドキュメントを引用していますので、野良ではない情報をお届けします。確認コマンドも載せてますのでご利用ください。 [AWS]RHEL6初期構築設定・コマンド詰め合わせ はじめに 初期構築っていっても色々あると思いますが、私がやりたかった対象は以下です。 ホスト名 時刻同期 文字コード タイムゾーン 初期設定 タイムゾーン タイムゾーンは、timedatectl set-timezoneで設定します。 $ sudo timedatectl set-timezone Asia/Tokyo 設定した内容を確認してみます。localがJSTに設定されま

    [AWS]RHEL7 よくある初期構築設定のコマンド詰め合わせ | DevelopersIO
  • [AWS]RHEL6初期構築設定・コマンド詰め合わせ | DevelopersIO

    コンニチハ、千葉です。 OS初期構築時に色々なサイトを駆け巡って、コマンドを思い出しつつ構築することもあるかと思うので、時間短縮のためコマンド詰め合わせとして残しておきます。今回の対象はRHEL6となります。 こちらのエントリもありますので参考に【初心者向け】CentOS 7インスタンスの初期設定手順 やりそうなことを、かなり詰め込んだので役に立つかと思います!! 初期設定 ホスト名変更 # vi /etc/sysconfig/network --以下の箇所を変更-- HOSTNAME=[ホスト名] メモリ上のホスト名も変更 # hostname [ホスト名] ※一旦ログアウトして再接続するとプロンプトの表示が変更されます 確認 # uname -n 合わせてhostsも変えておきましょう。 127.0.0.1に[ホスト名]を追加 # vi /etc/hosts 127.0.0.1 [ホス

    [AWS]RHEL6初期構築設定・コマンド詰め合わせ | DevelopersIO