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
DevIO 2023 ChatGPTに独自データを付与してQAボットを作成する方法
Search
Najo
July 11, 2023
Programming
0
2.4k
DevIO 2023 ChatGPTに独自データを付与してQAボットを作成する方法
Najo
July 11, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
TypeScriptでもLLMアプリケーション開発 / LLM Application In Typescript
rkaga
5
1.3k
ServerAction で Progressive Enhancement はどこまで頑張れるか? / progressive-enhancement-with-server-action
takefumiyoshii
6
520
Three ways to use AI on Android: The Good, the Bad and the Ugly
marxallski
0
120
ソースコードを美しくたもつために ~コードレビューの認知限界を突破し、年間400リリースを達成する~
kotauchisunsun
1
790
教えて!スクラムコーチ品質とスピードのバランスはどうすりゃいいの?
pinboro
0
160
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
410
地方こそサーバーレス、その意義に迫るサーバーレスPHP / Serverless PHP: The Rural Areas, and Why Serverless PHP Matters
seike460
PRO
2
110
欠陥を早期に発見するための Software Engineer in Test とその重要性 / What is Software Engineer in Test and How they works
orgachem
PRO
19
2.5k
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
360
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
140
哲学史とモデリング
tanakahisateru
3
440
TypeScriptで使いやすいOpenAPIの書き方
yukimochi_dwango
1
970
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Docker and Python
trallard
35
2.7k
Creatively Recalculating Your Daily Design Routine
revolveconf
211
11k
Learning to Love Humans: Emotional Interface Design
aarron
268
39k
A Modern Web Designer's Workflow
chriscoyier
689
190k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
GitHub's CSS Performance
jonrohan
1025
450k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.5k
Happy Clients
brianwarren
92
6.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
What's in a price? How to price your products and services
michaelherold
238
11k
Code Review Best Practice
trishagee
56
15k
Transcript
2023/07 岩⼿テナージョン ChatGPTに独⾃データを付与して QAボットを作成する⽅法
©Classmethod, Inc. • ⾃⼰紹介 • 今⽇の流れ • LlamaIndex / LLMについての説明
• ハンズオン • Q and A ⽬次
©Classmethod, Inc. ࣗݾհ 新規事業統括部 Bizチーム 岩⼿ テナージョン • 趣味や技術検証を⽬的にコーディングを⾏います •
⽣成AIにハマっています(画像、動画なども含めて) • 何か新しいことを学ぶ時とコーディング⽀援などに ChatGPTを使うことが多いです。(ChatGPTスゴイ!!!)
©Classmethod, Inc. 今⽇の流れ 独⾃データ(PDFファイル)をLlamaindexに読み込ませて回答を得られることが Goalです。 想定受講者 • ChatGPTを使ったことがある • コーディング経験については初学者,または未経験
• 生成AIの業務活用に関心がある 到達⽬標 • LlamaIndexなどのLLM(Large Language Model)が何をやってい るかの概要を説明できる • 実際にドキュメントをLlamaIndexに読み込ませて回答を得る ことができる
©Classmethod, Inc. 前提 • Google Colaboratryを利⽤するため、Googleのアカウントが必要です。 • Open AIの API
Keyはスピーカーにて準備したものを利⽤いただきます (個⼈のものがあればそれでもOK / DEMOの間だけ利⽤可能なKeyです) • 前半10分程度で簡単なLLMとLlamaindexの説明を⾏い、後半20分ほどで ハンズオンの実施 + QAを⾏います。 • メールの利⽤ページポータルから該当するColabのNotebookを開きます ★⼀緒にメールからnotebookを開く作業を⾏いましょう︕
©Classmethod, Inc. Llama index / LLMについての説明
©Classmethod, Inc. Llama indexについての説明 - そもそもLLMってなに︖ LLM(Large language model)は、⽂章の処理が得意な機械学習(≒ AI)の
脳みそ(Model) 何がすごいのか︖ ⼈間っぽく幅広い様々なタスクを実⾏することができる • 質問に対して答えること • アイデアを考えること • 文章を作成すること 何が新しいのか︖ ⼤量のデータを学習して⼈間がチューニングすることで性能が格段に向上し た • めちゃくちゃ精度が高くて自然 • 汎用的なタスクが実行可能
©Classmethod, Inc. Llama indexについての説明 - Llama indexとは︖ Llama indexとはオープンソースのLLM⽤のライブラリです。⽣成AIにおいて独⾃データを活⽤した回 答を得たい時によく利⽤されます。
オープンソースであるため無料で 誰でも利⽤ができる ・多様なファイル形式に対応している ・Llama Hubから様々なLoaderの利⽤が可能
©Classmethod, Inc. Llama indexについての説明 - ChatGPTとの⽐較例 ChatGPT/GPTだけでは回答できない/ウソをついてしまう問題がLlamaIndexを利⽤することで解決できます(常 に100%正確ではないことに注意) 独⾃データを付与していないChatGPTでは不正 確な回答が出⼒される
独⾃データを付与した場合、正確な出⼒を得ることができる 回答︓Zennのコンテンツをエクスポートすることができます。記 事や本のコンテンツは・・・
©Classmethod, Inc. Llama indexについての説明 - ユースケースや活⽤例 ユースケース/活⽤例 利⽤データ 社内からの問い合わせに対する⼀次対応を⾏う ボットとして活⽤
社内のマニュアルや就業規則など 特定の領域に関するデータを付与 して、質問できるボットとして活⽤ 特定領域における規制や 法律に関わる情報 読むのが難しい⽂書情報を付与して、 情報検索やリサーチの効率化 特定企業の決算・IR情報 補助金や助成金などに関する情報 Llamaindexを利⽤することで問い合わせ対応や情報検索への時間を削減する ことができます。
©Classmethod, Inc. Llama indexについての説明 - 「学習」を⾏うのではなく「変換と検索」① Llamaindexの仕組みは独⾃データをまず読みやすい形へと変換を⾏います。 独⾃データ 分割されたデータ A
分割されたデータ B 分割されたデータ C 分割されたデータ D 分割する (ノードにする) No ⽂章の塊(ノード) 1 分割されたデータ A 2 分割されたデータ B 3 分割されたデータ C 4 分割されたデータ D 読み取りやすくする (Index化/ベクトル化)
©Classmethod, Inc. Llama indexについての説明 - 「学習」を⾏うのではなく「変換と検索」② 質問された内容に対して事前に準備したデータの内容と”どれだけ似ているか︖”を⽐較検索し て、回答を作成します*1。 ࣭ɿ000ʹ͍ͭͯڭ͑ͯ ฦɿ000˛˛˛Ͱɾɾ
No ⽂章の塊(ノード) 1 分割されたデータ A 2 分割されたデータ B 3 分割されたデータ C 4 分割されたデータ D 情報の検索を⾏い、 回答を⾃然⾔語で⽣成 *1 必ず正解を答えるわけではないため注意が必要
©Classmethod, Inc. Llama indexについての説明 - もう少し具体的になにを⾏っているか 質問︓OOOについて教えて 返答︓OOOは▲▲▲で・・ Embedding API
質問︓OOOについて教えて ⽂字列をベクトル(数値)に変 換する ベクトル データベース 変換したベクトル 類似している⽂章の⼀部 Completion API ⽂章の⼀部+質問の プロンプト 回答 処理の⼀例となりますが、以下のようにGPTとLlamaIndexは連携して処理を⾏っています。
©Classmethod, Inc. ここまで ”ざっくり” とイメージがつけばOKです︕ ハンズオンを実施しましょう︕
©Classmethod, Inc. ハンズオン
©Classmethod, Inc. ハンズオン実施の⽬的と⼿順 ⽬的 • 動作イメージをつかんでもらって、活⽤にいかしてほしい • 意外と簡単に実装が可能であることが伝わってほしい 実施⼿順 •
Google Colaboratryを開きます • 独⾃データをアップロードします(今回はダミーのデータを利⽤します) • Colabの内容を実⾏します • 質問してみて実際の動作を確認します • (もし時間が余れば)ファイル形式を変えての実⾏も⾏ってみましょう
©Classmethod, Inc. ハンズオンスタート︕