Episodes

  • 株式会社ずんだもん技術室AI放送局 podcast 20241129
    Nov 28 2024
    関連リンク 大人数チームで意思決定のスピードアップのためにやったこと 食べログの予約サービスチームは、利用者増加に伴う組織拡大により、コミュニケーションコスト増大、情報伝達の遅れ、開発スピードの遅延といった課題に直面していました。 これらの課題解決のため、チームは組織編成と情報共有方法に工夫を凝らしました。 まず、2名のエンジニアリングマネージャー(EM)と、複数の小チーム(ユニット)からなるユニット制を採用しました。 EMはそれぞれ異なる領域(運用・改善、プロダクト開発)を担当し、責任範囲を明確化することで、意思決定の迅速化を図りました。 さらに、チームリーダーを配置することで、チーム全体の方針やルールの決定を効率化しました。 ユニットの規模を小さくすることで、リーダーの管理コスト軽減と、リーダーが自ら開発に携われる環境を整備しました。意思決定はボトムアップ型を取り入れ、メンバー、リーダー、マネージャーの各レベルで適切な権限と責任を明確化することで、スピードアップを図りました。 情報共有は、日次と週次の2段階で行われます。 日次では、ボトムアップ型で情報を集約し、重要な課題や意思決定事項を迅速に共有します。 週次では、各ユニットからの情報をEMが集約し、チーム全体に展開することで、チーム全体の状況把握を容易にしました。 他チームとの情報共有は、ユニットリーダーとEMが窓口となり、効率的な情報伝達を実現しています。 今後の展望としては、他チームとのコミュニケーション改善、システムのリモデリングによるドメイン整理、エンジニアリングへの集中を促進するための更なるコミュニケーション改善に取り組むとしています。 これらの取り組みを通じて、開発スピードの向上とエンジニアの生産性向上を目指しています。 本記事は、大規模チームにおける組織設計と情報共有の改善に悩む日本のエンジニアにとって、貴重な参考事例となるでしょう。 引用元: https://tech-blog.tabelog.com/entry/2024/09/tabelog-engineer-information-communication 本番DBのマスターデータを全行ぶっとばすやらかしをしたときのお話、その反省 この記事は、本番DBのマスターデータを誤って全行削除してしまった事例とその反省について記述しています。深夜帯に稼働するSNSサービスにおいて、マスタデータのJSON型カラムを全てブランク値で上書きする作業中に事故が発生しました。原因は、開発環境での動作確認を省略した、UPDATE文によるデータ更新スクリプトの誤作動です。 復旧はRDSのスナップショットからの復元で行われましたが、データ容量が大きかったため1時間程度を要しました。この経験から、以下の反省点が挙げられています。 バックアップの不足: 作業前にSequel ACEによるレコードエクスポートや、CSV形式でのバックアップ(Copy Insert SQL機能活用)を行うべきでした。大量データの場合は、LIMITとOFFSETを使用して分割バックアップが推奨されます。 トランザクションの未活用: START TRANSACTIONとCOMMIT/ROLLBACKによるトランザクション処理を行うべきでした。これにより、更新クエリ実行後のデータ確認を行い、問題なければコミット、問題があればロールバックすることで、データの整合性を確保できます。 スクリプトからの直接クエリ実行: Pythonスクリプトで直接更新SQLを実行する実装は、事故発生時の影響が大きいため避けるべきです。スクリプトはクエリの生成のみとし、実行は手動で行うべきです。 開発環境での動作確認の省略: 過去に同様のスクリプトを使用していたため、開発環境での動作確認を省略しましたが、これは重大なミスでした。時間的制約があっても、開発環境での動作確認は必須です。 この事例は、本番環境での作業におけるリスクと、それを回避するための対策を学ぶ上で非常に貴重な教訓となります。新人エンジニアは、この経験から学び、本番作業前に必ずバックアップを取得し、トランザクション処理を行い、開発環境での動作確認を徹底するよう心がけましょう。 引用元: https://zenn.dev/kazutosakagami/articles/78d1649389c868 Raspberry Pi Compute Module 5 cranks up the power – and the...
    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241128
    Nov 27 2024
    関連リンク Former Android leaders are building an ‘operating system for AI agents’ 元Androidのリーダーたちが、AIエージェント向けの「オペレーティングシステム」を開発するスタートアップ企業「/dev/agents」を設立しました。 Googleの元Android製品管理担当副社長であるHugo Barra氏によると、同社はAI業界に「Androidのような革新」をもたらすことを目指しています。 現在、Microsoft、Google、OpenAIなど多くの企業が、自律的にタスクを実行し意思決定を行うAIエージェントの開発に注力しています。しかし、/dev/agentsのCEO兼共同設立者である、Googleの元Androidエンジニアリング担当副社長David Singleton氏は、現状では開発が困難であると指摘しています。 /dev/agentsは、クラウドベースの次世代AIエージェント用OSを開発中で、ユーザーが様々なデバイスで信頼できるエージェントと連携することを目指しています。 Singleton氏によると、AIエージェントには新しいUIパターン、再考されたプライバシーモデル、そして有用なエージェントを簡単に構築できる開発プラットフォームが必要だと述べています。 同社には、Barra氏に加え、MetaでAR/VR担当副社長を務めた元AndroidエンジニアのFicus Kirkpatrick氏(CTO)、ChromeOSのデザインに携わったNicholas Jitkoff氏(最高デザイン責任者)も参加しています。 彼らは、Android開発で培った経験を活かし、AIエージェント開発の課題解決に挑んでいます。 この新しいOSが、AIエージェントの開発と普及に大きな影響を与える可能性があります。 引用元: https://www.theverge.com/2024/11/27/24307525/android-leaders-dev-agents-ai-agent-operating-system-startup Tailor Claudes responses to your personal style Claude.aiは、ユーザーのニーズに合わせてレスポンスのスタイルをカスタマイズできる機能を発表しました。開発者、マーケター、プロダクトチームなど、様々なユーザーが自身のワークフローに最適化されたレスポンスを得られるようになります。 この機能により、Claudeのレスポンスのトーン、構造、形式を調整できます。プリセットとして、「Formal(フォーマル)」「Concise(簡潔)」「Explanatory(説明的)」の3つのスタイルが用意されています。 「Formal」は洗練された明確なレスポンス、「Concise」は短く直接的なレスポンス、「Explanatory」は新しい概念を学ぶための教育的なレスポンスを提供します。 さらに、ユーザー自身でカスタムスタイルを作成することも可能です。自分の好みのコミュニケーションスタイルを反映したサンプルコンテンツをアップロードし、必要な指示を指定することで、Claudeは独自のスタイルを生成します。 GitLab社のように、ビジネスケースの作成、ユーザー文書の更新、マーケティング資料の作成・翻訳など、様々な場面で一貫したコミュニケーションを維持するために活用できます。 使い方は簡単です。Claude.aiのチャットボックスで、プリセットオプションを選択するか、独自のスタイルをカスタマイズするだけです。 自分の自然な作業スタイルに合わせてClaudeを調整し、生産性を向上させることができます。 引用元: https://www.anthropic.com/news/styles OpenAI gets $1.5 billion investment from SoftBank in tender offer CNBCの報道によると、ソフトバンクがOpenAIに15億ドルの投資を行うことが発表されました。これは、公開買い付け(テンダーオファー)という形で実施されたものです。 このニュースは、OpenAIの急速な成長と、その将来性への高い期待を示唆しています。 日本のエンジニアの皆さんにとって、このニュースは、AI分野における技術革新のスピード感、そして巨額の資金がどのように最先端技術開発に投入されているのかを理解する上で重要な示唆となります。 OpenAIの技術は、様々な業界で活用されており、今後も更なる発展が期待されるため、この投資は今後のAI技術開発に大きな影響を与える可能性があります。 特に、日本の企業がAI技術を導入・開発していく上でも、この様な大規模投資による技術開発の動向を注視していくことが重要になります。 引用元: https://www.cnbc.com/video/2024/11/27/openai-gets-1-point-5-billion-investment-from-softbank-in-tender-offern-a-tender-offer.html デマに騙されちゃダメ。Pingで帯域計測は出来...
    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241127
    Nov 26 2024
    関連リンク 7 examples of Gemini’s multimodal capabilities in action GoogleのシニアプロダクトマネージャーLogan Kilpatrickによるブログ記事では、Gemini 1.5 Pro(画像・動画理解に最適化されたモデル)を用いたマルチモーダル機能の7つの実例が紹介されています。Geminiは、画像・動画だけでなく、長文PDF(1000ページ以上)も理解し処理できます。 主な機能と例: 詳細な画像説明: 画像の内容を詳細に記述し、質問にも回答できます。プロンプトに応じて説明の長さ、トーン、形式を調整可能です。 長文PDFの理解: 1000ページ以上のPDFを理解し、表の転記、複雑なレイアウトの解釈、図表・スケッチ・手書き文字の認識、構造化された出力やコードの生成が可能です。例として、15四半期のAlphabetの収益報告書(152ページ)からGoogleの収益データを抽出し、表を作成し、matplotlibを用いたグラフを作成する例が示されています。 現実世界の文書の推論: レシート、ラベル、看板、メモ、ホワイトボードのスケッチなど、現実世界の文書から情報を抽出し、JSONオブジェクトとして返すことができます。 ウェブページデータの抽出: ウェブページのスクリーンショットからデータ(画像・動画を含む)を抽出し、JSONなどの構造化された形式で出力できます。ウェブデータAPIやブラウジングエージェントなどのアプリケーションに活用できます。Google Playの書籍ページから書籍名、著者、評価、価格をJSON形式で抽出する例が示されています。 物体検出: 画像内の物体を検出し、バウンディングボックス座標を生成します。ユーザー定義の基準に基づいて物体を検索・推論する機能も備えています。 動画の要約と転写: 最大90分の動画を処理し、要約や転写を作成、日常シーンからの構造化データの抽出、質問への回答、重要な箇所の特定などが可能です。技術講義の動画を高校生向けに要約する例が紹介されています。 動画からの情報抽出: 動画から情報を抽出し、リスト、表、JSONオブジェクトなどの構造化された形式で出力できます。小売、交通、ホームセキュリティなどの分野でのエンティティ検出、スクリーン録画からの非構造化データ抽出などに役立ちます。 制約: 動画処理においては、現状1FPSのサンプリングのため、一部情報が欠落する可能性があります。より高いFPSでのサンプリングは今後の開発予定です。 Gemini APIを活用した開発には、開発者ガイドと開発者フォーラムが役立ちます。 様々なユースケースに対応できる強力なマルチモーダル機能を備えていることがわかります。 引用元: https://developers.googleblog.com/en/7-examples-of-geminis-multimodal-capabilities-in-action/ Now Hear This: World’s Most Flexible Sound Machine Debuts NVIDIAの研究チームが開発した画期的なAIサウンド生成モデル「Fugatto」は、テキストプロンプトだけで音声を生成・変換できる、世界最高レベルの柔軟性を誇るツールです。既存のAIモデルが特定の音声生成や編集に特化しているのに対し、Fugattoは音楽、音声、効果音などを自由に組み合わせ、テキストと音声ファイルの両方から指示を受け付けることができます。 例えば、「悲しい雰囲気のフランス語で話すテキスト」といった複雑な指示にも対応し、アクセントの強さや感情の度合いを細かく調整できます。既存の楽曲に楽器を追加・削除したり、声のアクセントや感情を変えることなども可能です。さらに、既存データにはない全く新しいサウンドも生成できます。例えば、トランペットが吠えたり、サックスが鳴き声をあげたりといった、想像を超える音も作成可能です。 Fugattoは、音楽制作、広告制作、言語学習ツール、ゲーム開発など、幅広い分野で活用できます。音楽プロデューサーは楽曲のプロトタイプ作成や編集に、広告代理店は多言語・多様な感情表現のボイスオーバー作成に活用できます。言語学習ツールでは、好きな声で学習コンテンツをパーソナライズすることも可能です。ゲーム開発者は、ゲーム内の状況に合わせて効果音をリアルタイムで生成・変更できます。 Fugattoは、音声モデリング、音声符号化、音声理解に関するNVIDIAの以前の研究成果を基盤としています。25億個のパラメータを...
    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241126
    Nov 25 2024
    関連リンク ニアリアルタイムのデータ基盤を構築して得られたものと課題 本資料は、タイミー社がニアリアルタイムデータ基盤を構築した経験とその課題について報告しています。以前のデータ基盤はバッチ処理中心で、データの適時性と整合性に課題がありました。具体的には、数時間~1日の遅延と、データ更新による整合性の欠如が発生していました。 そこで、Google Cloud Datastreamを活用したニアリアルタイムデータ基盤を構築しました。embulkからDatastreamへの移行、dbtで生成するテーブルをviewに変更するなどのアーキテクチャ変更を行いました。その結果、データの適時性は数時間~1日から15分程度に、整合性のずれも数時間単位から最大4時間~1日に改善されました。 しかし、新たな課題も発生しました。Datastreamの不安定性が顕著になり、最大3時間以上の停止や、数分~1時間弱の頻繁な停止・復旧が発生するなど、運用上の課題が残っています。 これらの課題を踏まえ、社内ユースケースの整理を行いました。その結果、完全性が求められる業務の方が、適時性が求められる業務よりも多いことが判明しました。そのため、短期的な対応として完全性を担保できる基盤を構築し、適時性が必要なユースケースもサポートする方針となりました。長期的な対応としては、適時性データ基盤の連携方法を再検討していく予定です。 引用元: https://speakerdeck.com/chikushi/niariarutaimunodetaji-pan-wogou-zhu-sitede-raretamonotoke-ti 5指駆動「サイボーグ義手」が実現した理由。“実用化だけ”を見据えた研究者たち【フォーカス】 レバテックラボ(レバテックLAB) 長年、実用化が困難だった5指駆動の筋電義手が、電気通信大学の研究者らによって「BITハンド」として実現しました。本記事は、開発を主導した東京理科大学助教の山野井佑介氏へのインタビューに基づき、その成功要因を解説しています。 従来の筋電義手研究は、人体の動きを完璧に再現することに注力していましたが、そのため義手が大型化・重量化し、実用性に欠けていました。山野井氏らの研究チームは、このアプローチを見直し、「日常生活に必要な把持動作の85%をカバーする」ことを目標に、軽量化と簡素化を優先しました。 具体的には、親指と他の指の独立した動作により、「握力把持」「精密把持」「側面把持」の3つの基本動作を実現。ペットボトルの開閉やスマートフォンの操作など、日常生活に必要な動作を可能にしました。重量は約600gに抑えられ、装着者の負担を軽減しています。 技術面では、機械学習を用いた信号処理技術が鍵となりました。微弱な筋電位信号から、着用者の意図を正確に読み取ることで、5本の指を独立して制御しています。特に、先天的な上肢欠損者にも対応できるよう、個々の筋電位パターンをAIが学習する仕組みを構築しました。 さらに、Bluetooth通信によるデータ送受信や、スマートフォンからの制御ソフトウェア開発など、実験効率の向上にも取り組んでいます。これらの工夫により、開発期間の短縮とコスト削減を実現しました。 しかし、実用化されたにも関わらず、国内での普及率は依然として低い状況です。高価で重いという従来のイメージが根強く残っていること、そしてその利便性が広く知られていないことが課題となっています。山野井氏らは、認知度向上とさらなる機能改善を目指し、研究開発を継続していくとしています。 引用元: https://levtech.jp/media/article/focus/detail_565/ 【JavaScript × Terraform】次世代のモダン AltJS「JS.tf」の紹介 JS.tfは、HCL(Hashicorp Configuration Language)を用いてJavaScriptプログラムを記述する、Terraformのプロバイダーです。terraform applyを実行することで、HCLで記述されたコードがJavaScriptにトランスパイルされ、Node.jsなどのJavaScriptランタイムで実行できます。 JS.tfの基本的な使い方は、required_providersブロックにkoki-develop/jsを追加し、terraform initでインストールすることから始まります。 プログラムの記述にはjs_programデータソースが中心となります。変数・定数の定義にはjs_var, js_const, js_let、演算にはjs_operation、関数定義にはjs_function、関数呼び出しにはjs_function_call...
    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241125
    Nov 24 2024
    関連リンク Gemini AI asst suggesting answers to my emails - Hell NO! Gmailユーザーが、メール作成時にGemini AIによる回答候補が表示される機能に不満を訴えているGoogleヘルプフォーラムの投稿です。ユーザーは、この機能が邪魔で自分の考えでメールを書きたいと考えており、機能の無効化方法を質問しています。AIによる自動化が思考停止を招くという懸念も表明されています。 現状では、この機能を無効化する具体的な方法は提示されていません。 投稿は比較的新しいものですが、Googleからの回答はまだありません。 この投稿は、AIアシスタントの過剰な介入に対するユーザーの抵抗感を示す事例として参考になります。 日本のエンジニアにとって、この事例は、ユーザーエクスペリエンス(UX)設計や、AI技術導入におけるユーザーの感情への配慮の重要性を再認識させるものです。 AIによる自動化の利便性と、ユーザーの自主性や創造性を尊重することのバランスが、今後のシステム開発において課題となるでしょう。 引用元: https://support.google.com/mail/thread/309622575/gemini-ai-asst-suggesting-answers-to-my-emails-hell-no%3Fhl%3Den [アップデート] AWS Step Functions で変数が使えるようになりました DevelopersIO AWS Step Functionsに、変数の使用とJSONataのサポートが追加されました。これにより、ステートマシンにおけるデータの受け渡し処理が大幅に簡素化されます。 以前は、Step Functionsでステート間の値の受け渡しは、各ステップで結果を明示的に次のステップに渡す必要があり、複雑で非効率的な作業でした。しかし、今回のアップデートで変数を定義し、ステート間で値を容易に共有できるようになりました。例えば、あるステップで計算した結果を変数に格納し、後続のステップでその変数を参照することで、データの受け渡しを簡略化できます。 具体的には、Pass、Task、Map、Parallel、Choice、Wait ステートで変数が利用可能です。変数はJSON形式で指定し、マネジメントコンソールで変数タブから設定できます。一度の変数割り当ての最大サイズは256 KiB、ステートマシン全体で保存される変数の合計サイズは10 MiBに制限されているため、注意が必要です。 また、変数のスコープにも注意が必要です。ParallelやMapステート内で定義した変数は、その内部でのみ参照可能です。上位のステップで定義された変数は下位のステップから参照できますが、下位ステップで定義された変数は上位ステップからは参照できません。ParallelやMapステート内で定義した変数を他のステップで使用したい場合は、明示的に出力として渡す必要があります。 さらに、JSONataというクエリ言語がサポートされました。これにより、ステートマシンの設定がより柔軟で直感的になります。JSONPathも引き続き利用可能です。 今回のアップデートにより、Step Functionsのワークフロー設計が大幅に簡略化され、より効率的で分かりやすいステートマシンの構築が可能になります。変数のサイズとスコープに注意しながら、積極的に活用することで開発効率の向上に繋げましょう。 引用元: https://dev.classmethod.jp/articles/step-functions-variables/ ORMなんていらない?!生SQLクエリ開発を超絶楽にするVSCode拡張を作った [TS+Rust+WASM] この記事は、TypeScriptとRustで記述された、VSCode拡張機能「sqlsurge」の紹介です。sqlsurgeは、PrismaやSQLxといったORMを使用せず、生SQLクエリを記述する際に、SQLの構文補完やエラーチェックといったLSP(Language Server Protocol)機能を提供します。 主な機能は、TypeScriptとRustのコード内にある生SQLクエリを検出し、VSCodeのVirtual Document機能とRequest Forwardingを用いて、Go製のSQL Language Serverである「sqls」と連携することで、SQLクエリに対する補完機能を実現する点です。 TypeScriptではPrisma、RustではSQLxをサポートしており、Prismaを使用している場合はSQLのシンタックスハイライトも有効になります。 sqlsurgeは、TypeScript/RustのAST(抽象構文木)を解析して生SQLクエリを特定します。Rustの部分はWASM(WebAssembly)に変換され、VSCode上で動作します。開発にはwasm-packを使用しており、CIにはGitHub Actionsを用いてUbuntuとmacOS上でのテストを実施しています。 現状ではPrismaとSQLxのサポートが...
    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241122
    Nov 21 2024
    関連リンク
    • Introducing the Open Leaderboard for Japanese LLMs!

    LLM(大規模言語モデル)は英語での能力が向上していますが、他の言語での性能はまだ未知数です。そこで、日本語のLLMの性能を評価する「Open Japanese LLM Leaderboard」が発表されました。これは、LLM-jpプロジェクトとHugging Faceのパートナーシップにより開発されたもので、20以上のデータセットから構成され、日本語LLMのメカニズムを理解することを目的としています。

    日本語は、漢字、ひらがな、カタカナの3種類の文字を組み合わせた複雑な書き言葉体系を持ち、英語や中国語、オランダ語、ポルトガル語、フランス語、ドイツ語、アラビア語などからの外来語や、独特の絵文字や顔文字も存在します。さらに、日本語は単語間のスペースがなく、トークン化の難易度が高い言語です。

    Open Japanese LLM Leaderboardは、日本語LLMの評価に特化したllm-jp-evalライブラリを使用し、16のタスクでLLMを評価します。これらのタスクには、自然言語推論、機械翻訳、要約、質問応答などの古典的なものから、コード生成、数学的推論、人間試験などの現代的なものまで含まれます。データセットは、LLM-jpの評価チームが言語学者、専門家、人間アノテーターと協力して作成したものや、日本語に自動翻訳され、日本語の特徴に合わせて調整されたものなどがあります。

    このリーダーシップでは、Jamp、JEMHopQA、jcommonsenseqa、chABSA、mbpp-ja、mawps、JMMLU、XL-Sumなどのデータセットを使用しています。Jampは、NLIのための日本語の時間的推論ベンチマークであり、JEMHopQAは、内部推論を評価できる日本語の多段QAデータセットです。jcommonsenseqaは、常識的推論能力を評価する多肢選択式の質問回答データセットです。chABSAは、金融レポートの感情分析データセットで、2016年の日本の上場企業の財務報告書に基づいています。mbpp-jaは、Pythonの基本的な問題を日本語に翻訳したプログラミングデータセットです。mawpsは、数学的な問題を解く能力を評価するデータセットで、CoT推論を使用しています。JMMLUは、高校レベルのテストの知識を評価する4択の質問回答データセットです。XL-Sumは、BBCニュースの記事の日本語翻訳に基づく要約データセットです。

    このリーダーシップは、Hugging FaceのOpen LLM Leaderboardに触発され、HuggingFaceのInference endpoints、llm-jp-evalライブラリ、vLLMエンジン、mdxコンピューティングプラットフォームを使用してモデルを評価します。

    日本語LLMガイド「Awesome Japanese LLM」によると、MetaのLLamaアーキテクチャが多くの日本のAIラボで好まれているようです。しかし、MistralやQwenなどの他のアーキテクチャも、日本語LLMリーダーシップで高いスコアを獲得しています。オープンソースの日本語LLMは、クローズドソースのLLMとの性能差を縮めており、特にllm-jp-3-13b-instructはクローズドソースのモデルと同等の性能を示しています。

    今後の方向性として、llm-jp-evalツールの開発に合わせて、リーダーシップも進化していく予定です。例えば、JHumanEvalやMMLUなどの新しいデータセットの追加、CoTプロンプトを使用した評価、NLIタスクでのアウト・オブ・チョイス率の測定などが挙げられます。

    Open Japanese LLM Leaderboardは、LLM-jpコンソーシアムによって構築され、国立情報学研究所(NII)とmdxプログラムの支援を受けています。このプロジェクトには、東京大学の宮尾祐介教授、Han Namgi氏、Hugging Faceのクレモンティーヌ・フーリエ氏、林俊宏氏が参加しています。

    引用元: https://huggingface.co/blog/leaderboard-japanese

    • お便り投稿フォーム

    (株式会社ずんだもんは架空の登場組織です)

    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241121
    Nov 20 2024
    関連リンク 工数6割削減! 生成AIとOCRを組み合わせ、店舗毎に形式が異なるレストランメニューを読み取らせてみた 食べログのメニューデータ入稿業務において、生成AIとOCRを組み合わせたツールを開発し、作業工数を6割削減することに成功しました。従来の手作業によるメニュー情報の入力は、時間と労力を要するものでした。本プロジェクトでは、まずOCR技術を用いてメニュー画像内の文字情報を座標情報と共に取得。その後、生成AIにOCR結果と画像データを渡し、料理名と価格を抽出し、入力フォームへ自動入力するシステムを構築しました。 生成AI単体では精度の問題がありましたが、OCRによる位置情報との連携により、生成AIの出力結果が画像上のどの部分に対応するかを特定できるようになり、精度の向上と確認作業の効率化を実現しました。ツールは、AIによる高速入力と、人による確認・修正作業を組み合わせた設計となっており、AIと人間の強みを活かす仕組みとなっています。 UIについても徹底的に作り込み、ハイライト機能、消し込み機能、入力支援機能などを搭載することで、確認・修正作業を大幅に効率化しました。 開発においては、常に最新技術の動向をウォッチし、GPT-4やClaude 3.5 Sonnetといった生成AIモデルの特性を踏まえた柔軟な方針転換が成功の鍵となりました。 特に、当初はOCRのみを利用する方針でしたが、GPT-4の登場を機に、画像データとOCR結果を組み合わせることで、精度と効率性が大幅に向上しました。また、完全自動化を目指さず、人による確認作業を残すことで、精度の高いデータ入力を実現しました。 本プロジェクトの成功要因は、生成AIだけでなくOCR技術など幅広い技術を組み合わせたこと、ユーザビリティを重視したUIの徹底的な作り込み、そして最新技術への対応と柔軟な方針転換にあります。 この経験から、生成AIの業務活用においては、フルスタックエンジニアのような幅広い技術を持つ人材が不可欠であることが示唆されました。 彼らは、生成AIの特性を理解した上で、様々な技術を駆使し、最適なソリューションを生み出すことができます。 引用元: https://tech-blog.tabelog.com/entry/ai-menu-ocr Agent Protocol: Interoperability for LLM agents LangChainは、様々なエージェントを連携させるマルチエージェントフレームワークLangGraphを発表しました。異なるフレームワークのエージェント間の相互運用性を高めるため、Agent Protocolという共通インターフェースをオープンソース化しました。これは、LLMエージェントを本番環境で運用するために必要な、フレームワークに依存しないAPIを標準化しようとする試みです。 Agent Protocolは、エージェント実行(Runs)、複数ターン実行の整理(Threads)、長期記憶の操作(Store)といった主要なAPIを定義しています。LangGraphだけでなく、AutoGen、OpenAI Assistant API、CrewAI、LlamaIndexなど、他のフレームワークや独自実装のエージェントもこのプロトコルを実装することで、相互運用が可能になります。 さらに、LangGraph Studioのローカル実行環境を提供することで、開発者の利便性を向上させました。以前はMac専用でDockerを使用していましたが、Pythonパッケージとしてインストール可能な、Docker不要のバージョンが提供されています。これは、langgraph-cli を使用してローカルで起動し、Agent Protocolを実装したサーバーとして機能します。これにより、あらゆるプラットフォームでLangGraph Studioを使用し、低レイテンシで効率的なデバッグが可能になります。 また、AutoGenなどの他のフレームワークのエージェントをLangGraphのサブエージェントとして統合する方法や、LangGraph Platformを使用してそれらをデプロイする方法も公開されました。LangGraph Platformを利用することで、水平スケーラブルなインフラストラクチャ、バースト処理のためのタスクキュー、短期記憶と長期記憶のための永続化レイヤーなどのメリットを活用できます。これにより、様々なフレームワークのエージェントを柔軟に組み合わせた、高度なマルチエージェントシステムの構築が可能になります。 本記事では、Agent Protocol の詳細な使用方法や、LangGraph Studio、AutoGenとの...
    Show More Show Less
    Less than 1 minute
  • 株式会社ずんだもん技術室AI放送局 podcast 20241120
    Nov 19 2024
    関連リンク Copilot を世界中のより多くのお客様に提供 – 生活でも仕事でも - News Center Japan マイクロソフトは、AIアシスタント「Copilot」の提供範囲を世界中に拡大しました。Copilotは、仕事と私生活の両方で利用でき、画像作成、メール対応、文章作成支援、会議内容の確認など、様々なタスクを支援します。 今回の発表では、個人向けと組織向けにCopilotの提供オプションが拡大されました。個人向けには、Copilot Proのサブスクリプションが提供され、上位モデルへの優先アクセス、Microsoft 365アプリでのAI機能強化、高度な画像生成・編集機能、Copilot GPT Builderへのアクセスなどが含まれます。Copilot Proは、iOS/Androidアプリでの1ヶ月無料トライアルも提供されます。また、無料のMicrosoft 365 WebアプリでもCopilotが利用可能になります(デスクトップアプリ利用にはMicrosoft 365 PersonalまたはFamilyサブスクリプションが必要)。Copilot GPT Builderを使うと、個々のニーズに合わせたCopilotを作成することもできます。 組織向けには、「Copilot for Microsoft 365」が、様々な規模と業種の企業に提供されます。Word、Excel、PowerPoint、Outlook、Teamsなど、主要なMicrosoft 365アプリと統合されており、ビジネスデータに基づいたカスタマイズも可能です。エンタープライズレベルのセキュリティ、プライバシー、コンプライアンスにも対応しています。既にFortune 100企業の40%がCopilot for Microsoft 365を早期導入プログラムを通じて利用しており、導入ペースは従来のMicrosoft 365スイートよりも速いとのことです。 つまり、今回のアップデートにより、個人ユーザーはより高度なAI機能を気軽に利用できるようになり、企業は業務効率化と生産性向上を図ることが期待できます。Copilotは、様々なデバイスで利用可能で、多言語にも対応しているため、世界中のユーザーにとってより身近な存在となるでしょう。 ただし、デスクトップアプリでのCopilot利用にはMicrosoft 365のサブスクリプションが必要な点に注意が必要です。また、機能の一部は言語やアプリによって制限がある可能性があります。詳細については、マイクロソフトの公式ウェブサイトを参照ください。 引用元: https://news.microsoft.com/ja-jp/2024/03/15/240315-bringing-copilot-to-more-customers-worldwide-across-life-and-work/ 『コードレビューでよくお願いする、コメントの追加のパターン7選』へのコメント この文章は、はてなブックマークに投稿された「コードレビューでよくお願いする、コメントの追加のパターン7選」という記事へのコメントと、その記事への反応をまとめたものです。 記事自体はZennに公開されており、Go言語のコードレビューにおいて、コメントを追加する重要性と具体的なパターン7選を解説しているようです(詳細は不明)。 はてなブックマークのコメント欄では、多くのエンジニアが自身の経験を共有しています。 主な意見としては、 コードだけでは理解できない部分には必ずコメントを追加するべきという意見が多数を占めています。レビューで質問が出た時点で、コードだけでは情報が不足していたと認識すべきとのことです。コメントはコードと同様に管理する必要があるという指摘もあります。コードの修正とコメントの更新がずれると、かえって混乱を招くためです。「コードを見ればわかる」という考えは危険であるという意見も出ています。これは認知バイアスの一種であり、コードの可読性を高め、誰でも理解できるよう努めるべきだとされています。コメントの追加をルール化するのは非推奨です。ルール化によって形式的なコメントが増え、本質的な理解を阻害する可能性があるためです。番号を付けて説明するコメントは、修正時に更新が忘れられがちであるという懸念も示されています。 これらのコメントは、新人エンジニアにとって、コードレビューにおけるコメントの重要性と、質の高いコメントを書くための注意点を知る上で非常に参考になります。 単にコードを動作させるだけでなく、他者にも理解しやすいコードを書くこと、そしてコメントを適切に活用することで、チーム開発における生産性向上に繋がることを示唆しています。 ...
    Show More Show Less
    Less than 1 minute