BigQuery と PaLM で進化するデータ分析

Google Cloud Japan
28 Jan 202441:18

Summary

TLDRこのスクリプトでは、GoogleCloudのビッグクエリープロダクトについて詳しく説明されています。最初にビッグクエリースタジオという新しい分析環境について、機能やコラボレーション機能などを紹介しています。次に、ビッグクエリーに統合されたllm(大規模言語モデル)の活用方法について解説しており、パルムモデルの呼び出し方法や、ラグ(Retrieval Augmented Generation)と呼ばれる機械学習による制度改善の手法などが説明されています。分析体験の向上や機械学習の活用など、ビッグクエリーの最新機能が分かりやすく紹介されています。

Takeaways

  • 🌐 BigQueryスタジオは、データ分析や機械学習開発のためのコラボレーション可能な次世代ワークスペースで、コラボエンタープライズとの統合やBigframesなどの新機能が追加された。
  • 💻 Bigframesパッケージでは、Pandasライクな書き心地でBigQueryの処理をオフロードできる。
  • 🤖 BigQueryからPaLM(大規模言語モデル)を呼び出し、データに基づいた回答を生成できるようになった。
  • ⚡ BigframesのMLモジュールでは、サイキットラーンライクなインターフェースを使ってBigQueryで機械学習モデルの開発ができる。
  • 🔍 BigQueryでは、リトリーバル対話補助(RAG)の技術を使い、データに基づいたプロンプトを生成してLLMの回答の精度を高められる。
  • ✍️ BigQueryでは、SQLのみでコードの生成や変換、要約などのタスクをLLMに実行させることができる。
  • 🔀 ヘルパー関数にリモートファンクションのアノテーションを付けると、BigQueryからクラウド関数としてデプロイされ、並列実行できる。
  • 📈 データプロファイリングやリネージの機能を活用すれば、より効率的なデータ分析が可能になる。
  • 🔐 コラボエンタープライズにより、セキュリティとガバナンスを備えたエンタープライズ向けのJupyterノートブック環境が提供される。
  • 💡 AIチャットコードアシスタントにより、コード生成、デバッグ、リファクタリングの補助ができる。

Q & A

  • ビッグクエリースタジオとはどのようなものですか?

    -ビッグクエリースタジオは、データ分析や機械学習開発を行うためのコラボレーション可能なワークスペースであり、開発環境とも呼ばれます。ここではノートブックを使ってPythonでデータ分析ができ、BigQueryとLLMの機能を組み合わせることができます。

  • ビッグクエリースタジオの主な機能は何ですか?

    -主な機能には、コラボエンタープライズとの統合、データプロファイリング機能、リネージ機能、PalmなどのLLMとの統合、コードアシスタント、BigQueryデータフレームなどがあります。

  • BigQueryデータフレームとは何ですか?

    -BigQueryデータフレームは、BigFrames.pandasやBigFrames.mlのようなPythonパッケージで提供され、PandasやScikitLearnのようなAPIを使用できます。裏側ではBigQueryで処理が実行されるため、大規模なデータセットでも分析できます。

  • PalmをBigQueryから呼び出す手順を教えてください。

    -手順は2つあります。1つ目は、最初に1回だけモデルを登録し、名前をつけて保存します。2つ目は、ml.generate_text関数を使い、登録したモデル名とプロンプトを渡して実行します。

  • LLMをより実用的に使うためのラグ(LLaMa Retrieval Augmented Generation)とは何ですか?

    -ラグは、LLMと情報検索技術を組み合わせた手法です。データをベクトル化し、ユーザーの質問に近いデータを検索してLLMに渡すことで、LLMの回答の正確性を向上させることができます。BigQueryではラグの実装がサポートされています。

  • ラグを実装する際の主なステップは何ですか?

    -主なステップは、1)エンベディングモデルを使ってデータをベクトル化し、ベクトルストアを作成する、2)ユーザーの質問をベクトル化し、ベクトル検索でプロンプトを拡張する、3)拡張したプロンプトをLLMに渡して実行する、となります。

  • ビッグクエリースタジオを使うメリットは何ですか?

    -ビッグクエリースタジオを使うメリットは、複数のツールを組み合わせる必要がなくなり、SQLとPythonだけで機械学習モデルの開発とデータ分析が行えるようになることです。また、データ転送の手間が省け、コンプライアンスの問題も回避できます。

  • ビッグクエリースタジオのコラボレーション機能について教えてください。

    -ビッグクエリースタジオでは、ノートブックを共有したり、バージョン管理したりできます。また、クラウドファンクションにデプロイされたヘルパー関数を呼び出して並列実行することもできます。

  • ビッグクエリースタジオで機械学習モデルを開発する際の利点は何ですか?

    -ビッグクエリースタジオでは、SQLだけで機械学習モデルの開発ができるため、複数のプログラミング言語を使い分ける必要がありません。また、データ転送の手間もかからず、コンプライアンスの問題も発生しにくくなります。

  • ビッグクエリースタジオでLLMを活用する場合の具体的なユースケースは何ですか?

    -具体的なユースケースとしては、コンテンツ生成、分類、クエリ生成、変換、要約などがあげられます。LLMをデータに適用して様々な処理を行うことができます。

Outlines

00:00

🙋 自己紹介と本セッションの概要

この段落では、講演者が自己紹介を行い、本セッションの内容について概説しています。講演者はGoogleのデータアナリティクススペシャリストで、通常はBigQueryやVertexAIなどのプロダクトを紹介していると述べています。今回のセッションでは、BigQueryの新機能であるBigQueryスタジオと、BigQueryにおけるPaLM(大規模言語モデル)の統合について説明する予定であると説明しています。

05:00

🖥️ BigQueryスタジオとコラボレーション環境の紹介

この段落では、BigQueryスタジオとコラボエンタープライズについて説明しています。BigQueryスタジオは、データ分析や機械学習の開発を行うためのコラボレーション可能なワークスペースで、GoogleのJupyter Notebookベースの環境であるコラボエンタープライズと統合されています。このコラボレーション環境では、SQLとPythonノートブックの両方を利用できるようになり、機械学習の開発が容易になったことが説明されています。

10:03

📊 BigQueryでのデータ分析の実演

この段落では、実際にBigQueryスタジオを使ったデータ分析の様子が動画で紹介されています。Pythonのパッケージダウンロードログから、よくダウンロードされているパッケージを集計するというユースケースが設定され、BigQueryスタジオの機能を使ってデータの可視化、リネージの確認、データプロファイリングなどを実演しています。さらに、PythonのノートブックからBigQueryにアクセスする方法も紹介されています。

15:05

🧠 PaLMの統合とSQLからの利用方法

この段落では、BigQueryへのPaLM(大規模言語モデル)の統合と、SQLからPaLMを呼び出す方法が説明されています。PaLMモデルを登録し、ml_generate_text関数を使うことで、BigQueryのデータをプロンプトとしてPaLMに投げることができます。具体例として、都市名からその国名を返すようなプロンプトをPaLMに実行させる方法が示されています。さらに、PythonのノートブックからBigQueryのPaLMモデルを呼び出す方法も紹介されています。

20:07

🔍 LLMのプロンプト拡張と実用性の向上

この段落では、大規模言語モデル(LLM)の実用性を高めるための技術であるラグ(Retrieval Augmented Generation)について説明しています。ラグはエンベディングとベクトル検索を組み合わせることで、LLMのプロンプトを実データに基づいて拡張し、より適切な回答を生成することができます。具体例として、Pythonのパッケージをビッグクエリーのデータからベクトル化し、ユーザーの質問に最適なパッケージを検索して、LLMのプロンプトに追加する方法が示されています。

25:09

🌐 ラグによるデータ駆動型のLLM実演

