ブックマーク / note.com/mahlab (9)

  • 生成AI新年会2024で「AIエージェントとLangChain」について話しました|mah_lab / 西見 公宏

    LangChainエコシステムの盛り上がり昨年の3月ぐらいから「もくもくLangChain」と称したLangChain推し活動を続けていますが、昨年年末にかけてLangChain関連書籍が多数出版されていたり、SoftwareDesign誌でのLLMアプリケーション開発に関する連載も好調だったりと、LangChain周辺のエコシステムは継続して盛り上がり続けているのではないかと感じています。 一方で「LangChainは処理をブラックボックスにしすぎ」「ライブラリ内で利用されているプロンプトを差し替えられなくて草」といった、さすがにプロダクションで使うのは難しいよね、みたいな講評もあるわけですが、その問題もLangChainの安定バージョン(0.1.X)のリリースにあたってライブラリ内のモジュールが3分割されたことによって解決の方向に向かっているように見えます。 その中で特に重要な役割を果

    生成AI新年会2024で「AIエージェントとLangChain」について話しました|mah_lab / 西見 公宏
  • エージェント型AIシステム構築の7つの原則: OpenAI『Practices for Governing Agentic AI』を読み解く|mah_lab / 西見 公宏

    AIエージェントシステム構築のガイドラインについてOpenAIの研究者らが論じているホワイトペーパー『Practices for Governing Agentic AI』(2023年12月14日公開、以下ホワイトペーパー)の内容が非常に示唆に富むものだったので、稿ではこの内容を読み解いていこうと思います。 注意事項ホワイトペーパー内の表現は、分かりやすいように意訳してお届けしています。例えば"limited direct supervision"は「限定的な直接の監視」と訳せますが、表現が硬いため、意を汲んで「人間による部分的な管理」などと訳出しています。そのため正確な表現については原著をご参照ください。 3分で理解したい人向けのまとめエージェント型AIシステムとは、人間による部分的な管理下であっても、複雑な目標を自律的に遂行できるAIシステムのことを指します。 このようなシステムは、

    エージェント型AIシステム構築の7つの原則: OpenAI『Practices for Governing Agentic AI』を読み解く|mah_lab / 西見 公宏
  • AIエージェント沼にハマるためにこの辺を見ておけば良いと思われるリソースまとめ|mah_lab / 西見 公宏

    はじめにみなさまはAIエージェントという言葉をご存知でしょうか。 ご存知ない方はとりあえずDoryさんの以下の記事を読んで頂けると良いと思う訳ですが、 ざっくりAIエージェントを定義すると、「人がいちいち指示しなくても、自分でやることを考えて、様々なツールを活用して目標に向かってタスクをこなしていくAI」をAIエージェントと呼んでいます。 AIエージェントと比較すると、ChatGPTのようにチャットを介してコミュニケーションするAIは指示待ち人間とも言えます。 どんなに高いパフォーマンスを出すのだとしても人間がいちいち指示を出さないと仕事をしてくれないのはつらいよね、という視点から、自律的に仕事をし続けてくれるAIエージェントはAI活用においてブレイクスルーを起こすのではないかと考えられています。 当に自律的に仕事をし続けてくれるのだとしたら、ある意味従業員の代替になるわけですし、更にそ

    AIエージェント沼にハマるためにこの辺を見ておけば良いと思われるリソースまとめ|mah_lab / 西見 公宏
  • SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏

    SQLiteでベクトル検索を可能にするsqlite-vssそんなポータブルで便利なSQLiteですが、そのSQLiteでベクトル検索ができるとなるとより夢が広がります。 SQLite自体はファイルベースなので、あらかじめベクトルデータを設定したSQLiteデータベースファイルをアプリに組み込んで配布しても良いわけです。そうすればデータベースサーバを用意しなくて済む分コストも圧縮されますし、組み込みなのでアプリからは軽量に動作します。 ホスティングする場合でもFly.ioのようにボリュームイメージを利用できるPaaSを利用すれば、問題なく運用が可能です。 前置きが長くなりましたが、このような夢を叶えてくれる拡張がsqlite-vssです。ベクトル検索はFaissベースで実装されています。 とっても良さげではあるのですが、実際に組み込んでみた場合のコード例が見つからなかったので、手を動かして試

    SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏
  • LLMと調和したプログラミングを体験させてくれるMarvinというライブラリが面白い|mah_lab / 西見 公宏

    過去に「個別の関数を実装をプロンプトで行うような流れは既にきている」と言ってみてはいたものの、考え方としては関数としてプロンプトを実行する、ぐらいの世界観が関の山で、ソフトウェア設計としてLLMとの調和を考えるという域までは達していませんでした。 なんですが、何というかAI時代のプログラムコードってこんな感じになっていくのかなーと思わせるライブラリが登場していたので紹介したいと思います。 Marvinとはどんな感じのライブラリなのかその名もMarvinと言います。 コンセプトから入るとイメージしづらい気がしたので、いきなり実例から説明させてください。 例えばなんか適当にエナジードリンクをリストしてくれるような関数が欲しかったとしますね?(そんなケースあるかな) そういう場合はこんな風に書けます。 from marvin import ai_fn @ai_fn def list_energy

    LLMと調和したプログラミングを体験させてくれるMarvinというライブラリが面白い|mah_lab / 西見 公宏
  • Feature Stores and LLMs|mah_lab / 西見 公宏

    なぜFeature Storeが役に立つのか?Feature Storeとはざっくり「機械学習モデルで扱う特徴量をひとまとめに管理する基盤」のこと。特徴量のソースとなるデータレイクがバラバラだったり、学習時と推論時でモデルに入力する特徴量の参照先が異なるといった事情があったりといった、機械学習モデルにおける特徴量運用の問題を解決するために存在している。 https://www.tecton.ai/blog/what-is-a-feature-store/このような役割上、Feature Storeは様々なデータによってリアルタイムに特徴量を更新する特徴量のリアルタイムパイプラインとも言える。 GPTのようなLLMのコンテキストサイズには限りがある(GPT-3.5で4096トークン)ので、より濃縮された、LLMによるアウトプットを適切に左右するようなデータをプロンプトに投入することがカギにな

    Feature Stores and LLMs|mah_lab / 西見 公宏
  • 大規模言語モデル間の性能比較まとめ|mah_lab / 西見 公宏

    StableLMのファインチューニングってできるのかな?と調べたところ、GitHubのIssueで「モデル自体の性能がまだ良くないから、ファインチューニングの段階ではないよ」というコメントがありまして。 シートの中身を見てみるlm-evalシートstablelm-base-alpha-7bは54行目にありまして、確かに他の言語モデルと比較するとまだまだな性能のようです。応援したいですね。 シートの列の意味それぞれの列の意味については推定ですが以下の通りです。 RAM 言語モデルのGPUメモリ消費量。 lambada(ppl) LAMBADAデータセットによる測定値。ロングレンジの言語理解能力をテストする(文章全体を読まないと答えられないタスクでの評価)。PPLはPerplexityという指標で、モデルの予測の不確かさを示す。PPLが低いほど、モデルの予測精度が高い。 lambada(acc

    大規模言語モデル間の性能比較まとめ|mah_lab / 西見 公宏
  • 大規模言語モデルを自社でトレーニング&活用する方法|mah_lab / 西見 公宏

    オンラインIDEを提供しているReplitでは自社で大規模言語モデルをトレーニングしているらしく、そのノウハウがブログ記事にまとめられていたので要約してみました。 なぜ自社で大規模言語モデルをトレーニングするのか?企業が独自に大規模言語モデル(以下、LLMs)をトレーニングすることを決める理由は、データのプライバシーやセキュリティから、アップデートや改良のコントロールの強化まで様々なものがあるが、Replit社ではカスタマイズ性、依存度の低減、コスト効率に重点を置いている。 カスタマイズ性 カスタムモデルをトレーニングすることで、GPT-4のような汎用モデルやCodexのようなコードに特化したモデルではカバーしきれないプラットフォーム固有の機能、用語、コンテキストなどといった特定のニーズや要件に合わせてモデルを調整することができる。例えば、Replitで人気の高いJavascript Re

    大規模言語モデルを自社でトレーニング&活用する方法|mah_lab / 西見 公宏
  • 行政の統計資料のような非構造化データをGPTで構造化データに変換する|mah_lab / 西見 公宏

    今朝方GPT-4が発表されて、みなさん死ぬほど盛り上がってますねー。 GPT-4を使えば一発でできそうなネタではありますが、GPT-4 APIのお値段は3.5よりもお高めの設定なので、これからはどのように上手くGPTのバージョンを使い分けていくかが問われていくと思います。 というわけで今日は非構造化データを構造化データに変換する話です。 問題の背景行政が定期的に公開している統計資料をご覧になったことはありますでしょうか。ディスる訳ではないですが、以下に示すのは私が住んでいる富士吉田市の統計資料です。 統計ふじよしだ令和元年度版 - 商業 このように分かりやすい表で情報を提供してくれるのはありがたいのですが、数値データにはなっていないので分析に活用することができません。 GPTのパワーを使って、このような非構造化データを構造化データに変換できないか?というのが日のお題になります。 コードP

    行政の統計資料のような非構造化データをGPTで構造化データに変換する|mah_lab / 西見 公宏
  • 1