タグ

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

  • 生成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 / 西見 公宏
  • SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏

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

    SQLiteでベクトル検索ができる拡張sqlite-vssを試す|mah_lab / 西見 公宏
  • Paperspace Gradient で japanese-gpt-neox-3.6b を動かす|mah_lab / 西見 公宏

    世はオープンソースLLMの戦国時代なのか、日5月17日サイバーエージェント社と立て続けにrinna社からもオープンソースで36億パラメータを持つ言語モデル「japanese-gpt-neox-3.6b」が公開されました。こちらは対話形式のプロンプトにファインチューニングした「japanese-gpt-neox-3.6b-instruction-sft」も同時に公開されています。 japanese-gpt-neox-3.6bまずは汎用モデルの方を試してみようと思います。 import torch from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b", use_fast=False

    Paperspace Gradient で japanese-gpt-neox-3.6b を動かす|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 / 西見 公宏
  • 【後編】LangChainによるGenerative Agents実装まとめ|mah_lab / 西見 公宏

    前回に引き続きGenerative Agentsです。今回はこちらのドキュメントの内容を中心に見ていきます。 GenerativeAgentクラスの概要この実装で中心的な役割を果たしているのがGenerativeAgentクラスです。 class GenerativeAgent(BaseModel): """A character with memory and innate characteristics."""このクラスは以下のパラメータを持っており、これがキャラクターの振る舞いや言動に影響を与えます。 name (str): キャラクターの名前。 age (int): キャラクターの年齢。 traits (str): キャラクターの固有の特徴。「anxious, likes design」といった値を設定する。 status (str): キャラクターの現在の状態。 reflecti

    【後編】LangChainによるGenerative Agents実装まとめ|mah_lab / 西見 公宏
  • 行政の統計資料のような非構造化データをGPTで構造化データに変換する|mah_lab / 西見 公宏

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

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