この段落では、前の段落で説明したラグの技術を実際に適用する様子が動画で紹介されています。Pythonのパッケージのデータをエンベディングしてベクトルストレージを作成し、ユーザーの質問をベクトル化して最適なパッケージを検索します。そして、検索結果をLLMのプロンプトに追加して、適切な回答を生成することに成功しています。このプロセス全体がSQLのみで実行できる点が強調されています。

30:11

✨ BigQueryの新機能とLLMの活用のまとめ

この段落は、本セッションのまとめとなっています。BigQueryスタジオの新機能と、LLMの統合によってBigQueryの可能性が広がったことが強調されています。BigQueryスタジオでは次世代型のデータ分析が可能になり、LLMは様々な形でデータに適用できるようになったことが述べられています。最後に、本セッションで紹介しきれなかったLLMのユースケースとして、クエリ生成や変換、要約などの活用方法が挙げられています。

35:13

🙏 終わりの挨拶と感謝の言葉

この段落は、セッションの終わりの挨拶と感謝の言葉が述べられています。講演者は、本セッションの内容が走り過ぎた部分があったことを認め、質問があればアクサスピーカーで対応することを呼びかけています。最後に、参加者に対して感謝の言葉を述べ、セッションを締めくくっています。

Mindmap

Keywords

💡ビッグクエリースタジオ

ビッグクエリースタジオは、GoogleCloudが提供するデータ分析や機械学習開発のためのコラボレーション可能な統合開発環境です。スクリプトでは、分析体験の向上や新機能の統合を目的として紹介されています。この環境を使うことで、複数のツールを使い分ける手間が省け、データ分析とモデル開発を一元的に行えるようになります。

💡llm

llm(Large Language Model)は、大規模な言語モデルを指します。スクリプトでは、ビッグクエリーとllmが統合されたことで、SQLだけでllmを呼び出して様々な処理ができるようになったと説明されています。具体的には、パルムというllmをビッグクエリー上で実行し、データに基づいた質問への回答生成やコード生成などが可能になったと紹介されています。

💡コラボエンタープライズ

コラボエンタープライズは、Googleがエンタープライズユーザーのためにセキュリティやガバナンス機能を統合したジュピターノートブック環境です。スクリプトによると、ビッグクエリースタジオでこのコラボエンタープライズが使えるようになり、ノートブックでの開発が可能になったと説明されています。つまり、SQLとPythonの双方を使ってデータ分析や機械学習の開発ができるようになったということです。

💡ビッグフレーズ

ビッグフレーズは、ビッグクエリーを活用したPythonのパッケージの総称です。スクリプトでは、パンダスやサイキットランのようなAPIを提供するBIGframes.pandasやBIGframes.mlなどが紹介されています。ビッグフレーズを使うことで、PythonでのPandasのような書き心地で、裏側ではビッグクエリーに処理をオフロードできるため、大規模データの分析が可能になります。

💡埋め込み

埋め込み(エンベッディング)とは、テキストなどのデータを数値ベクトルに変換する処理のことです。スクリプトでは、llmをより実用的に使うための技術である「ラグ」について説明する際に、この埋め込みの概念が紹介されています。テキストの意味を理解した上でベクトル化することで、後のベクトル検索で類似度を測ることができます。

💡ベクトル検索

ベクトル検索とは、埋め込みによって得られたベクトルデータ同士の類似度を計算し、ユーザーの質問に近いデータを検索する技術のことです。スクリプトでは、ラグの要素技術としてこのベクトル検索が紹介されており、埋め込みされたデータとユーザー質問のベクトルの距離を測ることで、適切なデータを見つけ出せると説明されています。

💡ラグ

ラグ(Retrieval Augmented Generation)は、llmと情報検索技術を組み合わせる手法の総称です。スクリプトでは、llmの回答の制度を改善するために、ラグのアーキテクチャとして埋め込みとベクトル検索を使う方法が詳しく説明されています。具体的には、ユーザーの質問を埋め込み、そのベクトルと既存のデータベクトルの類似度を計算することで、適切なデータを検索し、llmにフィードバックすることができます。

💡プロンプト

プロンプトとは、llmに与える入力の質問や文章のことを指します。スクリプトでは、ユーザーの質問に適したPythonパッケージを見つける際、最初は「BQエンベッディングを扱うにはどのPythonパッケージがいいですか?」というプロンプトを与えていますが、ラグを使うことで、類似の既存データを追加して拡張されたプロンプトを作成し、より適切な回答を得られるようになったことが説明されています。

💡データプロファイリング

データプロファイリングとは、データセットの統計的な特徴を把握する作業のことです。スクリプトでは、ビッグクエリースタジオでデータプロファイリングの機能が使えるようになったことが紹介されています。具体的には、カラムごとの最大値、最小値、欠損値の割合など、データセットの概要を把握できるようになり、分析の効率が上がるとされています。

💡リネージ

リネージとは、データの出所や加工履歴を追跡できるメタデータのことです。スクリプトによると、ビッグクエリースタジオでは、データのリネージ情報を参照でき、そのデータがどのようにして生成されたのかを確認できるようになったと説明されています。データのガバナンスや監査の観点から重要な機能であり、分析の際にもデータの信頼性確認に役立つとされています。

Highlights

ビッグクエリーのコンソールにビッグクエリースタジオという新たな機能が加わり、より素敵な分析体験が可能になった。

ビッグクエリーとLLMが統合され、LLMの質問に答えられるようになった。

LLMと情報検索技術を組み合わせた「ラグ」と呼ばれる技術により、LLMの実用性が大きく向上する。

ラグはエンベディングとベクトル検索の2つの要素技術から構成される。

ビッグクエリーでは埋め込みとベクトル検索をサポートし、ラグを実装できる。

ビッグクエリースタジオでは、データ分析や機械学習開発を行うコラボレーション可能なワークスペースが提供される。

コラボエンタープライズとのインテグレーションにより、Googleが提供するエンタープライズ向けのJupyterノートブック環境が使用可能。

ビッグクエリーデータフレームズを使うと、Pythonの書き心地でビッグクエリーのパワーを利用できる。

ビッグクエリースタジオではコラボエンタープライズ上でPythonのノートブックが書ける。

PALMモデルをBigframesを介して呼び出すことができる。

ビッグクエリーからPALMを呼び出して質問に答えさせることができる。

Bigframesを使えば、Pythonのパンダスのような書き心地でLLMの開発ができる。

ヘルパー関数にリモートファンクションズアノテーションをつけると、関数がクラウドファンクションにデプロイされる。

ビッグクエリーでSQLだけでラグの実装が可能。

ラグを使うことでLLMの精度を上げられる。

Transcripts

play00:00

[音楽]

play00:08

はい皆さんこんにちはそれではセッション

play00:10

の内容の方ですね始めさせていただければ

play00:12

と思い

play00:14

ます改めまして自己紹介させていただき

play00:17

ますと私GoogleCloudのデータ

play00:20

アナリティクススペシャリストをやって

play00:21

おります村上優馬と申します普段はですね

play00:24

ビッグクエリーですとかバーッAIといっ

play00:27

たプロダクトをえっとま皆様に紹介させて

play00:31

いただいているんですけれども今回の

play00:33

セッションもですね内容はこれらの

play00:35

プロダクトに関連したものになっており

play00:37

ますではですね早速えセシの実際の内容

play00:41

ですね入っていきたいと思い

play00:43

ますでこのセッションでは大きく分けて2

play00:47

つのことについて説明していきたいと思い

play00:50

ます1つ目がビッグクエリーが提供する

play00:53

新たな分析体験こちらなんですけれども

play00:57

ビッグクエリーのコンソールにですねま

play00:59

