タグ

LangChainとlangchainに関するdeejayrokaのブックマーク (41)

  • [LangGraph] 自律的にプログラムを実行するLLM Agentを作るための60行スクリプト

    60行スクリプトシリーズ第二弾。前回はこちら この記事はMultiAgent作成フレームワーク「LangGraph」に興味がある人が手っ取り早く動かしてみることを目標にした記事です。 この記事を見てできること 指定のお題に対して、関数で定義したツール実行(Web検索など)をする。 実行結果を元に答えを返す。答えがわかるまでツール実行を繰り返す。 このワークフローの拡張性も意識して、組み込みのワークフローは利用しない方針で作成しています。 まずはセットアップ # 必要なライブラリをインポート import argparse from langchain_community.tools.tavily_search import TavilySearchResults from langchain_openai import ChatOpenAI from langgraph.checkpoin

    [LangGraph] 自律的にプログラムを実行するLLM Agentを作るための60行スクリプト
  • Octomind社がLangChainをやめた理由|Sangmin Ahn

    こんにちはChoimirai Companyのサンミンです。 0  はじめにDifyがLangChainと決別し、独自の「Model Runtime」を採用したのが2024年の1月。 LangFlowやFlowiseなど複合AIシステムではLangChainに依存した設計が多い。DifyもLangChainベースの設計だったけど今年の1月に独自の「Model Runtime」を発表👏↓。当時は難しい判断だったと思う。が、変化のスピードとDifyが描いてる世界観を考えると正解だった。Difyを勧めるもう一つの理由、です。 https://t.co/AybwXRXkJ9 pic.twitter.com/n7d9aae76N — sangmin.eth | Dify Ambassador (@gijigae) April 24, 2024 LangChainの導入を慎重に考えるべきだとする声は

    Octomind社がLangChainをやめた理由|Sangmin Ahn
  • LangChainから使用するLangSmithとLangfuseの詳細比較

    はじめに この記事で想定している読者の方 LangChain経由でLLMを用いたchainを使用している方 LangChainと共に使用するLLM実験管理ツールを迷っている方 「LangChain」はLLMをシステムに組み込む際に非常に便利なライブラリであり, 実際に開発に用いられている方も多いと思います。ですが, LLMの性質上プロンプトやchainの構造を変化させての実験が多くなってしまい, 記録・管理が大変になりがちです。そんな場合に使用したいLLMの実験管理ツールについて前編の記事にてLangChainから使用するために選定したLangSmithとLangfuseについて今回は実装を行った上で比較して行こうと思います! TL;DR 今回は以下の画像のデモアプリを作成し3種類のchainについて実際に記録しLangSmithとLangfuseの比較を行いました! デモアプリの入力画面

    LangChainから使用するLangSmithとLangfuseの詳細比較
  • 半構造化データのためのRAGの概要

    前提 多くの文書には、テキスト、表、画像など、様々な種類のコンテンツが混在 このような半構造化データの解析は従来のRAGにとって困難な場合が多い 👎テキストを分割すると表が分断され、検索時にデータが破損する可能性がある。 👎表を埋め込むと、意味的類似性検索が困難になる可能性がある。 👎画像に含まれる情報は通常失われる。 手法 Unstructuredというlangchain,llamaindex外部のAPIを使い、ドキュメント(PDF等)から画像、テキスト、表を解析する。 multi-vector retrieverを使って、生の表、テキスト、(オプションで)画像を、検索用の要約とともに保存する。 選択肢(各選択肢が下画像のoptionに対応) 選択肢1: CLIPなどのマルチモーダルモデルを使い画像とテキストを埋め込み、類似性検索を使って両方を取得。生の画像とテキストチャンクをマル

    半構造化データのためのRAGの概要
  • 社内用語集を気軽に質問できるSlackBotを作ってみた (RAGの応用アプリ) - ABEJA Tech Blog

    こんにちは!株式会社 ABEJA で ABEJA Platform 開発を行っている坂井(GitHub : @Yagami360)です。 LangChain を使用すれば、RAG [Retrieval Augment Generation] を使用した LLM アプリケーションを簡単に作成できるので便利ですよね。 今回 LangChain での RAG を使用して、LLM が学習に使用していない特定ドメインでの用語を応答する Slack ボットをさくっと作ってみたので共有します。 コード一式は、以下の GitHub レポジトリに保管しています。 github.com 使い方 コード解説 アーキテクチャ RAG の仕組み ヒューマンインザループによる継続的品質改善 まとめ We Are Hiring! 使い方 事前準備として{用語集スプレッドシートの作成・Slack アプリの初期設定・各種

    社内用語集を気軽に質問できるSlackBotを作ってみた (RAGの応用アプリ) - ABEJA Tech Blog
  • LlamaIndex:大規模言語モデルを拡張するLangChainの代替 – AI StartUps Product Information, Reviews, Latest Updates

    導入:LlamaIndexとは? LlamaIndexは、Large Language Models(LLMs)の機能を拡張するために特別に設計された高性能インデックス作成ツールです。単なるクエリ最適化ツールではなく、応答合成、組み合わせ性、効率的なデータ保存など、高度な機能を提供する包括的なフレームワークです。複雑なクエリに対応し、文脈に合った高品質の応答を必要とする場合、LlamaIndexが最適なソリューションです。 記事では、LlamaIndexのコアコンポーネント、高度な機能、プロジェクトへの効果的な実装方法について、テクニカルな詳細を解説します。また、LangChainなどの類似ツールと比較して、LlamaIndexの機能を完全に理解していただけるようにします。 最新のLLMニュースを知りたいですか?最新のLLMリーダーボードをチェックしてください! LlamaIndexとは

    LlamaIndex:大規模言語モデルを拡張するLangChainの代替 – AI StartUps Product Information, Reviews, Latest Updates
  • RAG評価ツールの "RAGAS" を使って、RAGパイプラインの性能を測定する - Qiita

    はじめに こんにちは、KDDIアジャイル開発センターのはしもと(仮名)です。 LLMで何かしたい勢のみなさま、検索拡張生成こと RAG (Retrieval Augmented Generation)、やってますか? 自社で持っているデータを使ってエンタープライズサーチを実現したい、それができればきっと無敵。そう考えて色々やろうとしているんじゃないでしょうか。私です。 RAGを使って意図した出力を得られるようにするには、十分なデータセットを準備したりパラメータを変更しながらチューニングをするなど、地道な作業が必要となります。 開発ライフサイクルにおける評価・テストステップで有効な、評価用フレームワーク RAGAS を使ってみましたので、記事ではそれについてまとめます。 RAGASとは RAGパイプラインを評価/テストするためのフレームワークです。 パイプラインを構築するためのツールは多く

    RAG評価ツールの "RAGAS" を使って、RAGパイプラインの性能を測定する - Qiita
  • LangChainを使わない - ABEJA Tech Blog

    TL; DR LangChainのメリデメを整理する過程で、今となってはopenai-pythonのうちChatGPTAPIをを簡単に取り回せる程度のシンプルなライブラリがあるだけでも十分便利なんじゃないかと思ったので、ライブラリを個人で作ってみました。(バージョン0.0.1なのでちょっとお粗末な所もありますが) github.com はじめに こんにちは、データサイエンティストの坂元です。ABEJAアドベントカレンダーの13日目の記事です。世は大LLM時代ということで、ありがたいことにABEJAでも複数のLLMプロジェクトを推進させて頂いています。私自身もいくつかのLLMプロジェクトに参画しています。LLMといえばLangChainが便利ですね。OpenAI APIの利用だけでなく、各種ドキュメントのパースが出来たり、HuggingFaceやインデックスDBを扱う他のライブラリとインテ

    LangChainを使わない - ABEJA Tech Blog
    deejayroka
    deejayroka 2023/12/14
    “LangChainを使ったアプリケーションで信頼性と保守性を上げたいならLangChainに依存し過ぎないということですね。挙句の果てにはLangChainの実装を参考に自分で実装しよう的なことも書かれています”
  • LangChainを使ってHyDEによるクエリ変換の効果を検証する - Ahogrammer

    ChatGPTやGPT-4をはじめとする大規模言語モデルの能力が向上し、多くの注目を集めています。とくにRAG(Retrieval Augmented Generation)と呼ばれる手法を使って、手元のデータを生成時に活用する手法がよく使われていますが、その性能を改善する方法は様々あります。その中でも、この記事ではRAG内部の検索性能を改善するためのクエリ変換に着目し、HyDEと呼ばれる手法の効果を日語の検索用データセットを使って検証した結果を示します。 記事の構成は以下のとおりです。 HyDEとは 実験設定 実験結果 実装の詳細 参考資料 HyDEとは HyDE(Hypothetical Document Embeddings:仮の文書の埋め込み)は、入力されたクエリに対して仮の文書を生成し、その文書を埋め込み、検索に使用する手法です[1]。典型的な文書検索では、ユーザーが入力したク

    LangChainを使ってHyDEによるクエリ変換の効果を検証する - Ahogrammer
  • LangChain への OpenAIのRAG戦略の適用|npaka

    以下の記事が面白かったので、かるくまとめました。 ・Applying OpenAI's RAG Strategies 1. はじめに「Open AI」はデモデーで一連のRAG実験を報告しました。評価指標はアプリケーションによって異なりますが、何が機能し、何が機能しなかったかを確認するのは興味深いことです。以下では、各手法を説明し、それぞれを自分で実装する方法を示します。アプリケーションでのこれらの方法を理解する能力は非常に重要です。問題が異なれば異なる検索手法が必要となるため、「万能の」解決策は存在しません。 2. RAG スタックにどのように適合するかまず、各手法をいくつかの「RAGカテゴリ」に分類します。以下は、カテゴリ内の各RAG実験を示し、RAGスタックに配置する図です。 3. ベースライン距離ベースのベクトルデータベース検索は、クエリを高次元空間に埋め込み(表現)し、「距離」に基

    LangChain への OpenAIのRAG戦略の適用|npaka
  • Slack Botによるヘルプページの情報参照:LLMを組み合わせたRAGの実装

    はじめに 株式会社スマートショッピングで SRE をしているbiosugar0です。 先日、2023 年 10 月 23 日に行われた Amazon Bedrock Prototyping Camp というイベントに参加してきました。 そこでは Bedrock の紹介から始まり、Claude のハンズオン、実際にプロダクト反映を目指したプロトタイピングを行うという内容でした。 今回はその中で検証、実装した社内用の Slack bot に弊社ヘルプページを参照させる事例を紹介します。 Retrieval Augmented Generation (RAG) Retrieval Augmented Generation (RAG)は、LLM を用いた処理において、外部のデータベースや文書と連携してより精度の高い回答を生成するためのテクニックです。 GPT-4 のような LLM は、学習に使用さ

    Slack Botによるヘルプページの情報参照:LLMを組み合わせたRAGの実装
  • LangSmith で始める LLMOps - Gaudiy Tech Blog

    こんにちは。ファンと共に時代を進める、Web3スタートアップ Gaudiy の seya (@sekikazu01)と申します。 弊社では今 LLM をプロダクトに活用しているのですが、実際にユーザに提供するクオリティのものを作る・運用しようとすると様々な課題が立ちはだかってきました。 そんな数々の課題を解くために LangSmith というツールが活躍してくれた、また今後の活用・発展にもかなり期待ができるため、記事ではそんな LangSmith について解説していきます。 LLM を使ったプロダクト開発において課題を感じている方々の参考になれば幸いです。 出てきた課題 まず LangSmith 自体の解説に入る前に、我々が直面した・ほぼ間違いなく今後するであろう課題たちをサラッとご紹介しようと思います。 大まかには次のような課題がありました。 プロンプトがアプリケーションコード内に書か

    LangSmith で始める LLMOps - Gaudiy Tech Blog
  • Generative Agents の論文を読んで、その仕組みをドキュメント問い合わせシステムとして応用してみた - Qiita

    Generative Agents の論文を読んで、その仕組みをドキュメント問い合わせシステムとして応用してみたOpenAI箱庭ChatGPTlangchain モチベーション こちらで紹介されていた「Generative Agents: Interactive Simulacra of Human Behavior」という論文を読み、大変興味を持ちました。 AIによって生成された25名のエージェント(ChatGPT: gpt3.5-turbo)が人間の行動をシミュレートして、社会的な行動が創発されたそうです。 この論文での創発の定義は以下でした。 情報拡散(Information Diffusion) 関係性の記憶(Relationship memory) 調整(Coordination) また、このような創発を起こすためのエージェントの仕組みは、以下あたりでと解釈しました。 外部記憶(

    Generative Agents の論文を読んで、その仕組みをドキュメント問い合わせシステムとして応用してみた - Qiita
    deejayroka
    deejayroka 2023/09/26
    “より抽象度の高いレベルの洞察や思考に昇華された記憶がとても重要(Reflection) ”
  • 10 Ways to Improve the Performance of Retrieval Augmented Generation Systems

    The Quick-start Guide Isn’t Enough“Retrieval augmented generation is the process of supplementing a user’s input to a large language model (LLM) like ChatGPT with additional information that you (the system) have retrieved from somewhere else. The LLM can then use that information to augment the response that it generates.” — Cory Zue LLMs are an amazing invention, prone to one key issue. They mak

    10 Ways to Improve the Performance of Retrieval Augmented Generation Systems
  • Evaluating RAG pipelines with Ragas + LangSmith

    Editor's Note: This post was written in collaboration with the Ragas team. One of the things we think and talk about a lot at LangChain is how the industry will evolve to identify new monitoring and evaluation metrics that evolve beyond traditional ML ops metrics. Ragas is an exciting new framework that helps developers evaluate QA pipelines in new ways. This post shows how LangSmith and Ragas can

    Evaluating RAG pipelines with Ragas + LangSmith
  • MultiVector Retriever | 🦜️🔗 LangChain

    It can often be beneficial to store multiple vectors per document. There are multiple use cases where this is beneficial. LangChain has a base MultiVectorRetriever which makes querying this type of setup easy. A lot of the complexity lies in how to create the multiple vectors per document. This notebook covers some of the common ways to create those vectors and use the MultiVectorRetriever. The me

    MultiVector Retriever | 🦜️🔗 LangChain
  • ChatGPT の Fine-tuning を試したけど上手くいかなかった話

    これはなに? 新しくリリースされた ChatGPT (GPT-3.5 Turbo) の Fine-tuning を試してみたメモ。 ChatGPTに最新の知識や専門知識を注入できるかどうかをテストしてみた。 結局、自分が想定した動きにはできなかったので記事にして供養します🙏 tl;dr 一晩試してみた程度では、ChatGPTに最新の知識を教え込む目的での Fine-tuning はうまく動かなかった。 OpenAIが提示している想定のユースケースとずれている利用方法なので、もう少しトライしても上手くいかないんじゃないかなと思う。 学習データに入れた質問をそのまま投げてあげると回答できることもある程度だった。(このままでは到底使えない…) 出力のトーンや言語の指示にプロンプトの文字数を大量に使っていて、それを大幅に削減したい、という時には使えそうだなという印象だった。 学習データの自動生成

    ChatGPT の Fine-tuning を試したけど上手くいかなかった話
  • 【OpenAI】Function calling について LangChain Agent と比較しながら試してみた - Qiita

    はじめに こんにちは! yu-Matsu と申します。 皆さん、楽しいChatGPTライフをお過ごしでしょうか。昨今の生成AIを取り巻く環境の変化は目まぐるしく、私もついていくのが大変です... そんな中、ChatGPT界隈では先日、Function callingというものが発表されて話題になりましたね! Function calling and other API updates 発表されてから10日以上経ってしまったため、既にバリバリ使いこなしている方には釈迦に説法かと思いますが、今回はこの Function calling について、LangChainと比較しながら試した内容を記事にしたいと思います。これから Function calling に触れる方の参考になれば幸いです。 記事で紹介しているコードについて、Google Colaboratory を用意していますので、実際に

    【OpenAI】Function calling について LangChain Agent と比較しながら試してみた - Qiita
    deejayroka
    deejayroka 2023/07/31
    “現状はライブラリの使い所を上手く考えて付き合っていく必要があるかと思いますが、OpenAI側もLangChain等のライブラリ側もお互いを追いながらアップデートし続けている状況ですので、これからも注意深く動向を見続け、
  • LangChainまたまた新機能: OpenAI Multi Functions Agent|はまち

    中の人がどうなってるのか、にわかに信じられませんが、またまたLangChainの新機能が発表されていました😮 今度の新機能は、「Multi Functions Agent」です。 Agentが1ステップで複数の関数呼び出しをするという機能です。 Tools定義google検索ツール(SerpAPI)を tools に登録します。 llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613") search = SerpAPIWrapper() # Define a list of tools offered by the agent tools = [ Tool( name="Search", func=search.run, description="Useful when you need to answer questions

    LangChainまたまた新機能: OpenAI Multi Functions Agent|はまち
    deejayroka
    deejayroka 2023/07/31
    “Agentが1ステップで複数の関数呼び出しをするという機能”
  • Azure OpenAI x LangChain サンプル集

    import openai openai.api_type = "azure" openai.api_base = "https://<???>.openai.azure.com/" openai.api_version = "2023-03-15-preview" openai.api_key = "???" import openai from langchain.callbacks import get_openai_callback from langchain.chat_models import AzureChatOpenAI from langchain.schema import AIMessage, HumanMessage, SystemMessage with get_openai_callback() as cb: chat = AzureChatOpenAI( c

    Azure OpenAI x LangChain サンプル集