Toilを無くして徒然なるままに日暮し硯に向かひたい

生成AIアプリケーション開発などを行うエンジニアのブログです。

AIを用いたOCR

OCRとは、Optical Character Recognitionの略で、日本語では光学文字認識といいます。

OCRとは何か?

OCRは、スキャンした書類や画像に含まれる文字を、コンピュータが読み取り、テキストデータに変換する技術です。つまり、紙に書かれた文字をデジタルの文字に変えて、パソコンで編集したり、検索したりできるようにするものです。

OCRの仕組み

  1. 画像の取り込み: スキャナーやデジタルカメラで、文字が書かれた紙の画像を撮影します。
  2. 画像の前処理: 画像のノイズ除去や歪みの修正など、文字認識を円滑に行うための処理を行います。
  3. 文字の切り出し: 画像から文字を一つずつ切り出します。
  4. 文字の認識: 切り出した文字を、事前に登録された文字のパターンと照合し、どの文字か判定します。
  5. テキストデータへの変換: 認識された文字を、テキストデータに変換します。

OCRの活用例

  • 書類のデジタル化: 紙の書類をスキャンしてテキストデータに変換することで、電子化し、保管や検索を効率化できます。
  • データ入力の自動化: 請求書や領収書などの文字情報を自動的に読み込むことで、データ入力の手間を大幅に削減できます。
  • 検索の効率化: テキストデータに変換された文書は、キーワード検索が可能になり、必要な情報に素早くアクセスできます。
  • 翻訳: OCRでテキストデータに変換した後に、翻訳ソフトウェアを使って他の言語に翻訳することができます。

OCRのメリット

  • 作業の効率化: 手作業でのデータ入力に比べて、大幅に作業時間を短縮できます。
  • 正確性の向上: 人による入力ミスを減らすことができ、データの正確性を高めます。
  • コスト削減: 人件費の削減につながります。
  • ペーパーレス化: 紙の書類を電子化することで、保管スペースを削減し、環境にも優しいです。

OCRの種類

OCRには、大きく分けて以下の2種類があります。

  • OCRエンジン: ソフトウェア開発者が、OCR機能を自社のアプリケーションに組み込むために利用するソフトウェアです。
  • OCRサービス: クラウド上で提供されるOCR機能で、APIなどを利用して簡単にOCR機能を導入できます。

OCRの選び方

OCRを選ぶ際には、以下の点に注意しましょう。

  • 認識精度: どの程度の精度で文字を認識できるか。
  • 対応言語: どの言語に対応しているか。
  • 対応フォント: どのフォントに対応しているか。
  • 対応ファイル形式: どのファイル形式に対応しているか。
  • 価格: 有料か無料か、料金体系はどうか。

AIを用いたOCR

cloud.google.com

Google CloudなどパブリッククラウドOCR機能が提供されています。

Geminiで使用することもできます。

OCRの活用の幅が広がり、工数削減に役立ちそうですね。

まとめ

OCRは、紙の文書をデジタル化し、業務効率化に貢献する便利な技術です。様々な分野で活用されており、今後もその重要性はますます高まっていくでしょう。

Apple Intelligence触ってみたい

k-tai.watch.impress.co.jp

iPhone16で、Apple Intelligenceという名の生成AIが搭載されるようですね。

Xなどではいまいち、盛り上がりに欠けているものの、生成AIを生業にするものとしては、

触ってみたいです。

Google PixelがGeminiを搭載したAIスマホとして売り出されていますが、

iPhoneApple WatchMacユーザとしては、引き続きiPhoneですかね。

Geminiは好きなので、Google Pixel欲しい気もしますがww

生成AIにおけるベクトルインデックス

生成AIにおけるベクトルインデックス:詳細解説

ベクトルインデックスとは?

ベクトルインデックスは、生成AIにおいて、テキスト、画像、音声などの非構造化データを、数値のベクトルに変換し、そのベクトル間の類似度に基づいて検索や推薦を行うための技術です。

なぜベクトルに変換するのか?

  • 意味の理解: 単語の並びだけでなく、単語間の関係性や文脈を数値として表現することで、コンピュータがより深くテキストの意味を理解できるようになります。
  • 高速な検索: 高次元空間上のベクトル間の距離を計算することで、従来のキーワード検索よりも高速かつ正確に類似したデータを検索できます。
  • 多様なデータの統合: テキストだけでなく、画像や音声などもベクトルに変換することで、異なる種類のデータを統一的に扱うことができます。

ベクトルインデックスの仕組み

  1. ベクトル化: テキストや画像などを、ニューラルネットワークなどのモデルを用いて数値のベクトルに変換します。
  2. インデックス作成: 変換されたベクトルを、効率的に検索できるようにインデックスを作成します。
  3. ベクトル検索: ユーザーのクエリをベクトル化し、作成されたインデックスから最も類似したベクトルを検索します。

ベクトルインデックスの活用事例

  • 検索エンジン: キーワードだけでなく、文章の意味に基づいたより精度の高い検索を実現します。
  • 推薦システム: ユーザーの興味関心に基づいた商品やコンテンツを推薦します。
  • チャットボット: ユーザーの質問に対して、より自然な回答を生成します。
  • 画像検索: 画像の内容に基づいた検索や、類似画像の検索を行います。

ベクトルインデックスのメリット

  • 高精度な検索: キーワードマッチングだけでなく、意味に基づいた検索が可能になります。
  • 柔軟なデータ処理: テキストだけでなく、画像や音声など、様々な種類のデータを扱えます。
  • スケーラビリティ: 大量のデータを効率的に処理できます。