もうすでににお気づきの方いらっしゃるか

play01:01

もしれないんですけどビッグクエリー

play01:03

スタジオという新たな機能が加わりました

play01:06

こちらでですねまより素敵な分析体験が

play01:09

データ分析体験が可能になりましたので

play01:12

これどのような分析体験が可能になったの

play01:14

かっていうところを動画を交えながら紹介

play01:17

したいと思っています2つ目がllmです

play01:20

ねどの統合でまllmが何かということは

play01:24

もうなあの改めて説明するまでもないとは

play01:27

思うんですけれどもビより元々機械学習の

play01:30

ケイパビリティはあったんですけれども

play01:32

ビッグクエリーとそれからllmですね

play01:35

それがコードに統合されるようになったん

play01:37

ですねなのでllmの水論はもちろん

play01:40

できるようになったんですけれどもそれ

play01:43

から例えばラグと呼ばれるllmの実用性

play01:47

をですね大きく引き上げるようなま技術

play01:50

ですねそれをSQLだけで組むことも

play01:52

できるようになりましたのでそれでどんな

play01:55

ことができるのっていうところも説明して

play01:58

いきたいと思いますでは1つ目ですね新た

play02:02

な分析体験新たな分析体験ってなんやねっ

play02:05

ていう感じなんですけれども説明していき

play02:07

ましょうままずビッグクエリーに限らず

play02:10

もうちょっとだけ大きなスコープの話をさ

play02:12

せてください機械学習の機能って

play02:15

Googleクラウのソリューション群

play02:17

色々なところに統合されていますま機械

play02:20

学習の統合開発ソリューションであります

play02:22

ねえっとバーッAIはまもちろんなんです

play02:25

けれどもalidDBですとかスパナーと

play02:28

かですねちょうど隣のルームでなんか

play02:30

SQLの話してますけれどもまそちらで

play02:33

あのそちらではえっとまそのデータに対し

play02:36

てバテのモデル適用して水論結果を

play02:38

ビジネスのデータベースですねに引き回し

play02:41

てまアプリケーションで活用するっていう

play02:43

ことができるようになっておりますしそれ

play02:45

からえっとBIツールとしても使用可能な

play02:48

ルッカですねルッカでは機械学習の推論

play02:52

結果をビジネスアプリケーションに

play02:54

組み込むといった使い方ができるようにも

play02:56

なっておりますでビッグクエリーですねま

play02:59

まビッグクエリーも機械学習機能というの

play03:01

は先ほど言ったように統合されておりまし

play03:04

てえっとビッグクエリmlと言ってSQL

play03:07

で機械学習モデル開発できるものがあっ

play03:09

たりですとかvtexAIのモデルを開発

play03:12

できたりとかあ接続できたりとかそういう

play03:15

ことってあったんですけれどもえっとま

play03:18

このビッグクアリーを使って実際に機械

play03:20

学習モデル作る時のことを考えてみると

play03:24

SQLでなん度ま色々なことできますって

play03:27

言っては実際のところ複数のツールを

play03:29

組み合わせながら開発してい

play03:31

るっていうのがま正直実情じゃないかなっ

play03:34

て思っていますですと複数のツール

play03:37

使い分けるとですねあのまそれぞれの

play03:40

ツール熟する必要があったりとか複数の

play03:43

プログラミング言語まパえっと

play03:46

PythonとSQLですかねま

play03:48

使い分ける必要就職する必要があったり

play03:50

データ転送する必要があったりしましてま

play03:53

時間と手間もかかりますしデータ転送と

play03:56

なってくるとコンプライアンス上の問題も

play03:58

生じたりはしますかね

play04:00

でそこを解決するために生まれた新たな

play04:03

分析体験を提供するものこれがビッグ

play04:06

クエリースタジオというものになってい

play04:08

ますビッグクエリースタジはですねデータ

play04:11

に関わる皆様がデータ分析や機械学習開発

play04:15

を行うために作られたコラボレーション

play04:18

可能なワークスペースとなっていますま

play04:21

開発環境と言い換えてもいいかもしれない

play04:23

ですね

play04:24

こちらですねま先週よりえっとプレビュー

play04:28

の申し込みもなくですねね基本的に皆様

play04:30

もう実はすでにお使いいただけるように

play04:32

なっているんじゃないかなとは思ってい

play04:34

ますでビッグクエリースタジオとですね

play04:37

あの一言で言っても実は色々な機能がつい

play04:40

ておりましてまた1つ大きなものがコラボ

play04:44

エンタープライズとのインテグレーション

play04:46

になっておりますコラボエンタープライズ

play04:48

はですねGoogleが提供する

play04:50

エンタープライズ向けのジュピター

play04:52

ノートブック環境になっておりますここに

play04:55

いる皆様ってコラボラトリーという環境を

play04:58

聞いたことってあるっていう方は

play05:00

いらっしゃいますかね結構データまいくつ

play05:03

か手上がってけてくださいましたね

play05:05

ありがとうございますまデータ分析界隈の

play05:07

方々だったらご存知なんではないかと思う

play05:09

んですけれどもえプランにもよるんです

play05:11

けど無料から使えるノートブック環境で

play05:14

ですてねえっと確めてきたのは

play05:16

インスタンスの管理が必要ないことですね

play05:18

ま必要な時に計算回す必要がある時にラン

play05:21

タイムに接続してそこで計算回すっていう

play05:24

要するにインスタンス管理のする必要が

play05:26

なくてえっと計算リソースだけサクっと

play05:29

ランタム接続して使えるんでま管理の手間

play05:32

が少なくてノートブック開発に非常に便利

play05:35

だよっていう環境でしたこれにですね

play05:38

セキュリティですとかガバナンスですとか

play05:40

そういった機能をえっと統合して

play05:43

エンタープライズ向けでも使用したのが

play05:45

コラボエンタープライズですでこのコラボ

play05:47

エンタープライズがビッグクエリーから

play05:49

使えるようになりましたっていうところ

play05:51

ですねじゃこれ何ができるようになったか

play05:54

と言とこれまでビッグクエリーのコソー

play05:56

ルってあのSQL書いてあったと思うん

play05:58

ですよ当然だと思うんですけどそこで

play06:00

ノートブックも書けるようになっちゃい

play06:02

ましたというのがこのえコラボ

play06:04

エンタープライズとのインテグレーション

play06:06

になっております後ほど紹介したいと思い

play06:09

ますとそれからですねコラボえっとこれが

play06:12

コラボエンタープライズだったんです

play06:13

けれどもこれまでデータプレックスで提供

play06:16

されていたデータプロファイリングの機能

play06:19

ですとかデータ品質ですとかリネージの

play06:21

機能がコンソールからも参照できるように

play06:24

なりましたこれがどう便利なのかも後で

play06:26

紹介させてくださいそれからAIに

play06:29

チャットコードアシスタント要するに

play06:31

コード生成ですとかデバッグですとか

play06:36

リファクタリング補助してくれるような

play06:38

機能もこちらについていますそして最後

play06:41

ですねちょっと注目したいユニークな機能

play06:44

がありましてこれがビッグクエリーデータ

play06:46

フレイムズというものになっています普段

play06:49

のPythonですとPythonの

play06:51

パンダズやサイキットラーンまデータ分析

play06:54

されていてPythonお使いだったら

play06:56

使ってる方は多いんじゃないかと思うん

play06:58

ですけれどもその書き心地でビッグ

play07:01

クエリーのパワー使えるようになっちゃい

play07:03

ましたというものですここをもう少し

play07:05

詳しく説明してみ

play07:07

ましょうビッグクエリーデータフレーズは

play07:10

ですねビッグフレーズというPython

play07:12

のパッケージで提供されます普段のパンス

play07:15

