TECH PLAY

dotData, Inc

dotData, Inc の技術ブログ

28

DatabricksのFeature StoreとAutoMLの紹介 DatabricksのAutoMLと特徴量ストアとは、Databricksのエコシステムにおいて重要な組み合わせで、データサイエンスと機械学習の分野に革新をもたらします。このブログでは、これらのツールの基本を解説し、これらが機械学習モデルのトレーニングと管理を簡単にするだけでなく、効率的でスケーラブルにする方法を見ていきます。また、DatabricksとdotData Feature Factoryの統合について深く掘り下げ、そのメリットを理解し、データサイエンスプロジェクトで効果的に活用するための実践的なヒントとステップを紹介します。 Databricks Feature Storeとは何か Feature Store(特徴量ストア)は、複数のモデルにまたがる機械学習の特徴量の検出し、一元的に管理、共有するためのリポジトリを提供します。特徴量を簡単に保存、検索できる統一的なインタフェースを提供することで、データサイエンティストの特徴量エンジニアリングを効率化します。Databricks Feature Storeは、統合されたDatabricksのエコシステムの一部であり、DatabricksおよびdotDataを使用する際に、さまざまな利点をもたらします。Feature StoreはDatabricksの他のコンポーネントと完全に統合されているため、ツール間の連携がスムーズです。例えば、DatabricksのワークスペースからアクセスできるFeature StoreのUI(特徴量を管理するためのインターフェース)は直感的で、既存の特徴量をブラウズまたは検索できます。これにより、データサイエンティストは既存の特徴量を迅速に見つけて再利用でき、新たな特徴量の開発を効率化することができます。 また、モデルのスコアリングとサービングとも統合されていることもメリットの1つです。モデルのトレーニングに使用される特徴量がFeature Storeから選択されると、そのモデルは特徴量メタデータと関連付けられます。バッチスコアリングやオンライン推論の操作中に、Feature Storeから必要な特徴量を自動的に取得します。これにより、運用する側は特徴量について気にする必要はなく、簡単にモデルのデプロイや更新ができます。 さらに、Databricksは各特徴量の正確なリネージを保証します。このリネージ機能により、特徴量の元となるデータソースだけでなく、特徴量を使用する全てのモデル、ノートブック、ジョブ、エンドポイントにアクセスできるようになります。ユーザーが特徴量の依存関係やプロジェクトでの使用状況を確実に把握できるように、リネージによってデータの透明性を高めることができます。 Databricks AutoML(機械学習自動化)とは Databricks AutoMLは、モデル学習に直感的なアプローチを採用し、回帰、分類、予測など、それぞれの問題に合わせて多様な機械学習アルゴリズムに基づいてモデルを学習、評価します。これには決定木 、ロジスティック回帰 、アンサンブル学習などが含まれます。そして、モデルの評価では、再現率や平均二乗誤差(MSE)といったさまざまな評価指標が表示され、各モデルのパフォーマンスを比較できます。各モデルにはPythonノートブックが添付されています。そのため、どのようにモデルが学習され評価されたのかソースコードを確認することができ、機械学習プロセスを確認、再現、修正できることで、機械学習プロジェクトの透明性が高まります。さらに、データセットの全ての統計量サマリ は、後の詳細な分析のために保存されます。このように、複数のアルゴリズムでモデルを生成し、それぞれのパフォーマンスを比較でき、さらにモデル学習に利用したデータの特徴を視覚的に理解できるため、より信頼性の高い意思決定が可能となります。 Databricks AutoMLでは、データセット内の数値、二値、カテゴリ値の変数を処理することができます。Databricks AutoMLは柔軟なデータ分割オプション、たとえばランダム分割、時系列分割、手動分割などを提供し、分析の性質に応じて、データを学習用、評価用、テスト用に分割し適用することができます。また、大規模なデータセットに対しては、学習に必要なメモリを自動推定し、必要に応じてデータの整合性を損なうことなくサンプリングを行い、メモリ不足によるエラーを防止することができます。さらに、Databricks AutoMLは不均衡なデータセット(たとえば正例と負例の比率が1対99のようなデータ)に対して、主要クラスをダウンサンプルし重みを追加することで、不均衡なデータセットの問題を解決し、バランスの取れた学習とロバストなモデルを実現します。 特徴量エンジニアリングのための Apatch Spark SQLとSpark DataFramesの利用 特徴量エンジニアリングは機械学習パイプラインの重要なステップであり、モデルを構築するために、生データを前処理し学習に適した形式に変換するプロセスです。Databricksでは、Spark SQLとSpark DataFramesを使用することで、このプロセスを大幅に強化することができます。 Spark DataFramesはpandas DataFramesに似ていますが、分散処理を前提として設計されており、大規模データに対してより高いパフォーマンスを発揮します。また、データ操作、集約、変換のための関数を豊富に提供します。Spark DataFramesは、名前付きのカラムでまとめられるデータの分散型コレクション(データを分散して格納し、並行処理を行うことで大規模データセットを効率的に処理する仕組み)です。概念的にはリレーショナルデータベースにおけるテーブルや、RやPythonにおけるデータフレームと同じものですが、内部ではさまざまな最適化が行われています。Spark DataFramesは幅広いデータフォーマット(CSV、JSON、Parquetなど)やデータソース(構造化データファイル、Hiveテーブル、外部データベース、既存のRDDなど)をサポートしており、多様なデータセットに対応できます。このSpark DataFramesをDatabricks Feature Storeと組み合わせて利用することで、スケーラブルで効率的なデータ処理を可能にし、特徴量エンジニアリングのプロセスを迅速に進めることができます。  Spark SQLは、データを使用しSQLとして操作するための機能を提供し、Dataframeに展開されたデータに対して、データの操作や分析が直感的かつ効率的に行えます。Spark SQLは分散処理を利用して大規模なデータセットに対して高速にクエリを実行でき、データ分析や処理の効率を大幅に向上させます。Spark SQLをDatabricksに統合することで、使い慣れたSQL構文を使用して簡単に特徴量を作成できるようになり、生産性が向上します。また、さまざまなデータソースに簡単にアクセスでき、Spark SQLを使って一貫した方法でデータ操作ができるため、データ統合と管理が容易になります。 dotData Feature Factoryによる特徴量自動設計 特徴量の発見はデータサイエンスの重要な要素ですが、従来、ドメインの専門家の知識と、職人芸とも言える経験と勘による手作業と反復作業を必要としてきました。しかし、dotData Feature Factoryは、このプロセスを簡易化する新しいパラダイムを提供します。 dotData Feature Factoryについて dotData Feature Factoryは、異なるデータソース間に対するデータセットの管理を簡素化し、アナリスト、データサイエンティスト、データエンジニアなど、さまざまな背景を持つユーザーの実施するデータ加工に関するワークフローを簡略化します。このように、チーム間の連携を強化し、データを統合することで、大規模なデータもつ企業に対して、オープンでスケーラブルなデータソリューション開発を実現します。 dotData Feature Factoryは、結合、フィルタ、集約など、複数表の組み合わせ通じて特徴量発見プロセスを自動化し、大規模かつ複雑なデータに適用可能です。また、時間的結合を自動的に処理することでデータリーケージを防止し、広大な特徴量空間を効率的に管理します。このように、dotData Feature Factoryは、最適な特徴量を体系的に探索および選択するツールを提供し、ユーザーは特徴量を重要性と関連性に基づいて評価し、モデルを正確かつ容易に調整できます。 dotData Feature Factoryは、Widgetまたはプログラム上から、ユーザーが自身のニーズに合わせて柔軟に特徴量空間をカスタマイズできるように設計されています。これによって、ドメインに特有の要件にしたがう新しい特徴量を探索に含めることができます。dotData Feature Factoryで定義された、データ前処理から特徴量エンジニアリングまでの全ての処理は、「特徴量パイプライン」に変換されます。特徴量パイプラインは、効率と一貫性を重視して設計されており、機械学習モデルやその他のアプリケーションに直接統合することができます。 dotData Feature Factoryは、特徴量エンジニアリングの試行錯誤を再利用能なアセットへと変換し、従来の手作業かつ属人性の高いプロセスから脱却します。これによって、特徴量エンジニアリングは、アドホックな使い捨ての作業ではなく、データドリブンな意思決定を強化するためのアセットを蓄積する重要なプロセスとなります。dotData Feature Factoryは、Databricksを含むさまざまなプラットフォームと簡単に統合できるため、既存のワークフローにシームレスに適合し、データサイエンスチームが企業データを効果的に活用できるようにします。 Databricks Feature StoreとAutoMLにdotData Feature Factoryを統合 dotData Feature Factoryは、Databricks内のデータワークフローを自動化および最適化し、スケーラブルな機械学習モデルの構築とデプロイを簡素化します。dotData Feature FactoryをDatabricks Feature StoreとAutoMLと組み合わせてワークフローに組み込むことで、機械学習プロセスの自動化を強化し、高いスケーラビリティと効率性を実現します。 Databricks Feature StoreとdotData Feature Factoryを組み合わせることで、機械学習における特徴量の管理を目的とした、便利で効率的な特徴量ストアが実現します。dotData Feature Factoryで作成した特徴量テーブルは、Delta Lake上に構築されたDatabricks Feature Storeに格納できるので、高い信頼性とパフォーマンスの元、データを管理できます。これらのテーブルの作成はSpark DataFramesから行われ、Feature Storeに登録すると、ソース情報、変換用ノートブック、計算ジョブに関する情報を含むメタデータも更新されます。これにより、学習や推論ワークフロー全体での特徴量データの管理が非常に容易になります。 Databricks Feature StoreにはFeatureLookupという、機械学習モデルに必要な特徴量を特定のキーに基づき検索し、結合する機能があります。 この機能を利用することで、複数のdotDataの特徴量テーブルから必要な特徴量を検索し、データセットに結合できます。また、時系列データにも対応可能で、過去の取引履歴やセンサーデータなど、時間軸に沿ったデータを適切に結合し、時系列特徴量を生成することで、データリーケージを防止しながら学習用のデータセットやリアルタイム予測に必要なデータを効率的に取得できます。 例:Databricks Feature Storeを使用した特徴量の検索 このように、Databricks Feature Storeは、再利用可能な特徴量のデータセットを迅速に構築でき、データの一貫性が保たれるため、特徴量エンジニアリングを通じて発見されたデータを使用してモデルの学習、デプロイまで、機械学習のライフサイクルが効率化されます。詳しくは、「 Feature Storeとは 」を参照ください。 以下に、Databricks Feature Storeを使用して、特徴量テーブルを作成し、FeatureLookupを設定する例を示します。 dotDataとDatabricks AutoMLの統合による効率的な機械学習 複数の自動化ツールを統合することで、機械学習モデルの開発とデプロイプロセス全体を自動化することができます。この目的のため、dotData Feature FactoryをDatabricks AutoMLを組み合わせることで、特徴量エンジニアリング、特徴量選択、それに続くモデル選択、ハイパーパラメータ調整のプロセスを自動化します。 引用: AutoML Databricks この統合の概要: dotData Feature Factoryを活用することで、データサイエンティストは特徴量エンジニアリングを素早く正確に行うことができます。特徴量の抽出と検証を対話的に繰り返せることで、高次の特徴量を導き出すことができます。 dotDataが生成した特徴量テーブルをDatabricks内で利用することで、データの一貫性と再利用性が確保されます。これにより、特徴量エンジニアリングが効率化され、学習データの準備を迅速に行え、モデル開発のスピードが改善されます。  Databricks AutoMLは、モデルの学習と評価を自動化し、dotDataの特徴量を活用することで、より高品質なモデルを構築し、最も効果的なモデルを簡単かつ迅速に選択します。 Databricks AutoMLで生成されたモデルをMLflowにログ(記録)することで、モデルのトラッキングと管理が容易になります。これにより、モデルのバージョン管理や再現性が確保され、実験結果の共有と比較が効率的に行えます。 このように、dotData Feature FactoryとDatabricks AutoMLを統合することで、効率性、モデル精度、ロバスト性、スケーラビリティ、ガバナンスにおいて大きなメリットが得られます。 例:dotDataで生成した特徴量テーブルでAutoMLを実行 以下に、Databricks AutoMLを使用して、特徴量テーブルから分類モデルを学習し、予測を実施する例を示します。 まとめ dotData Feature FactoryをDatabricks AutoMLとFeature Storeに組み込むことで、機械学習パイプラインの効率が向上するだけでなく、複雑なモデル学習と特徴量エンジニアリングに簡単に対応できるようになります。このワークフローにより、プロセス全体にかかる時間を大幅に短縮できるだけなく、機械学習モデルの精度と信頼性が高まります。 DatabricksのAutoMLの詳細については、 Databricks AutoMLの公式ドキュメント を参照ください 。公式ドキュメントでは、Databricks AutoMLが、特徴量の前処理からハイパーパラメータ調整まで、機械学習のライフサイクルのさまざまな段階をどのように簡素化し、自動化するかについて説明しています。 Databricks Feature StoreとAutoMLをdotData Feature Factoryに統合することで、ワークフローの合理化が促進され、機械学習モデルのパフォーマンスが向上します。これらのツールを活用することで、これまでデータサイエンティストが手作業で行ってきた作業を最小限に抑え、モデルの精度を高め、最終的にデータソリューションを市場へ素早くリリースすることができます。 次回のブログでは、Databricks Delta Lake、Unity Catalog、そしてdotData Feature Factoryに重点を置き、企業におけるデータ活用を飛躍させる最新のアーキテクチャを紹介します。詳細につきましては、 こちら を参照してください。 The post Databricksの特徴量ストア(Feature Store)とAutoMLの力を最大限に活用 appeared first on dotData .
アバター
特徴量設計とは? 例えば、機械学習や人工知能を応用した顧客の解約予測、製品需要予測、商品の売上予測など、ビジネス上の重要かつ複雑な問題に取り組んでいるとしましょう。機械学習による予測分析では、よりよい機械学習のアルゴリズムや手法を選ぶことが成功の鍵であると思われがちです。ロジスティック回帰、決定木、ブースティング、ニューラルネットワークなど、適切な機械学習のモデルを選び、予測精度と解釈性のトレードオフを考慮しながらモデルをチューニングする作業も、モデル開発にとって欠かせない工程です。一方で、Garbage-in, Garbage-out(ゴミを入力すると、ゴミが出力される)という有名な言葉の通り、機械学習モデルを訓練するための入力データの準備が、多くの場合、機械学習の成否を決めます。この、機械学習モデルを訓練するための入力データ(説明変数)の準備を、特徴量設計、或いは、特徴量エンジニアリング、といい、特徴量とは説明変数とほぼ同じ意味と考えることができます(現代機械学習における特徴量は、ディープラーニングに非構造化データからの特徴量を含み、古典統計における特徴量よりも広い意味で使われます)。 機械学習や統計の教科書では、目的変数(Y)と説明変数(X)があり、その関係性を統計的に学習或いはモデル化すると説明されています。また、説明変数Xに対して、例えば、 カテゴリ変数に対してワンホットエンコーディング を適用したり、数値変数に対する四則演算或いはlog変換を適用したり、或いは主成分分析のような多変量解析を利用して、Xから新しい変数を作成する工程が特徴量設計として説明されています。 この「説明変数(X)」は、どこからやってくるのでしょうか?実際の業務データは、顧客、製品、従業員などエンティティの異なるマスターテーブルや、履歴テーブルや時系列データのようなトランザクションなど、様々な形の異なるテーブルにデータが分かれて、データベースに蓄積されています。現実の機械学習プロジェクトにおける特徴量設計とは、このように業務のために蓄積されたローデータからドメイン知識に基づいて機械学習に入力できる説明変数(一枚表)を作成するプロセスです。目的変数(業務課題)に対して適切な特徴量を設計するためには、業務知見、データ加工、数学・統計など、さまざまなスキルが必要になります。特徴量を設計するためには、通常、SQLなどを駆使して多数のクエリを実装し、多くのデータ操作と変換を実行する必要があります。以下の模式図は、構造化データ(業務データの多くは、構造化されデータベースに蓄積されています)を特徴量に変換する様子を表しています。 なお、本ブログでは、特徴量エンジニアリングの中でも、複数のテーブルに分かれた業務データから機械学習の入力となる説明変数(特徴量)を見つけ出す工程に焦点をあて、特徴量選択には深く踏み込みません。特徴量の選択は多数の特徴量の候補がから、有効な特徴量を選択する重要な工程ですが、説明変数Xが準備されてから適用することができます(なお、dotDataの特徴量自動設計のように数百万もの特徴量を探索させる場合には、Xをメモリ上に展開することができないため、特殊な特徴量選択のテクニックが必要となります)。 特徴量設計の重要性 前節で説明したように、機械学習による予測モデルの品質や予測精度は、入力データとなる特徴量の品質に左右されます。例えば、顧客が短期間のうちにコールセンターに何度も問い合わせをしてきた場合には、顧客が何らかの不満やトラブルを抱えている可能性が高く、例えば「3日間のコールセンターへの問い合わせ回数」は、解約予測のための有効な特徴量となるかもしれません。或いは、小売り店舗にとって、「周辺2km以内で体育祭をやる学校があるかどうか」が、商品の需要予測精度向上に効く特徴量になるでしょう。 このように、特徴量設計は、予測精度を高めるための複雑な数学や統計的な変換を見つけ出す以上に、目的変数(ビジネスの課題)と関係性の深い意味のある「特徴」を見つけ出すことが重要です。一方で、そのような特徴量を見つけ出すためには、ドメインの知識(業務に関する知識や、ビジネス課題に対する経験と直感)、データの知識(データ項目の意味や、テーブル間の関係性)、統計・機械学習の知識(統計的な安定性や予測力)といった様々な知識が求められ、特徴量設計は機械学習モデルを開発するプロセスの中で、最も重要かつ最も難しい工程と言われています。データ加工、特徴量設計、機械学習と可視化という一連のプロセスの中で、機械学習は統計数理という業界非依存のスキルとして比較的身につけやすい一方で、データ加工や特徴量設計は、業界や業務、或いは個別企業に特有のデータやドメインの知識が求められるため、知識やノウハウの蓄積が非常に重要になります。 特徴量設計の代表的な手法 特徴量設計には、様々な手法がありますが、大きくは入力データのタイプによって分類することができます。 例えば、カテゴリ属性に対する最も一般的な特徴量設計の方法は、カテゴリ属性を数値表現に変換するというものです。これは、カテゴリ値を数値へとエンコード(符号化)し、これによって多くの機械学習アルゴリズムにとって扱いやすい新しい数値属性を生成します。基本的なワンホット・エンコーディングやラベル・エンコーディング、目的変数の情報を考慮したターゲット・エンコーディングなどが代表的です(各手法の詳細は、 カテゴリ属性に対する特徴量設計 を参照してください)。 時間情報に基づく特徴量も非常に重要かつ、特に時系列予測において、機械学習モデルの予測精度の向上に大きく寄与します。時系列データに対する特徴量には、ラグ特徴、時間間隔特徴、タイムスタンプと時間的イベント、フーリエ変換やウェーブレット変換などより高度な数学的変換に基づく特徴などが代表的です(各手法の詳細は、 時系列データの特徴量設計 – パート2 を参照してください)。 その他にも、 位置・空間情報に基づく特徴量 や、テキストや音声などの非構造化データからの特徴量など、データの性質や、ビジネスの課題(目的変数)によって、特徴量とは無限に可能性があり、特徴量設計は分析者のアイデアやスキルといった属人性が高くなりがちです。 業務データからの特徴量設計 前節で、いくつかのデータタイプに関する特徴量と特徴量設計について説明しましたが、このブログの冒頭で説明したように、現実のプロジェクトにおける特徴量設計の難しさは、多数の異なるテーブルから特徴量のアイデアを考え、そのデータを加工する複数表の取り扱いにあります(複数表からなる業務データからの特徴量設計については、 このブログでより詳細を解説 します) 例えば、クレジットカードの解約予測を考えてみます。解約者の情報、顧客マスター、支払い履歴という3つのテーブルがあったとします。この例では、例えば、顧客の職種という特徴は、顧客マスターと解約者テーブルを結合(join)すれば特徴量化することができますが、支払い履歴は一人の顧客が複数レコードを持つために、各顧客ごとにどの期間のデータを紐づけるのか?また複数のレコードをどのように集約して一つの特徴量とするのか?といった問題があります。さらに、男性の顧客に限定して支払い履歴を分析しようとすれば、顧客マスターと支払い履歴のテーブルの組み合わせを考えることが必要になります。 テーブル数が3つのケースであれば、まだ手作業による特徴量設計もできそうですが、現実の業務データはさらに多数のテーブルが、より複雑な関係性でつながっています。このような複雑なデータに対して、経験や直感、属人的なスキルによって特徴量を設計することは容易ではなく、経験豊富な専門家であっても、一つの機械学習プロジェクトに対して数週間から数ヶ月もの時間がかかる大きな要因となっています。 特徴量を自動的に抽出し、機械学習による高度な予測や、ビジネスの洞察を導き出す dotDataは、独自のAI(特徴量自動設計技術)の導き出す特徴量によって、全ての企業がデータに基づき、より良い製品やサービスを生み出すことができる世界を目指し、特徴量を自動的に抽出し、高度な予測分析やビジネスの洞察を導き出します。 特徴量設計の自動化は、従来のデータ分析や機械学習のプロセスを大きく変える可能性を秘めています。スキルの障壁を大幅に下げ、手作業による何百、何千ものSQLクエリ実装作業を排除し、完全なドメイン知識がなかったとしても、素早く分析プロジェクトを回すことができます。また、膨大な特徴の仮説をわずか数時間で探索し、これまで気づかなかったデータに隠された知見を発見し、データから得られるビジネスの洞察を強化します。 dotData Feature Factory は、特徴量エンジニアリングをデータ中心のアプローチへと進化させます。特徴量空間をプログラム的に定義することで、手作業では不可能な圧倒的に広い範囲の特徴量仮説を自動生成し、ユーザーのデータや業務に関する知識を再利用可能なプロセスとして分析データベースに記憶します。また、発見した新しい特徴量を、本番環境で利用可能な特徴量パイプラインを自動生成ます。 dotData Enterprise は、特徴量自動設計と機械学習自動化(AutoML)によって、AIの専門知識やコーディングなしで、業務データから特徴量の抽出、そして機械学習による予測モデルの構築まで、ワンストップでAIを開発することができます。 dotData Insight は、特徴量を、生成AIの「世界知識」で補完し、実用的なビジネス仮説を生み出す ビジネスアナリティクス のプラットフォームです。この融合により、業務部門は、データの洞察を直感的に理解し、新しいビジネス仮説を立て、戦略立案や施策実行をより効果的に行うことができます。 The post 解説:機械学習のための特徴量設計 appeared first on dotData .
アバター
生成AIは、さまざまな業界で大きな変革を起こし始めています。このブログシリーズは、企業におけるデータ活用の新しい地平を開く、生成AIの可能性について解説します。その第四弾となる本ブログでは、 生成AI の仕組みを解説し、生成AIを効果的に使う上で最も重要な技術である、プロンプトエンジアリングについて解説します。 生成AIの仕組みとプロンプト 生成AIは機械学習の技術を元に作られています。機械学習は、コーパスと呼ばれる入力と期待する出力のデータのペアを元に、入力と出力の関係をモデルとして学習し、入力のみが与えられた場合に、出力を返す、という技術です。この観点では、生成AIも機械学習の技術の1つと捉えられます。 しかし、従来のAIと、生成AIの大きな違いは、規模と汎用性にあります。従来のAIは、特定のタスク、例えば、機械翻訳、文書要約、画像認識といったタスクに特化されてきました。このため、タスクに特化したコーパスが用意され、学習したモデルはそのタスクでしか使用できません。これは、入力と出力の関係は非常に複雑で、その関係をモデル化するには各タスクに特化したアルゴリズムが必要であり、一つのモデルが複数のタスクをこなすことは難しいと考えられていたためです。 しかし、深層学習技術の発展と計算機の進化により、生成AIが登場しました。生成AIは、桁違いに大きいコーパスで、桁違いに大きいパラメタを持つニューラルネットワークを学習させたAIモデルです。例えば、OpenAIのGPT 4.0では、5000億から数兆のパラメタを持つ、と言われています。これにより汎用的な入力と出力の関係をモデル化できるようになり、タスクを定義するテキスト自体も入力に含めて処理できるようになりました。 生成AIは、大規模コーパスに含まれる知識が詰まった知識ベースとして考えることができます。これを活用するために重要になるのが、生成AIに与える「指示」です。 この「指示」は、プロンプトと呼ばれており、生成AIをうまく使うための重要なコンセプトになっています。 プロンプトエンジアリングとは? プロンプトエンジニアリングとは、生成AIを効果的に活用するために、言語モデルへの命令(プロンプト)を最適に設計する技術で、学問分野としても認知されるようになってきています。例えば、ChatGPTへ効果的な命令(プロンプト)をすると質の良い対話ができるように、プロンプトは生成AIがどのような情報を出力するかを決定する重要な要素であり、正確で適切なプロンプトを設計することが重要であるとともに、few shot promptingのように具体的な例示をすることで、生成AIから狙った回答を引き出すことができます。 プロンプトエンジニアリングについては様々な情報が公開されていますが、ここではOpenAPIが公式に提供している プロンプトエンジニアリングのガイド で述べられている6つのポイントを紹介します。この文書は多様なユースケースを考え長い内容になっているため、本ブログでは、企業内のデータ分析のユースケースにおいて、具体例を交えてエッセンスを絞り紹介することで、データ分析の文脈で生成AIを効果的に使う方法をお伝えします。 プロンプトエンジニアリングの6つのガイドライン 1.明確な指示を書く 生成AIは人間と同じく指示が不十分だと期待しない結果を返すことがあります。また、データ活用のコンテキストでは、生成AIの出力を別のプログラムで処理したいことが多く、厳密に出力フォーマットを定義することが重要になります。「明確な指示」という言葉自体が曖昧ですので、ここでは自然言語で書かれたアンケートの集計を行う、というユースケースの例を見てみましょう。あなたは千件以上の自由記述アンケートのデータを持っています。これを目で読むのは大変なので、それを生成AIに集計させることにしました。 良いプロンプトの例: このプロンプトでは以下の点がポイントになっています。 背景も含めて説明する(1行目) 実現したいタスクを具体化し過不足なく記載する(2行目) 特にここでは集計の観点「待ち時間に対する不満」までを具体的に指示するようにしています。この場合、観点ごとにプロンプトを作る必要がありますが、こういった観点自体を生成AIに考えさせ、プロンプト自体を作成させる、という使い方も考えられます。 曖昧性が生じそうな部分には補足を与える(3行目) 区切り文字(“””)などで、データと指示を明示的に分ける(4行目、14行目) 出力フォーマットを例示する(最後の5行) 2.根拠を出すよう指示する 生成AIには、 ハルシネーション と呼ばれる問題があります。生成AI、事実とは異なるそれらしい回答を出すことがあります。嘘の無い結果を得るには、根拠を示すよう指示することが有効です。 先ほどと同じアンケートの集約の例では「各回答に「待ち時間に対する不満」が含まれるか否かを判定し、含まれるか否かをYesかNoで回答してください。 さらに、その不満を言及している箇所も出力してください。 」と指示することが有効です。 3.複雑なタスクをより単純なサブタスクに分割する 複雑なタスクを曖昧なまま与えると生成AIが誤った理解に基づき出力を出すため、期待と異なる結果を返す可能性が増えます。生成AIに実行させたいタスクがサブタスクに分割できる場合、ステップバイステップで指示を与えることが好ましいです。例えば、顧客との会議の書き起こしデータを要約させるユースケースを考えます。 悪いプロンプトの例: 良いプロンプトの例: 4.モデルによく考えさせる指示を与える 一般に、端的な指示を与えることは良いことですが、生成AIに端的な質問のみを与えると単純なつまらない回答を示す傾向があります。生成AIにより深い洞察を期待する際には、生成AIにどのような観点での洞察を求めるかを指示したり、出力の数を増やして指定することで、深く、幅広く考えさせることが重要です。深い洞察を期待するタスクの例として、データ分析で得られた情報の解釈を生成AIに手伝ってもらう、というユースケースを考えます。 悪いプロンプトの例: 良いプロンプトの例: 5.外部のツールを使用する 生成AIは汎用的なツールですが、他のツールを用いた方が効果的なシーンがたくさんあります。例えば、現状の生成AIに表構造のデータそのものを入力として与え、データ分析を行わせることは効果的ではありません。一つ上の解約分析の例では、「40代の女性の顧客は、一般の顧客に比べ、入会後3ヶ月に解約する確率が1.5倍以上である」という分析結果だけを生成AIに与えています。データ内から統計的なパターンを見つけ出す作業は、それに特化した別のツールで実施した方が、正確性やスケーラビリティなど、さまざまな観点でメリットがあります。このように、プログラムや他のツールで実施可能なところは他のツールで解消し、生成AIに与えるべきタスクをよく考えることが重要になります。 6.修正を体系的に評価する プロンプトのチューニングにおいては、プロンプトの修正を行った後その結果をきちんと評価し改善していくことが重要です。この際のポイントとなるのは、期待する結果の正解を用意しそれと比較して評価すること、そして、比較による評価指標を定義し、その指標に基づき各プロンプトの良さを定量的に評価することです。 例えば、一つ目の例で示した、自然言語で書かれたアンケートの集計を自動化するプロンプトの設計を考えてみましょう。 このタスクでは、各回答に「待ち時間に対する不満」が含まれるかどうかを判断するものでした。この場合、最初に少数のデータを人間が読み、正解の例を作ること、そして、このデータをテストデータとしてあるプロンプトで生成AIが出力した結果と比較し、何%の精度が出るかを確認することをお勧めします。 要約のような結果の正解判定が難しいようなケースでは、評価用のプロンプトで生成AIを使って評価することをお勧めします。例えば、会議書き起こしの要約タスクの例では、人間が作った要約と生成AIが作成した要約と比較するプロンプトを作り、その結果を元に生成AIで評価することが推奨されています。 要約結果を評価する指示の例: dotData Insight – 特徴量と生成AIが変革するビジネスアナリティクス dotDataでは、「データからの知識」である特徴量と、生成AIを融合した dotData Insight によって企業の ビジネスアナリティクス を推進しています。生成AIは、企業内のデータ活用において、データの加工・解釈を助ける重要なツールになりうる存在ですが、生成AIだけで全てが解決できるわけではありません。dotData Insightは、dotDataの独自のAIが、従来の手作業による分析では発見することができなかった、或いは、数週間から数ヶ月もの時間がかかっていた、複雑な業務データの重要なパターン(特徴量)を抽出し、そのパターンの解釈を生成AI、LLM(大規模言語モデル)が支援することで、データからの仮説立案や施策設計を支援します。 生成AIに関するブログシリーズ 生成AIブログ – パート1 : 生成AIとは? – 生成AIは企業のデータ活用をどのように進化するのか? 生成AIブログ – パート2 : LLMとは? – 大規模言語モデルのデータアナリティクス応用 生成AIブログ – パート3 : 生成AIとLangChain 生成AIブログ – パート4 :生成AIの可能性を引き出す効果的なプロンプトエンジニアリングの方法 (このブログ) 生成AIに関するウェビナー 生成AIのセキュリティ 併せて読みたい: 生成AIによる業務効率化の方法9選を解説!メリットや導入方法も紹介 The post 生成AIの可能性を引き出す効果的なプロンプトエンジニアリングの方法 appeared first on dotData .
アバター
はじめに 生成AIは、さまざまな業界で大きな変革を起こし始めています。このブログシリーズは、企業における データ活用 の新しい地平を開く、 生成AI の可能性について解説します。その第三弾となる本ブログでは、テキストの生成AIである大規模言語モデル(LLM)を使ったアプリケーションの開発を効率化するフレームワークであるLangChainを紹介します。 現在、様々な大規模言語モデルが発表され、それぞれのモデルは急速な進化を続けています。新しいモデルが発表されるたびに各ベンチマークにおけるランキングは変わり、またドメイン特化型のモデルなども登場してきています。LLMを用いた分析ツールやアプリケーションの開発において、新しいモデルへの対応や、分析ドメインに応じたモデルの切り替えなどが非常に重要なってきており、LangChainを使用することで開発を非常に効率的に進めることが可能になります。 生成AIの種類と進化 ここでは特にテキストの生成AIである 大規模言語モデル(LLM)について 、その種類と進化について見ていきたいと思います。代表的なものでも、OpenAI社のChatGPT(チャットGPT)、Google社のGemini(ジェミニ)、Meta社のLlama(ラマ)、Anthropic社のClaude(クロード)といった様々なLLMあるいはLLMフレームワークが発表されています。また、日本語などのある特定の言語に特化したLLMや、医療などの特定のドメインに特化したLLMも出てきています。各LLMの評価には、様々な観点でのベンチマークがあり、例えば、言語理解テスト、テキスト推論テスト、数学テスト、コーディングテストなどにおけるスコアが比較されています。評価の観点によってどのLLMが良いかも変わり、さらに新しいLLMが登場するたびにそのランキングは常に変化しています。LLMアプリケーションを開発する際には、目的にあったベンチマークスコアや、実際に使ってみた応答を評価して、適したLLMを選ぶことが重要です。また、精度以外にも、暴力的、性差別的、人種差別的などの表現がないかといった倫理的な観点もあり、様々な視点で総合的に判断する必要があります。 これらの大規模言語モデルはここ数年で急速な進化を続けています。OpenAI社のGPTを例にその進化を見てみましょう。2018年に、OpenAI社は最初のGPTシリーズのモデルGPT-1を発表しました。トランスフォーマーと呼ばれる画期的な深層学習の手法を導入することで、当時のさまざまなベンチマークにおいて、最高レベルの性能を達成しました。2019年、2020年と、OpenAI社は、より多くの深層学習のパラメータ、学習データサイズを用いた新しいモデルGPT-2、GPT-3を発表しました。2022年、人間によるフィードバック技術によるさらなる回答性能の改善がおこなわれ、さらにチャットというインタフェースを持ったChatGPT3.5が登場しました。そして2023年には、テキストに加え画像データにも対応したGPT4が登場しました。GPT4は、米国司法試験で400点満点中298点という上位10%に含まれるスコアを出してことでも話題になりました。以上見てきたように、生成モデルの進化は非常に早く、毎年のように新しいモデルが発表されます。 大規模言語モデルにはさまざまな種類があり、目的に応じてどれが良いかが変わってくること、さらにそれらのモデルは毎年のように新しいモデルが発表されることを見てきました。最適なモデルを使い続けるには、こうしたモデルの変化に追従していくことが必要になります。 LangChainとは? LangChainは、大規模言語モデルを活用したアプリケーションを開発するためのフレームワークです。前節で見たように、モデルの進化のスピードは速く、新しいモデルに素早く追従するのは容易ではありません。LangChainを用いることで、具体的なモデルを隠蔽した抽象レイヤーを用いてモデルを扱うことができ、複数の異なるモデルへの対応や、新しいモデルが出た時の対応も容易に行うことができます。それらのメリットに加え、LangChainを用いて大規模言語モデルを活用したアプリケーションを構築することで、開発者には以下のような様々なメリットがあります。 複数モデルへの対応、新しいモデルへの対応の容易化 LangChainを使うと、各具体的なモデルやその操り方を隠蔽した抽象レイヤーを用いて、アプリケーションを記述することができます。これにより、アプリケーションのロジックは、具体的なモデルには非依存になり、複数の異なるモデルへの対応や、新しいモデルへの対応が容易に行えることになります。 アプリケーション実装の効率化 LangChainのビルディングブロックやコンポーネントを組み合わせるだけでアプリケーションを構築することができます。また、典型的なアプリケーションのテンプレートが用意されているため、一からアプリケーションを書かなくても、必要な箇所を修正するだけでアプリケーションを実装することができます。 デバッグ、テストの効率化 LangChainの機能の1つであるLangSmithを使用すると、大規模言語モデルを利用したアプリケーションにおける、モデルの応答を容易に検査、監視、評価することができ、デバッグとテストを効率的に行うことができます。 デプロイの効率化 LangChainの機能の1つであるLangServeを使用すると、大規模言語モデルへの問い合わせを行うアプリケーションを、すぐにWebAPIに変換することができます。 LangChainは、アプリケーションと大規模言語モデルの間に抽象レイヤーを提供し、多モデル対応や新モデル対応を容易にするとともに、大規模言語モデルのアプリケーション開発における各工程の効率化に必要なさまざまな機能を提供していることがわかります。 LangChainってどのように動作するの? LangChainの主要コンポーネントは以下の図に示されるように、レーヤの下からLangChain-Core、LangChain-Community、LangChain、Templates、LangServe、LangSmithの6つのコンポーネントに分かれています。 出典: LangChain Introduction LangChain-Core 基本的なコンポーネントの抽象化とLangChainの記述言語であるLangChain Expression Language (LCEL)を提供します。LCELを使うことで、基本的なコンポーネントを組み合わせ、複雑なチェーンを容易に構築することができるようになります。 以下では、基本的なコンポーネントとしてPrompt, ChatModel, Output Parserを組み合わせたサンプルプログラムを示します。Promptは”tell me a short joke about {topic}”({topic}部分は変数で後に具体的な値に置き換えられる)、ChatModelはOpenAIのgpt-4、Output Parserは出力を単に文字列として解釈するStrOutputParserを用います。「|」記号はUnixのパイプ演算子に似ており、異なるコンポーネントを連結して、コンポーネントの出力を次のコンポーネントの入力として供給します。このchainでは、ユーザー入力がプロンプトテンプレートに渡され、次にプロンプトテンプレートの出力がモデルに渡され、その後モデルの出力が出力パーサーに渡されます。 出典: LangChain Get started : Basic example: prompt + model + output parser LCELを用いると、多段に言語モデルに問い合わせるような複雑なアプリケーションでも、簡潔に記述することができます。また、Prompt, ChatModel, Output Parserは様々なもの種類のものがあらかじめ準備されているため、コンポーネントを入れ替えたりすることも容易に行えます。 LangChain-Community サードパーティーのパッケージ(e.g., langchain-openai, langchain-anthropic, etc.)で構成され、各社固有のコンポーネント(ChatModelなど)を提供します。以下は、OpenAI社のgpt-3.5-turboとAnthropic社のclaude-3-opusのChatModelを作成するコードです。 chat1 = ChatOpenAI(model=”gpt-3.5-turbo-0125″) chat2 = ChatAnthropic(model_name=”claude-3-opus-20240229″) どちらのモデルも、BaseChatModelを継承しているため、共通のIFをつかってアクセスすることができます。 LangChain アプリケーションの認知アーキテクチャを補完するために、よりユースケースに特化したChain、Agent、検索メソッドを提供します。 Templates Templatesは、大規模言語モデルを使った典型的なアプリケーションのテンプレート集です。テンプレートを使うと、一からアプリケーションを書かなくても、必要な箇所を修正するだけでアプリケーションを実装することができます。最も人気のテンプレートとして、rag-conversationと呼ばれるテンプレートがあります。こちらは、社内データなどのWebにはない情報を知識ベースとして、大規模言語モデルによる問い合わせを実現するアプリケーションです。数行のコードを追加実装することで、ユーザ独自のデータを知識ベースとして、対話を行うアプリケーションを構築することができます。 利用可能なテンプレートの一覧は以下から確認することができます。 https://templates.langchain.com/ LangServe LangServeは、FastAPIをラップして、LangChainオブジェクトのためのエンドポイントを自動的に生成するライブラリです。これを用いることで、作成したchainを公開するためのWebAPIを即座に作ることができます。 LangSmith LangSmithは、大規模言語モデルを利用したアプリケーションのデバッグ、テスト、評価、およびモニタリングを行うことができるプラットフォームです。LangSmithのAPI_KEYやEndopointなどを設定して、LangChainを利用したアプリケーションを実行することで、モデルとのやりとりが記録され、LangSmithのウェブサービスから、モデルとのやりとりをモニターすることができます。LangSmithには以下の主な機能があります。 実行トレース 大規模言語モデルへの問い合わせ文や回答をウェブサービスから確認することができます。複雑なChainを持つアプリケーションでは、どの時点での回答が不具合の原因になったのかを容易に確認でき、デバッグが効率的に行えます。実行回数、レイテンシー、トークン使用量などのメトリクスも時系列グラフでモニターすることができます。 評価 データセットとして登録した入出力文に対して、複数の評価指標で品質スコアを自動的に算出することができます。有害性(harmfulness)、女性差別(misogyny)などのいくつかの観点についてはEvaluatorが定義されており、すぐに利用することができます。また、自分で独自のEvaluatorを定義することもできます。アプリケーションの運用ログを自動評価し、そのデータセットを使い、大規模言語モデルのファインチューニングや、Fewshotに加えることで回答品質を上げるといったLLMOpsのサイクルをLangSmithを用いて回すことができます。 プロンプトハブ プロンプトハブは、プロンプト登録することで他のユーザと共有することができます。公開されているプロンプトを検索し、Playgroundで実行して動作を容易に確認することができます。また、プロンプトはバージョン管理することができます。 LangChain利用時に注意すべきこと LangChainはv0.1.0で初の安定版がリリースされましたが、まだ開発の途上にあると言えます。開発初期のライブラリに注意すべき一般的な事として、API変更、ドキュメントの不足、セキュリティ、継続開発の不確実性、などが挙げられます。また、LangSmithを利用する場合には、LLMへの問い合わせ文が、LangSmithのウェブサービスに送信されるため、顧客のデータを扱う場合には、そのセキュリティ面での注意が必要となります。 dotData Insight – 特徴量と生成AIが変革するビジネスアナリティクス dotDataでは、「データからの知識」である特徴量と、生成AIを融合した dotData Insight によって企業の ビジネスアナリティクス を推進しています。dotDataの独自のAIが、従来の手作業による分析では発見することができなかった、或いは、数週間から数ヶ月もの時間がかかっていた、複雑な業務データの重要なパターン(特徴量)を抽出します。dotData Insightでは、特徴量(データからの知識)、ドメイン知識、世界知識を融合するために、様々なシーンでLLMを利用し、LangChainを利用して利用シーンに応じて適切な生成AIの切り替えをしています。これによって、dotData Insightは、最新のLLMを素早く取り込み、またユーザーが独自の知識を覚え込ませた生成AIを組み込むことを可能としています。 生成AIに関するブログシリーズ 生成AIブログ – パート1 : 生成AIとは? – 生成AIは企業のデータ活用をどのように進化するのか? 生成AIブログ – パート2 : LLMとは? – 大規模言語モデルのデータアナリティクス応用 生成AIブログ – パート3 :生成AIとLangChain (このブログ) 生成AIブログ – パート4 : 生成AIの可能性を引き出す効果的なプロンプトエンジニアリングの方法 生成AIに関するウェビナー 生成AIのセキュリティ The post 生成AIとLangChain appeared first on dotData .
アバター
はじめに 生成AI(ジェネレーティブAI /生成系AI)は、さまざまな業界で大きな変革を起こし始めています。このブログシリーズは、企業におけるデータ活用の新しい地平を開く、 生成AI の可能性について解説します。その第二弾となる、本ブログでは、生成AIの仕組みであるLLM(大規模言語モデル、Large Language Models)と、そのデータ分析への応用例を紹介します。 生成AIに関する基本的な解説や画像生成AIとしての解説、識別系AIとの違い、生成AIの活用サービスなどについては、既に多くの記事で扱われているため、本ブログシリーズでは、生成AIの活用事例や、生成AIの仕組みとしてLLM(大規模言語モデル)、LangChainなどのトピックを、「企業のデータ活用」という切り口に焦点を当てて解説していく予定です。 LLMとは? 生成AI、LLM(Large Language Model)、そしてGPT(Generative Pre-trained Transformer)は、どのような関連性を持っているのでしょうか?以下は、ChatGPTのGPT4にその関係を問い合わせた結果です。 生成AI(Generative AI)は、人間のようなコンテンツ(テキスト、画像、音声など)を作成する技術群を指します。この中で、大規模言語モデル(LLM)は、膨大なテキストデータから言語の構造を学習し、新しいテキストを生成する特化したAI(人工知能)の一種です。GPT(Generative Pre-trained Transformer)は、LLMの一例で、特に事前学習と微調整のフレームワークを用いて、幅広い言語タスクに適応可能なモデルです。GPTは、会話応答、文章生成、翻訳といった様々な応用が可能で、その柔軟性と汎用性から、生成AI技術の代表例とされます。つまり、GPTはLLMの具体的実現形態であり、LLM自体は生成AIの広範なカテゴリー内に位置付けられます。 このように、LLMは、特に言語生成を目的とした生成AIのモデルやフレームワークを指す総称であり、GPT(Generative Pre-trained Transformer)は、大量のデータから学習して言語を生成する機能を持つLLMの一つの具体的な実装例であると理解することができます。本ブログでは、LLMとGPTは区別せず、ほぼ同じ意味として説明していきます。 なお、関連した技術としてディープラーニング(深層学習)があります。ディープラーニングは、巨大なパラメータ数をもつ多層ニューラルネットワークとよばれる機械学習モデルとその学習技術全般を指します。LLMは、ディープラーニングの一つの応用例で、特に自然言語を扱うタスクに対して最適化されています。 LLMのデータ分析への応用例1 – データ前処理・データ加工 LLMは(大規模言語モデルは)、その名称が示す通り、言語生成を得意とする自然言語処理モデル(或いは、自然言語モデル)の一種です。この能力を活用して、自然言語での問い合わせの意図を把握し、それに応じたプログラム言語のコード(コードジェネレーション)を生成することが可能です。 この技術を用いることで、データ分析における前処理やデータ加工の工程においてもLLMを活用することができます。例えば、以下に示すのは、GPT4を使ってデータクレンジングを行うSQL文を生成させた場合の一例です。 このように、GPTに対して特定の前処理を実施したい内容を指示するだけで、ユーザーが直接プログラムを書く必要がなくなります。提示した例は基本的なものですが、ノーコードインターフェースと組み合わせることで、より高度なデータ前処理やデータ加工を、自然言語の指示だけで実施することが可能になります。また、データ前処理に関する新たなアイデアをLLMに提案してもらうこともできます。 LLMのデータ分析への応用例2 – データ可視化 コードジェネレーションの技術を応用することで、自然言語による問い合わせだけで様々なデータ可視化を実現できます。以下に、アメリカの人口を州ごとに可視化する例を紹介します。 この例では、可視化対象のデータ(アメリカの州ごとの人口)をLLMを通じて取得しました。もちろん、自身で指定したデータを用いることも可能です。このプロセスの背景では、Pythonによる可視化コードが生成され、この場合、ChatGPTがPythonの実行環境と自動的に連携して可視化結果を出力しています。 このようにLLMを活用することで、簡易な可視化なら従来のBIツールを用いるよりも遥かに容易に実現可能です。ただし、現在のところ多くのLLMが直接扱えるデータ量には限界があり、また計算量の増加によりコストが大きくなる点には注意が必要です。 データが複雑になるとハルシネーション( ブログ1参照 )のリスクも増えます。そのため、LLMの可視化結果を盲目的に受け入れるのではなく、直感に反する結果が得られた場合は元のデータを検証し、真偽を確かめることが重要です。 LLMのデータ分析への応用例3 – データサマリー、レポート LLMは、データ加工や可視化といった単一のタスクに留まらず、より複雑なデータ分析タスクもこなすことが可能です。次の例では、従業員データをCSVフォーマットで入力し、サマリーレポートを作成しています(データソースはKaggleのオープンデータを使用)。 この例を見ると、「サマリーレポートを作成してください」という抽象的な要求に対しても、LLMがデータ項目ごとの概要を自動生成していることが確認できます。一方で、性別のサマリとしては男性が60%(882/1470)を「男性従業員が多数を占めています」と解釈しており、単に生成AIの日本語を鵜呑みにするのではなく、その背後の数字の確認には注意が必要です。 これまでの3つの応用例を組み合わせ、より具体的な指示をLLMに出せば、データの加工、レポート作成、そしてレポート内でのデータ可視化という、データ分析プロセス全体をLLMのサポートによって大幅に簡素化できます。現時点ではLLMの技術的な限界が存在し、データ分析実務で利用するとなると、このブログで紹介されているような単純な例のようにはいきませんが、近い将来、企業のデータ分析に革命をもたらすことは間違いないでしょう。 ブログ1 では、この変化に伴い求められる企業のデータ人材のスキルについて議論しました。このようなデータ分析の新しいアプローチは、事業部門を中心とした ビジネスアナリティクス の推進力となるでしょう。 dotData InsightでのLLMの活用例 dotDataでは、「データからの知識」である特徴量と、生成AIを融合した dotData Insight によって企業の ビジネスアナリティクス を推進しています。dotDataの独自のAIが、従来の手作業による分析では発見することができなかった、或いは、数週間から数ヶ月もの時間がかかっていた、複雑な業務データの重要なパターン(特徴量)を抽出します。dotData Insightでは、データの品質の改善、生成される特徴量の自然言語による説明、特徴量に対するビジネス解釈の支援など、さまざまな用途でLLMを活用しています。dotData Insightを利用することで、統計的事実としての特徴量をdotDataのAIが導き出し、その解釈や洞察に基づいた施策の立案を、LLMが対話形式で支援します。 生成AIに関するブログシリーズ 生成AIブログ – パート1 : 生成AIとは? – 生成AIは企業のデータ活用をどのように進化するのか? 生成AIブログ – パート2 :LLMとは? – 大規模言語モデルのデータアナリティクス応用(このブログ) The post LLMとは? – 大規模言語モデルのデータアナリティクス応用 appeared first on dotData .
アバター
はじめに 生成AI(ジェネレーティブAI /生成系AI)は、さまざまな業界で大きな変革を起こし始めています。企業における生成AIの活用の鍵となるのは、企業内のデータです。また、 データを活用する上で必要とされる人材 にも、大きな影響を与えています。 このブログは、企業におけるデータ活用の新しい地平を開く、生成AIの可能性についてのシリーズの第一弾です。どのように生成AIが企業のデータ活用を変える可能性があるのか、そしてそれが企業のデジタルトランスフォーメーション(DX)戦略の核心であるデータ戦略と人材戦略にどのような影響を与えるかについて概説します。 生成AIに関する基本的な解説や画像生成AIとしての解説、識別系AIとの違いなどについては、既に多くの記事で扱われているため、本ブログシリーズでは、今後、生成AIの活用事例や、生成AIの仕組みとしてLLM(大規模言語モデル)、LangChainなどのトピックを、「企業のデータ活用」という切り口に焦点を当てて解説していく予定です。 生成AIを理解する上で重要な3つの「知識」 生成AI、あるいはジェネレーティブAIとは、大規模言語モデルやLLMと呼ばれる巨大なニューラルネットワークモデルであり、文書や画像など、様々なコンテンツを生成することができるAIモデルで、ユーザーからの自然言語による質疑を入力とする対話型AIです。 生成AIとデータ活用の関係を深く掘り下げるには、理解すべき3つの「知識」があります。 第一の知識は、「世界知識」としての生成AIが学習している情報です。生成AIは、インターネット上などから収集された大量のデータを、巨大なニューラルネットワークモデルに学習させた「世界の知識のデータベース」のようなものです。企業データ活用においては、「外部データ」の利用がしばしば重視されますが、特にインターネット上で入手可能な外部データは、生成AIのもつ「世界知識」を通じてアクセスすることが可能になります。 第二の知識は、「ドメイン知識」としての業務経験や業務マニュアルに記載された情報としての専門知識を指します。生成AIは広範な一般知識を持ち合わせているものの、特定の企業や業界特有の知識は自ら持っているわけではありません。そのため、生成AIを業務に適用するには、ドメイン知識をデータ化し、生成AIと組み合わせる必要があります。ドメイン知識の重要性は、生成AIの登場前から企業のデータ活用において認識されていましたが、生成AIを活用する上ではこの知識のデータ化が不可欠です。 第三の知識は、業務で蓄積されたデータ内に潜むパターンや「データから導き出される知識(特徴量)」です。 企業でのデータ分析の目的 は、一般的な知識や直感ではなく、データから関連するパターンを発見し、客観的な事実に基づく意思決定を行うことにあります。生成AIはデータ分析を置き換えるものではなく、世界知識、ドメイン知識、そしてデータからの知識(特徴量)を統合することで、企業のデータ活用を進化させる鍵となります。 解約分析を例にすると、生成AIに顧客が解約する理由を問うと、一般的な理由を回答します。しかし、自社の顧客がなぜ解約してしまうのかを明らかにすることは、生成AIでは対応できません。また、営業部門のセールスプレイブックには、「顧客のサービス利用頻度が下がった場合には解約のリスクが高まるため注意が必要」「アカウント営業を通じた顧客エンゲージメントの向上が重要」といった解約防止のための知見や業務の知識(ドメイン知識)が記載されています。一方で、業務データを分析すると、顧客の行動履歴から解約への兆候となる様々なパターンを特定することができます。これにより、データに基づく客観的な解約防止策を策定できるだけでなく、顧客の解約傾向の変化に対する新しい洞察や気付きを得ることが可能になります。 生成AIによるデータ活用の2つのアプローチ 生成AIを活用したデータの扱い方には、2つの大きく異なるアプローチが存在します。それぞれ異なる用途に適しています。 まず第一のアプローチとして、生成AIにドメイン知識を学習させ、それを基に要約、ドキュメントのドラフト作成、文書検索などのタスクを、特定の業務に応用する方法があります。前述したように、このアプローチでは、ドメイン知識を生成AIが扱いやすい形式で整理し、RAG(Retrieval Augmented Generation)やファインチューニングといった技術を用いて生成AIと統合します。このプロセスで特に重要なのは、生成AIに供給するデータの質です。通常、高品質で構造化された大量のテキストデータや辞書の準備が求められます。 次に、第二のアプローチでは、生成AIに直接データ分析を行わせるか、または分析作業を支援させる方法があります。例として、ChatGPTにCSVファイルを入力すると、データのサマリーや基本的な可視化を自動的に生成してくれます。こうしたデータ分析や可視化は、将来的にはBIツールよりも、瞬時に結果を提供できる生成AIによって行われるようになるかもしれません。ただし、生成AIが大規模な業務データを直接扱うことは難しく、またその利用コストも高くなりがちです。そのため、従来のBIツールによる分析と、生成AIを活用した手軽な分析を、適切に組み合わせて利用することが重要となります。 生成AIのデータ活用におけるハルシネーションの問題 生成AIの活用において直面する課題の一つが、「ハルシネーション」と呼ばれる現象です。これは、生成AIが回答を作り出す過程で、誤った情報を正確なものとして提示してしまう問題を指します。例として、会議の議事録を自動生成する際、実際には合意されていないアクションアイテムを、合意されたかのように記録してしまうケースが挙げられます。統計モデルとしての性質上、生成AIではこの問題を完全に回避することは難しく、ある程度のハルシネーション発生は避けられない現実として受け入れなければなりません。 特に、本ブログで取り上げているデータ分析への生成AIの適用にあたっては、ハルシネーションは無視できない重要な課題です。データ分析では、統計的分析結果の正確性が最も重要であり、そこから導き出されるビジネス上の意味合いや決定に影響を与えます。しかし、生成AIを使った分析では、特にデータが複雑な場合、ハルシネーションによって分析結果そのものが誤って生成される恐れがあります。生成AIをデータ分析に応用する際には、たとえ効率化が可能であっても、ユーザーは生成AIの提供する結果を盲目的に受け入れるのではなく、直感に反する結果が得られた場合は元のデータを検証し、真偽を確かめるための分析スキルやリテラシーが求められます。 生成AIによって変わる「データ人材」 生成AIが台頭する中で、企業内のデータ人材にはどのような変化が求められるのでしょうか?生成AIは、あくまで一つのツールに過ぎず、データ人材を置き換える存在ではありません。しかし、データの可視化やサマリー作成といったシンプルな作業は、生成AIによって自動化されるようになります。このため、分析業務は大幅に効率化されることになるでしょう。重要なのは、生成AIが提供するサマリーや可視化の内容を精査するリテラシーに加え、単に「データを分析するスキル」を超え、「データ分析結果をもとに業務改善策を提案できる能力」がより一層求められるようになります( ビジネスアナリティクスの実現するDX人材とデータドリブンな組織文化の変革 )。 また、生成AIを使いこなすためには、1)生成AIに高品質なテキストデータを入力することでドメイン知識を覚えさせる、2)生成AIに対する「プロンプト(Prompt)」と呼ばれる命令文を正しく記述する、ことが必要になります。そのため、生成AIを前提としたデータ整備は、今後ますます重要性がますことになります。プロンプトについては、「プロンプトエンジニア」と呼ばれる役割が出現しています。これは生成AIへの命令文をチューニング可能な人材で、短期的には生成AIのアプリケーションを開発するために企業に必要な人材となります。一方で、データ分析との関連からは、プロンプトエンジニアよりも、業務部門やデータを活用する人材が、生成AIを活用してどのようにデータからの洞察を引き出すか、というプロンプトの使い方を知ることが重要となります。 dotData Insight – 特徴量と生成AIが変革するビジネスアナリティクス dotDataでは、「データからの知識」である特徴量と、生成AIを融合した dotData Insight によって企業の ビジネスアナリティクス を推進しています。dotDataの独自のAIが、従来の手作業による分析では発見することができなかった、或いは、数週間から数ヶ月もの時間がかかっていた、複雑な業務データの重要なパターン(特徴量)を抽出します。そして、データからわかる統計的な事実としての「特徴量」を、生成AIの「世界知識」で補完し、実用的なビジネス仮説の検討を支援します。この融合により、業務部門はデータの洞察を直感的に理解し、新しいビジネス仮説を立て、戦略立案や施策実行をより効果的に行うことができます。 生成AIに関するブログシリーズ 生成AIブログ – パート1 :生成AIとは? – 生成AIは企業のデータ活用をどのように進化するのか?(このブログ) 生成AIブログ – パート2 : LLMとは? – 大規模言語モデルのデータアナリティクス応用 生成AIブログ – パート3 : 生成AIとLangChain 生成AIブログ – パート4 : 生成AIの可能性を引き出す効果的なプロンプトエンジニアリングの方法 生成AIに関するウェビナー 生成AIのセキュリティ 併せて読みたい:「 【2024年最新】おススメの企業向けAI関連サービス・開発会社まとめ 」 The post 生成AIとは? – 生成AIは企業のデータ活用をどのように進化するのか? appeared first on dotData .
アバター
このブログシリーズの冒頭で、 パート1 ではビジネスアナリティクス(BA)の基礎と、それが企業にとってなぜ重要なのかを探りました。続く パート2 では、BA、ビジネスインテリジェンス(BI)、および予測分析(PA)の目的と役割の違いについて深く掘り下げ、これらの分析手法が企業の意思決定と業務最適化にどのように貢献するかを解説しました。今回、パート3では、ビジネスアナリティクスを成功させる鍵となる人材と、データドリブンな意思決定を文化として組織に根付かせる方法に焦点を当てます。 デジタルトランスフォーメーション(DX)の進展に伴い、データを活用し、データに基づいた意思決定を行う能力が企業にとって必須のものとなっています。技術の導入だけでは不十分で、データを効果的に活用し、業務目標を達成できる人材(DX人材)の育成、およびそのような 意思決定プロセスを支持する組織文化の確立 が求められます。 高度な分析スキルを持つデータサイエンティストの育成も重要ですが、ビジネスアナリティクス人材の育成が特に企業のデータ利活用文化を形成する上で中心的な役割を担います。これらの人材は、業務目標に対してデータに基づく客観的な施策を立案する能力を持ち合わせています。本ブログでは、ビジネスアナリティクス人材が企業にどのような価値をもたらし、企業文化にどのような変革を促すかを詳述します。 企業におけるデータ利活用組織の課題 企業におけるデータ利活用において、多くの組織が構造的な課題によって、その価値を最大限に引き出せずにいます。分析部門は、全社の分析要求に答えるためにリソースが常に逼迫しており、データの分析だけでなく、その整備や管理も主導する必要があります。これにより、価値あるインサイトの生成が遅れることがあり、組織にとって重要な意思決定プロセスの遅滞を招く原因となっています。 一方、業務部門は日々の業務に追われる中で、分析結果をどのように活用するかの具体的な経験が不足している場合が多いです。分析されたデータを解釈し、それを基に施策を検討する教育を受けていないため、分析部門から共有される分析結果を業務改善に活かすことができない状況が発生しています。 その結果、分析部門と業務部門の間には、データの活用方法やその価値に対する理解の差が生じ、データに基づく業務改革がなかなか進まない大きな要因となっています。組織がこの課題を乗り越え、データを活用した業務改革を推進するには、分析部門と業務部門の協力体制の構築、データリテラシーの向上、そしてデータを活用するための組織文化の醸成が必要不可欠です。 ビジネスアナリティクスを支える3つの人材像 データの洞察を組織の業務に根付かせるためには、データリテラシーを有する人材の育成が不可欠です。分析を行う専門家だけではなく、分析結果を実業務に応用する能力を持った人材が、この取り組みの中心となります。ここで紹介するのは、 ビジネスアナリティクス を支える3つの主要な人材像です。 第一の人材像は「分析結果の受け手」 です。 業務部門には、データ分析の結果を自らの業務に応用できる人材が不可欠です。これらの人材は分析結果を業務の文脈で解釈し、データに基づいた施策の立案と実行に直結させることができます。データリテラシーは、全社員が身につけるべき基本的なスキルであり、ビジネスアナリティクスの真髄を体現する人材です。 第二の人材像は「データを分析できる人材」 です。 データの加工から分析の実施に至るまで、データを適切に活用できる能力を有する人材です。統計学の知識、BIツールの操作、SQLを含むデータ処理技術は、この人材に求められる重要なスキルです。分析部門の専門家に加えて、業務部門でも自律的な分析を行える人材の配置が望まれます。 第三の人材像は「分析と業務の橋渡しができる人材」 です。 業務の課題や目標を理解し、それをデータ分析の課題に変換する能力を有する人材は、分析部門と業務部門の間に架け橋を築きます。高度な技術スキルよりも、ビジネスの課題を分析ユースケースに落とし込み、必要なデータを調整することが主な役割です。 これらの人材像は、企業がデータリテラシーを文化として確立し、データドリブンな意思決定を行うために必要な鍵となります。適切な育成と配置を通じて、業務効率の向上と戦略的なビジネス成長を実現することが期待されます。 ビジネスアナリティクス人材によるデータリテラシーの定着 データドリブンな意思決定は、今日の企業が持続可能な成長を達成するための鍵です。この目標に向けて、企業がデータリテラシーを内部に定着させることは、極めて重要です。このプロセスにおいて中核となるのが、ビジネスアナリティクスを担う3つの人材像です。彼らが連携することで、企業は真にデータドリブンな組織へと変革を遂げることができます。 「分析と業務の橋渡しができる人材」 は、この変革のハブとなります。彼らは業務部門の課題を深く理解し、それをデータ分析のテーマに落とし込むことで、業務改善や新しいビジネスチャンスの探求を推進します。この役割を担う人材は、分析部門と業務部門のギャップを埋め、組織内のデータ利活用の機運を高める重要な役割を果たします。 一方で、「データを分析できる人材」 は、分析の実務を担当します。彼らは業務部門に配置され、日常業務に直結したデータ分析を実施することで、データ分析の自律性を高めます。また、より高度な分析が必要な場合には、分析部門との円滑なコミュニケーションを通じて、専門的な分析を迅速に実施することができます。 そして、「分析結果の受け手」 が、分析部門と業務部門の橋渡しを行います。彼らは日々の業務において、分析結果を効果的に活用し、継続的な業務改善を推進します。データに基づいた意思決定を行うためのデータリテラシーを持ち、組織全体のデータ駆動型の意思決定を推進するカギとなります。 これらの人材が連携し、それぞれの役割を果たすことで、企業は日々の業務にデータリテラシーを組み込み、ビジネスアナリティクスを文化として定着させることができます。このような組織では、データは単なる情報の集積ではなく、経営の意思決定を導く貴重な資産となります。 dotData ビジネスアナリティクス人材育成サービス dotDataのビジネスアナリティクス人材育成 は、業務部門のデータ活用課題に応えます。分析部門のリソースが逼迫する中で、業務部門をデータ活用の主役となるビジネスアナリティクスの人材を育成します。データを見える化するビジネスインテリジェンス(BI)教育と機械学習を前提とした高度なAI教育のギャップに対応し、BIの次のステップとして、データ内のパターン(特徴量)を活用しビジネスを分析する実践的な能力を育成します。また、分析を業務に定着させるため、分析実施者だけでなく、分析結果を理解する人材のリテラシー向上と、業務部門と分析部門間の橋渡し役の育成を通じ、実践的なデータ活用を実現します。 まとめ 本ブログシリーズでは、ビジネスアナリティクスの理解深化を目指し、BA、BI、PAの役割とそれらを支える人材の重要性を探りました。データリテラシーを身につけ、データを戦略的に活用できる人材が、企業がデータドリブンな意思決定を行い、競争優位を確保する上で不可欠です。データリテラシーは 社員研修 を実施して身に付ける企業も増えています。この変革を達成するためには、分析結果を業務に活かす「受け手」、データを的確に分析する「分析者」、そして両者を繋ぐ「橋渡し人材」の三者三様の協働が必要です。 組織全体でデータリテラシーを高め、それを文化として根付かせることが、データを新時代のオイルから価値ある洞察へと精錬するプロセスの核心です。ビジネスアナリティクスの真価を引き出し、未来への成功を切り開くためには、これらの人材が企業の最大の資産となるでしょう。 ビジネスアナリティクスブログシリーズ パート1: ビジネスアナリティクス:データを基点で業務を分析 パート2: データから洞察へ:ビジネスインテリジェンス、ビジネスアナリティクス、予測分析の統合ガイド The post ビジネスアナリティクスの実現するDX人材とデータドリブンな組織文化の変革 appeared first on dotData .
アバター
このビジネスアナリティクスに関する ブログシリーズのパート1 は、ビジネスアナリティクス(BA)の基本概念とその重要性について解説しました。今回のパート2では、BAと密接に連携しつつ、企業のデータ利活用を強化するビジネスインテリジェンス(BI)と予測分析・データサイエンスの相互関係に焦点を当てます。これらの手法は、企業がデータに基づく意思決定を行う上で重要な役割を果たし、相互に補完し合いますが、それぞれのアプローチと目的には違いがあり、この違いを理解し、目的に応じて適切な手法を選択することが、効果的なデータ戦略の鍵となります。 ビジネスインテリジェンス(BI)とは? ビジネスインテリジェンス(BI)は、複雑な業務データを可視化し、企業の業務部門や経営者が経験や直感だけに頼らず、データに基づいた客観的な議論を行えるように支援します。BIの目的は、過去から現在にかけてのデータを明確にして、企業のパフォーマンスを定量的に把握し、業務プロセスを透明化することです。 BIツールの活用により作成されるダッシュボード、レポート、アラートを通じて、経営層や部門責任者はビジネスの現状をリアルタイムに把握し、重要な経営指標(KPI)の追跡が可能になります。特に営業部門においては、BIは売上や成約率などの営業関連指標の可視化を通じて、すべての関係者が客観的な情報に基づいて営業戦略を議論し、意思決定を行うための支援を提供します。 BIの核となるのは、データの「見える化」であり、このプロセスはMicrosoft Excelのような一般的なツールから始めることができます。より高度な分析には、TableauやMicrosoft PowerBIのような汎用的なBIツールや、SalesforceやSAPのように特定の業務システムに統合されたBI機能を利用することで、さらに深い洞察が得られます。 ビジネスアナリティクス(BA)とは? ビジネスアナリティクス(BAまたはビジネス分析)は、データに基づいて業務プロセスの理解を深め、データ・ドリブンなビジネスの意思決定を促進する方法論です。BAの主な目的は、データから得られる洞察を活用して業務改善策を計画および実施することであり、ビジネスインテリジェンスが提供する「見える化」と予測分析が目指す「予測」に対して、具体的なビジネス活動の分析に焦点を置いています。 ビジネスアナリティクスの応用例には、営業やマーケティング部門での顧客セグメント分析を通じたセグメントターゲティング、顧客ペルソナ分析に基づく製品企画、離反分析を利用したサービス改善などがあります。これらの分析は、「見える化」を超えてビジネス目標達成に向けた具体的な分析活動を行いますが、必ずしも高度な統計数理や機械学習を要するわけではありません。 BAを実現するためには、様々な データ分析ツール が利用されます。データの可視化がBAの基礎となるため、BIツールを使用してBA活動を行うことができます。また、PythonやRなどのプログラミング言語を用いることで、より柔軟かつ高度な分析が可能になります。しかし、最も重要なのは、使用するツールやデータを超え、ビジネスプロセスを深く理解し、データに基づいて洞察を得る能力です。 予測分析(PA)とは? 予測分析、またはデータサイエンスは、機械学習技術を用いて過去のデータからパターンを特定し、将来のイベントを予測するモデルを構築するプロセスです。このアプローチの本質は、データに基づく予測を利用して、業務プロセスを最適化し、自動化することにあります。予測分析は、ビジネスインテリジェンスの「見える化」とは一線を画し、具体的な予測結果を実業務システムに統合し、業務プロセスの自動化を実現します。 営業分析の場合、成約予測モデルを用いて成約確率が高い商談に営業リソースを集中させる、商品推薦モデルにより顧客にパーソナライズされた商品提案を行う、売上予測モデルを使って売上目標と予測値の乖離時に目標達成のための追加アクションを促すなど、様々な応用が考えられます。 予測分析の実施には、PythonやRなどのプログラミング言語と、TensorFlowやScikit-learnといった機械学習ライブラリが広く用いられています。これらのツールは、データの前処理からモデルの訓練、評価、そしてデプロイメントに至るまで、予測分析プロジェクトの全段階をサポートします。しかし、技術的ツールの使用に加えて、機械学習に対する深い理解と、分析結果を業務に応用するための高いデータリテラシーが組織内で必要です。 dotData Insightによるビジネスアナリティクス dotData Insigh tは、業務部門を主体とした ビジネスアナリティクス を可能にする革新的なデータ分析プラットフォームです。このプラットフォームは、AIによって発見されるデータ内の隠れたパターン(特徴量)を、直感的かつ使いやすいインターフェイスを通じて提供します。これにより、業務部門は自らデータからインサイトを引き出し、迅速かつ効果的なデータドリブンの意思決定を行うことができます。dotData Insightを利用することで、企業はデータの潜在的な価値を最大限に引き出し、ビジネスの成長を促進することが可能です。 dotData Insightは、手作業の分析プロセスでは見過ごされがちだった、あるいは発見するのに数週間から数ヶ月を要するような、業務データ内の複雑なパターンを迅速に特定します。dotData IndotDataのAIが発見する特徴量を、生成AIの「世界知識」で補強し、実践的なビジネス仮説を導き出します。この融合により、業務部門はデータからの洞察を直感的に把握し、新たなビジネス仮説を立て、戦略の策定や施策の実行をより効果的に進めることができます。 まとめ このブログではシリーズパート2として、ビジネスアナリティクス(BA)、ビジネスインテリジェンス(BI)、および予測分析(PA)が企業の意思決定プロセスと業務最適化にどのように貢献するかを探求してきました。これらの分析手法は、それぞれ独自の強みと応用領域を持ち、相互に補完し合いながら、データドリブンな意思決定を支援します。 ビジネスインテリジェンス(BI)は、過去と現在のデータを「見える化」し、企業が業務やビジネスの状況を定量的に把握する基盤を提供します。 ビジネスアナリティクス(BA)は、BIによって得られるデータを基に、データから洞察を得て業務改善策を計画および実施します。 予測分析(PA)は、機械学習技術を活用た将来予測によって、業務プロセスの自動化および最適化を目指します。 データは、現代企業にとっての新時代のオイルと言えます。データドリブンな意思決定によって、企業は競争優位性を確保し、市場での成功を加速させることが可能です。その鍵は、データ分析方法の違いを理解し、適切な手法を選択してビジネスの具体的な課題解決に応用する能力にあります。 dotDataは、企業の「データを分析するスキル」よりも、「データを基にビジネスを分析する能力」を育成するために ビジネスアナリティクス人材育成サービス を提供しています。ご興味のある方は、お気軽に お問い合わせ ください。 ビジネスアナリティクスブログシリーズ パート1: ビジネスアナリティクス:データを基点で業務を分析 パート3: ビジネスアナリティクスの実現するDX人材とデータドリブンな組織文化の変革 The post データから洞察へ:ビジネスインテリジェンス、ビジネスアナリティクス、予測分析の統合ガイド appeared first on dotData .
アバター