Category: Node.js
AI / MLJavaScriptLangChain.jsLLMNode.js
外部APIを利用したRAGをLangChain.jsのLCELだけで作る2 – 部分的なベクトル検索を採用する
LangChain.jsを使用して、RAGやテキスト生成機能を実装するシリーズが続いています。前回はWordPressのREST APIを使用して、RAGの検索部分に挑戦しました。今回はエラーが発生した記事本文や複数記事をLLMに渡す試みについて説明されています。MemoryVectorStoreを利用することで、記事の関連性の高い文章を取得し、記事の検索結果をさらに深掘りする方法も紹介されています。WordPressから取得した記事情報の検索結果をMemoryVectorStoreに保存する方法や、RAGのインデックスと検索処理を実装する手順も示されています。Cloudflare Workers AIを使用して生成された日本語の回答に関する内容や、AWS Lambdaのアプリケーションをアップデートする手順についても触れられています。LLMのトークン数上限に対処する方法や、回答を生成する際に必要な文章の抽出方法についても言及されています。ベクターインデックスを利用した検索についての知見が共有されています。
AI / MLCloudflareJavaScriptLangChain.jsLLMNode.jsSaaS / FaaS
[LangChain.jsでいろんなRAGを作る]Cloudflare Workers AIで作ったRAGに翻訳機能を追加してみた
Cloudflareを使用してRAGを構築する際、モデルやプロンプトに関連して回答が英語になる可能性があることが挙げられます。そのため、特定の言語で回答を生成するために翻訳ステップを追加することが有効です。これにより、複数のChainをつなぎ合わせて、質問に対して検索を行い、結果を元に日本語で回答生成する流れを完成させることができます。多言語サポートが必要な場合は、翻訳処理を追加して検索精度を向上させることが可能です。
AI / MLCloudflareJavaScriptLangChain.jsLLMNode.jsSaaS / FaaS
LangChain.jsでCloudflare Workers AIの翻訳モデルを利用する
LangChain.jsを使用すると、Cloudflare Workers AIを簡単に活用できます。Text GenerationやText Embeddingsのモデルは問題なく利用できますが、Translationモデルなど一部のモデルは対応していない。LangChain.jsでは新たな実装が必要な場合、自身で処理を実装しChainに組み込むことができます。RunnableLambdaを使用すれば、テキスト生成以外のモデルもLangChain.jsで活用可能。Cloudflare Workers AIを効果的に使用していくためには、適切な実装が必要です。
AI / MLJavaScriptLangChain.jsLLMNode.js
LangChain Hubのプロンプトを利用して、RAG向けにブログ記事のchunkを実施する
RAG(Retrieval Augmented Generation)において、適切なサイズにデータを分割する手法は重要であり、LangChain Hubを使用すれば、プロンプトの簡単な利用や更新が可能です。LLMを用いたChunk作成は効果的だが、コストや意図しないテキスト生成には注意が必要。LangChain Hubのプロンプトの変更に伴う挙動変化にも注意が必要。Hub上のプロンプトを使ってプロンプト変更の管理が簡略化される一方で、第三者プロンプトの変更影響についても検討が必要。
AI / MLJavaScriptLangChain.jsLLMNode.js
[LangChain.jsでいろんなRAGを作る] 一度生成した回答文章を用いて、もう一度検索とテキスト生成を実施する
RAGに関する調整・実装方法について紹介があります。HyDEの手法を活用した「一度RAGで処理した結果を用いて、もう一度RAGを実行する方法」に焦点が当てられています。質問文と検索結果から回答文章を生成し、その回答文章を利用して再度検索処理と回答文章の生成を行います。2回目のテキスト生成では、回答文章を改善する指示が出されています。劇的な回答文章の変化は見られませんが、データの前処理や技術の追加学習後に再試行したいとの考察も述べられています。
AI / MLJavaScriptLangChain.jsLLMNode.js
[LangChain.jsでいろんなRAGを作る]外部APIを利用したRAGをLangChain.jsのLCELだけで作る
LangChain.jsを使用して、RAGやテキスト生成機能を実装するシリーズが続いています。今回は、RAGの検索部分をベクターストアを使用せずに実装する方法に挑戦しました。検索の仕組みについては柔軟であり、REST APIを使用して検索クエリを投げる方法でRAGを構築しました。検索APIを利用して回答文章を生成するために、3つのChainが必要です。今後は記事本文を渡す際に生じるエラーに対処し、関連性の高い文章をピックアップする方法に挑戦する予定です。
AI / MLJavaScriptLangChain.jsLLMNode.js
[LangChain.js LCEL入門]マルチステップのテキスト生成を行う
LangChain.jsを使用してLangChain Expression Language(LCEL)を作成する方法を試行錯誤するシリーズ。今回は、複数ステップのLLM呼び出しに挑戦。1回目は英語で質問に回答を生成し、2回目は回答を日本語に翻訳。各ChainはRunnableSequenceを使用して実装し、前のChainの結果を次のChainの入力として利用可能。方法を理解することで、複数回のテキスト生成を簡単に行える。LangChain.jsの柔軟性に注目。
AI / MLJavaScriptLangChain.jsLLMNode.js
[LangChain.js LCEL入門] LCELを使ったChainを作る
LangChainを利用したLLMアプリ構築では、LangChain Expression Language(LCEL)の理解が重要です。LCELはLangChainを操作するための表現言語であり、複数ステップのAPI呼び出しを実装する際に役立ちます。LCELの書き方はPythonとJSで異なり、LangChain.jsではRunnableSequenceやpipe()関数を使って処理を記述します。それぞれのメソッドは異なる使い方があり、状況や好みによって選択することができます。LangChain.jsを使用して動作させた結果は正常に文字列データが取得できることが確認されています。
AI / MLJavaScriptLangChain.jsLLMNode.js
FakeLLMを使って、LangChainのChainを無料・高速にテストする方法
LangChainは、Chainを通じて複数のLLM API呼び出しやデータ処理をサポート。Chainを使用することで簡単に動的な処理を実装可能。また、FakeLLMを使用することで、LLMのレスポンス整形などを手軽にテスト可能。FakeLLMの利用はテキスト生成以外の処理やCI / CD上でのテストに適しており、モデルの差し替え方法も重要。FakeLLMのユースケースや実装方法など詳細はLangChainのドキュメントに記載されている。