ですとかサイキットランのような書き心地

play07:17

でコードを書けば裏側でビッグクエリー

play07:20

ですね処理がオフロードされて極めて巨大

play07:23

なデータセットであっても普通の

play07:25

Pythonの知識だけでデータ分析でき

play07:27

てしまうというものになってます

play07:29

パッケージはですねご覧のように2つあり

play07:31

ましてBIGframes.pantas

play07:33

っていうやつとドmlっていうやつを提供

play07:36

していますねドpantasが

play07:38

pantaslikeえっとドamlが

play07:40

サキRanlikeなAPIを提供する

play07:42

ものになってますどちらを使ってでもです

play07:45

ね裏側ではビッグクエリーが実行される

play07:47

ようになっておりますこれまでの

play07:50

ノートブック開発の場合ノートブックの

play07:53

メモりに乗らないような巨大なデータを

play07:55

分析したいっていう場合まそうですねあの

play07:59

いわゆる一般的なのえライブラリーでは

play08:01

ちょっと取り扱いにくくてデータサイズに

play08:04

合わせてローカルディスクにキャッシュと

play08:06

して吐き出したりとかあと分散クラスター

play08:09

作ったりとかやる必要があったんです

play08:11

けれどもま正直そうですね知識が必要です

play08:15

しデータサイズに合わせてそれらの実装を

play08:18

組み合わあの切り替えていくのって

play08:20

ちょっと面倒くさいんですよねていうのが

play08:23

実情があるんですけれどもこちらですと

play08:25

インポート分を書き換えていただければ

play08:28

普通のパンダからえBIGframes.

play08:31

pandasに書き換えていただければ

play08:33

ロジックそのまま実際の処理はビッグ

play08:35

クエリーにオフロードされるというような

play08:38

使い方ができてしまいます特別な知識必要

play08:41

ないですしローカルマシンのえっとメモリ

play08:44

とか気にする必要がまなくなるといった

play08:46

ものになってい

play08:47

ますじゃあですねといっても言葉で説明し

play08:50

ていても限界があるので実際の動画を交え

play08:54

ながら説明していきたいと思います今回な

play08:57

んですけどまありそうなシナリオですです

play08:59

かねPythonのパッケージの

play09:01

ダウンロードログがありますとその中から

play09:03

よくダウンロードされているパッケージが

play09:05

どれか集計しようっていうものですねで

play09:08

ビッグクエリスタジオの機能を最大限活用

play09:10

してここの分析進めていきましょうという

play09:13

ものになっていますではどんな感じで分析

play09:16

できるのか動画流しどうかお見せしながら

play09:18

見ていきたいと思い

play09:21

ますはいですねまずあとあるテーブルを

play09:26

突然渡されたと想定しましょうデータ分析

play09:30

者の方でしたらねこんなことあるんじゃ

play09:32

ないですかねなんか分析してくれって突然

play09:34

あのテーブルだけ送られてくる

play09:36

やつでまあしょうがないんでそうですね

play09:39

プレビューから見てみましょうか

play09:41

プレビュー見るとですねこのような形で

play09:44

どうもpyonパッケージのダウンロード

play09:46

ログが行ごとに残ってるデータセットっ

play09:48

ぽいなっていうことまでは分かりますかね

play09:51

まここまではこれまでもできていたことな

play09:53

んですけどじゃあ次どういう分析をし

play09:56

ましょうかそうですね例えばなんですけど

play09:59

ここに出てきたリネージっていうものを見

play10:02

てみましょうこれ何かと言うとテーブルの

play10:04

依存関係が分かりますねここから分かる

play10:07

ことは例えばこのテーブルが色々なえ他の

play10:11

テーブルから参照されていることていう

play10:14

ことですかねそれからもう1つ分かること

play10:16

がありましてこの対象のテーブルっていう

play10:19

のはどうも2つのテーブルから生成されて

play10:21

いるようだっていうこととえっと具体的に

play10:25

どのようなSQLを持ってして変換え生成

play10:28

されたのかっていうことが分かりますこう

play10:30

するとですねテーブルのえっと由来って

play10:33

いうのが分かりますのでまガバナンス的に

play10:36

も有利ですし純粋に分析ですねがあの分析

play10:40

始める時に有利になるんじゃないかなと

play10:42

便利になるんじゃないかなと思っています

play10:45

でちなみにこのビデオの場合なんですけど

play10:48

まおこれ見ると大元のデータ違うテーブル

play10:52

の名前とかが確認できるのでえこのテーブ

play10:56

ルって誰が管理してるのあこれビッグり

play10:59

パブリックデータセットのえテーブルだっ

play11:01

たのねっていうことが分かってその大元の

play11:04

テーブルのえ検索して大元のテーブルの筋

play11:09

を見つけてっていうことができますねま

play11:12

全てにおいて実ビジネスにおいて全てこう

play11:14

いうことができるかとは限らないんです

play11:16

けれどもまこのような感じでどこ由来の

play11:19

テーブルなのかが分かりやすいようになっ

play11:20

てきましたさてリネージ見た後は次データ

play11:24

プロファイルっていうのも見てみましょう

play11:26

かデータプロファイルがどういったものな

play11:28

のか

play11:29

これは正直なところを見ていただいた方が

play11:31

手取り早い気がするんですけれどもカラム

play11:34

ごとの特徴ですね最大値最小値品値やそれ

play11:38

から欠損値の割合とかですかねが分かるも

play11:41

のってなっていますこれでですねま例えば

play11:45

SQLでミとかMAXとかわざわざ叩か

play11:47

なくても行の最小値最大値分かりますし

play11:50

あとデータの意外なインサイトとかも

play11:52

分かり分かるかもですねデータの傾向から

play11:55

それから欠損値も分かるんでこのデータ角

play11:58

を間違ってねかなんかID入ってないと

play12:00

いけないのになんかID欠損してんだけど

play12:03

渡してくれたそのデータ本当に大丈夫です

play12:06

かみたいなことにすぐ気づけるかもしれ

play12:08

ないですということでデータ分析される際

play12:11

ですね是非この辺りの機能を使いながら

play12:14

えっとま分析の効率上げていただければと

play12:18

思っておりますということでリネージと

play12:21

データプロファイルの機能まで紹介してき

play12:24

たんですけれどもこの辺りまで見たらそう

play12:27

ですねそろそろ分析しみましょうかで分析

play12:31

する際ってまこれまではSQL書いていた

play12:35

と思うんですけどここでPython

play12:36

ノートブックをですね選択できるように

play12:39

なっているんですよ

play12:40

シレットでPythonノートブックとえ

play12:44

選択しますとですねもうこの名の通りなん

play12:47

ですけれどもPythonのノートブック

play12:49

の画面が表示されましたということでここ

play12:51

でPython使ってデータ分析できる

play12:54

ようになるんですランタイムに接続して

play12:56

ですねPythonのコードここで回せ

play12:58

ちゃうわけですよまあでここから0から

play13:02

買っててもいいんですけれどもせっかくな

play13:04

ので今回はですね用意させていただいた

play13:06

ノートブックで話進めさせていただければ

play13:09

と思いますまず最初えっと先ほど紹介した

play13:13

bfam.パンスをですねインポートし

play13:17

ましょうこれがパンスライクなAPIを

play13:19

提供するものでしたそうしたらですね今度

play13:22

えデータを読み込んでみましょうえっと

play13:25

RECあ違うREBgbqの後にビッグ

play13:29

フレームえ違うビッグクエリーのテーブル

play13:32

のえ名前ですねをやるとビッグクエリーの

play13:37

データを読み込めます裏側ではもちろん

play13:39

ビッグクエリーがクエリを実行してるん

play13:41

ですけどどんなクエリを実行してるのかが

