Join the Webinar
Loading...
構造化データであれ非構造化データであれ、利用可能なデータに囲まれている世界では、それらをすべて統合できるツールが必要です。Airbyte に参加して、データの役割がどのように進化しているのか、そしてツールがどのようにニーズに合わせて成長できるのかを学びましょう。このウェビナーでは、以下について取り上げます。
- 多様なデータソースから生データを抽出する方法。
- 学習と実験のための最初の GenAI 概念実証(POC)を構築する方法。
- PyAirbyte を活用して、本当に重要なコードだけを書く方法。
- デモ! 👨💻
- POC を本番運用化するための実践的なステップ。
この講演では、さまざまなソースからデータを収集し、そのデータを RAG やその他の GenAI ユースケースに活用し、最後に本番運用化への道筋を描く方法に焦点を当てます。
本日は、AIに優れたデータを注入する本セッションと、ゲストスピーカーであるAJ Steersをご紹介できることを嬉しく思います。aj Aaron SteersはAir Byteのスタッフエンジニアです。AJは4年以上にわたりオープンソースのデータソフトウェアを構築しており、Milano Singer Pipe flying wiseやその他のオープンソースプロジェクトに貢献してきました。AJは以前、AWS Amazon VideoやStarbucksのような大企業でデータエンジニアおよびアーキテクトとして働いていました。しかし彼の真の情熱は、オープンソースと、より広いデータコミュニティにベストプラクティスをもたらすことにあります。ソフトウェアやデータシステムを構築していないときは、
AJはSeattle Esotericsで歌ったり、8歳の息子や愛犬pip and stallと遊んだりするのを楽しんでいます。つまり、pipだけです。ええと、ようこそ、aj。ありがとうございます。ええと、ここに来られて嬉しいですし、参加してくださった皆さんにも感謝します。ええと、素晴らしいご紹介もありがとうございました。
ええと、では、ええと、本日は、優れたデータで皆さんのGen AIプロジェクトに燃料を供給することについてお話しします。また、ええと、プロトタイプから本番環境へ移行すること、そして、ええと、複雑さ、ええと、スケール、ええと、そしてデータパイプラインに対する新しい要件を追加していく際に、皆さんとともにスケールできる堅牢な基盤の上に構築することについてもお話しします。はい、ええと、ELTPという概念をご紹介します。聞いたことがない方でも、ETLやELTに馴染みがあれば、ええと、それが何を意味するのか推測できるかもしれません。いずれにしても、順を追って説明します。
ええと、そして、ええと、新しいPI Air ByteとViss lightの提供内容と、それらがどのように連携できるかについてお話しします。ええと、それでは早速始めますが、ええと、最後に一点、ええと、質問がある場合は、遠慮なく、ええと、Q&Aセクションに投稿してください。ええと、そちらを定期的に確認しますし、最後にも、ええと、ええと、質問のためのセクション、場所を設けます。ええと、ですので、ええと、チャットにそれらを投稿していただければ、回答できる、ええと、すべての質問に必ず回答します。ありがとうございます。
では、簡単な自己紹介です。ええと、Christieがすでに私を紹介してくれたので、ここは少し手短に進めます。ええと、私自身は、ええと、プロフェッショナルとしてのキャリア全体を通じてデータ実務者であり続けてきました。ええと、データを扱うのが大好きです。大企業にも小企業にもデータソリューションをもたらすことが大好きです。
ええと、大企業での仕事やコンサルティングの中で、私は、ええと、通常の、普通規模で、通常の資金規模の組織、さらには大学のような小規模な組織でさえ、多数のデータエンジニアを雇わずにデータで何ができるのかという点に、ええと、非常に大きなギャップがあることに気づきました。そこで私は、オープンソースに深く取り組み、Amazonのような場所で持っていたベストプラクティスを、ええと、一般に利用できる領域へ、ええと、持ち込み、誰もがそれを活用できるようにすることに注力してきました。ええと、では、Air Byteの簡単な紹介です。ええと、Air Byteはオープンソースの上に構築されており、巨大なコネクタ、オープンソースコネクタの大規模なライブラリを持っています。そして、ええと、私たちはこの1年、Air Byteが、ええと、非構造化ドキュメントソース、Gen AIのユースケース、ええと、ベクターストアの宛先へのデータのランディング、ええと、そして、ええと、Pyre Byteのリリースによってどこでも実行できること、に対応してスケールできるように懸命に取り組んできました。
ここにいくつか追加の統計があります。本当に、本当に多くのソースがあります。ええと、ローコード、ノーコードのソースとPythonベースのソースの違いについてお話しします。ええと、ただ、私たちは、つまり、私たちは、皆さんが必要とする、ええと、すべてのコネクタを確実に揃えるために多大な投資をしています。また、ええと、ええと、皆さんが独自のコネクタを構築するためのツールもあります。これについては後ほどさらにお話しします。
そして大きなコミュニティがあります。私たちはコミュニティに本当に、とても謙虚な気持ちでいます。ええと、何百人もの貢献者、常に寄せられる何千ものPRがあります。ええと、では、Air Byteをデプロイするさまざまな方法を簡単に紹介します。これは後で関連してきます。
ええと、OSSはKubernetesを使った私たちの基盤となるデプロイです。ええと、皆さんが所有し、皆さんのインフラ上にあります。ええと、これは常に利用可能です。また、セルフマネージドのエンタープライズソリューションもあります。つまり、スケールが必要で、それを自分たちのインフラ内に置きたい、ええと、しかしそのサポートも必要だという場合は、それが用意されています。
それから、ええと、airbike Cloud もです。ええと、Zillows と、そして vis、ええ、プロダクトと一緒に取り組む中で私が気に入っているのは、彼らが、ええと、ユーザーがいる場所に本当に合わせるために、非常に、非常によく似たデプロイメントオプションに従っていることです。ええと、そして私たちは最近 PI Air Byte を追加しました。ええと、これによって Python でパイプラインをものすごく素早く実行し、そしてプロトタイプ化できるようになります。これからお見せします。ええと、Zillows も同時に、同時にではないですが、ええ、こちらも最近、ええ、Elvis Light をローンチしました。これについてもお話しします。そしてこれらの両方は、ええ、皆さんが最初に作り始めるプロトタイプが、ゼロから再構築することなく、本格的なソリューションへとスケールできるようにすることを目的としています。ですので、ええと、Air Byte で私たちがやってきたこと、ええと、そしてこれから今お話しするこのアプローチが重要だと私が考える理由は、ええ、さまざまな場所からデータを取得する場合、ええと、あるチームでは機能するけれど別のチームでは機能しないものを作りたくないからです。
ええ、HubSpot からデータを取得したいとします。ええと、もし、もし皆さんの機械学習チームが手作業でコードを書いていて、データエンジニアリングチームが何らかの ETL ツールを使っているなら、ええと、サイロ内で断片化が非常に急速に生まれてしまいます。そこで私たちは p air byte を構築し、これらすべてのユースケースを扱えるようにし、そして独自のソリューションを構築する必要があるこれらすべてのグループにとって自然に感じられるようにしました。では、bu の簡単な、簡単な紹介です。私は、ええ、bu で働いているわけではありませんが、彼らは、ええ、私たちにとって素晴らしいパートナーであり、彼らのプロダクトについて少しお話ししたいと思います。ええと、そうですね、これは強力なオープンソースの、ええと、高、高性能で、非常にスケーラブルなベクターストアです。
ええと、先ほど述べたように、Novus light でのローカル実行オプションもあり、さらにクラウドまたはセルフマネージドのどちらかを指定することもできます。そしてそれは重要です。なぜなら、何かうまく動くものを手に入れたら、ツールを切り替えたくないからです。それについてはさらにお話しします。ええと、こちらは簡単なコードサンプルです。ええと、これをこのトークのテーマにしてみようと思います。
ええと、ご存じのように、ノーコードかローコードか、という問いです。私はそれを、必要十分なコード、と考えるのが好きです。ええ、なのでこれは、仕事を成し遂げるための必要十分なコードの素晴らしい例だと思います。ええと、ですので、もし、ええと、もし皆さんがコードに抵抗がなく、コードに慣れていて、そして自分のプロジェクトを gi にコミットすることの利点を評価しているなら、ほんの数行のコードでこれができ、ええ、そこから反復できることを本当にありがたく感じるでしょう。では。
では、ええ、約束どおり、ええと、このローコード、ノーコードのようなものについて話しましょう。ええと、私には大好きな原則があります。ええ、Albert Einstein からのものだと言われています。すべては可能な限りシンプルであるべきだが、それ以上にシンプルであってはならない。私は設計するとき、ええ、そしてプロダクトを開発するときに、ええと、これを常に使っています。ええと、自分に問いかけます。ここで私が提供しているもののうち、削除できる定型的なものは何か?どこで、どこで私はプロセスに貢献する価値や定義を追加しているのか?あるいは、私が書く必要が本当にはない glue code をどこで提供しているのか?ええと、この問いを別の言い方にすると、私は他の誰かがすでに書いたコードを書いているのか?そしてなぜそれをもう一度書いているのか?なぜ車輪の再発明をしているのか?ええ、ですので、ええ、この答えは、ええと、シンプルで明白な、ええと、ステップを持ち、また予想される形で壊れ、修正しやすい形で壊れる、コンポーザブルなパイプラインに焦点を当てることだと思います。ええ、それについては、ええと、少し後でお話しします。
では、ええと、Gen AI パイプラインやデータパイプラインを始めようとしているところで、どこから来たとしても、ええと、ちょっとした道のりがあります。ええと、私が皆さんをお連れしたい道のりです。ええと、それは私がデータに携わってきたこの20年間、私の人生において非常に個人的な部分を占めてきました。そして、ええと、これは ETL から ELT への道のりです。ええと、ご存じない方のために説明すると、ええと、ETL は基本的に、データをどこかから別のどこかへ移動するための、包括的な用語でした。そしてそれは、抽出してロード、変換してロード、という形で行われていました。しかしそのアプローチの問題は、ソートや結合など、本来は転送中に行うべきではない特定の操作があることです。
そしてこの部分が失敗すると、データをロードできていません。そこで、これらを抽出、ロード、変換に切り替えることで、非常にシンプルな抽出・ロードプロセスになり、何度でも繰り返すことができます。インクリメンタルに作成することもできます。ええと、そして変換ステップは、それがどのようなものであれ、データを安全に抽出した後に実行されます。ですから、これは間違いなく強力なパターンです。既存のシステムを検討し、このアプローチを取れるかどうか確認することを強くお勧めします。
ええと、そしてここにもう1つ加えます。ええと、それは、特に Gen AI パイプラインに対してですが、皆さんが構築しているあらゆる種類のデータパイプラインにも当てはまるもので、公開ステップについて考える必要があるということです。ええと、ほとんどの場合、公開ステップがあります。それは単純なものかもしれません。ユーザーに「ねえ、データを取りに来て」と伝えることかもしれません。あるいは、データセットを中間的な名前から本番用の名前へコピーしたり名前変更したり、スキーマを削除したりすることかもしれません。
ええと、あるいはデータをベクターストアにプッシュすることかもしれません。そして、このプロセスについて考え、自分たちが構築しているものについて適切な用語を持つことが重要です。ええと、そうすることで、その下に適切な設計を持つことができます。そして、設計は一般的にこのような形になります。ええと、生データがどこに着地するにせよ、ええと、ベクターストアがどこであれ、そして、ええと、Pine Cone や vis に着地する、すみません、このスライドは更新が必要でした。ええと、ですがベクターストアがどこであれ、ええと、抽出、ロード、変換、公開があります。
では、始めましょう。ええと、Pyra Byte の導入を、ええと、いくつかのコードのステップでお見せしたいと思います。では、ええと、どこからでもデータを取得します。そして、これは十分最小限のコードの例だということをお見せしたいと思います。ここでは本当に、私たちが何を望んでいるか、またはどのように取得するかを説明するコードだけを提供しています。ええと、air Byte はこの get source 関数を使用します。
私がお見せしているのは PY Air Byte です。ええと、Get source を使用し、ソースの名前といくつかの設定、そしてストリームを指定します。ええと、また、ええと、コネクタ名がわからない場合は、利用可能なコネクタを出力することもできます。ええと、すぐにデモでお見せします。ええと、ソースを作成した後に、設定を別途設定したり変更したりすることもできます。
ええと、本当に、ええと、これは、ええと、そして最後に、データを読み取った後、ええと、それを Pandas に送ったり、SQL に送ったり、または今日はドキュメントについて話すのでドキュメントに送ったりできます。Gen AI のユースケースに取り組んでいるからですが、Pandas でデータを分析している場合もあるでしょうし、SQL テーブルとしてクエリしたい場合もあるでしょう。わかりました。そしてこちらは、これら3つのステップすべてをまとめたバージョンで、ええと、ソースの取得、設定とストリームの選択、データの読み取りをすべて1つのステップとして行います。ええと、繰り返しますが、ちょうど良い量のコードです。
さて、ええと、ここで一度止めて簡単なデモをしたいと思います。こちらに、ええと、Jupyter、ええとすみません、Jupyter 上に構築された CoLab ノートブックがあります。そして、ええと、すでに air Byte をインストールしてあります。ええと、そして簡単に Air Byte、ええと、import Air Byte as Air ab とします。ええと、それから、ええと、利用可能なコネクタを確認できます。すると、available connectors がソースの長いリストであることがわかります。
それで、ええと、これは、これは膨大なリストです。ええと、私たちの素晴らしいオープンソースコミュニティによって contributed されたもので、ええと、その中の一部の、ええと、非常に高いボリュームと重要なユースケースを持つ connectors は、Air Byte 自体によって認定され、サポートもされています。ええと、なので、ええと、私たちが、誰であってもこの、ええと、この規模までスケールする唯一の方法は、本当にコミュニティの、ええと、サポートを使うことです。ですので、ええと、だからこそ私たちはこれほど、これほど大きなライブラリを持っています。また言っておきたいのは、デフォルトでは、ここで取得しているリストは Python の、ええと、インストール可能な、または pip install 可能な、ええと、ええと、リストです。もっと大きなリストを取得したい場合は、ええと、ここに Docker を入れることができます。
実際、もし見てみると、たぶん install method だったと思いますが、合ってますか?ええと、それは、ええと、install type です。そうですね。まあ、とにかく、ここに Docker という単語を入れるだけで大丈夫です。ええと、または install type equals docker と言うこともできます。ええと、これについて length を確認すると、ええと、これはより長い connectors のリストで、ええと、今は 289 の、ええと、sources が同じ方法だけでインストールできます。
ですので、私は、ええと、ここの、その価値は、かなり大きいです。ええと、あなたが、ええと、これを自分のツールボックスに入れておくには。ええと、もう 1 種類の connector があります。ええと、それは私たちの YAML connectors です。そしてこれが意味するのは、ええと、これは PIP install すら必要としないということです。これらの connectors は直接実行できます。ええと、たとえば virtual environment のサポートがなく、runtime で Docker が利用できない場合でも、これらの connectors は、ええと、power byte で直接、ええと、追加の stall installs を必要とせずに実行できます。
ええと、そしてそれは私たちの connector builder によって支えられています。ええと、それは、ええと、ええと、UI を使って、ええと、自分自身の connectors を開発できるようにするものです。ええ、直接です。ええと、ちょっと、ええと、それをすぐに立ち上げられるか見てみます。ええと、なので私は、ええと、Air Byte の、ええと、ローカル版に接続して、その low-code の、ええと、builder がどのようなものかをデモします。ここでは Air Byte を自分のマシン上でローカルに実行しています。builder タブに行きます。
そしてここで私は Rick and Morty の API を設計しました。Rick and Morty のファンがいるかどうかはわかりませんが、あなたが、ええと、開発したい API が何であれ、ええと、ここでそうできます。サイドバーをさっと隠して、そしてこの API を、ええと、この extractor に開発するために私がしなければならなかったのは、API docs に行き、a、base reference を見つけて、それから 1 つ以上の streams を定義するだけだった、ということをお見せします。ええと、character URL path に行って、ええと、record selector は results だと言いました。primary key は id で、そしてこれらの手順を通るだけで、ええと、私は、ええと、基本的にどんな API でも自分自身の connector を構築できます。そして、ええと、それをインストールするために私がしなければならないのは、yaml をコピー&ペーストするだけです。
ええと、これについて個人的に気に入っているのは、繰り返しになりますが、手でコードを書く必要がなかったことです。それでもなお、ええと、source control に commit できる成果物があります。ええと、そしてこれは、ええと、先ほど言ったように、今では、ええと、100 の。で、また数はいくつでしたっけ?ええと、それは、とても大きな数の connectors を支えています。戻りましょう、あなたに戻って。ええと、その、ええと、ここです。
ええと、はい。つまり 139 の connectors が、ええと、その方法で構築されていて、そしてあなた自身のものも構築できます。それが私が望むことです。あなたに知っておいてほしいのです。だから次に extractors をゼロから構築することを考えたとき、ええと、これを代替案として検討してくれることを願っています。
ええと、保守するコードは少なくなりますし、これらの組み込み機能すべての恩恵を受けられます。ここにシンプルな get source method があります。get source を実行すると、ええと、提供した configuration でデータを読み取ります。GitHub は後ほどお見せしますが、今はこの faker data set をお見せするだけにします。ええと、それからその背後にある SQL table を取得したければ取得できますし、Pandas に変換したければ、two pandas を実行するだけでできます。
そして先ほど述べたように、2つのドキュメントもお見せします。これは、どこからでもデータをPython環境に取り込むための、とても手早く簡単な方法です。ええと、Pythonが必要でない場合は、クラウドを使って、任意のデータウェアハウスにロードすることもできます。ええと、あるいは、先ほどお見せしたように、ローカルにインストールしてOSS版を使うこともできます。ええ、以上が、そのイントロのデモです。
では、続けましょう。さて、ええと、これをお見せしたいと思います。ええと、visや、その他のベクトルストアの出力先を使う場合、Air Byte Cloudを使ってベクトルストアの出力先を定義できます。そして、このオプションを使う場合は、組み込みのインターフェースを使って、チャンキングと埋め込みを定義できます。ええ。
わかりました。ということで、このデモは今やりました。少し前にこちらを先にやることにしたので、次のトピックに進みます。次は、レコードをドキュメントに変換することです。データに携わっていて、ここまでついてきてくださった方なら、私たちが必要とするすべてのデータセットからデータを取得する方法を見つけた、ということはお分かりでしょう。それがSalesforceやHubSpotであれ、CSVファイルや別のデータベース、GitHub、あるいは、そうですね、社内Webサイトなど何であれです。
ええと、昨日、Internet of thingsからのデータを、REST APIを使って接続することについて、ある方と話していました。ええ、ですので、想像力だけが唯一の限界です。では、そのデータをドキュメント形式にしてLLMで使えるようにすることは、最終的なドキュメントをどのような見た目にしたいかを記述するプロセスです。ええと、Rabyにはそのためのサポートが組み込まれていて、今からそれがどのようなものかをお見せします。これについては、2つ目のノートブックに切り替えて、手順を簡単に説明します。
Air Byteのインストールは行いました。また、Pi Pi Melvaのインストールも行っています。これは後ほどお見せします。そして、さらにいくつかの手順に従っていきます。こちらが、ええと、実際には、サイドバーを隠して、フォントを少し大きくして、これを隠します。はい。
では、ええ、デモのこの部分は基本的に、Fakerデータセットで行ったのと同じことを呼び出していますが、今回はGitHubから実データを取得しています。それをread resultに保存し、今実行しています。データを抽出している様子をリアルタイムで確認できます。これはインクリメンタルに実行されています。これは、手作業で構築する可能性のある他の方法に比べて素晴らしい利点です。私たちのソースコネクタはすべて、インクリメンタル抽出のサポートを標準で備えているので、大幅に時間を節約できます。
GitHubからデータを取得することについて少しでも知っているなら、レート制限が非常に厳しいことをご存じでしょう。常にレート制限にぶつかることになりますし、初回はかなり遅いです。何らかの理由で最初から更新したい場合は、forceful refresh equals trueを指定できます。そうすると、インクリメンタルデータを無視して、新しいデータセットを取得します。ええ、皆さんにとってとても簡単にしようとしていますし、適切なデフォルトも提供しつつ、必要な場合には、求める動作に合わせて上書きできるようにしています。ここでは、Source GitHubからissuesデータを抽出できています。
pull requestsやStargazersも取得したい場合は、それらをstreamsに追加するだけで、それらも同期されます。実行中にもう1点。PY Byteでは内部的にDuct DBを使うという決定をしました。Duct dbに馴染みがない方のために説明すると、これは非常に強力で、とても高速なローカルSQLデータベースであり、スケールも非常に優れていて、クラウドでもうまく動作します。別のデータストアを指定しない場合は、ローカルのDuct DBデータベースに保存されるだけで、常に高速に動作します。
つまり、容量が尽きることは決してなく、メモリ不足やデータセットが大きすぎることが原因でクラッシュすることも決してないということです。ええと、では次に、レコードを見るデモをしたいと思います。例えば、ええと、あるレコードを見たいとします。ええと、例えば、最初のレコードだけを見たいとします。では first record としますね。これは、ええと、ご覧のとおり、特定の issue に関するリッチデータです。ええと、でも今度は、それをドキュメントとしてレンダリングしたいとします。
ええと、ここに lms 用に準備する two documents インターフェースがあり、これが次のステップで役立ちます。なので、ええと、ここでやっているのは、同じ read result を取り、それに two documents を実行し、PRA byte に、何をタイトル、またはコンテンツやメタデータとして扱いたいかを伝え、そしてメタデータをドキュメントに表示したいかどうかを指定しています。ここでは表示したいので。これが変換後のドキュメントです。ここに、特定の issue のタイトルがあります。ええと、ここに issue 番号、状態、URL があります。
これらはメタデータで、ここに、ええと、その issue の本文があります。いいですね。これで私は基本的に、ええと、これを翻訳しました、どこでしたっけ?ええと、翻訳したのは、ええと、すみません、少し迷っていますが、翻訳したのは、ええと、これ、ああ、ここです、ええと、この最初のレコード、この非常に非常に長い JSON のものを、私と私の LLM がより使いやすく、より予測しやすく、より信頼性高く使えるものにしたということです。ええと、だからこれが重要なのです。では、このデモの最後の部分は少し後に取っておいて、スライドに戻りましょう。
はい。ではこれまでに、データを抽出する方法を見てきました。そのデータをローカルの Python notebook で分析する方法も見てきました。そして、ええと、今は、LLM に使用する際にレコードをドキュメントに変換する方法を見たところです。ええと、では、実際にデモしたいのは、そうですね、これがデモの次の部分だと思います。
では、この最後の部分に戻りましょう。今お見せしたいのは、スケールする Python プロトタイプの構築です。ここで扱いたいのは、ええと、gen、ええと、ええと、gen ai、ええと、これまでに構築したものすべてを使ったパイプラインですが、それに加えて gen AI の部分も構築し、本番環境にデプロイできるような方法で構築することです。ここで Melva Light を呼びます。こんにちは、A、質問があります。
はい。つまり、すべて Python でコーディングしているんですよね。ええ。で、それから PI Air byte がまだ Yeah の中にあることに気づきました。ご存じのように、それが ga としてリリースされるのはいつですか Yeah。
ええと、質問ありがとうございます。では、なぜ Python が最初なのか?ええと、Python は急速に、データサイエンスのデファクト言語、あるいは少なくともデータサイエンスと gen ai において非常に非常に人気のある言語になりつつあります。以前から人気はありました。ええと、私の考えでは、以前は r がデータサイエンスと ml で最も人気がありましたが、ええと、Python がほぼそれに取って代わりました。ええと、Python エコシステムへの新たな投資もあります。ええと、たとえば、ええと、ええと、今後登場予定で、ええと、非常に非常に話題になっている、ええと、mojo などです。これは Python のスーパーセットです。
ええと、そして Mojo に関するドキュメントを見ると、彼らも、Python には巨大なエコシステムがあることを認めています。ええと、私が個人的に Python を使うことを気に入っているのは、ええと、それが本質的に読みやすいという点です。そして、必要十分なコードについて話すとき、ええと、これは、ええと、それの素晴らしい例だと思います。一般的に非常に簡潔で読みやすく、つまり誰でもレビューして貢献できるということです。ええと、私たちは他の言語に反対しているわけではありません。
人々から、pite の TypeScript 版、あるいは TypeScript Air Byte を作る予定はあるのかと聞かれました。ええと、そして、まだそこまでは行っていません。ええと、でも間違いなく、もしそれが皆さんの興味のあることであれば、ええと、ぜひ知らせてください。ええと、質問のもう一つの部分は、たぶん、ええと、ええと、prior byte が、ええと、何でしたっけ?はい、はい。ああ、そうです。いつ Ga になるのか?はい、なので、私たちは今四半期末を予定しています。
ええと、あります、そこに、私たちは、P Byteをローンチして、非常に多くのコミュニティメンバーに来てもらい、あらゆるソースでテストしてもらうという初期フェーズを経ました。彼ら自身が作っていたソースも含めてです。そしてその過程で、いくつかのエッジケースが見つかり、それらを改善してきました。安定性の面では、かなり良いところまで来ています。ですので、それは懸念事項ではありません。今ぜひ欲しいのは、ユーザーからのさらなるフィードバックです。これは皆さんが気に入るAPIなのか、それとも何か変更を提案したいのか、という点です。そして、安定したAPIになったと感じられたら、ええと、RA byte向けにGAへ進むことになると思います。ええと、今年のHH2を見込んでいます。
なので、それは、ええと、Q3かQ4になるかもしれません。ええと、でも今年末までには確実に出ます。ありがとうございます。いいですね。では行きます。
ありがとうございます。はい。それで、現時点で他に何か質問はありますか?ええと、今ミュートになっていますね。私たちの小さなところには、もう質問は見当たりません。はい、素晴らしいです。でも私が分かる限りでは、では続けます。
素晴らしいです。質問ありがとうございました。さて。では、ええと、ここで、ええと、今Melva Lightと統合しています。ええと、私が述べたすべてのこと、ええと、私が述べたすべてのこと、ええと、Pyre byについて、そしてノートブック内で実行できることのメリットについてです。そして、ええと、これまで少し示唆し、ほのめかしてきたように、ええと、皆さんはPythonノートブックのコードを書いていますが、それは本番化することもできますし、インターフェースや設計も本番化できます。
ええと、ELTPについて話したとき、ELを独立したものとして持つメリットの1つは、そのものを簡単に移動できることです。それは倒れません。つまり、メモリが、ええと、不足することもありません。回復力を持つように設計されています。ええと、それからPublish操作におけるいくつかの変換について話します。これは、ええと、今はNotebookで行いますが、将来的にスケールする際には、これをZillow's Cloud、ええと、Airbike Cloud、ええと、あるいは最終的なソリューションをどのようにデプロイすることにしたとしても、そこに置くことができます。
では、ええと、これが今再実行されている間に、コードを手早く説明します。ええと、まずこの最初のステップでは、Pi mil model denseから、open AI embedding functionを取得すると言います。そして、ええと、それをOpen aiからのembedding functionとして定義します。ええと、air Byteには組み込みのシークレットサポートがあるので、この場合はCoLab Secretsからシークレットを取得します。ええと、ただし、環境変数、ええと、またはNVファイルからも自動的にシークレットを取得します。
ええと、私たちはこれを本当にスムーズで、かつ本当に安全なものにしたいだけです。では行きましょう。ええと、パッケージのインストールに成功し、ベクトルのリストの作成にも成功したようです。ここで行ったことは、あ、誤って全体をもう一度実行してしまいました。大丈夫です。
先に進んでいます。ええと、コードが素早く実行されるのはいいですね。ここでは、単に、ええと、ドキュメントをエンコードしています。上のdocsは、ええと、dataset上の2つのドキュメントと言ったところです。ええと、このインターフェースはLang Chainとも完全に互換性があります。
ええと、私たちはLang Chainと提携して、ええと、two documentsが、Lang Chain、LAMA Index、その他の、ええと、その他のツールでも使えるドキュメントを生成するようにしました。この場合は、ドキュメントをそのまま渡すことができます。ええと、ここでは、ええと、それらのドキュメントのcontentを取得し、それをstringに変換し、いくつかのベクトルを取得しています。ええと、end code documents functionを実行することによってです。ええと、そしてこれらのベクトルは、実際、ちょっと手早くprintして、どのように見えるか確認してみましょう。ご想像のとおり、これは単に、私がエンコードしたドキュメントに対応する、これらのfloatの膨大なリストです。そして、ええと、今度はvis clientを使って、ローカルのvisインスタンス、ええと、またはデータベースを作成します。
これは素晴らしいです。なぜなら、本番システムやプロトタイプで副作用を心配する必要がないからです。管理すべきインフラもありません。ええと、そのまま直接実行できます。前回のイテレーションで以前にやっていたことをすべて破棄して、新しいコレクションを作成することも含めてです。ええと、そして次元数については、単に、ええと、その、次元モデル内の次元数を使えばいいです。これを実行すると、ええと、データは、ええと、blob に保存されます。
次元数を出力できます。この場合は、ええと、1536 です。そして最後に、データを挿入します。ええと、まあ、最後ではありません。というのも、すぐにその恩恵を受けることになるからですが、ここでの最後は、その、Vector Store の送信先を公開することです。ええと、ここで行っていることはすべて、コードなしで air by crowd でも実行できます。ええと、ただしこの場合は、これを、ええと、Pine Elvis、ええと、または VUS light でどのように行うかを紹介しているだけです。
つまり、ええと、はい、ここでデータをロードしました。ここで、ええと、insert ステートメントをお見せします。コレクション名を指定し、先ほど作成したドキュメントを渡しました。ええと、そうですね、今度はここから価値を取り出す時間です。ええと、私たちがやりたいことは、質問を受け取り、Spark interop に関連する issue を要約し、ええと、その質問から、ええと、関連する issue を見つけて要約することです。
そこで Mil Vista search を実行し、ええと、コレクション名、ええと、データ、ええと、返したいエンティティ数、そして取得したいフィールドを指定します。ええと、出力結果はレビューしませんが、これを実行すると何が起きるかを、ええと、お見せします。ええと、ここに要約が表示されるはずです。ええと、この場合、私は OpenAI を使って簡単な呼び出しを行っています。そして、ええと、このリポジトリには未解決の GitHub issue が2件あると教えてくれます。
issue は、機能リクエストとドキュメント作業に関するもので、spark を dataset に追加し、prior right personas を要約するというものです。ここで私は正常に利用できました。私は、私は質問していて、今や自分のデータに対して、ええと、好きな質問を何でもできます。そして、これが期待どおりに機能するかを検証できます。ええと、期待どおりに機能したら、プロモーションについて話すことができます。しかしこれは基本的に、完全に自己完結したエンドツーエンドのデータパイプラインであり、extract、load、transform、そして publish、ELTP がすべて1つの notebook に入っています。そしてこの notebook を見たい場合、または、ええと、知らせていただければリンクを共有できます。ええと、はい、チャットに一言書き込んでください。
はい。それでは戻って続きを進めましょう。さて、ええと、これまでずっとほのめかしてきたように、ええと、プロトタイプを構築するときにどの選択肢を使うかは、本番環境に移行しようとしたときに成功するかどうかに、ええと、本当に大きく影響します。ええと、先ほど言いましたが、私はデータ分野にかなり長くいます。何か月も何か月も努力したにもかかわらず、本番環境に到達しなかった ML プロジェクトや AI プロジェクトを、ええと、実際に見てきました。
ええと、AI プロジェクトや ML モデルを本番環境にデプロイする成功率は、ええと、おそらく20%未満の成功率だと思います。ええと、推定では、本番環境に到達できない失敗率は80〜95%のどこかだと思います。ですから、自分の、ええと、プロトタイプが本番環境に到達する可能性を高めたいなら、ええと、良い基盤の上に構築すること、ええと、それこそが本当にやるべきことです。そして私が示したものはすべて、始めるのが簡単でした。Python で実行するか、または好みの場所で実行します。
ええと、しかし今は、IT グループに簡単に引き渡したり、クラウド上の、ええと、本番パイプラインに入れたりできる、構成可能なステップがあります。ですから、ええと、もし、ええと、もし、私はここで、その matrix のものを使っていますが、まあ、ええと、でもそうですね、最初に戻って忘れてやり直さなければならない、ということは避けたいのです。ええと、プロトタイプで非常に慎重に構築したものが、ええと、デプロイしようとしたときに IT チームに拒否される、というリスクは取りたくありません。ええと、私たちは、ええと、デプロイ可能な基盤の上に構築したいのです。そして今日デモしたものはすべて、準備ができたときにクラウドへ簡単に移行したり、クラウドへプッシュしたりできるものです。
ええと、カスタムコードを書くと、それはより難しくなります。ええと、私は個人的に、ええと、人々がソリューションや優れたドラッグ&ドロップのキャンバスインターフェイスを開発して、ええと、それをITチームに引き継ごうとして、ITチームが「いや、これはサポートできません。すみません」と言うのを見てきました。ええと、そして、そしてこれは以前から、ええと、適切な設計上の選択ができるように設計してきたものです。そして私は、Mils Light は本番環境への明確な道筋があり、そして、ええと、デプロイしたときに非常にスケーラブルな、使うのに素晴らしいツールだと思います。
それで、ええと、ELTP 上に構築する利点ですが、先ほど言ったように、ええと、ツールを移行したり再構築したりする必要は避けたいですよね。でも、Python でも、その他の、ええと、ええと、選んだ言語でも、すばやく簡単に反復できる、扱いやすい環境は欲しいわけです。ええと、そして、ええと、私が示したアプローチでは、うまくいくもの、うまくいった実験は何でも、そのまま昇格させることができますし、うまくいかないものは手放せます。ええと、どちらにしてもサポートすべきコードはそれほど多くありません。ええと、私が話さなかったことの1つに CICD や Git ops などがありますが、GIT や CICD が好きな方であれば、今お見せしたものはすべて、ええと、CICD と非常に相性が良いです。はい。
ええと、さて、これで以上だと思います。ええと、さらに質問があればここで一旦止めて、ええと、ええと、はい、その後締めくくります。はい。今朝はとても素晴らしいグループですね。ええと、チャットの質問を確認しています。
ええと、最後の質問を書き込む時間を皆さんに少し差し上げつつ、私は、ええと、ええと、あといくつかだけ進めます。では、ええと、はい、ちょっとした、ああ、はい。ええと、285 ほどの、ええと、コネクタについて言及されましたね。はい。接続の種類や yamo を見ています。
ええと、非常に人気があると見ている特定の、ええと、コネクタやコネクタの種類はありますか?はい。ええと、非構造化データソースは非常に人気があります、ええと、ええと、なぜならテキストは今やデータであり、テキストは今やデータ、あるいは私たちはテキストをデータとして扱えるようになったからです。なので、ええと、ええと、これは必ずしも、その、yamo やローコードではありませんが、ええと、私たちは Google Drive、S3、ええと、Azure Storage、PDF や Google Doc などを保存する可能性のあるすべての場所に投資してきました。ええと、そして今、「ねえ、1か月前にデザインパターンについて話していたあのドキュメントは誰の、何の、何だったっけ?」と言いたい場合、ほぼ確実にそれを見つけられ、ええと、rag を通じてそこからインサイトを見つけることができます。ええと、ええと、No-code builder で本当に人気のあるもう1つは、内部エンドポイント向けの構築です。
ええと、ほぼすべての会社は、ある程度の規模のインフラを持っていれば、ええと、内部利用のために自社のAPIを構築し始めます。ええと、そしてそれらは、既製のコネクタとして見つかることは絶対にないようなものです、ええと、なぜなら文字通り自分たちで作ったものだからですし、分析機能などをゼロから構築したいわけでもないからです。ええと、だから、ええと、No-code builder と、そして本当に人気のあるカスタムコネクタは、時には自分たちにだけ意味のあるものだったりしますが、でも、その、自分でそれを構築できるという事実が、ええと、やはり非常に価値があります。なので、私たちは、たしか280個のコネクタがあると記載していますが、でも、ええと、人々が何千ものコネクタを構築してきたことを知っています。ただ、それらすべてが外部に、ええと、コミュニティに公開する価値があるわけではないのです。
ええと、でも、はい、素晴らしい質問です。ええと、私の音声は届いていますか?たぶん、たぶん私は、では、ありがとうと言って締めくくります。私は、Christie がいなくなったのか、あるいは自分が切断されたのかもしれません。ええと、まだつながっていますか?はい。ええと、では、ここで、ええと、締めくくります。
ご参加いただいた皆さん、ありがとうございます。そして、ええと、このトピックを楽しんでいただけていれば幸いです。私たちへの質問があれば、ええと、遠慮なくご連絡ください。私たちは Slack にいます。ええと、そして、ええと、はい、ホストしてくださった Zillow、本当にありがとうございます。あ、すみません。
ホストしてくださった Christie、ありがとうございます。私は今、ええと、皆さんにさよならを言ったところで、ええと、ビデオで一瞬、あなたを見失ったと思います。はい。よく分かりませんでした。フリー、フリーズした画面が見えて、それで「ああ、まずい」と思いました。
それは、それは全部、それは、うん。どうなってるの?ああ、うん。ええと、だから私は、私はちょうど、ちょうど終えて、参加してくれた皆さんにありがとうと言って、これで、ええと、これで終わりにできると思います、それで大丈夫なら。だからごめんなさい。ああ、いや、大丈夫です、大丈夫です。
うん、私のせいかと思った。うん、まあありがとう。うん、私は、ああ、ごめんなさい、って感じでした。オーケー。まあ、わかりました。
ええと、うん、わかりません。そうでした、でもこういうものはライブ視聴者よりも長い尾を引くんです。うんうん。それで結局YouTubeに出て、うんうん。そしてロングテールでずっと多くの再生数を得るんです。
うん。わかりました。うん。ええと、では、これをやってくれてありがとう。ありがとう。
うん。いえ、感謝しています。それから、ああそう。それからあなたのスライドで、あの、Pineconeを変えてもらえますか?ああ、ロゴ?はい。すみません。
うん。差し替えはZillowのになります。うん。ええと、なぜならZillowのマネージドオープンソースNovisだからです。オーケー、素晴らしい。
ええと、うん、それで、それから、それから共有します、私の、ええと、インターネットの不具合でごめんなさい。オーケー。うん、あなたが言っていることを少し聞き逃しましたが、Slackで確認できます。本当にありがとうございます。オーケー、ありがとう。
わかりました。じゃあね。
Meet the Speaker
Join the session for live Q&A with the speaker

AJ Steers
Staff Software Engineer, AI Technologies
AJ (Aaron) Steers is a Staff Engineer at Airbyte. AJ has been building open source data software for 4+ years and has contributed to Meltano, Singer, Pipelinewise, and other open source projects. AJ has previously worked as a data engineer and architect for large companies like AWS, Amazon Video, and Starbucks - but his real passion is for open source and bringing best practices to the wider data community. When not building software or data systems, AJ enjoys singing with the Seattle Esoterics and playing with his 8 yo son and his dog Pip.


