Slide 1

Slide 1 text

Teamsチャットボット開発: Azureを使って安全に社内文書を引用出来ます 大量データから該当箇所を取得するボットを構築する方法

Slide 2

Slide 2 text

会社名:株式会社 pipon 所在地:東京都中央区銀座 1-12-4N&E BLD.7階 代表取締役 北爪聖也(きたづめせいや) 自社サービス: ヘルスケアアプリの運営 会社経緯 2019年9月 株式会社piponを創業。 2020年4月 人工知能学会全国大会「単品定期通信販 売における次回購入予測モデルの検証について 」採 択 2020年7月 代表北爪の共著書籍『データ分析の進め 方及びAI・機械学習導入の指南』発売 2021年3月 バイエル薬品様 G4A Tokyo Dealmaker 2020に採択 2023年1月 ヘルスケアアプリ「ドクターボイス」リリー ス YouTubeアカウント データサイエンスや ChatGPTを発信 https://www.doctor-voice.com/ 株式会社piponについて https://www.youtube.com/channel/UCiTy5n gKrKHvDldg9e6YcMw Mission:テクノロジーで世の中を効率化する

Slide 3

Slide 3 text

会社概要 有名エンジニアの方とChatGPT利活用のイベントを行い メディアにも取り上げて頂くなど精力的に活動中です。 元マイクロソフト レジェンドエンジニア 中嶋聡様 共同イベント 自然言語処理 を応用した 自社サービス 研究開発領域に おけるシステム開 発 エンジニア向け 定期勉強会

Slide 4

Slide 4 text

piponの強み 発信やエンジニア組織運営の工夫によって 最新かつ高度な技術を保有し続けることが弊社の強みです。 メディアでの発信 優秀なエンジニアが発 信を受取り集まる 各々が学習し積極的に 共有する組織文化 最新技術の知見が 集合知として蓄積 提供価値の最大化

Slide 5

Slide 5 text

サービス紹介 高度な非言語データ解析や自然言語解析(ChatGPT活用等)を強みにした 売上向上の仕組み、業務効率化システム開発をご提供しております。 対応可能な課題と技術領域 ⇒高度な技術をもとに 幅広い分析、開発が可能 マーケティング 業務効率化 言語データ (ChatGPT) 貴社保有 非言語データ piponで対応可能な 領域 実績がある業界やテーマ 業界 テーマ 小売製造業 研究開発促進システム開発 コンサルティング 社内業務効率化システム開発 BPR 需要予測 製薬 マーケティング効果改善 自動車 データを用いた新規事業の PoC

Slide 6

Slide 6 text

今回の勉強会の目的 ChatGPTとTeamsなどのビジネスチャットを連携することで どんなボットを作れるのか、解説します。 RAGを説明する前に、一般的な自然言語解析からご説明します。 その後、簡単なデモを解説させていただければと思います。 例をご紹介したあとは、質問タイムが出来たらと考えています。

Slide 7

Slide 7 text

こういうことができます ● 社内文書から調べたい疑問をチャットベースで質問できる ● 質問に対する回答をボットが返してくれ、関連する社内文書を示してくれる メリット ● 疑問を解消するために、無駄に多くの資料に目を通す必要がなくなる ● 質問の意味を理解してくれるため、抽象的な質問でも文書を検索できる ● 指示すれば社内文書のな用を要約してくれる

Slide 8

Slide 8 text

技術構成 社内文書の 保存・検索 回答の生成 OpenAIへのリクエスト Cognitive Searchへのリクエスト Botのバックエンド Botのフロントエンド

Slide 9

Slide 9 text

デモ

Slide 10

Slide 10 text

フィードバックをダッシュボード化して運用改善 ダッシュボードを構築し、 利用数、悪い回答だったデータを集計し、運用改善を行う必要がある。

Slide 11

Slide 11 text

自然言語処理(NLP)とは? 自然言語処理(NLP)とは、人間が日常的に使用する言語をコンピュータで分析する技 術です。 自然言語処理(NLP)に必要なステップ STEP01 形態素解析・ 分かち書き 今日 / は / 塾 / に / 行っ / て / 、 / 数学 / を / 勉強 / し / た / 。 STEP02 ベクトル化 [0.02, 0.3, 0.5, 0.09, …] [0.4, 0.02, 0.65, 0.19, …] [0.6, 0.55, 0.2, 0.4, …] STEP03 機械学習

