【ChatGPT-4o】店舗売り上げのダミーデータを作ってみた

はじめに

今回は2024年5月13日(米国時間)にOpenAIから発表されたGPT-4oを使って30分で簡単にダミーデータをつくります。 もちろん実際のデータは複雑な条件が重なり合った産物ですので、それに近づけようとすればするほど様々なパラメータを設定するだけではなく、その瞬間の偶然が重なりあうものです。 そのためダミーデータを作成しようと思ってもなかなか自分では取り掛かるのハードルが高いものでした。

そこで、グラフのプロットなど高度な分析やファイルでの入出力が可能となったと話題のGPT-4oを使用して誰でもダミーデータを作成できるのではないかという検証の記事となっております。

注意点として、このGPT-4oは無料ユーザーでも使用は可能ですが一日の回数制限があり同じように作成するのはかなり難しいと思います。実際にGPT-3.5では全然違う結果が返されたりしまいました。

ChatGPTとは何か

ChatGPTは、OpenAIによって開発された自然言語処理モデルの一つです。GPT(Generative Pre-trained Transformer)アーキテクチャに基づいており、膨大な量のテキストデータを学習することで、文脈に応じた自然な文章を生成する能力を持っています。

生成AIのしくみ

学習プロセスと生成プロセスに分けて生成AIのしくみを説明します。

1. 学習プロセス

生成AI、特にChatGPTは、以下のようなプロセスを通じて学習します

  • 大規模データセットの使用:インターネット上の大量のテキストデータを収集し、これを元にモデルをトレーニングします。これにより、モデルは多様なトピックや文脈に対応する能力を獲得します。
  • トランスフォーマーアーキテクチャ:GPTはトランスフォーマーと呼ばれるニューラルネットワークの一種を使用しており、これにより文脈を考慮した文章生成が可能になります。
  • 自己教師あり学習:モデルは、部分的なテキストから次に来る単語やフレーズを予測するタスクを通じて学習します。これにより、文脈を理解し、自然な文章を生成する能力が向上します。

2. 生成プロセス

学習が完了した生成AIは、以下のようにして新しい文章を生成します

  • 入力の理解:ユーザーからの入力(プロンプト)を解析し、その文脈や意図を理解します。
  • 適切な応答の生成:学習データを元に、最も適切な応答を生成します。この際、文脈に沿った自然な文章を作成することを目指します。
  • リアルタイム処理:入力から応答の生成までのプロセスは非常に高速で、リアルタイムでの対話が可能です。

何がすごいの?

生成AI、特にChatGPTが注目される理由は大きく分けて5つあります。

1. 自然な対話能力

ChatGPTは、ユーザーの入力に対して自然な言語で応答する能力があります。これにより、人間との対話のようなスムーズなコミュニケーションが可能となります。

2. 多用途性

ChatGPTは多様なトピックや用途に対応できます。例えば、質問応答、文章生成、要約、翻訳、さらにはクリエイティブな文章作成など、幅広い用途で利用されています。

3. 効率の向上

生成AIは、大量のデータを迅速に処理し、的確な情報を提供することができます。これにより、業務の効率が大幅に向上します。例えば、カスタマーサポートでの応答時間の短縮や、コンテンツ制作のスピードアップが実現します。

4. 学習と適応

生成AIは、継続的な学習と適応が可能です。新しいデータやフィードバックを取り入れることで、常に最新の情報を提供し、精度を向上させることができます。

5. クリエイティブなサポート

生成AIは、創造的な作業を支援する力を持っています。新しいアイデアの発想や文章の作成など、人間の創造性を補完するツールとしても活躍しています。

ChatGPTをはじめとする生成AIは、その高い言語理解力と生成能力により、さまざまな分野で革新的な役割を果たしています。今後もさらに進化し、より多くの応用が期待されています。

成果物

本記事で作成したダミーデータをみてもらいます。

カフェの支払手段別売上を想定しました。

ダミーデータより一部抜粋

datetotal_salescashcredittransportpaypayid_payquickpaycoffeelattecakesandwichsmoothie
2013-01-06101800126003850024400780093009200840021100247001570037000
2013-01-0756800880020300124006500390049001100016100178001520011000
2013-01-09644009000197001490010400570047001250019400267001380016100
2013-01-1088600189003220017900920058004600690015400113002100030600
2013-01-117930016500298001130010800650044001220015100161001700017700
2013-01-121050001740033500216001170010600102001430021000267003010023100
2013-01-1312330018700392003230017000830078001710014600439003430023300
2013-01-14837001910026200216005800420068001230010900192001890013300
2013-01-1662100142001520013500790069004400670014500120002240016200
2013-01-176410098002540011700520056006400640012300144001600023800