play13:44

気になるっていう場合あると思います

play13:46

そんな時はですねここにオープンジョブっ

play13:48

ていうリンクが出ているのでこちら押して

play13:50

いただくとですねビッグフレーズがどう

play13:53

いうSQLを実行しているのかが分かり

play13:56

ますまこんな感じででですね今回テーブル

play13:59

全体を読み込んでるだけなので変換処理と

play14:02

かやってないんですけれどもまあのえっと

play14:05

ビッグフレーズのセッション専用の

play14:07

テンポラリーテーブルを作ってるんだなっ

play14:09

ていうことがなんとなく読みたりたりし

play14:12

ますはいえっとそうですねじゃあデータ

play14:16

読み込んだ後はデータの先頭20業を表示

play14:19

してみましょうかそんな時はえパンダと

play14:22

同じヘッドメソッドで押せばこんな感じで

play14:25

表示してしまいますもうパンダストこの先

play14:29

は同じです

play14:30

ねじゃあそうですね表示した後は行で

play14:34

絞り込んでみましょうかビッグフレーム

play14:36

スっていうのを含むえっと名前に含むあ

play14:41

名前の行がビッグフレーズである行ですね

play14:44

ところをえっと選択したいとなるとまこの

play14:47

ような記法で例えばできますねパンタスっ

play14:51

てあの行とか列の選択方法色々な流派って

play14:55

言うんですかねがあると思うんですけれど

play14:56

もま大体の流派はえサポートしており

play15:01

ますさてそうしたらまダウンロード数を

play15:04

パッケージごとにネームごとにカウントし

play15:07

たいんだったらグループバしてサムすれば

play15:09

オですねまここも正直もうビッグフレーズ

play15:13

の説明というよりはパンタの説明してる

play15:15

感じになってきたんですけどそのあのこれ

play15:17

までのパタスと同じようにえ集計できます

play15:21

集計できたけどあれ結果がなんか変だぞと

play15:24

えっとパンダにもあるんですけれどもなん

play15:27

とビッグフレーズパンタのインデックスの

play15:30

使用もしっかりサポートしておりますので

play15:32

えっとインデックスの使用に気をつけ

play15:35

ながらえソトする必要がありますとこの

play15:38

辺りあのパンタス最初に触った方はつづか

play15:41

れたのかと思うんですけれどもビッグ

play15:43

フレーズしっかりパンダと同じ挙動をし

play15:46

ますのでえ皆さん開発の際はご注意

play15:48

くださいということでインデックスを適切

play15:52

に設定してしたらえ相当ができましたね

play15:55

1番多くダウンロードされている

play15:57

パッケージはボ3うんまあそりゃそうだ

play16:00

なっていう感じねですねていうことが集計

play16:03

して分かりまし

play16:05

たさてっとまこのような感じでですね普段

play16:09

のパンタスを書いているような感覚で実超

play16:12

大量のデータビッグクエリーに処理させる

play16:15

ことができるこれがビッグフレイムズの

play16:17

威力になっておりますですので普段の

play16:20

データ分析の際にこれまでパンスを

play16:23

読み込んでいたところをbig

play16:25

frames.pantasに書きあの

play16:27

書き換えて見ていただければいいんじゃ

play16:30

ないかとは思っており

play16:32

ますさてというところなんですけれども

play16:36

このノートブックには実は便利な機能まだ

play16:39

いくつかあるんですよ

play16:41

ねそうですね例えばなんですけれども

play16:46

例えばこのデータフレームはですね

play16:49

サマリーというカラムにパッケージの説明

play16:52

が入ってるんですよね表示するとうん

play16:55

こんな感じでカラムへのアクセスもドで

play16:58

いつもの感じでできるんですけれども今

play17:01

ちょっとですね気軽にノートブック

play17:03

書き換えちゃったんですよねリバートし

play17:05

たいとかいう時にもちろんちゃんとできる

play17:08

ようになっておりますよく見るとですね

play17:10

左下にですねアクティビティというタブが

play17:13

生えておりましてこれをクリックすると

play17:17

データフレーム違うノートブック

play17:19

の編集履歴をリフを取ることができます

play17:24

ノートブックってえっとjonオリジナル

play17:27

はjon形式になっていてで結構人間の目

play17:29

では見にくいんですけれどもこのように

play17:31

ですね差分をしっかりとあの人間が見

play17:33

やすい形で表示してくれるので結構あの何

play17:37

でしょうバージョン管理しやすいんじゃ

play17:39

ないかなと思っておりますあちなみにこの

play17:42

バージョン管理の機能はですねあの密かに

play17:44

なんですけれどもノートブックだけじゃ

play17:46

なくてえっとセブドクエリーですかね保存

play17:48

したクエリーにも適用されるようになっ

play17:50

てるのでご確認いただければと思っており

play17:53

ますあなのでバージョンのリストはもこの

play17:57

ようにできます

play18:01

とまあとはですねあのリストアだけじゃ

play18:05

なくてノートブックの共有もですねできる

play18:08

ようになっていてノートブックの共有の

play18:11

仕方は簡単ですまこのように共有したい

play18:14

相手のメールアドレスを入力していただい

play18:17

てその後にまどのような権限を与える

play18:20

かっていう権限の種類ですねを選択

play18:23

いただければノートブック共有できますの

play18:25

で例えばですけど手順書とかをえっとこれ

play18:29

で共有していただけるとなんか定型的に

play18:33

実行すること必要がある学習処理とかです

play18:35

play18:37

えっとがえっと共有しやすくなるんじゃ

play18:40

ないかなとは思っており

play18:42

ますはいということでここまでがビッグ

play18:45

クエリースタジオのお話だったんです

play18:47

けれどもここからは少し角度を変えてです

play18:50

ねllmを統合したことでビッグクエリー

play18:53

の可能性がどのように変わるのかっていう

play18:56

ま2つ目のえっとトピックに入っていき

play18:59

たいと思い

play19:00

ますまず大きなアップデートですねビッグ

play19:04

クエリーからパルムを呼び出せるように

play19:05

なりましたはいvtexAI上にホストさ

play19:09

れている我々の大規模言語モデルパルム

play19:12

ですねここにビッグクエリー上のデータを

play19:14

プロンプトにして入力しその結果得ること

play19:17

ができるようになりましたと言っても具体

play19:19

的にどうやって呼び出せばいいのかその

play19:21

手順も紹介したいと思いますスライドには

play19:25

書いていないんですけどパルムを呼び出す

play19:27

にはま密には事前にコネクションを作成

play19:30

する必要がありますこれはアクセス権限を

play19:32

コントロールする必要があるもので今は

play19:35

このスライドでは事前にえ設定済みとし

play19:38

ましょう権限の設定が終わっていれば

play19:40

呼び出す手順は2つです1つ目まずは

play19:43

モデルの登録ですね最初に1回だけ必要で

play19:47

モデルがvtexAI上でホストされてい

play19:50

て色々なバリエーションいろんな

play19:51

バージョンがあるんですよなのでその

play19:54

モデルとどれか1個を選んで名前をつけて

play19:56

保存みたいなことをやってあげるわけです

play19:58

ねそうすることによって特定のモデルを後

play20:01

からあの同じように呼び出すことができ

play20:03

ますでモデルの保存が終わったら2つ目

play20:06

ですねmlジェネレートテキスト関数って

play20:10

いうものを使いますこれでパルムにえっと

play20:13

指示を投げることができます第1引数ま

play20:16

えっとmlジェネレートテキスト関数は3

play20:18

つの引数を取るんですけど第1引数は

play20:21

先ほど保存したモデルの名前第2引数は

play20:24

ちょっとだいぶいかついあの見た目になっ

play20:26

ているんですけれどもプロンプ塔です行