Slide 12

Slide 12 text

形態素解析・分かち書き 形態素解析とは、品詞等の情報に基づいて、意味のわかる最小単位に文章を区切るこ とを言います。 例文:「今日は塾に行って、数学を勉強した。」 形態素解析 ※ 分かち書きとは? 文章において形態素解析に従って語 の区切りに空白を挟んで記述するこ とです。

Slide 13

Slide 13 text

ベクトル化 ー CountVectorizer ー CountVectrizerは、文章を単語毎の出現回数の表現に変換する手法です。 文章 0 : Apple computer of the apple mark 文章 1 : linux computer 文章 2 : windows computer CountVectorizerの例 ベクトル化 単語毎の頻度を数値ベクトルへ変換 し分散表現を得るという非常に単純 な手法ですが、良い点は、文章の情 報を出来るだけ落とさずに表現する ことが可能な点です。 参考:機械学習 〜 テキスト特徴量(CountVectorizer, TfidfVectorizer) 〜 (https://qiita.com/fujin/items/b1a7152c2ec2b4963160)

Slide 14

Slide 14 text

ベクトル化 ー TF-IDF ー TF-IDFとは、TF(Term Frequency、単語の出現頻度)とidf(Inverse Document Frequency、逆文書頻度)という指標によって各単語を重み付けする手法です。 文章 0 : 私はオレンジとリンゴではリンゴが好きだ。 文章 1 : 私は以前は青森に住んでいたが、今は東京都に住んでいる。 文章 2 : 私は青森産のリンゴが好きだ。 TF-IDFの例 「私」は全文書に頻出する単語である一方、「オレンジ」は全ての文書の中で出現 頻度が少ないです。 頻出する単語と、出現頻度が少ない単語を重み付けして数値化すると下記のよ うになります。

Slide 15

Slide 15 text

ベクトル化 ー Word2Vec ー word2vecは、文章を解析し、各単語を200次元などの数値ベクトル表現に変換する手 法です。 単語をベクトル化することで、単語同士の意味の近さを計算することが出来ます。 ニューラルネットワークの隠れ層の重みの値を抽出することで非常に豊かな表現をする ことが可能になったため、単語の足し算・引き算なども行えます。 例:フランス - パリ + 東京 = 日本

Slide 16

Slide 16 text

ベクトル化 ー BERT ー BERT(Bidirectional Encoder Representations from Transformers)は、2018年10月 にGoogleのJacob Devlinらの論文で発表された自然言語処理(NLP)のための技術で す。単語や文の表現を生成する際に前後の文脈を考慮するため、これ以前のNLPモデ ルよりも高度な意味理解を実現します。 BERTは左記のように多くの層があり、最終層の 1つ前の層を取得する ことでEmbeddingとして取り扱うことができます。 参考:学習済みのBERTからEmbeddingを取得する (https://www.nogawanogawa.com/entry/bert_embedding)

Slide 17

Slide 17 text

Embedding API(OpenAI) OpenAIが提供している文章をベクトル化するAPI ベクトル化されたクエリと文章間の距離をCOS類似度等を用いることで計算可能 MODEL NAME TOKENIZER MAX INPUT TOKENS OUTPUT DIMENSIONS Usage text-embedding-ada-002 cl100k_base 8191 1536 $0.0001 / 1K tokens Second-generation models ※ ほぼすべてのユースケースで text-embedding-ada-002 を使用することが推奨されている

Slide 18

Slide 18 text

ベクトル化 分かち書きされたデータを数値ベクトルに変換する方法は様々な方法があります。 代表的なベクトル化の手法(sparse:疎ベクトル/dense:密ベクトル) 1. CountVectorizer(sparse) 文章を単語毎の出現回数の表現に変換する手法 2. Term Frequency - Inverse Document Frequency(TF-IDF)(sparse) 文書中の単語の重要度を評価する手法 3. Word2Vec(dense) 文章を解析し、各単語を200次元などの数値ベクトル表現に変換する手法 4. Bidirectional Encoder Representations from Transformers(BERT)(dense) 文脈や文章構造を考慮した手法 5. text-embedding-ada-002(dense) OpenAIが提供しているEmbeddingモデル

Slide 19

Slide 19 text

疎ベクトルと密ベクトルの違い ● 疎ベクトル ○ ベクトル要素の多くがゼロとなり、ベクトル次元が相対的に高いもの ○ 例えば「準備」の語彙が i番目の要素に、「用意」の語彙が j番目の要素に、別々で取り扱われるた め、類義語のような意図を加味する能力に劣る ○ 学習される文章中の語彙の統計情報を利用するシンプルな方法なため、ライブラリやモデルの違 いが検索精度の違いにそれほど寄与しない ● 密ベクトル ○ ベクトル要素の多くが非ゼロとなり、ベクトル次元が相対的に低いもの ○ 例えば「準備」と「用意」の語彙を含む概念が i番目の要素で取り扱われるため、類義語のような意 図を加味する能力に長ける ○ 意図を加味する能力は、同様の概念をいかにまとめるかというベクトル化モデルの良し悪しに大き く依存するため、ライブラリやモデルの違いが検索精度の違いに大きく寄与する

Slide 20

Slide 20 text

ベクトル検索とは テキストや画像などのデータを、機械学習モデルなどを利用してベクトルで表現し、ベクトル間 の距離を計算することで、類似するベクトルを検索する手法です。 Embedding [・・・] [・・・] [・・・] Vector [・・・] Vector Embedding data similarity calculation Query Result

Slide 21

Slide 21 text

ベクトル検索の利点 Breast cancer is related with gene mutation キーワード検索 検索した文章の意味を捉え ずに、Breast Cancerや mutationという言葉をベース に検索した論文が出てきま す。 ベクトル検索 Breast Cancerの病態と mutaionに関連する遺伝子 情報が記載された論文が出 てきます。

Slide 22

Slide 22 text

RAG(Retrieval Augmented Gneration)とは ● 文書をベクトル化してVector Storeに保存しておき、入力に関係しそうな文書を検 索してプロンプトに含めて、その内容を踏まえてLLMに回答させます 文書 社内文書 診療報酬明細 etc… 入力・質問 (プロンプト) 以下の文脈を利用して、質問の意図通 りに回答してください。答えがわからな い場合は答えを作ろうとせず わからないと答えてください。 {context} 質問:{question} 回答: ※大嶋さん(@oshima_123)の資料参考

Slide 23

Slide 23 text

HyDE(Hypothetical Document Embeddings) ● HyDEでは、入力を直接ベクトル化するのではなく、LLMに仮説的に回答を作らせ て、その回答をベクトル化して検索に使います 文書 社内文書 診療報酬明細 etc… 入力・質問 (プロンプト) LLM 仮説的な回答を生成 以下の文脈を利用して、質問の意図通 りに回答してください。答えがわからな い場合は答えを作ろうとせず わからないと答えてください。 {context} 質問:{question} 回答: ※大嶋さん(@oshima_123)の資料参考

Slide 24

Slide 24 text

Open Interpreterの追加機能も付けれます Open-Interpreterとは、自然言語の指示に対してコードを生成し、 それをローカルで動かすことができるツールです。 ChatGPT Plusで提供されているCode Interpreterのローカル版とイメージするとわかり やすいかと思います。

Slide 25

Slide 25 text

Code InterpreterとOpen Interpreterの比較 Open Interpreter Code Interpreter 動作環境 ローカル環境で動作可能 ChatGPTの画面上 使用可能なパッケージ ライブラリが使用可能 事前にインストールされたもののみ 実行時間とファイルサイズ 制限なし 実行時間とサイズに制限あり セキュリティ ユーザー確認が必要 ユーザー確認のプロセスが異なる 料金 無料(オープンソース)+OpenAI API使 用料金 月額20ドル(有料プラン) 多様なプログラミング言語に対応 Python、JavaScriptなど Pythonのみ bash、shell 動かせる 動かせない

Slide 26

Slide 26 text

最後に耳寄りな情報を LLM Tokyoという勉強会を開催しています。

Slide 27

Slide 27 text

No content