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
Snowflake Cortex LLM関数のいろんなモデルを試せるチャットボットを作ってみた
Search
fkd
January 01, 2025
0
14
Snowflake Cortex LLM関数の いろんなモデルを試せる チャットボットを作ってみた
SnowflakeだけでAIチャットボットが簡単に作れるようになったので試してみたもののご紹介です。こういうのが作れるんだな、という参考になれば幸いです。
fkd
January 01, 2025
Tweet
Share
More Decks by fkd
See All by fkd
Snowflakeでダミーデータを作ろう
fkd
0
100
PDFファイルからデータを抜き出してテーブルに入れてみた
fkd
0
670
Snowflake DCR
fkd
0
300
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Writing Fast Ruby
sferik
628
62k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Faster Mobile Websites
deanohume
309
31k
Transcript
Snowflake Cortex LLM関数の いろんなモデルを試せる チャットボットを作ってみた Chatbot with Snowflake Cortex LLM
Functions 2024/7/30 KAG 福田陽一
自己紹介 • 名前 : 福田陽一 • 役職 : Data Engineer
/ Infrastructure Engineer 2024/7/30
Snowflake Cortex LLM関数 • 大規模言語モデル(LLM)関数(Snowflake Cortex) • https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions 2024/7/30 東京リージョンでも
使えるようになった! でも日本語のページでは 紹介されていない…
本当に秒で使える? • 公式の記事にて… • https://www.snowflake.com/blog/use-ai-snowflake-cortex/?lang=ja 2024/7/30 ガチ?
本当に秒で使える? • やってみた (聞いてみた) 2024/7/30 Q : ガチ?
本当に秒で使える! • やってみた (聞いてみた) 2024/7/30 Q : ガチ? A :
ガチ!
本当に秒で使える! • アカウント作成直後から参照できる 2024/7/30 ガチ! と回答してくれたこの方(AIモデル)も 前準備なく本当に関数を実行しただけ
お試し用チャットボットを作ってみた • やってみたかったこと 1. 複数のモデルを使い比べてみたい • 選択肢が多くてどれがいいかよくわからない • どれがいいか使用感を比較してみたい 2.
過去のやりとりを考慮して回答させたい • 会話の流れ、記憶を実現する • 他のユーザーの過去ログは使わない • 任意のタイミングで記憶を消せるようにしておきたい 3. RAGを実現したい • 即興で前提となる情報を与えておいて、それを使用して回答させる • あらかじめPDFを準備、取り込んでおき、それを事前知識として与えておいてそれを使用して回答させる • 回答に必要な情報源(ドキュメント)がわかっていれば、モデルが使用する情報からその場で間引きたい 2024/7/30 モデルの数が 多い…
• Streamlit + LLM関数 + その他(Snowflakeオブジェクト) • Streamlit • Streamlit
in Snowflake (SiS) : WebUI • LLM関数 • CORTEX.EMBED_TEXT_768 (または EMBED_TEXT_1024) : 埋め込みベクトル生成 • CORTEX.COMPLETE : 質問回答 • その他(Snowflakeオブジェクト) • チャットのログを記録するテーブル • ドキュメントを取り込むステージ、UDF • ユーザー毎にチャットログを区別するための行アクセスポリシー • 誤って他ユーザーが自分以外のチャットログを 参照できないようにするためのガード お試し用チャットボットを作ってみた 2024/7/30 Snowflake Only
できたもの 2024/7/30
できたもの 2024/7/30 複数モデルと 一度にチャット RAG周りの設定
事前情報の活用 2024/7/30 その場で与える情報 事前情報を使って回答 (プロンプトは全モデル共通) 回答に必要な情報がないと 「分からない」と回答(してくれるモデルもいる)
過去のやりとりを考慮 2024/7/30 途中で情報を追加 過去のやりとりを 踏まえて回答 軌道修正を指示 忘れさせることもできる (TRUNCATE) 履歴をテーブルで管理
RAGを使用 2024/7/30 わからない(正直) OR デタラメな回答 未使用時
RAGを使用 2024/7/30 正解! わからない(正直) OR デタラメ 類似度算出 ドキュメントを 読み込んだテーブル 使用時
実物の中身
RAGを使用 2024/7/30 参照ドキュメントを変えて 違う質問をしてみる なんか違う… 実物の中身
RAGを使用 2024/7/30 参照ドキュメントを変えて 違う質問をしてみる ドキュメント 見直してこい! 実物の中身 なんか違う… 今度こそ正解!
ざっくりお披露目終了 2024/7/30 • …といったことがSnowflakeだけで比較的簡単に実現できるようになった!
2024/7/30 自作お試しアプリ使ってみての感想 • モデルの使い比べが簡単にできるのはいい! • 応答の仕方(特徴など)、有効なタスク・プロンプト・問いの確認 • 言語対応状況 (日本語の向き・不向き) •
モデル固有の仕様の発見 • 例 : reka-flash は role: system を受け付けない… 良さそう 回答が長い… なんか英語混じってる 日本語がちょっと変な場合もある