play20:28

ごとに渡しますえっとこれセレクトコン

play20:31

キャットから始まるのが第2匹数で

play20:33

セレクト分っていうかコンキャット分の

play20:35

ところ読み出すとgivetheC

play20:37

nameforシティシティてなってい

play20:40

まして実際にはこの最後のシティのところ

play20:43

には東京とかラスベガスとか街の名前が

play20:46

入ってますねなのでgivetheC

play20:49

nameforシティ東京だったらま

play20:51

えっと東京が所属する街のえ国の名前なん

play20:55

でえっと日本ですねジャパンですですねが

play20:58

えっと結果として返ってくることが期待さ

play21:01

れているわけですとでえっと3つ目があ

play21:06

ごめんなさいまこのようにプロンプトを

play21:08

ですねSQLで生成してえっとパルムに

play21:11

実行させることができますで3つ目の引数

play21:14

がえっとモデルに渡すパラメーターになっ

play21:16

ていまして実用上はテンプラーとか

play21:19

マックスアウトプットトークンとかを編集

play21:21

することが多いかなと思ってい

play21:23

ますでですね先ほどのプロンプとを実行し

play21:27

た結果がですねこのようになっておりまし

play21:29

て3列目ですね3列目がえっとパルムに

play21:34

入力されたプロンプ島になっています

play21:37

givetheカトリnamefor

play21:38

シティラスベガスロンドン

play21:40

サンフランシスコ東京ですねそれぞれが

play21:43

どこの国のものですかていうのを聞いて

play21:45

ますでその答えが1列目に入っていまして

play21:48

これあえて整形せずに結果全部お見せし

play21:51

てるんでちょっとみづくなっちゃってるん

play21:52

ですけれどもコンテントっていうところに

play21:55

入っていてえラスベガスはユナイテッド

play21:58

ステーツえUKUSJAPANと正しい

play22:01

答えが入っていますねこのような感じでお

play22:04

持ちのデータに対してllm適用してあの

play22:06

色々な処理をかけることができます色々な

play22:10

あですいませんでSQLもいいけれどじゃ

play22:14

ここまでがSQLのお話でしたと普段LM

play22:18

開発に使っているPythonからも

play22:21

せっかくならあの先ほどのL読み出したい

play22:24

とは思いませんかねということでビッグ

play22:26

フレーズ今度は活用してビッグクエリーと

play22:30

LMのパワーをいつものPythonから

play22:32

実行してみるっていうこともやってみたい

play22:34

と思い

play22:35

ますでは動画流してまいりますとまずです

play22:39

ね今回もビッグえクエリースタジオは使い

play22:44

ますノートブックを新たに使いましょうで

play22:47

まずはBIGframes.mlっていう

play22:50

パッケージをインポートしますこれは

play22:53

サイキットラーンのインターフェイスを

play22:54

提供するものでしてねLmLて打つとよく

play22:59

見るとml.の下にクラスターとかあと

play23:03

デコンしョとかアンサンブルとかフォー

play23:05

キャスティングとかサキトラン使ったこと

play23:07

であれば方であればピンとくるモジュール

play23:09

名が並んでるんじゃないかなって思います

play23:12

でま要するにサキランライクなモジュール

play23:14

が入っておりましてこれら全てビッグ

play23:16

クエリーで処理を実行しますあとは

play23:21

えっとその後にですねBigFRAME.

play23:25

pandasの方もインポートしましょう

play23:28

じゃあまずPALMモデルをpyonに

play23:30

読み込んでみましょうビッククエリー上の

play23:33

パルムモデルはですねPALM2モデルえ

play23:36

ジェネレーターかなジェネレーターですね

play23:38

というクラスを経由して参照できますでえ

play23:42

そうするとですねモデルという

play23:44

オブジェクトにえっとパルムのモデルを

play23:47

ですねえっとインスタンス化させることが

play23:49

できますとでは次に分析に使うデータを

play23:54

読み込んでみましょう

play23:56

かはい分析に使うデータを読み込んでみ

play24:00

ましょうDCSVでGCSのデータ

play24:03

読み込んでますねこれですね裏側で面白い

play24:06

ことやっていて実データGCSになるん

play24:09

ですけれどもこれを実行した瞬間GCS上

play24:13

のCSVファイルがビッグクエリーに自動

play24:15

的に読み込まれてますでビッフレーズで

play24:19

取り扱い可能な状態になってます裏側で

play24:22

シレットテーブルの読み込みと神経作成

play24:24

っていうとんでもないことをやってくれて

play24:26

ますはい読み込み終わったようですこの

play24:30

CSVファイルにはAPIというカラムが

play24:33

ありその中にはです

play24:38

ねパンダのデータフレームのメソッド名が

play24:42

play24:43

えっと格納されているんです

play24:46

play24:48

はいDtypesndm2CSV2gbq

play24:53

2JSONは使われた方多いんじゃない

play24:55

でしょうかこれパンスのデータフレーズの

play24:57

メソッドですね今回なんですけどこれらの

play25:00

メソッドのコードサンプルジェネレートし

play25:02

てみたいと思いますで

play25:05

はプロンプト作ってみましょうプロンプト

play25:08

はですね結構簡単でジェネレートパンタ

play25:11

サンプルコード4データフレーほにゃらら

play25:14

っていう風に指定し

play25:16

ますまあの定型処理なんでえ実のように

play25:21

プラスで作っちゃったんですプラスで文字

play25:23

列連結で作っちゃったんですけど

play25:25

ジェネレートパンスサンプルコード4

play25:27

データレvalシプサイズという感じで

play25:31

こんな感じでえっとプロンプと作ったわけ

play25:34

ですねプロンプトのが作れたので後は実行

play25:38

しましょう実行どうやればいいのか

play25:40

サイキットラーン使ったことある方であれ

play25:42

ば簡単ですね実行する水論させると言っ

play25:45

たらプレディクト関数これで水論は完了し

play25:48

ますちょっと動画ではあの加速さ時間を

play25:51

加速させてるんですがま24秒ですね実

play25:53

時間ではで水論完了しますじゃあどんな

play25:57

感じで水論ができたかえ水論結果を見てみ

play26:00

ましょう緊張の一瞬です

play26:03

ね最初の従業を取り出してみ

play26:17

ますはい出てきましたどうもマークダウン

play26:20

形式で返してくれたみたいですねバック

play26:25

クオート3つpyonあインポートパン

play26:28

asPDでまあ多分できてるでしょうなん

play26:31

ですけれどもこれマークダウンのバック

play26:34

クオート3つとかってまぶっちゃけいら

play26:37

ないですねでそれからインポート

play26:40

pandasじゃなくてBIGFRAME

play26:42

.pandasに書き換えちゃいたいです

play26:44

ねこんな時どうすればいいかま普通に

play26:47

ヘルパー関数使って間テキスト間やっ

play26:50

ちゃいましょうあと念のためトライ

play26:52

キャッチでえエラー処理もやっちゃいます

play26:54

かねて思うんですけどこのpyonの

play26:58

ヘルパー関数どこで実行しますかねあの

play27:01

ノートブックで自然にあまりにも処理実行

play27:03

してるんで忘れがちなんですけどこれ

play27:06

ビッグクエリ上で処理してるんですよね

play27:08

なんでトライキャッチとかそういうロジッ

play27:11

クって正直SQLで実行難しいんですよ

play27:15

じゃあどうすればいいか別にビッグ

play27:17

クエリー上でPython実行しちゃえば

play27:18

いいんですよねということでそれを実現

play27:21

するための方法がありましてヘルパー関数

play27:23

の前にですねリモートファンクションズっ

play27:26

ていうえアノテーションをつつけるとです

play27:28

ね裏側でこの関数をクラウド