▼年間売上の棒グラフ

▼一年ごとの売上の折れ線グラフ

▼10年間の売り上げの折れ線グラフ

もちろん完璧なものではありませんが、短い時間でダミーデータを作成するという効率性としてはとても有意義だと思います。

このようなデータを可視化・分析することについては以下から

【ChatGPT-4o】店舗売り上げデータを可視化・分析してみた

プロンプトを知ろう

まず、ChatGPTを使う上で一番気にしなくてはいけないことはプロンプトです。

プロンプトとはユーザーがシステムに対して入力する、いわゆる指示・命令です。

相手によって物事の頼み方が違うように、ChatGPTにはChatGPTに伝わる頼み方があるということです。

ただ、プロンプトについては至ってシンプルです。

「より細かく言語化」すればいいだけです!

シンプルですね。(これがむずかしめなのですが…。)

例)

1. 具体的なデータ要件を示す:
生成したいデータの種類(例:名前、住所、電話番号、メールアドレス、製品情報など)。
データの形式(例:CSV、JSON、Excelなど)。
各データ項目の詳細(例:名前はフルネーム、住所は市区町村と郵便番号、メールアドレスは有効な形式など)。

2. データ量を明示する:
生成したいデータの件数(例:100件の顧客データ、500件の注文データなど)。

3. 特定の条件や制約を設定する:
特定の範囲や条件に基づくデータ(例:特定の期間内のデータ、特定の地域のデータなど)。
必要なユニーク性(例:メールアドレスや電話番号は重複しない)。

4. データの多様性を確保する:
複数のカテゴリやバリエーションを含むデータ(例:異なる職業や年齢層の人物データ)。

5. 使いやすい形式にする:
必要に応じて、特定のフォーマットやテンプレートに従う(例:住所は「都道府県、市区町村、番地」の形式にする)。

ここまで示すとかなり思っているものに近づけた形式にChatGPTも返してくれますね。

さらに解像度を良くしたい場合は

  • ChatGPTがどのような立場なのか(大体はその問いの自分が置かれている状況)
  • どのレベルの人に向けてのものを出力してほしいのか
  • 「足りない情報やわからないことがありましたら聞いてください」といっておく

などを加えるとよりChatGPTとあなたとの間の認識の齟齬がなく良いものを出力してくれる傾向があります。

以上を踏まえた例

悪い例

  • ダミーデータを作ってください。
    • 何に関する、何のためのダミーデータなのかわからない
    • 規模は?
    • 業務形態は?
    • 必要なカラムは?
    • 期間は?

良い例

  • 私は個人コーヒーショップの経営者です。
  • 売上データを分析したいのですが分析手段を持たないのでまずはダミーデータを使って分析の練習がしてみたいです。
  • コーヒーカフェにの売上のダミーデータを作成してください。
  • 顧客の支払手段は現金、クレカ、交通系、PayPay、ID、QuickPayの6種です。
  • 定休日は火曜、および祝祭日(土日は営業)
  • 土日の顧客数は平日と比べ1.5倍程度

もちろんこれだけで良いダミーデータになるわけではないのですが、ChatGPTを使用する場合は、より詳しく言語化し情報を付け加えることを意識してください。人間では察知してくれるようなこともまだ察知してくれません。

腹を割って素直に要望を伝えきることが望んだアウトプットにつながるのです。

※ただし一度言ったから安心というわけではなく、修正を繰り返しているうちに条件が抜け落ちることもあるので再度命令をしてあげてください。

ダミーデータを作ってみよう

それでは、やっとダミーデータを作る流れに移ります。

手順は以下のようになります。

  1. シナリオを決める
  2. 必要なパラメータ(条件)を決める
    1. 出力、確認
    2. 条件を加えるなど調整する
    3. 繰り返し
  3. 完成

今回のテーマは「秋葉原にある個人経営のコーヒーカフェの売上」というダミーデータを設定します。

このテーマに対してシナリオを作ります。

シナリオがあるかないかでChatGPTに投げるプロンプトがより詳細になるので作りましょう。

シナリオ、条件の設定

正直すべてが利用されるかどうかは怪しいですが、確実に情報はあった方がそれっぽくなります。

最悪なんか違ったら修正すればいいのです(笑)

Excelファイルでの出力も可能です。

コードが回せる方であればコードを実行していただいても大丈夫です。

出力

はじめはこのように出力されました。

cafe_sales_data.xlsx

