Zenn
😽

Dataikuで実施するRAG構築 1 - セットアップ使用感 -

2025/02/08に公開
2

LangChainは知ってましたが、今まで触ったことがなかったため、下記コンペに参加しRAG構築を体験してみました。
https://signate.jp/competitions/1515
今回は上記のコンペにて提供のあった、Dataikuさんのローカル版(wsl2)で実施しました。

ノードベースの物はどうしても苦手で、今まであまり触ってこなかったですが、ローカル環境でもかなりの作業が便利になる、かつ、自分で環境管理ができるサービスであったため、使用感はかなり良いです。
(インストールしたDATA_DIR配下に、環境構築されていきます。conda作成であればwsl2上のconda env listにて表示されるようになるため、CUI内でも自分でconda環境を触れます。※ 恐らく非推奨)
https://www.dataiku.com/ja/

1.環境構築

【9点リーダー(右上)】→【アドミニストレーション】→【Code Envs】
各コードを実行する環境を、複数作成する事ができます。

2.LLMエンドポイント設定

【9点リーダー(右上)】→【アドミニストレーション】→【Connections】
使用したいエンドポイントを設定すれば、便利なLM-Studioとの接続も確認できました。
(量子化モデルを簡単に使用できるアプリです。Serve機能で、自分のPCからOpenAIのAPIのような形でLLMサーバーを立てる事ができます)
また、HuggingFaceのモデルも使用できますし、HF_HOME設定してあるフォルダーにキャッシュ保存されていくため【アプリ専用のデータフォロダが作られてSSDなどを圧迫する】などが無くて安心です。

3.プラグイン

【9点リーダー(右上)】→【プラグイン】

今回の内容はPDFを処理する必要がありましたが、プラグイン機能をインストールするだけで、下記画像のような形で、プログロミングができない人でもポチポチやるだけで、PDFデータからテキストデータを得る事ができました。

【対象PDFデータフォルダ】→【プラグインレシピ】→【処理されたフォルダ】

4.前処理・埋め込み処理

取得したテキストをベクトルデータベースを構築しますが、精度を上げるためには、文章をどのように分けるかなどの戦略が必要です。
【対象データフォルダ】→【準備(ビジュアルレシピ)】→【ステップを追加】→【Split cloumn text into chunks】

(Chunk size2000, overlap 200 の場合)

そのような場合、テキストをチャンクサイズで複数分けるパターンを試してみたくなります。
Dataikuでは、フロー図に従い複数のルートを作成して試す事も出来ます。
また、複数ルートを作成して、あとで繋ぎ直したりすることができます。
さらに、やり直し後に使用したいルートだけを選択的に実行する事もできます。
これらの試行状態が視覚的に確認できて便利です。

便利だからとやりすぎると、ワケが分からなくなります。
きちんと整理しましょう。。。

メモ

LLMのRAG構築のために知ったサービスですが、もともとはMachineLearning用?機能もあるようなので、また試してみたいと思います。

2

Discussion

ログインするとコメントできます