Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LLM勉強会にDifyを使ったことで見えてきたDifyのソフトウェア開発への活用ポイント
Search
QunaSys
October 27, 2024
0
22
LLM勉強会にDifyを使ったことで見えてきたDifyのソフトウェア開発への活用ポイント
QunaSys
October 27, 2024
Tweet
Share
More Decks by QunaSys
See All by QunaSys
第二期材料開発LLM勉強会ご案内
qunasys
0
620
LLM勉強会のためにアプリを作ろうか悩んだけど Difyが解決してくれた話
qunasys
1
4.5k
材料開発LLM勉強会ご案内
qunasys
0
2.3k
Q#とNWChemを試してみた/qsharp-nwchem
qunasys
0
1k
量子コンピュータの基礎から応用まで/quantum summit 2019
qunasys
31
35k
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
RailsConf 2023
tenderlove
29
900
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Making Projects Easy
brettharned
115
5.9k
What's new in Ruby 2.0
geeforr
343
31k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
410
Docker and Python
trallard
40
3.1k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Become a Pro
speakerdeck
PRO
25
5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Transcript
LLM勉強会にDifyを使ったことで見えてきた Difyのソフトウェア開発への活用ポイント
Yg 自己紹e fg LLM勉強会のためにアプリを作ろうか悩んだけどDifyが解決してくれた g DifyはLLMアプリのソフトウェア開発プロセスを改善する
@hudebakonosoto 2020年 Slerに新卒で入社 2022年から株式会社QunaSysでソフトウェアエンジニア コーヒーのアプリ作るぐらいにはコーヒーが好き。 今回LT会は初登壇
LLM勉強会のためにアプリを作ろうか悩んだけど Difyが解決してくれた話
None
弊社、材料開発向けにLLM勉強会やってます。
弊社、材料開発向けにLLM勉強会やってます。 今日はハンズオンで、どんなツールを使ったか を話します。
ハンズオンの目的は? https://speakerdeck.com/qunasys/cai-liao-kai-fa-llmmian-qiang-hui-goan-nei?slide=3
ハンズオンの目的は? https://speakerdeck.com/qunasys/cai-liao-kai-fa-llmmian-qiang-hui-goan-nei?slide=3 We 材料開発のためのLLMアプリを構築 F Ee 材料開発視点のユースケースを発見する。
勉強会のハンズオンでのツール選定要件 要件 目的 ChatGPTのAPIキーはこちらで用意 できる? 参加する会社によってはAPIキーが用意できない可能性がある APIキーのレートリミットの管理が できる? 多くの人が一気にAPIキーを使うので、Embbedingとかはrate limit
errorでそう。チャットは問題にはならないかも? ユーザーがアノテーションでき る? °¬ 本当に正しい答えをこちらでデータとして貯めたい¥ ®¬ データ評価まで実践してもらう機会を作りたい。 勉強会以外でも使ってもらえる? 参加者にユースケースを思いついてもらいたいので、常に使って もらえる環境を用意したい。 文献を集めることができる? みんなの知見を集めて、RAGに使えるようにしたい。 プロンプト集めることができる? 同上
案1. LangChain+LangServe+LangSmith+Google Colab QunaSysがホスティングし ているどこか クライアント 勉強会参加者
案1. LangChain+LangServe+LangSmith+Google Colab ️ ︎ ・・・できる! ・・・できない。運用もしくは別サービスでカバー可能な場合 も含む 要件 満たす?
APIキーはこちらで用意できる? レートリミットの管理ができる? (実行タイミングずらす とかなら... ユーザーがアノテーションできる? LangSmithをいい感じに 運用すればできるかも... 勉強会以外でも使ってもらえる? 文献を集めることができる? GoogleDriveに入れてと かなら...?... プロンプト集めることができる?
案2. じゃあアプリ作る? レートリミット対策でキューを作る? RAGを構築できるアプリを作る? RAGありなしで画面を分けるだけだと、 RAGのイメージをつきずらいよなあ... 2ヶ月ぐらいで作り切れる?
案2. じゃあアプリ作る? レートリミット対策でキューを作る? RAGを構築できるようなフローを作る? 画面分けるだけだと、RAGのイメージをつ きずらいよなあ... 2ヶ月ぐらいで作り切れる? 本番で使えるものを 2ヶ月で作り切る自信がない
Difyとの出会い
CRAGをDifyで構築す るとこんな感じ Difyとは? i GUIで簡単にRAGや、AIエージェント作成 (LLMもいろいろ使える` i もちろんプロンプトも変更しやすh i 作ったものをアプリとして公開できa
i APIの公開とかも可能A i アノテーション機能もついてるA i LLMのAPI Keyのロードバランサーの機能もあa i セルフホスティングできる。 LLMアプリをローコードで作成できるOSSプラットフォーム
Difyがすべてを解決する 要件 満たす? APIキーはこちらで用意できる? レートリミットの管理ができる? ️ Embeddingの処理はキューを作ってくれてるし、API キーのロードバランサーもある。 ユーザーがアノテーションできる? 勉強会以外でも使ってもらえる?
文献を集めることができる? ️ナレッジ使える プロンプト集めることができる? ️ログとってくれる
Difyがすべてを解決する(+α) ローコードなのでコードの書き方にとらわれない。 ユースケースを考えてもらうという点では 本質的な部分にフォーカスできてより良いんじゃね? と私は思うのです...
Difyソフトウェア開発でも使えそう
気付いたDifyのLLMアプリへの使い所 h 作成物はアプリ or APIで公開できるので、まずはDifyを使うのがよさそ h どれぐらい使われるかわからない状況で、OpenAIのAPIキーをロードバランサーやレートリ ミット管理を作るのは大変です。ここをなんとかしてくれてるのは結構嬉しい(これ管理す るの意外と辛いのでF h
正直Difyにまだできないことが、複雑なことやろうとした時はDifyAPI+コードを書くこと でDifyの不得意なところは補うのがい h ドメインエキスパートと一緒にやりたい or ドメインエキスパートの方に管理してもらった 方がいいところはDifyに切り出 h アノテーション機能が標準ついてるので便! h ただバージョン管理は煩雑になりそう(これから改善されるんじゃないかと思っている)
気付いたDifyのLLMアプリへの使い所 作成物はアプリ or APIで公開できるので、まずはDifyを使うのがよさそ どれぐらい使われるかわからない状況で、OpenAIのAPIキーをロードバランサーやレートリ ミット管理を作るのは大変です。ここをなんとかしてくれてるのは結構嬉しい(これ管理す るの意外と辛いのでA
正直Difyにまだできないことが、複雑なことやろうとした時はDifyAPI+コードを書くこと でDifyの不得意なところは補うのがい~ アノテーション機能が標準ついてるので便! ただバージョン管理は煩雑になりそう(これから改善されるんじゃないかと思っている) ドメインエキスパートと一緒にやりたい or ドメインエキスパートの方に管理してもらった 方がいいところはDifyに切り出 ここもっと 注目してもいいかも!
DifyはLLMアプリのソフトウェア 開発プロセスを改善する
量子化学計算エージェントを作ったことがある。
使用したドメイン知識を持ったプロンプト あなたは、特に量子化学の分野で非常に強力なアシスタントです。 量子力学と計算化学の原理を深く理解しているため、各研究プロジェクトの具体的な 要件に基づいて、DFT計算に最適な汎関数を専門的に選択することができます。 出力は以下からお選びください。 [slaterx, pw86x, vwn3c, vwn5c, pbec,
pbex, beckex, beckecorrx, beckesrx, beckecamx, brx, brc ....(以下略) 汎函数を選択させるプロンプト(素人の私が考えたプロンプト)
ドメイン知識持っている人にプロンプトを見てもらう と? これだと正直微妙ですね... まずは最初はよく使われる汎函数を使います。 有機分子ならとりあえずB3LYPをつかったりしますね。 実験やの人はB3LYPでいったん回して合わなければor収束し なければ変える感じおおいですね。 たとえば横長かつ、手が3つ生えたNが片側の端っこらへんに ある分子とかはB3LYPだと実験値とずれやすい(らしい)の でいくつか汎函数を試してベンチマーク的に計算値と実験値
のずれがあまりないものを調べますね。 電荷が長距離移動する有機分子をやっていたのでM06とか使 いました。 そういう意味では錯体は金属とその周りの有機配位子部分と で関数を変えるので、いろいろな汎関数が出てきがちかも? ただ注意する必要があるのはある分子系で用いる汎関数は1つ に絞ります(あくまで正当な理由がない限りです。 ・・・・・(以下略)
ドメイン知識持っている人にプロンプトを見てもらう と? これだと正直微妙ですね... まずは最初はよく使われる汎函数を使います。 有機分子ならとりあえずB3LYPをつかったりしますね。 実験やの人はB3LYPでいったん回して合わなければor収束し なければ変える感じおおいですね。 たとえば横長かつ、手が3つ生えたNが片側の端っこらへんに ある分子とかはB3LYPだと実験値とずれやすい(らしい)の でいくつか汎函数を試してベンチマーク的に計算値と実験値
のずれがあまりないものを調べますね。 電荷が長距離移動する有機分子をやっていたのでM06とか使 いました。 そういう意味では錯体は金属とその周りの有機配位子部分と で関数を変えるので、いろいろな汎関数が出てきがちかも? ただ注意する必要があるのはある分子系で用いる汎関数は1つ に絞ります(あくまで正当な理由がない限りです。 ・・・・・(以下略) ドメインに寄せたプロンプトチューニ ングはかなり高度
ドメイン知識持っている人にプロンプトを見てもらう と? これだと正直微妙ですね... まずは最初はよく使われる汎函数を使います。 有機分子ならとりあえずB3LYPをつかったりしますね。 実験やの人はB3LYPでいったん回して合わなければor収束し なければ変える感じおおいですね。 たとえば横長かつ、手が3つ生えたNが片側の端っこらへんに ある分子とかはB3LYPだと実験値とずれやすい(らしい)の でいくつか汎函数を試してベンチマーク的に計算値と実験値
のずれがあまりないものを調べますね。 電荷が長距離移動する有機分子をやっていたのでM06とか使 いました。 そういう意味では錯体は金属とその周りの有機配位子部分と で関数を変えるので、いろいろな汎関数が出てきがちかも? ただ注意する必要があるのはある分子系で用いる汎関数は1つ に絞ります(あくまで正当な理由がない限りです。 ・・・・・(以下略) ドメインに寄せたプロンプトチューニ ングはかなり高度 ︎ ドメインエキスパートに任せた方がい い。
LLMアプリ開発のツラミ ドメイン知識もりもりのプロンプトをエンジニアだけで作るのが難しい でもドメインエキスパートがプロンプトを触りずらい....
LLMアプリ開発のツラミの原因 LLM側にあるドメイン知識とシステム開発部分がかなり密接で、 ドメインエキスパートがプロンプトを改善しずらい ※ LLMアプリ = LLMパート + システム開発パート
LLMアプリ開発のツラミをどう解決する? PromptLayerとかでプロンプトを切り出す? でも、LLMのワークフローってプロンプトだけ じゃないからプロンプト切り出してもなあ....
Difyでいいやん
LLMアプリのツラミの解決策としてDify① ドメインエキスパートと開発者で責務の分離が起きる Difyに寄せてしまう。 ドメインエキスパートがLLMパートを改善しやすくなるd 実際のフローを改善するとなると、単に単一のプロンプトをいじるだけでなく て、LLMの数を増やすことや、条件分岐を増やすなどをする必要がでてくるか らDifyが役立つ ドメインエキスパートの責務
開発者の責務
LLMアプリのツラミの解決策としてDify② ソフトウェア開発的にも修正の影響範囲が明確になり、考えること ちょっと少なくなる。 o LLMパートとシステム開発パートで責務が完全に別れるのz o コード修正or LLM修正の影響を与える範囲が明確になり、影響範囲がわかりや すく予期せぬバグが少なくなるはずq o
モジュール性が向上することで、そもそも依存度が下がりやす` o LLM部分が触りやすくなるので、継続的な改善が進めやすい
Difyはソフトウェア開発プロセスを改善する ドメインエキスパートと一緒にやりたい or ドメインエキスパートの方に管理してもらった方が いいところはDifyに切り出 ドメインエキスパートと開発者を責務分離できて、ドメインエキスパートがLLMパート を改善しやすくなるP ソフトウェア開発的にもLLMパートとシステム開発パートで責務が完全に別れるので
コード修正 or LLM修正の影響範囲が明確になり、予期せぬバグが少なくなるはず!最 終的には改善を加速するはず! ただ、「ドメインエキスパートがいない」「エンジニア自身がドメインをよく知っている」 などの場合はこの限りではないと思ってます...
None