play27:31

ファンクションに自動的にデプロイします

play27:33

でこのヘルパー関数をビッグクエリーから

play27:37

参照して自動的に並列実行できるようにし

play27:40

ますとあなのでクラウドファンクションに

play27:44

実行したんであのデプロイしたということ

play27:46

は名前を検索するとですねちゃんとヒット

play27:50

してこのビッグクエリーのコンソールで

play27:54

関数名を実行するとえ検索すると普通に出

play27:59

てきますノートブックしかしあの触って

play28:01

ないのにSQLですとかクラウド

play28:03

ファンクションまでデプロイされるって

play28:05

いうことが起きますので正直この感覚です

play28:08

ね最初戸惑いますかねノートブックしか

play28:11

自分触ってないのにいろんなリソースが

play28:13

勝手に作られているのででま最大限自分の

play28:17

ノートブックを並列実行あのスケーラブル

play28:20

に実行するようにあらゆるリソースが動い

play28:22

てくれますでじゃあ今作ったヘルパー関数

play28:27

を実行したいとなればまここからはパタの

play28:29

説明なんですけどどちらかというとえ

play28:32

アプライ関数ですねでえ先ほどのヘルパー

play28:35

関数を各列にあ各業界に実行してアサイン

play28:39

で新たな列として生成することができます

play28:42

とということでですねまこのような感じで

play28:45

もうあかももうなんかパン普通の

play28:49

ノートブックを開発しているようにllm

play28:52

の開発までできてしまいますというのが

play28:54

ここのすごいところになっております

play28:59

ビッグクエリーでのllmの使い道ですね

play29:02

ではですねコンテンツ生成ですとか分類

play29:04

ですとか色々な利用方法が考えられると

play29:07

思いますので是非皆様のビジネスニーズに

play29:10

合わせて考えてみていただければと思い

play29:13

ますさてここからなんですけどもう

play29:16

ちょっと新しいトピックについても説明し

play29:19

ていきたいと思いますllmと情報検索

play29:23

組み合わせてllmより実用的に使うため

play29:26

のラグと呼ばれる技術について説明させて

play29:29

くださいllmなんですけれども残念

play29:32

ながらそれっぽい回答は返してくれるん

play29:35

ですがま制度については十分じゃない

play29:38

ことって正直多いです対象的なのが古典的

play29:41

な情報原作技術でしてまあのユーザーの

play29:46

質問をそのままえ受け取ることはできない

play29:49

んですけどま制度に関しては既存の

play29:51

ドキュメントの中から何かしらそれっぽい

play29:53

もの返してくれるものわけですねとなると

play29:57

考えつくのがllmと情報検索技術ですね

play30:01

これ組み合わせちゃってえっといいとりし

play30:04

てしまおうっていうことが考えられるわけ

play30:06

ですこれがラグって呼ばれる

play30:08

アーキテクチャの総称になりますラグは

play30:11

エンベディとベクトル検索という2つの

play30:13

要素技術を使うと実装できるのでま

play30:16

それぞれについて説明していきたいと思い

play30:19

ますまずなんですけれどもここに文章が

play30:22

英語で恐縮なんですが1個あります日本語

play30:26

訳すると生きるべきか死ぬべきかそれが

play30:28

問題だというハムレットの一説になります

play30:31

ねさてこのデータをですね必要に応じて

play30:34

検索可能にするにはどうすればいい

play30:36

でしょうかラグでよく使われる操作方法と

play30:39

あ違う方法としてはテキストをベクトル

play30:42

ですねすなわち数値列に変換するという

play30:45

方法がありますこれを埋め込みと呼んでい

play30:48

ますねむやみあたらに数値変換しても味

play30:51

ないのでちゃんと元の文章の意味を理解し

play30:54

た上でベクトルに変換する必要があります

play30:56

ねこの変換をするモデルをエン

play30:59

ベッティングモデルなどと呼んでいます

play31:01

GoogleCloudではテキストや

play31:04

画像あと今日動画も言及がありましたかね

play31:07

とか色々なエンベッティングモデルを提供

play31:10

していますとで時間の都合で省略するん

play31:13

ですけれどもこの元データの意味を理解し

play31:16

て変換するっていうところでですねllm

play31:18

の技術使われており

play31:20

ますでこうして様々なテキストを埋め込ん

play31:24

でいくとベクトルの格納ストレージ

play31:27

ベクトルストアとか呼ぶことも多いとは

play31:29

思うんですけれどもが作れますとでこの

play31:33

ベクトルストレージには色々なフレーズが

play31:36

格納されていますねシェイクスピアの例と

play31:39

絵本作家のドクタースースのフレーズが

play31:41

あるんですけれどもエンベッティング

play31:43

モデルは元の文章の意味ですねを理解した

play31:47

上で埋め込むので大体似た作家さんの

play31:50

ベクトルは2対1ですねに埋め込まれてい

play31:54

ますさてここでですね新しいフレーが来

play31:57

ましたofから始まるフレーズですねこの

play32:01

文章がフレーズがドクタースースか

play32:04

シェイクスピアかどっちか分かりますかね

play32:07

ま私は分からなかったんですけどなんと

play32:10

なくまびっくりマークとがあるんだったら

play32:12

シェイクスピアじゃないかなとは思ったん

play32:14

ですけれどもまそんな時どうやって判定

play32:17

するかと言うとまずこれまでやってきた

play32:20

ようにベクトルに変換しますそうすると他

play32:22

のフレーズと数値で比較できるの

play32:25

で新しいベクトルの周辺にある他の

play32:28

ベクトルを検索するとこの例の場合

play32:31

ドクタースースの方に近いように見える

play32:34

からドクタースースのベクトルだろう

play32:36

フレーズだろうとま判定させることができ

play32:38

ますま実際そうですねこれを行うことを

play32:42

ユーザーの質問に近いデータを検索して

play32:46

返すということもできるようになります

play32:48

この埋め埋め込みとベクトル検索ですね

play32:52

これで見つかったデータをllmに渡す

play32:54

ことでllmは実際のデータに基づいた

play32:58

回答生成を行うことができるのでその精度

play33:01

が上がるっていうことが期待できますこの

play33:03

アーキテクチャーをラグと読んでい

play33:06

ますでですねビッグクエリーではもちろん

play33:09

埋め込みとベクトル検索それぞれサポート

play33:12

してラグを実行できるようにしております

play33:15

でですね

play33:17

えっとカツマで説明しますとえ埋込みの

play33:21

利用方法ですはま比較的簡単でモデルを

play33:24

名前つけて保存した後mlジェネレート

play33:28

テキストエンベッティングと呼ばれる関数

play33:30

を読むと埋め込みを取得できます検索する

play33:33

前にあらかじめ検索対象としたいデータ

play33:36

前傾に対して埋め込みを取得しておいて後

play33:38

で使うわけですでその上で検索ま検索する

play33:43

クエリーはちょっとここに書いていないん

play33:45

ですけれどもml.Distance関数

play33:47

というところであるデータとそれ以外の

play33:50

全てのデータの距離を測ることができるの

play33:53

でそこから金えっと類似するものを返す

play33:56

ことができきますじゃあ具体的にこれオを

play33:59

どうやって組み合わせてラグを実装すれば

play34:02

いいのかっていうところも説明したいと

play34:04

思いますはいということで今度はですね

play34:07

Pythonのパッケージの検索をこれ

play34:09

ラグでやってみたいと思い

play34:12

ますはいまずはラグを使わずに普通に

play34:15

Pythonのパッケージ検索してみ

play34:17

ましょうかどういう検索をしたいかと言う

play34:20

とですねちょうど12行目に書いてあり

play34:22

ますかねWhatisagood

play34:24