ベクトルインデックスの課題

  • 次元数の呪い: 高次元空間での計算コストが大きくなることがあります。
  • モデルの選択: どのモデルを用いてベクトルに変換するかが、性能に大きく影響します。
  • 解釈の難しさ: ベクトル表現が抽象的であり、人間が直感的に理解することが難しい場合があります。

今後の展望

ベクトルインデックスは、生成AIのさらなる発展に不可欠な技術です。より大規模なデータセットへの対応、より高精度なベクトル化モデルの開発、そして、ベクトル表現の解釈に関する研究が進められていくことが期待されます。

具体的な活用事例

  • eコマース: ユーザーの過去の購入履歴や検索履歴に基づいた商品推薦
  • カスタマーサポート: チャットボットによるFAQ検索や、ユーザーの問い合わせに対する自動応答
  • 医療: 医療論文の検索や、診断支援
  • 金融: リスク評価や不正検知

まとめ

ベクトルインデックスは、生成AIの性能を飛躍的に向上させるための重要な技術です。様々な分野での応用が期待されており、今後もその重要性はますます高まっていくでしょう。

さらに詳しく知りたい場合は、以下のキーワードで検索してみてください。

何か他に聞きたいことがあれば、お気軽にご質問ください。

より具体的な質問の例:

  • 特定のベクトルデータベースについて詳しく知りたい
  • ベクトルインデックスを構築する際の注意点
  • ベクトルインデックスを生成AIの開発にどのように活用できるか

これらの質問に対して、より詳細な情報を提供できます。

Google Cloud Gemini向けの生成AIのプロンプトエンジニアリング

cloud.google.com

生成AIのプロンプトエンジニアリングは様々な手法がありますが、

Gemini for Google Cloudなんて出ているのですね。

Google Cloud のプロダクトとサービスに関しては、Geminiは学習済のようで、詳しいようです。

読んで勉強したいと思います。

Mini-Omni OSSでSpeech-to-Speechができるようになる?

arxiv.org

GPT-4oの進化系で、リアルタイム音声会話のできる生成AIがOSSで出たようです。

github.com

その名もMini-Omni

小型モデルでどうリアルタイム音声会話を実現したのか興味深いですね。

生成AIでリアルタイム音声会話は難しく、Speech-to-Text-to-Speechという変換手順を踏む必要があり、時間がかかっていたところ、 リアルタイム、つまりSpeech-to-Speechで早く処理できるようになった、ということですね。

ぜひ論文を読んでみたいと思います。

以下、AbstractをGeminiで訳してみました。(OpenAIちゃうんかいw)

言語モデルの進歩とMini-Omni 言語モデルの最近の進歩は、大きな成果を上げています。GPT-4oは新たなマイルストーンとして、人間とのリアルタイム会話が可能となり、人間に近い自然な流暢さを示しています。このような人間とコンピュータのインタラクションを実現するには、音声モダリティで直接推論を行い、ストリーミングで出力生成できるモデルが必要となります。しかし、これは現在の学術的なモデルではまだ実現できていません。これらのモデルは通常、音声合成のために追加のTTSシステムに依存しており、望ましくない遅延が生じます。

本論文では、リアルタイム音声インタラクションが可能なオーディオベースのエンドツーエンド会話モデルであるMini-Omniを紹介します。この機能を実現するために、テキスト指示による音声生成方法と、推論時のバッチ並列戦略を提案しています。この手法は、元のモデルの言語能力を最小限の劣化で保持するのに役立ち、他の研究がリアルタイムインタラクション機能を確立できるようにします。このトレーニング方法を「Any Model Can Talk」と呼んでいます。また、音声出力を最適化したモデルをファインチューニングするためのVoiceAssistant-400Kデータセットも紹介します。私たちの知る限り、Mini-Omniはリアルタイム音声インタラクションのための最初の完全なエンドツーエンド、オープンソースモデルであり、今後の研究に貴重な可能性を提供します。

Google Cloudの生成AIサンプルアプリEnterprise Knowledge Solution (EKS)

github.com

Google Cloudの生成AIサンプルアプリ「Enterprise Knowledge Solution」 (EKS)がGitHubで公開されています。

EKSはAmazon Elastic Kubernetes Serviceと紛らわしい(苦笑)

「Enterprise Knowledge Solution」 はIAPとCloud RunベースでUI付きの生成AIアプリケーションをさっとデプロイできるようです。

私はまだ試せていないですが、是非とも触ってみたいですね。

terraformでデプロイできる模様。これは面白そう。

コードも参考になりそうですね。

LangChain Meetup Tokyo #2に登壇し、LangChainでWebサイトの内容取得やGitHubソースコード取得、というタイトルで発表しました

langchain.connpass.com

LangChain Meetup Tokyo #2に登壇してきました。

私は「LangChainでWebサイトの内容取得やGitHubソースコード取得」というタイトルで発表しました!

写真撮っていただけてました。ありがとうございます。

「ChatGPT/LangChainによるチャットシステム構築[実践]入門」の著者、吉田 真吾さん、大嶋 勇樹さんにもお会いできました。

お二人の会社、株式会社ジェネラティブエージェンツのCEO西見公宏さんにもお会いでき、

65歳で登壇されたコロッケそばさんかっこよかったです!

speakerdeck.com

↑私の資料はこちらにアップロードしています。

様々な学びがあり、もっと生成AIを頑張ろう、と思えた刺激的なMeetupでした!