datetotal_salescashcredittransportpaypayid_payquickpay
2023-01-0282953139923121119711878946244623
2023-01-047803289292985817617966440827879
2023-01-0568408213191939710909546752166099
2023-01-0669110149112065917789511551685465
2023-01-071105862294542844167921217095546278
2023-01-08108265265812809213561173861179310850
2023-01-1167374128731756218947752144885980
2023-01-127186785503054912140930052466080

調整

パッと見良い感じですが、「商品の単価は100円刻みであり、売上は単価×個数」である以上すべてのセルの下二桁は00にならなくてはいけません。つ

まりいくつか注文が漏れてるということになります。

ここを指摘しましょう。

datetotal_salescoffeelattecakesandwichsmoothiecashcredittransportpaypayid_payquickpay
2023-01-022276003030056800320007260077000589007760032200257001790015300
2023-01-041892001560028400510003060095900590005370030200151001440016800
2023-01-0523960041400392007000064800637003050011010040900164002250019200
2023-01-06169800339002080050000336004900035600379005400019900129009500
2023-01-0727640015300532007050065400840006400010570038800256001700025300
2023-01-083071001650041200265006180099400721008710070600342001960023500
2023-01-113160003630050800680006660062300763009920059000308002790022800
2023-01-121710002700031200320005640079800233006440040500179001140013500

下二桁が00に統一され、見やすくなりましたね。

次の調整は、売上高の数値です。

はじめのシナリオのところで一日の売上平均は8万円程度としましたが、現在は30万円を超えるような日もあるので修正しましょう。

datetotal_salescashcredittransportpaypayid_payquickpaycoffeelattecakesandwichsmoothie
2023-01-02810002010023700177009100490055001070010600194002310012100
2023-01-0472500122001930019500770057008100570010000117002730036000
2023-01-055730014600185007700560057005200980011500149002640014000
2023-01-066610099001640020000840069004500760010500114002230026800
2023-01-07107300197002730036300980069007300880027200176003350035200
2023-01-0810390022600292002040015000102006500890015400232002530050100
2023-01-1190100203002670023200520076007100950019100125002240022100
2023-01-127010017400169001890049006100590087006900170001750020500

さらにこのタイミングで気が付いたのですが、お店は年末年始(12/28~1/5)は休業しているのにもかかわらず、データには1/2,4,5の売り上げが存在しているので修正しましょう。

(実はこの修正は一回ではできませんでした。 12/28~1/5などとまとめて書かず、「毎年1/1~1/5と12/28~12/31は休み」のように丁寧に書くことをおすすめします。)

datetotal_salescashcredittransportpaypayid_payquickpaycoffeelattecakesandwichsmoothie
2013-01-06101800126003850024400780093009200840021100247001570037000
2013-01-0756800880020300124006500390049001100016100178001520011000
2013-01-09644009000197001490010400570047001250019400267001380016100
2013-01-1088600189003220017900920058004600690015400113002100030600
2013-01-117930016500298001130010800650044001220015100161001700017700
2013-01-121050001740033500216001170010600102001430021000267003010023100
2013-01-1312330018700392003230017000830078001710014600439003430023300
2013-01-14837001910026200216005800420068001230010900192001890013300
2013-01-1662100142001520013500790069004400670014500120002240016200
2013-01-176410098002540011700520056006400640012300144001600023800

とてもいい感じになりました。

何回かプロンプトを書き直しているうちに乱数が変わり、数値が変わってしまいましたが分析前のダミーデータ作成のタイミングだったのでセーフです!笑

終わりに

ChatGPTの最新版GPT-4oではこのように、条件をうまく命令することができさえすれば、ここまでのダミーデータを簡単に作ることができることがわかりました。

分析手法の紹介の際に使われるダミーデータですが、現実味のないデータでは意味ないし、ちゃんとしたものを作ろうとすると変数などの設定が複雑でパッと作るのが難しいというのが以前までの印象でした。

しかし、今回コツは必要とはいえChatGPTを使用すれば簡単に作成することができることがわかり技術の革新をかなり感じました。

このようにダミーデータが簡単に作れると

  • 実際のデータを使いにくい研修資料の制作ができない
  • 出版本の例にするデータを作るのに時間がかかる
  • 分析について学びたいけど分析する対象のデータがない

といった悩みが解消できます。

こういったデータはグラフとして可視化したり、分析することが可能です。 (むしろ可視化や分析をするためにこのような形なのですが。)

次の記事では実際にこのダミーデータを可視化・分析をしてみたというものになります。

【ChatGPT-4o】店舗売り上げデータを可視化・分析してみた

おすすめ記事