第7回LangChainもくもく会開催レポート!第8回は7/6(木)開催予定
先日6/21(水)は第7回LangChainもくもく会の日でした。いつもみなさまお集まり頂きありがとうございます!
第8回は7/6(木)20:00スタートで開催予定ですので、ご都合のつく方は是非ご参加くださいませ。
前回のトピックふりかえり
というわけで恒例のふりかえりです。毎回もくもく会当日に投稿しているLangChain差分まとめを参考にしつつ進行しております。
qdrantってどう?
v0.0.194(2023.06.08)でqdrantベクターストアの検索に対応していたのですが、そういえばみんなqdrantって使っている?という話に。
勝手にDockerでホスティングしなきゃいけないものだと思い込んでいたのですが、qdrantはホスティングサービスも提供していて、1GBまではフリーで使えるようです。結構太っ腹。有料プランもPineconeよりお値段控えめなので、Pinecone高すぎるよなー、という勢にも良いかも。
Vertex Matching EngineやKendraの話
GCPやらAzureでもベクトル検索が可能になっていく中で、大きめのクラウドがサービスを用意するならみんなそっちを使っちゃうんじゃないの?なんて思っていた訳ですが、お値段が全然違うとのこと。ミニマムで月10万ぐらい。ひえー。
AWSではKendraというサービスが提供されていますが、こちらは単純な近傍検索というよりはデータアグリゲーションと検索がセットになったようなソリューションとして提供されている形。
大企業では大量のリソースを横断して検索したものをLLMに食わせたい、みたいなニーズがあるようで、そのあたりのニーズに対応したソリューションが続々出ている感じがします。例によって実際の利用はそんなに簡単な感じではないんでしょうけどねー。
唯一神かと思ったら八岐大蛇だったGPT-4
LangChainの勉強会ではありますが、GPT-4が220Bの言語モデルのアンサンブルで実現されているのではないかという話は相当にインパクトがあり、もくもく会場でもそのトークで盛り上がりました。
各モデルの学習データを敢えて偏らせておくことによって多様性を持たせ、その中でも最も確信のある回答を出力することで出力のクオリティを上げているのではないかという仮説は面白かったです。果たして合議するモデルの数が増えれば増えるほど性能は上がるのか?AIの方がよっぽど民主主義を上手くやれるのではないか?と、我々のSF魂を大いに揺さぶってくれるネタでございました。
Function Calling無双
6月13日のOpenAIによるFunction Callingのアップデートは大いに盛り上がりました。ざっくり言うと、APIレベルでChatGPTプラグインみたいなことができる機能です。LangChainは発表直後に対応していました。さすがすぎる。
Function情報を突っ込んだときにどのぐらいトークン数を消費するんだろう?という疑問に対しては「ミニファイしたJSON Schemaがそのまんま入っている感じのトークン消費」という答えでした。皆平等にトークン消費の対象になるわけですね。
Solidity言語のサポートからのweb3と生成AI
CodeSplitterの対象言語としてSolidity言語が追加されていました。去年の夏はSolidityを書き散らかしていたので懐かしいです(遠い目)。
web3と言えばムーブメント的には現在下火な印象がありますが、下火の時期こそ現実的な応用が進んでいくもので、なぜかNFTに関する相談はちょいちょいと入ってきたりしています。そんなNFTの応用で最近舌を巻いたのが以下のツイート。
会話の流れで最終的に好みの女の子画像が生成されるのはインパクトあるのですが、個人的に一番インパクトがあったのはその画像をミントできるボタンが右下にあることでした。恋愛シミュレーションにより生成された唯一無二の女の子画像がNFTとしてミントできる。生成AIとweb3の交差点はまさにここにあるのでは、と思わせてくれるステキなデモでした。
LangChainのリリースノートっていつも手で書いているの?
毎日更新されているLangChainのリリースノートですが、リリースノートに記載されているプルリクの掲載順序って何順なんだろうね?という話が話題になりました。番号順ではないので、重要度なんだろうか。
そんな中で出たのが「自動生成してるんじゃね?」という意見。GitHubにリリースノートを自動生成する機能があるんですね。
自動生成に便乗すると、最近私はコミットログを自動生成してもらっています。
これがもうめちゃめちゃ便利でして・・・。
aicommits --type conventional
typeにconventionalを指定すると、Conventional Commitsの形式で生成してくれます。「feat: xxx」とか「chore: xxx」みたいな感じで書くコミットメッセージの型です。普段から私はこの型でコミットメッセージを書く派です。流派を守ったまま自動生成してくれるようになったので、もう何も言うことはないですね。めちゃめちゃ便利です。
更にプルリクのメッセージも自動生成してくれれば良いのにね、という話になったのですが、それはGitHub Nextに積んである状態のよう。
プルリクの書き方は各社で流派というか、テンプレがあるので、単純に自動化してもユーザーがつかなさそうですね。
例えばRailsではマイグレーションがあるのか、オンラインでリリースする予定なのか停止を伴うのか、リリースにあたって特別な手順が必要か、みたいな内容を書くことがあるよなーと思うので、単純に要約するのでは適切なレビュー観点を提供することは難しそうです。
text-generation-webui support
text-generation-webuiを起動しているサーバを、LLMで文字出力するAPIとみなせるような差分があって誰得なんだと思ったのですが、
from langchain.llms import TextGen
llm = TextGen(model_url = "http://localhost:5000")
もくもく会では「このインターフェースを標準化することで、エンドポイントを指定することで汎用的にホスティングされているLLMを呼び出すことができるかも知れませんね」という話になり、それは確かにそうだなーと。
これまでもBeamみたいなホスティングサービスとの連携が追加されてきたりはしていますが、どこかのタイミングで汎用的なインターフェースが用意されるのかも知れません。
依然として0.0.xxxであるLangChainですが、0.1へのアップデート時にあらゆるインターフェースが統合されたり汎用化されたりといったブレイキングチェンジが行われるのではないかなー、と予想しています。
結構投資も入っていますしね。
所感
LangChainに大きめの投資が入ったのもあってどうEXITするのかなと気になっていたのですが、出てきた意見は「M社とか大きめの会社に身売りするのでは」「何かホスティングサービスを作ってマネタイズしてから身売り?」みたいな感じでした。何となくですが、開発者コミュニティごと欲しい会社にどーんと売り払うみたいなシナリオはありそうな気もしています。いつかご本人に伺ってみたいところではあります。
さて、次回はいよいよ第8回、7月6日20時からの開催です。みなさまの参戦をお待ちしております!
現場からは以上です。
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?