伝統的な機械学習エンジニアと新しい時代のエンジニアの違いは、ソフトウェアエンジニアリングのスキルと事前学習済みの言語モデル利用能力にある。新型エンジニアはソフトウェアの技術とデータサイエンティストの思考が要求され、事前学習モデルはユーザーの入力次第で変わるため、境界設定と検証が必須。また、バックエンド、フロントエンド、データ処理の各スキルが必要。ジェネレーティブAIが話題となる中、伝統的なデータサイエンスの知識も継続して重要である。
公開日:2023年9月27日
※動画を再生してから読むのがオススメです。
私の見解では、従来の機械学習エンジニアと、生成的AIを取り扱う新時代の機械学習エンジニアを比較すると、実際には2つの主な違いがあります。
この間、Pine Cone AI変革サミットを視聴していました。そこで新時代の機械学習エンジニアという概念について聞きました。私にとっては新しい言葉でしたが、過去数ヶ月で取り組んできたプロジェクトを基にとても共感しました。
ですので、このビデオでは、新しい時代の機械学習エンジニアの概念がどのようなものか、どのようなスキルが必要か、従来の機械学習エンジニアとはどのように異なるか、どのようなプロジェクトに取り組むかを簡単に紹介したいと思います。
そして全体として、ビジネスにどのように価値を付加するのか?
初めての方々へ、私の名前はデイブ・アベラールで、Data Luminaというデータインテリジェンスのコーチングおよびコンサルティングビジネスの創設者です。
そして、私がこの変化で本当に気づいたことは、従来のデータサイエンスの仕事、つまり古典的な機械学習プロジェクトから、新しい時代の機械学習エンジニアがジェネレーティブAIと一緒に作業する場合、実際には2つの主な違いがあるということです。
最初のポイントは、もっとソフトウェアエンジニアリングのスキルが必要であるということです。
私はデータサイエンティストとして訓練を受けていましたが、これらの生成的AIプロジェクトに取り組む中で、従来の機械学習アプローチの違いを真に認識しました。
これらのアルゴリズムを持っていて、自分自身のデータや企業のデータでそれらを訓練し、問題を解決するために特定のものにすること、そして最適なアルゴリズム、最適なデータを見つけること、それがあなたの機械学習ソリューションを構築する方法です。
しかし、事前に訓練されたこれらの生成的AIモデルを持つようになった今、私たちは様々なAPIを介してそれらと対話します。
現在私たちがこれらのアプリケーションを構築する主な方法としては、リトリーバル増強生成というプロセスを使用して、ベクターデータベースにデータを保存し、リトリーバルを行います。
そして、それを大きな言語モジュールへの入力のように渡します。
それについてもっと学びたい場合は、私の前のビデオをチェックすることを強くお勧めします。
しかし、それが主要なプロセスです。
多くの技術的な詳細には踏み込まずに、これは基本的に多くのサービスを接続しなければならないということを単純な用語で意味します。
例えば、ベクターデータベース、大きな言語モデルAPIを持っており、回答を得るためには、まずユーザーからのクエリを取得し、それをベクターデータベースに渡して取得し、それを言語モデルに送信し、回答を取得します。
そして、それをどこかに保存したいかもしれません。
そして、基本的には、それぞれが独自のことを行うさまざまな動くデータ部分を持つ全体のアプリケーションを構築しています。
そしてその間に、カスタムロジックを構築したい場合は、カスタム関数を追加します。
実際にアプリケーションを構築することにもっと焦点を当てて、機械学習モデルやアルゴリズムの訓練や調整よりも実際には。
ソフトウェア開発のこの概念と、そのために必要なスキルが実際にどこから来るのか。
私は多くの分野でスキルアップをしなければなりませんでした。
例えば、私は主要なプログラミング言語として主にPythonを使用してきました。
まだ使用していますが、たとえば、Flaskを使用してこれらのエンドポイントをアプリケーションで利用可能にするための簡単なウェブアプリケーションを構築する方法など、いくつかのスキルアップが必要でした。
それが主なポイントの一つです。
そして、一般的にAPIの操作方法や、それをどのように接続するか、ベクターデータベースの操作方法や、それを効率的に行う方法、様々なチェックを配置する方法など、典型的なソフトウェアエンジニアリングプロジェクトで見られるすべての内容。
新しい時代の機械学習エンジニアは、ソフトウェアエンジニアリングにもっと傾斜しているように感じますが、データサイエンティストの考え方が必要です。
それはなぜですか?
そして、それは私たちをポイント番号2に連れて行きます。
これらの事前に訓練された言語モデル、すでに非常に有能な事前に訓練された大きな言語モデルを操作する方法を学ばなければなりませんが、ユースケースに特化していません。
これらのモデルを使用して非常に特定のビジネスの問題を解決したい場合、それらを特定のものにしなければなりません。
どのようにしてそれを実現するのですか?
コンテキストを追加し、リトリーバル増強生成のプロセスを通じてデータを追加します、例として。
しかし、ソフトウェアエンジニアリングとの違いはここにあります。
ソフトウェアエンジニアとして、ほとんどの場合、確定的なアプリケーションを操作するように訓練されています。
これは何を意味するのですか?
例えば、APIを作成するとき、特定の種類のリクエストを送信し、特定の出力を期待するか、予測可能なアクションを期待します。これは、それを繰り返すことができ、それらの実験を繰り返すことができ、テストを行うことができることを意味します。
しかし、これらの事前に訓練された大きな言語モデルは、非確定的です。
あなたが結果として何を得るのかを正確には知らない。
もちろん、モデルをあまり創造的でなくするために、温度設定をゼロまでプレイすることはできます。
しかし、あなたの出力もユーザーの入力に依存しています。
例えば、現在の生成的AIの最も一般的な使用例の一つは、内部データや企業データのチャットボットを作成することです。
これらは、企業が自社のデータに関する質問をするために社内で使用するチャットボットです。
人Aはある方法で質問をするかもしれません。
そして、同僚の人Bは、基本的に同じ情報を取得したい場合でも、少し違う方法で質問するかもしれません。
これらの両方のクエリは、全体のgen AIアプリケーションを通じて異なる方法で解釈および処理される可能性があり、その結果、人1はベクターデータベースからの文書の一部を取得し、Genアプリはそれに基づいて答えを出すかもしれません。
一方、もう一人の人は、単語の使い方に基づいて、ベクターデータベースから異なるデータの部分を抽出し、異なる出力を得るかもしれません。
これを言いたかったのは、ソフトウェアエンジニアとして、これらのアプリケーションは予測不可能なので慣れていないからです。
しかし、それがデータサイエンティストの考え方が必要だと私が言った理由です。
データサイエンスや機械学習では、これは非常に一般的です。
つまり、機械学習アルゴリズムを訓練し、データを入力しますが、最初は何が得られるか本当にわかりません。
モデルがどれほど良いかは本当にわからない。
例えば、分類アルゴリズムを作成するとき、データサイエンティストや機械学習エンジニアは、答えが間違っている可能性があるという事実を認識しています。
モデルが100%正確であることはありません。
これは、これらの大規模な言語モデルやgenアプリ全般にも当てはまります。
まるで、彼らはまだ舞台裏にいるかのようです。それらは機械学習モデルです。
それらは訓練された機械学習モデルです。
そして、私たちは古典的な機械学習モデルと同じ方法でそれらに影響を与えます。
つまり、私たちはデータの束を持っていて、それをモデルに送信し、出力を得ます。
だから、これが違いを本当に強調していると思います。
これらのアプリケーションを一緒に構築するためには、ソフトウェアエンジニアリングのスキルが必要です。
しかし、それが実施されると、データサイエンティストの実験的でデバッグのマインドセットが本当に必要です。
ですので、これらのアプリケーションを試してみると、例えばモデルが間違った回答を提供している、幻覚を起こしている、またはファクターデータベースから間違った情報を取得しているなどの問題に直面することになります。
それから、新しい時代の機械学習エンジニアとして、これにどのように対処するかを見つけるのはあなたの役目です。
それは、ファクターデータベースの構造を変更すること、メタデータを追加すること、より多くのチェックを追加すること、あるいは大きな言語モデルで答えを評価する中間ステップを追加することなど、さまざまな方法で行うことができます。
やることはたくさんあり、これに非常に創造的でなければなりません。
本当に、可能性は無限大です。
これらのアプリケーションは非常に強力ですが、あなたがそれらを指示し、誘導する必要があります。まず第一に、あなたが境界を設定して、彼らが暴走したり幻覚を見たりしないようにする必要があります。
しかし、境界内で、ユーザーに提供する最終結果、出力が正しいことを本当に確認するためにさまざまなチェックを実施する必要があります。
そして、もちろん、これはますます重要になります。例えば、あなたが始めると...
だから、あなたがやるべきことは...
通常、企業が行うことは、社内で開始することです。
これは何を意味するのでしょうか?
社内で企業をサポートするアプリケーションを作成します。
そして、回答が正しくない場合の影響は非常に低いです。すべて内部ですから。
そして、例えば参照先にリンクするなど、事実確認を行うことができます。
そして、従業員が答えが正しいかどうかを本当に確認するための独自の調査を常に行うことができます。
だから、それは助けるツールです。
助けることができます。
しかし最終的には、出力に責任を持つのは人間です。私の言っていることがわかるでしょうか。
顧客対応のアプリケーションにこれを切り替えるとき、例えば、顧客サポートのボットを作成し、お客様に直接、ウェブサイトやアプリなどでこのAIボットやこの大規模言語モデル、またはこのアプリケーションと直接対話させる場合、顧客が例えば「この購入した商品の返品ポリシーは何ですか?」と尋ねた場合、その答えが正確であることを確認したいと思いますよね?
その答えが正しいことを確認することが本当に重要です。
そうしないと、使用している情報の種類によっては、法的な影響を及ぼす可能性があります。
企業がこの新しい技術に頼るようになると、誤った回答の影響について本当に意識しなければならないことがわかります。
それでは、これら2つのトピックを説明したので、簡単に要約すると、私が実際に見ているのは新時代の機械学習エンジニアです。
機械学習エンジニアは今、彼らのツールキットに追加のモデルセットを持っていると感じます。
それでも、他の機械学習モデルは特定のユースケースにはまだ関連しています。
しかし、私たちは今、大規模言語モデルも持っており、それは機械学習エンジニアがユースケースに応じて使用できる機械学習モデルの一部です。
それらはワンサイズフィットすべてではないですが、特定のユースケースには非常に効果的です。
したがって、それは新しいツールキットです。
その新しいツールキットには、新しいルールや戦略、スキル、そして考慮すべき全体的なことが伴います。
それは大規模な言語モデルがどのように動作するかを本当によく理解し、どのように境界を設定し、文脈を追加するための手法やツール、例えば取得拡張生成を使用する方法、これらの非常に強力なツールを実際に使用できるアプリケーションに本当に変換する方法です。
そして、私たちはMLOpsの部分も持っています。
これらのジェネリックなアプリケーションにとっても、それは同じままです。
LangSmithのようなプラットフォームは、ジェネリックアプリケーションの評価と監視システムを実際に設定する方法の例を設定するために既に素晴らしい仕事をしています。
そして、MLflowもそうです。
彼らもこれを試していることを知っています、ツールキットに新しい機能を追加すること。
したがって、これらのプラットフォームが出現するのを見ると、既存のプラットフォームがこれらすべてで動作する新しい機能を構築しているのを見ることができます。
それが考慮すべきことだと思います。
それは新しい役割ではありません。
それはあなたが興味を持っている場合に自分自身を装備することができる新しいツールセットに過ぎません。
したがって、それは私が思うように、すべての人のためではないです。
あなたは非常によく、より古典的な機械学習アルゴリズムに焦点を合わせて、それだけで働くことができます。
それを取り除くと、私はまた、私が組み立てたプロジェクトチームのようなものを強調したいと思います。
そして、また、すべてのメンバーに必要なスキルは、基本的にはエンドツーエンドでこれらのプロジェクトを本当に提供するために必要なものであり、従来の機械学習アプローチとあまり変わりません、と私は言いたいと思います。
私が今、本当に価値を創出するのは、UIの価値が非常に高いのはなぜかと思います。
なぜなら、これらのAIアプリケーションは現在、非常に顧客対面型であり、伝統的な機械学習アプリケーションはダッシュボードに終わる可能性があり、それを見る人がいるか、バックエンドの裏側のどこかの自動化に終わる可能性があるからです。
しかし、現在、主要なアプリケーションは、通常、チャットアプリケーションのようなもので、実際にフロントエンドにあります。
確かにバックエンドにそれらを実装することもできますが、それは少し難しく、そして現在はそれほど一般的ではありません。
したがって、私たちが取り組んできたプロジェクトのほとんどを実行するには、私たちがバックエンドAIエンジニアと呼ぶものが本当に必要です、そしてこれも新時代の機械学習エンジニアが該当するものです。
したがって、あなたはこれを、2人の人々と、したがって、専用のソフトウェアエンジニアと機械学習エンジニアまたはデータサイエンティストをペアリングして、バックエンドを実際に作成することができます。
または、私たちが通常行うことは、私がその役割を引き受け、データ接続すべてを設定するだけでなく、データをベクターデータベースに入力すること、そして通常、LangChainと一緒に、すべてをまとめて堅牢なアプリケーションを作成するためのロジックを本当に設定するための責任があります。
そして、他方、フロントエンドでは、すべてがユーザーに結合され、これが私が例えば、JavaScript、TypeScript、またはReactを知っているフロントエンド開発者とペアを組む場所であり、アプリケーションのフロントエンドを構築し、人々が実際に使用できるチャットインターフェースにそれを入れることです。
したがって、それは、これらのプロジェクトを完成させるために必要な主要な役割の、私が言うところの3つのようなものです、そしてどれだけの知識を持っているかに応じて、それをすべて自分自身で行うこともできますし、2人または3人のプロジェクトチームに分けることもできます、再びあなたのニーズと利用可能な人々に応じて。
したがって、全体として、Pythonのような、私が信じる、確固とした理解が本当に必要です。
あなたはまた技術的にはJavaScriptでこれをすべて行い、フロントエンドでアプリケーションを構築することもできますが、現在のところ、人気が出てきていることですが、私はまだPythonで非常に自信を持っていて、また、カスタムロジックを構築する場合、Pythonはそれにもっと適していると本当に感じています。
したがって、それはまだ私の好みを持っていますが、バックエンドのための、それにもかかわらず、それは、あなたがAPIの作業方法を知っている必要があることを意味します、そしてすべてを一緒に組み立てる方法。
ベクターデータベース、ベクトル化プロセス、埋め込みモデルの理解が必要です。そして、それらすべてをどのようにして一緒に組み立てるかも再び、そしてデータの処理方法を一般に本当に理解することは非常に有用です。なぜなら、クライアントはしばしば多くのデータを持っており、それらは構造化されている場合もあれば構造化されていない場合もあるからです。そして、どちらのデータも作業し、それをこれらの大規模な言語モデルに利用可能な形式にする方法を知っていることは、成功するために本当に必要です。
そして、私が言ったように、あなたはほとんどの時間、フロントエンドアプリケーションの構築方法を理解する必要があります。
そして、ウェブアプリケーションの構築も。
ですので、サーバー上に置くことができるバックエンドを構築し、フロントエンドが通信して処理を行い結果を利用可能にするためのものです。
そして、現在の企業のデジタル化戦略全体にどのようにgenが適合しているか、そして他の利用可能なツールや手法と比較してどのように位置づけられているかについての最終的なメモです。
そのために、私の無料グループ、Data Alchemyのメンバーが共有した記事を参照したいと思います。
とても興味深い記事だったと思いますが、Minさんが共有したものです。
これは、McKenzieからの「生成的AIの未来は何か、15のチャートでの初期の見解」という記事です。
記事の詳細すべてについては触れませんが、私が特に注目した点、そしてこれを読み上げるのは、Genは大きな前進ですが、従来の高度な分析と機械学習は依然としてタスクの最大部分を占めており、さまざまなセクターで新しいアプリケーションを見つけ続けています。
デジタルとAIの変革を進めている組織は、genに目を光らせることが重要ですが、他のAIツールを排除することはありません。
ヘッドラインになっていないだけで、生産性を向上させ、最終的には価値を生み出すために彼らを働かせることができるわけではありません。
そして、これは現在の生成的AIの状況を非常によく要約していると思います。
生成的AIは注目の的で、トレンドで、新しいもので、全てのヘッドラインを獲得しています。
しかし、他のAIツール、もっと伝統的なデータサイエンス、機械学習、さらにはデータ分析のアプローチも、ほとんどの企業にとってはまだ非常に新しいものであることを忘れてはなりません。
ほとんどの企業はそれに関して何も行っていません。
この旅を始める際や、すでにデータサイエンティストや機械学習エンジニアである際も、これを念頭に置いてください。
このgenの台頭で、古い学校や伝統的なスキルが時代遅れになるわけではありません。
両方の分野でまだやるべきことがたくさんあります。
そして、genがあなたが追求したいものであるか、あるいはあなたのスキルセットに取り入れたいものであるかどうか、個々に決める必要があると感じます。
全体的に、少なくともそれを試してみることは損ではないと感じています。なぜなら、基本的な原則と技術は非常にうまく補完しあっているからです。
私が言ったように、Ponが必要で、データ処理が必要です。
最終的には、それが単なるユーザーの質問、ユーザー入力、またはセンサーからの数値のような生のデータであろうと、それを情報や行動可能な洞察に変えようとしています。
これがまさにデータインテリジェンスの目的であり、また私の会社、Dat Luminaの目的でもあります。
それがデータインテリジェンスの本質であり、また私の会社であるDat Luminaが目指すことでもあります。
私たちは、生のデータを価値ある情報に変えるための助けとなることを望んでいます。
私たちは企業が生データを価値ある情報に変えるのを助けたいのです。
そして、genは私たちが使うツールのひとつです。
そして、生のデータを価値ある情報に変えることは、私の無料グループであるData Alchemyで行おうとしていることの目的でもあります。
これについてもっと知りたい場合は、それをチェックすることを強くお勧めします。なぜなら、私はそこでAlchemy codexと呼ばれるツールやスキルやワークフローの基本セットを共有しています。
もしこれについてもっと学びたいのであれば、ぜひチェックしてみることを強くお勧めします。そこでは、私がアルケミーコーデックスと呼ぶものを共有しています。それは、生データを情報に変えるために必要な基本的なツール、スキル、ワークフローです。
データサイエンティスト、機械学習エンジニア、新しい時代の機械学習エンジニアになりたいか、単にAIを試してみたいかは問題ありません。
これらは本当に必要なツールと技術です。何をするにしても。
興味を持ったら、それをチェックすることを強くおすすめします。
私たちは、データサイエンスや人工知能、その間の全てに興味を持つ人々の素晴らしいコミュニティを築いています。
もしそれに興味があるなら、ぜひチェックしてみることを強くお勧めします。
私たちはデータサイエンスや人工知能に興味を持つ人々の素晴らしいコミュニティを作っています。
それは本当に私を助けてくれるだけでなく、YouTubeにもこのようなコンテンツをもっと見たいという意志を示すことになります。
そして、ループの中にいたい、将来の動画を逃したくない場合は、
それは本当に私を助けてくれるし、またYouTubeにあなたがこのようなコンテンツをもっと見たいと伝えることにもなります。
そして、もし最新情報を知りたいのであれば、将来の動画を見逃さないでください。
購読ボタンも押してくださいね。
それでは、今はこれで終わります。
ご視聴いただきありがとうございます。
それでは、次の動画でお会いしましょう。