Pythonpackagefor

play34:25

workingwith

play34:28

ビックエービッグクエリーでエン

play34:30

ベッティングを扱うにはどんなパイソン

play34:32

パッケージがいいですかねて聞いてますね

play34:35

ということでこのプロンプトを

play34:37

ジェネレートテキストに突っ込んで水論さ

play34:40

せると何かが返ってくるはずです正解は

play34:43

正しいのはえビッグフレーズですねなん

play34:47

ですけどビッグフレーズ帰ってこいとうん

play34:51

BQエベッティングスっていうパッケージ

play34:53

が提案されましたねただ残念ながらですね

play34:56

こなパケージ存在してないんですよねま

play34:59

あのビッグframがあんまり有名では

play35:02

なかった時に動画収録したっていうのも

play35:04

ありますしあのパルムのモデル自体は

play35:07

アップデートが繰り返されていますのでま

play35:10

今だったら別のえっと結果を返すかかも

play35:13

しれませんまたそれからですねこういう

play35:16

検索をしたい場合はお客様の手持ちの

play35:19

データでですねファインチューニングして

play35:21

いただくとかバテサーチをとのような検索

play35:25

ソリューションを使うとかもかキーノート

play35:27

で出てきたグラウンディングと呼ばれる

play35:29

技術を使うって解決した方がま解決するっ

play35:32

ていう手もあるんですけれども今回は

play35:34

あくまでラグを使って解決してみましょう

play35:37

ラグをで使って解決するためにはまず

play35:40

ベクトルストレージを作りましょう全ての

play35:42

パッケージの情報をベクトル化し

play35:45

ますそのためにエンベッティングモデルに

play35:48

名前をつけて保存してその後ですね

play35:52

ジェネレートテキストエンベッティングと

play35:54

いう関数を使いましてここでえっと

play35:58

アパッチPythonパッケージという

play36:01

全てのPythonのパッケージ情報が

play36:02

集まったテーブルのディスクリプションと

play36:05

いう列をですね埋め込みますパッケージの

play36:08

ディスクリプションをベクトル化してい

play36:10

ますここでベクトル化した結果がどのよう

play36:13

になるかと言いますと今表示します

play36:16

がこんな感じのですねちょっといかつい見

play36:20

た目になっていますこれ画面に出てるのが

play36:23

1行ですねで1列目がベクトルになってい

play36:26

てそれが配列なのでちょっと見た目があの

play36:29

こんな感じになっておりますと5列目の

play36:32

コンテントというののディスクリプション

play36:34

をベクトル化したのが1列目だと思って

play36:36

いただければと思いますとりあえずこれで

play36:38

ベクトル検索違うベクトルストレージの方

play36:41

はできましたじゃあ次はベクトル検索する

play36:44

ところですねベクトル検索して質問に

play36:48

答えるのに適したパッケージっていうのを

play36:50

見つけてみましょうベクトル検索をする前

play36:53

にllmに渡すプロンプともちょっと

play36:57

こんな感じで書いてみましょうfrom

play36:59

theBelLofPythonPACK

play37:01

providethebest

play37:02

answertoえbestanswer

play37:04

tothe

play37:05

question質問に答える裁量の

play37:08

Pythonパッケージ次の中から見つけ

play37:11

てくださいっていうプロンプトに変えます

play37:14

で次の中からの次の次の部分どうやって

play37:18

作るかっていうと先ほどのベクトル検索で

play37:20

持ってこようっていうわけですねこのよう

play37:22

にプロンプトを拡張するわけ

play37:24

ですさてじゃあ

play37:27

量のパッケージ見つけていきましょうか

play37:30

まずですねえっとジェネレートテキスト

play37:33

エンベッティングを使いますこれ何かと

play37:35

いうとオリジナルの質問BQエン

play37:38

ベッティングを使うにはどうすればいいで

play37:40

かっていうところをエンベッティングして

play37:42

いますその後にmmlディスタンス関数を

play37:46

使ってそのオリジナルの質問とそれ以外の

play37:50

Pythonパッケージ全ての距離を測っ

play37:52

て最後にオーダーバしてリミット5をする

play37:56

とオリジナルの質問に近いpyon

play37:59

パッケージ5件が出てくることになります

play38:01

ねそうなるとあとはプロンプトですね

play38:05

見つかったオリジナルパッケーに近い

play38:08

pyonパッケージ5件の名前を

play38:10

プロンプトにコンキャットで含めてあげて

play38:13

で最後に質問をオリジナルの質問をまあ

play38:20

違う拡張したプロンプトをパルムで実行し

play38:23

てあげればOKという的な結果が得られる

play38:28

という流れになりますねはいというこの

play38:31

流れでを実行すると何が得られるのかって

play38:35

いうことを紹介してこのセッション閉め

play38:37

たいと思いますWhatisagood

play38:39

pyonPforworkingwith

play38:41

イビクエリー実行しました一連の流れ

play38:46

をさてまずは拡張され

play38:51

たラグによって拡張されたプロンプトを見

play38:54

てみ

play38:54

ましょうそのとかです

play39:01

ねこのようなものになっております

play39:04

fromtheLofPython

play39:06

パッケージの後になんだかpyonの

play39:09

パッケージ名が列挙されていることがあり

play39:11

ますわかりますビッグフレーズも入って

play39:13

ますねということでこのようにベクトル

play39:16

検索でLllmのプロンプが拡張できまし

play39:21

たさてこのプロンプトを最後にパルムに

play39:25

実行させて読み込ませてみましょうさて

play39:29

今度はちゃんとした答えが出てくる

play39:31

でしょう

play39:33

かうんビッグフレーズちゃんと出てきまし

play39:36

たねということでこのようにですねラグの

play39:38

技術をベクトを実装することによってLM

play39:42

の制度改善させるっていうことができる

play39:44

わけですここですごいところはSQLだけ

play39:48

で全てを実行したっていうところですね

play39:50

アプリPythonとか使っていないので

play39:52

ということでSQLだけでここだけの検索

play39:55

えっと制度工場を行うことができるという

play39:58

だけのケイパビリティをビックコエリ持っ

play40:00

ておりますさてということでではそろそろ

play40:03

セッションのまとめに入らせていただけれ

play40:05

ばと思います

play40:09

えっとよいしょっ

play40:12

とはいですねまサマリーとしては2つです

play40:17

ねまずビッグクエリースタジオの方リレン

play40:20

機能ですとかコラボエンタープライズそれ

play40:22

からビッグフレーズがインテグレーション

play40:24

されたビッグクエリースタジオと呼ばれで

play40:26

開発環境がありますのでこれで次世代型の

play40:29

データ分析ができるようになりましたので

play40:31

是非ご体験してくださいということと2つ

play40:34

目llmがですねえっとこのように色々な

play40:37

形で読み出すようになっましたので皆様の

play40:40

お持ちのデータに対して是非実行してみて

play40:43

くださいということになりますあとは今回

play40:45

紹介できなかったんですけどクエルの生成

play40:48

や変換それからえっと要約といったユース

play40:52

ケースでもllmで使えますので是非お

play40:54

使いになっていただければと思ますという

play40:57

ことで私のセッションは終わりになりまし

play40:59

てちょっと走ってしまった部分も多いかと

play41:02

思いますのでぜひアクザスピーカーの方

play41:04

ですね裏手にありますのでそちらで質問等

play41:07

ありましたら来ていただければと思います

play41:09

ということで本日はご清聴ありがとう

play41:11

ございまし

play41:13

[音楽]

play41:17

Rate This

5.0 / 5 (0 votes)

Related Tags
データ分析機械学習Google CloudLLMPythonAPIコラボレーションAI技術BigQueryビジネス活用ソリューション
Do you need a summary in English?