サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
recruit.gmo.jp
2023.10.05 請求書OCR自動化: Document AI + ChatGPT API で非構造化データを JSON で出力させる はじめに こんにちは。グループ研究開発本部 次世代システム研究室のT.D.Qです。 2023年10月よりインボイス制度が開始されます。この制度に対応するため、請求書のOCR自動化はますます重要となっています。今回は、ChatGPTとDocumentAIの力を結集し、インボイス制度への対応を加速する請求書OCR自動化の方法について探ってみたいと思います。 1.やりたいこと 目的: 非構造化データを OCR で取得して、指定の JSON 形式で出力させたい 使用する技術: OpenAIのChatGPT及びGoogleのDocumentAI 実現手段: DocumentAIで請求書(PDF形式)を読み取り ChatGPTでDocumentAIのレスポンスから
こんにちは、T.Y.です。並列分散処理のフレームワークであるSpark上で自然言語処理(Natural Language Processing, NLP)の様々なタスクを行いたい、特に、BERTやGPTなどのTransformerモデルの学習や推論を試したいという動機のもとでSpark NLPについて調べた内容をこちらのブログで解説します。環境構築の過程でSparkからGPUを使用するための手順や、SparkとGPUを利用する他の機械学習フレームワークについても紹介したいと思います。 目次 Summary クラスタ構成 Spark Rapids XGBoost4j-Spark-GPU Spark NLP ChatGPTとテストしてみる Fine-tuningについて Sample Model Spark NLP Displayによる可視化 Synapse ML 最後に 1. Summary
みなさんこんにちは、グループ研究開発本部 AI研究開発室のK.Fです。 これまで、Intel MacでVirtualBox + Vagrantを利用してCentOS 7の仮想(VM)環境を利用していたのですが、Apple Silicon MacにPCを乗り換えたので、代替方法がないか調査してみました。 結論 Ubuntu 22.04/aarch64 on multipass -> CentOS 7/x86_64 on vagrant + libvirt が最もよい 動作は少し遅いと感じることがあるが、x86_64をエミュレートしているので本番との環境差分が少なくなってうれしい 1. はじめに 筆者の環境 MacBook Pro 14 inch, M2 Pro, 32GB RAM MacOS Ventura 13.4.1 なるべくこれまで使ってきたVagrantfileを変更したくないので、
D.Mです。 ChatGPT を開発の現場で活かしていくためにベクターストア活用の方法を検証しました。 結論ファースト A. ベクターストアに入れる元ネタドキュメントの抽出 ⇒ unstructured が使えるかも B. ベクターストアに入れる元ネタドキュメントのチャンク分け ⇒ タイトル。キーワードをメタデータで付加 C. ベクターストアに投げる質問プロンプトの最適化 ⇒ 形態素またはキーワード抽出でプロンプトを精査 D. ベクターストア検索結果の精査 ⇒ ContextualCompressionRetriever による検索結果要約とDocumentCompressorPipeline による検索結果絞り込みがよさげ 「検索結果が質問に沿ったものか精査させる」タスクをChatGPTに担当してもらうことが私の業務課題には適しているのではという気付きがありました。 E. (おまけ)ベク
導入 こんにちは。グループ研究開発本部 次世代システム研究室のH.Oです。前回の記事ではフロントエンドの領域で大きく注目を浴びている二つの次世代バンドルツール、TurbopackとViteを紹介しました。今回はその続編として、前半で、この3ヶ月で最も大きい動きだったと言っていいVite4.3のリリースについて、後半では実際に自分の環境で実践したTurbopack、新旧Viteの比較検証結果を紹介し、さらに詳細に立ち入って考察していきたいと思います。 結論ファースト 2023年4月23日にVite v4.3がリリースされた。これによってViteのパフォーマンスの改善が実現し、TurbopackとViteの性能差はほぼなく、プロジェクトで導入するのであればViteを導入するのが自然な選択となっている。 Turbopack側では特にめぼしい動きが見られていない。 React×TypeScript
2023.05.29 推論し、行動するChatGPT(OpenAI API) Agentを作る – langchain ReAct Custom Agent基礎 – 次世代システム研究室のT.Sです。ここ数ヶ月の生成AIの進歩の凄まじさは皆感じていることとは思います。その中で私はReActというPromptingが気に入っており、これを実装しているlangchainを使って色々試しているところであります。 そこで今回はこの推論、行動しながら外部ツールと連携する手法であるReActについて簡単に紹介し、その上でこれを実装しているlangchainを使ったCustom Agentの簡単な実装方法についてご紹介したいと思います ReActとは? ReAct(Yao et al., 2022)とは、Prompting Engineeringの手法の一つで、LLMに推論と行動を提示させ、その行動を元
2023.03.31 Is Attention All You Need? Part 1 Transformer を超える(?)新モデルS4 Is Attention All You Need? こんにちは、グループ研究開発本部・AI研究室のT.I.です。“Attention Is All You Need”といって発表されたTransformer(とAttention Layer)は、驚異的なAIの性能改善をもたらしました。以来、自然言語処理(NLP)などの分野では、従来のRecurrent Neural Network(RNN)ではなく、Transformer-based modelがデファクトスタンダードとなり、その延長線上に今日のChat-GPTなどの高性能AIが生まれました。 Transformer とその改良版については、これまでのBlogで何度も紹介してきました(Reform
こんにちは。グループ研究開発本部 次世代システム研究室のH.Oです。 生産的なアプリケーション開発において欠かせないものの一つにフロントエンドのJavaScriptバンドルツールがあります。 これまで、長年に渡ってJavaScriptのバンドルツールはwebpackがデファクトスタンダードとなり、Next.jsやNuxt.jsなどフレームワークにもデフォルトで組み込まれていました。その高機能性と安定性から現在も多くのWebサービスで利用されています。 一方で近年、webpackに続く次世代バンドルツールの開発競争が大きな注目を集めています。その中で特にwebpackに取って代わる勢いを見せているものにViteとTurbopackがあります。これらは、開発するアプリケーションの肥大化に伴って処理が遅くなってしまうwebpackの問題点を解決することが主要目的となっています。 今回はViteと
OpenAI Chat completions APIを用いて,PingCAP社が提供する「Chat2Query」ライクな,AIによるSQL生成機能を持つMySQL Shellプラグインを実装するお話です。そこそこ良い感じのSQLを生成してくれるものができましたが,トークンが多くなりがちなので,その点は工夫が必要です。 こんにちは,S.T.です。巷で盛り上がっているChatGPTですが,OpenAIが提供するChat completions APIで同様の機能をアプリケーションから利用することが可能です。Pythonをはじめとするプログラミング言語のSDKから簡単にAPIを呼び出すことができるので,MySQL Shellに組み込んでみました。 1.Chat2Queryとは 実装をする前に,今回作成する機能と類似の機能を提供しているChat2Queryを軽く見ておきましょう。Chat2Que
D.M.です。Llamaindex で ChatGPT と連携した社内文書の QA ツールを構築した際にハマったことを書いていきます。 ChatGPT に追加でデータを与える課題へのアプローチ 今回やりたいこと つくったもの システム構成 ユースケース はじめに書いたソースコード Llamaindex 処理フロー Llamaindex チューニング課題 元ネタのテキストファイルをベクター検索のチャンクに収まるように意味の塊にする 課題1 ベクター検索の2番目のドキュメントが正解だったりする問題 課題2 複数のドキュメントを読ませると間違える確率が上がる問題 課題3 失敗している理由がよくわからない問題 課題4 ときおり英語で返してくる問題 課題5 OpenAI API がタイムアウトする問題 Tips1 ローカルファイルを小さくしたい Tips2 回答をもっと厳密にしたい ChatGPT
こんにちは、T.Iです。最近、担当プロジェクトで少しずつクリーンアーキテクチャ化を行っています。今回はその設計についてお話しさせてください。 概要 設計について、ここではロジックの実装を行う部分とデータの保持を行うEntityに分けて説明します。 まずはロジックの実装を行う部分は以下のようにレイヤー分けて行います。構成は以下のようになっています。 レイヤーは大きく分けて「Repository」、「Service」、「Controller」の大きく3つに分かれます。これらの役割は以下のようになっています。 Repository 外部のデータの操作を行います。ここにデータベースや外部のAPIへのアクセスの実装を行います。 Service ここにビジネスロジックを実装します。しかし、外部データへのアクセスはここからは行わず、全てRepositoryを通して行うようにします。 Controller
はじめに こんにちは。次世代システム研究室のT.Tです。 GitHubからGPT-4ベースになったGitHub Copilot Xが発表されました。まだ機能リストやデモ画像しか確認できていないですが、コードのサジェスト機能はもちろん、プルリクエストの説明文を生成したりドキュメント内容に基づいて質問への回答を生成する機能等があるようで、開発者の業務をサポートする強力なツールになりそうです。GitHub Copilot Xではシステムを自然言語で表現する機能周りが充実しそうな印象があるので、開発したプログラムをどの程度自然言語で表現できるかを検証してみます。執筆時点でGitHub Copilot Xが入手できていないので、GPT-4をブラウザから利用できるChatGPT Plusを使って擬似的に体験した内容を紹介したいと思います。 1.AIによる開発現場での課題解決アプローチ The Futu
はじめに こんにちは。グループ研究開発本部 次世代システム研究室のT.D.Qです。 議事録作成に手間がかかるため、コア業務に集中できないと感じている方は多いでしょう。このような方におすすめなのがAIを活用した議事録の自動作成です。今回のブログでは、OpenAI社が開発したChatGPT APIとWhisperを使った音声ファイルの要約システムの構築を紹介したいと思います。 1.やりたいこと 目的: 音声ファイルの要約を自動化すること 使用する技術: OpenAIのChatGPTとWhisper 実現手段: Dockerで音声自動要約専用サーバーを構築 Flaskを利用して音声ファイルを処理するAPIを作成 Whisperで音声ファイルをテキストに変換 ChatGPT APIで要約を生成 要約テキストをユーザーに返却 2.環境構築 2-1.Whisperサーバー構築 Whisperとは、Op
こちらは【【ノーベル賞×実務】pythonで簡単配属分け【ゲーム理論】の続編シリーズとなっています。 次世代システム研究室のT.Sです。皆さん経済学って好きですか???エンジニアは理系卒の方も多く、文系科目である経済学にあまり馴染みがない方も多いのではないかと思います。ですので、好きか嫌いかと問われても「そもそも知らないよ・・・」という方も多いのではないでしょうか。しかし我々の周りでは経済学の知識を元に構築された仕組みなどが数多く存在しています。そこで今回はその一つであるオークション理論を紹介したいと思います オークション理論とは オークションというと何を思い浮かべますか?いわゆるクリスティーズ様のような美術品を扱う格式高いオークションハウスを想像される方もいらっしゃるかと思います。ただエンジニアという視点で考えるとそれ以外にも多くのオークションが存在しています。毎日目にするオークションと
2023.01.12 ChatGPTの学習データと学習方法が知りたい! 〜Q.埼玉県沖で採れるウニはいくらですか? A.ウニはいくらではない。〜 ウニはいくらですか? ウニはいくらじゃありません!!! みなさん、こんにちは。グループ研究開発本部、AI研究開発室のY.Tです。 先程の画像は、1ヶ月ほど前に公開され話題となっているChatGPTとお話ししてみた時の画像です。 文章としては、文法が崩壊しておらず、意味も通るとても自然な文章が生成されていますね。 しかし、単純な質問に見えて「埼玉県に海はない」「ウニはイクラではない」「”イクラ”か”幾ら”かで意味が変わる」などのバックグラウンド知識や文脈の高度な判断が、適切な解答のためには要求される質問に見事に引っ掛かっています。 これは、あくまで入力に対して尤もらしい出力を返すモデルであり、知識から論理的な回答をするモデルではないためです。 一方
はじめに こんにちは、グループ研究開発本部 AI研究開発室のC.Wです。去年の2022年は知識グラフに愛があり、あちこちにある非構造化データから知識グラフを構築できればさぞかし美しいのではないかと思い色々と試しました。 前回の記事では、Open Information Extraction(OIE)のNLP技術を利用してニュースデータの非構造テキストから知識グラフを構築することを試していて、それ以前ではCoreference Resolution + Named Entity Recognition(NER) + Relation Extraction(RE)等のハイブリッドなやり方で試していました。今日は一年の集約として、Hand onの内容ではなくこれまでの私の学びと問題と感じたところを整理して、これからこの道に挑戦する皆様の糧になれればと思います。 改めて知識グラフとは 知識グラフと
D.M.です。 AI とともにプログラミングをしてみた体験記です。 モチベーション 2022年11月、 ChatGPT が登場したことにより、今の学生は AI にレポートを書かせるというような話が普通に出るご時世になりました。 ChatGPT は例えばプログラミングのお題を投げると AI がかなり高精度なプログラムを書いてレスポンスしてくれたりします。この技術は将来的に Google 検索を脅かす存在になるのではというほどの注目を集めています。 ペアプログラマー Github Copilot よりプログラミングに特化した AI サービスとして、 GitHub Copilot があります(ギットハブ コパイロットと読む)。 2022年6月に正式リリースされています。 このツールには以下のような特徴があります。 ・ソースの流れやコメントに合わせて次に書くべきコードをサジェストしてくれる。 ・V
2023.01.11 Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい Amazon Aurora MySQLでテーブルの再構築を伴う操作を行うと,Readerインスタンスで瞬間的に対象のテーブルが見えなくなる場合があるので,オペレーションの実行タイミングに気をけましょう,というお話です。再構築を伴う操作には,一部のALTER TABLEやOPTIMIZE TABLEが含まれます。 こんにちは,S.T.です。Amazon Aurora MySQLで少し気になる現象を見かけたので紹介します。この現象を知っていれば回避できるので,クリティカルな影響があるということではないですが,将来直ってくれると嬉しいですね。 1.Amazon Aurora MySQLとは Amazon Aurora MySQLはAWSで利用できるマネージドのRDBです。コ
こんにちは。次世代システム研究室のA.Z.です。 今回は最近話題になっている、確率モデル+深層ニューラルネットワーク(統合モデル)の一つのdiffusionモデルについて紹介したいと思います。 はじめに すでに、ご存知の方が多いかもしれませんが、最近話題になっている生成用の機械学習モデル、Stable DiffusionやDall-Eなど、性能が高い生成アルゴリズムやシステムにDiffusionモデルというコンセプトが採用されています。生成モデルとモデルといえば、最初に一番良く知られているのはGAN(Generative Adversarial Network)ですが、その後、他の有名な手法Variational Auto Encoder(VAE)も出てきました。Diffusion modelはVAEと同じく、確率グラフィカルモデル(Probabilistic Graphical Mode
はじめに 最近円安の進行で値動きが激しいですね。特に9月に円相場は、24年ぶりの円安水準となる1ドル=140円台前半まで下落しましたので、この状況で為替損益を常に監視したい方々が多くなるでしょう。今回はUSDJPYの為替レートを継続的にInfluxDBに格納し、Grafanaで為替損益を可視化するシステムの構築方法を紹介したいと思います。 ちなみに、為替レートの変動により生じた利益を為替差益、生じた損失を為替差損といいます。たとえば、米ドルを1ドル=105円のときに購入した後、為替レートが円安方向に動いて1ドル=120円となった場合、購入していたドルを円に交換すれば1ドルにつき15円の利益を得ることになり、これが為替差益となります。逆に、為替レートが円高に進んで1ドル=100円となった場合は1ドルにつき5円の損失をこうむることになり、これが為替差損となります。 1.やりたいこと Docke
こんにちは,S.T.です。今回は,お手軽かつ実際のワークロードに近い形でMySQLの負荷検証をする方法を考えます。お手軽にMySQLに負荷をかけるツールとしてmysqlslapがありますが,mysqlが実行するSQLはアプリケーションから実行するSQLとは性質が異なります。JOINなども絡めてアプリケーションが実行するSQLに近いSQLで負荷をかけられ,しかも簡単に実行できる,というものがあれば便利そうです。 1.mysqlslapとは mysqlslapは,MySQLの負荷をエミュレーションできるクライアントアプリケーションです。MySQLに接続して複数のクエリを実行し,その実行時間を計測することができるツールです。インストールも簡単で,たいていはLinuxディストリビューションのパッケージマネージャ経由でMySQLをインストールすると,一緒に入ってきます。実行も簡単で,いくつかのオプシ
こんにちは。次世代システム研究室のL.W.です。 今回はイーサリアムのL2ソリューションArbitrumを調査し、触ってみましたので、ここで共有します。 1.The Merge後のL2ソリューションについて 日本時間9月15日15:43頃、イーサリアムの大型アップグレードThe Mergeが実施されましたが、ブロックチェーンのコンセンサスアルゴリズムがPoWからPoSへ無事に移行しました。 出典:https://members.delphidigital.io/reports/the-complete-guide-to-rollups マージにより、イーサリアムのエネルギー消費が最大99.95%削減されました。 一方、気になるgas fee(ガス代、手数料)、tps (トランザクションスループット)、transaction finality(トランザクションの最終性、一度承認されたトランザ
こんにちは。次世代システム研究室のデータストア全般とクラウドを担当している M.K. です。 突然ですが、皆さんはグラフデータベースを使ったことがありますか?このブログに辿り着く方は少なくともデータベース関連に興味をお持ちと思いますが、グラフデータベースは知ってはいるけど使ったことない、という方は結構いらっしゃるんじゃないでしょうか。 まさに自分もその一人で、Oracle、MySQL、PostgreSQLなどのリレーショナルデータベースに始まり、Hadoop、Hive、HBaseなどのビッグデータ系、さらにはクラウドのBigQueryなど、データベース関連製品はかなり触ってきましたが、グラフデータベースだけはまだ試したことがなく、自分にとって最後の秘境?みたいなところがありました。 ところが最近、データサイエンティストや機械学習エンジニアのメンバーの間でネットワーク構造のデータを取り扱う業
こんにちは。グループ研究開発本部の H.U と申します。 以前当ブログにて、Google Apps Scriptをローカル環境で開発するTipsについて紹介させていただいました。 この度、あるプロジェクトでGoogle Apps Script(以下、GAS)を使用する機会がありました。またその際に、GASの関数を外部から実行するという要件も付随しておりました。 本記事ではその際にどのようなことをやったのかをご紹介いたします。 (なお、GASのプログラムについての記載は本記事のスコープ外となりますのでご了承ください。またスクリーンショットなどは記事公開当時のものとなります) 今回やること GASはGoogleの開発するプログラミング言語で、Google Workspaceのさまざまなソリューションを連携させるのに便利な機能を提供してくれています。 今回はこのGASで作成した関数を、外部すなわ
D. M. です。 Nginx の HTTP/3 対応はどんなことが必要なのかを完全に理解しようとしてローカルに構築した際ハマった問題点をご紹介します。 TL;DR ・nginx.confは以下3行が新たに必要 listen 443 http3 reuseport; ssl_protocols TLSv1.3; add_header Alt-Svc 'h3=":443"; ma=86400'; ・SSL証明書はホンモノ必須!(LetsEncryptでもOK) ・ALT-SVC ヘッダーがないとブラウザは判断できない!そこに h3 を書け! ・WSL 2だと動かないぞ!VirtualBox 復活祭だ! ・ブラウザキャッシュにハマると全くHTTP/3にならない!サーバの設定を変更したらブラウザキャッシュをクリアせよ! モチベーション 背景として、2022年6月6日 IETF(Internet
2022.04.07 自然言語処理(NER, RE)を使ってニュースデータから知識グラフを構築してみました はじめに こんにちは、次世代システム研究室のC.Wです。 知識グラフは近年流行始めた概念で、お恥ずかしいのですが今年に入ってから知識グラフの概念を知りました。その思想を分かればわかるほど高い興味が湧いていきて、これこそがデータの最終的な形式ではないのかと思い始めています。 ただ構築しやすくないのが知識グラフの問題であって、自然言語処理を使って一発の自動作成ができるとすごく嬉しいと思ったので今回のテーマを研究しました。それでは始めましょう。 TL;DR ニュースデータからグラフDBに落とすまでを一通り試して、結果は微妙だった 自然言語処理の結果がグラフの意義性を左右している (言ってみれば当たり前のことです!) 知識グラフの概要 知識グラフとは、グラフ構造のデータモデルまたはトポロジを
こんにちは,S.T.です。今回はGoogle Spannerを検証します。Spannerは関係データベースのデータ構造を持ちトランザクション処理に対応した分散データベースです。リアルタイムにトランザクション処理を行うようなアプリケーションのデータストアとしての利用も考慮されています。また,PostgreSQLのインタフェースの実装も進められており,アプリケーションから一般的なRDBと同様に使えるようになる日も近そうです。 そこで,今回はSpannerのトランザクションの挙動をMySQLのInnoDBと比較し,挙動の違いによる落とし穴がないかどうかを確かめます。具体的には,トランザクション分離レベルやロックの範囲について検証します。結論から言うと,何も考えずに単にRDB置き換えるだけでは大怪我をしそうだが,特性を理解していればそう大差ない実装でいけると言えそうです。また,Spannerの肝で
イーサリアム1.0の大規模アップデート「London」は、2021年8月5日12時34分(協定世界時:UTC=日本時間5日21時34分)、ブロック高12965000で無事に実行されました。 今回のアップグレードで実装された中でも特に注目を集めたのは、EIP-1559です。 EIP-1559は、取引手数料を支払うためにイーサリアムのマーケットメカニズムを変更しました。 基本的に、EIP-1559はファーストプライスオークション(first-price auction)を廃止し、固定価格セール(fixed-price sale)に置き換えました。 つまり、「Gas Price」でのオークションの代わりに、予測可能(ブロック毎に固定)の「Base Fee Per Gas 」、チップ機能の「Priority Fee Per Gas」とロックに含めるために出せる最大額の「Max Fee Per Ga
こんにちは。次世代システム研究室のY. O.です。 過去数度にわたって、統計的因果推論やその派生テーマについてブログを書いてきました。 ビジネスで利用する因果推論実践 ~アンチパターンを添えて~ ABテストの際に実務で気をつけている尖った観点だけ集めてみた FirebaseのA/B Testing・Personalizationはビジネスでどれほど活用できるのだろうか そこで改めて、統計的因果推論の全体像を体系立って知りたい、というのが今回のテーマです。 調査を終えて、ちょっと調べただけではその体系を知ることができないな、というのが正直な感想です。まとまりきっていない部分もありますが、前半に体系論、後半に実例を用意していますので、同じ悩みを抱えている方の少しでも助けになればと思います。 因果推論の全体像 そもそもなぜ因果推論なのか “因果と相関は違う”、と統計学の基礎講義を受けた学生だけで
次のページ
このページを最初にブックマークしてみませんか?
『GMOインターネットグループ株式会社採用TOP』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く