2024年3月22日に開催する勉強会用ページです。

日時このページで使用した生成AI
2024/03/22ChatGPT(GPT-3.5)
Copilot in Bing(スタイル:厳密)

📝 ChatGPTを選ぶ


今日は主にChatGPT(無料版)を使います

2024年2月現在、対話型生成AIサービスは大量に公開されています。

その中でもメジャーな対話型文章生成AIサービスを4つ、ざっくり紹介します。

  • ChatGPT
    • OpenAIが開発・提供する生成AI
    • 王道
  • Copilot
    • Microsoftが開発・提供する生成AI
    • OpenAIが開発したAIモデルを活用した検索エンジン
    • 元Bing AI
  • Gemini
    • Googleが開発・提供する生成AI
    • Google関連アプリケーションとの連携が可能
    • 元Bard
  • Claude
    • Anthropicが開発・提供する生成AI
    • Amazonによる多額の出資を受けている
    • 元OpenAIの人たちが立ち上げた

またプログラミングのために作られた文章生成AIサービスもざっくり紹介します。

  • GitHub Copilot
    • GitHubが開発・提供する生成AI
    • 大量のパブリックコードをもとに機械学習を行ったAIがコーディングの支援を行う
    • 主な機能はコードの入力補完で、開発スピードの向上やエラー防止に役立つ
  • Cursor
    • 生成AI機能を搭載したテキストエディタ
    • AIとの対話による疑問の解消やエラーの自動修正が可能
    • VSCodeをもとに作成されているため、VSCodeに慣れている方だと使い勝手が良い

それぞれ無料版/有料版がありますが、
今回は ChatGPT(無料版) を利用する想定で説明します。

Copilotはアカウント不要ですが、他はGoogleアカウント等が必要です。

もちろん他の生成AIサービスを利用しても問題ありません。
私も時々CopilotやGeminiを利用するかもしれません。


👉 はじめてのChatGPT


- まずはあいさつする

  おはようございます。今日の天気は雨です。
  

- 質問してみる

  大学事務職員が使う台車の種類を3つ教えてください
  

- 変なスタイルで回答させる

  大学事務職員が使う台車の種類を3つ教えてください
愉快な関西弁で
  

※ Shift+Enterで改行できます

- 今日はよろしくね

  ありがとう!こうやって今日はあなたとお話しします。よろしくお願いします。
  

🏳‍🌈 ChatGPTを使う目的


- 業務を効率化・自動化するため

automation

ChatGPT(無料版)で対応可能なタスク例を挙げてみます。

  • 文章の校正
  • 文章の要約
  • メール文の作成
  • 文章の翻訳
  • プログラミングコードの作成
  • Excel関数の作成
  • 企画書の作成

東京都の事例より誤字脱字の修正をしてもらうを引用します。

  あなたは、プロの編集者です。
下記文章について、誤字・脱字及び語尾の言い回しに気を付け、より適切な表現に修正してください。

#文章
これまで4月にプロジェクトチームを設置して、そのプラス面、マイナス面を見極めながら、この導入について検討してまいりました。全曲展開するにあたり、デジタルサービス局内で6月からですね。このChatGPTの試行環境を提供致しまして、その状況についてのアンケート結果でございます。前提として、文章生成AIを利用できる業務というのはもちろん、職員の業務の全体の中の業務の中で限られるものと認識をしています。
  

- 考えを広げるため

automation

ChatGPT(無料版)で対応可能なタスク例を挙げてみます。

  • プレスリリースのタイトル案のアイデア出し
  • 仕事(プロジェクト)の進め方の意見交換
  • 意見の言い換え

ChatGPT(無料版)では最新情報を取得することはできませんが、ある程度枯れた技術であれば活用できます。特にプログラムやExcelの関数は、利用者の環境で動作確認が必要なので、より使いやすい部類に入ります。こちらも広義の意味で「考えを広げる」に含めます。

  • プログラミングの勉強
  • Excel関数の説明
  • 考えに対するSWOT分析の実行
  • 5W1Hによる考えの整理
  プログラミング言語Pythonって何?Excelと何が違う?事務業務で使うメリットは?
私は初心者なので、厳密さよりも分かりやすさを優先して説明してください。
言葉もかんたんにして
  
  次の3つのステップで、私の仮説を改善してください。

### 仮説 ###
大学事務職員は技術の進展に疎いのでダメ

### ステップ ###
- 仮説の特長を批判的かつ建設的に分析する
- 明るい未来をつくるための提言に言い換える
  
両者は明確には区別・分類されません。

ChatGPTを使う2つの目的に触れましたが、それぞれハッキリと分かれているわけではありません。むしろ多くの場合はどちらの目的も含まれると考えられます。


⚠️ 生成AIの取り扱いについて


さてChatGPTをどんどん使っていきたいところですが、
その前に知っておきたい生成AIの性質(限界)やリスク(課題)についてご説明します。
(たぶん当日はかいつまんでご説明します)

生成AIの性質・リスクが理解できれば、生成AIの扱い方の基本を理解できます。

あまりよくない例: ※ 検索エンジンを兼ねた生成AIであればリスクをおさえられます。

  鎌倉幕府 いつから
  

より良い使い方の一例:

  鎌倉幕府が始まった年は1192年ではないのではないでしょうか。 
この仮説の妥当性を検証したいので、まずは別の仮説や考えを提示ください。
  

👉 ChatGPTを活用する


生成AIの限界と課題、使い方の基本を理解できたら、日々のお仕事や日常の中で活用したいですよね。
大学による報告や事例集はほとんど報告されていないので、ここでは自治体が公開している事例集を主に紹介します。

- 話し言葉からビジネスメールを作成する

参考:東京都:都職員のアイデアが詰まった文章生成AI活用事例集

  以下の内容を基に、日本語のビジネスメールのベストプラクティスに従い、わかりやすく、整理された清書を作成してください。

東京太郎様。先日審査会ありがとう。御社の提案は不採用。すみません。新宿花子より
  

- Excelの関数を作ってもらう

参考:東京都:都職員のアイデアが詰まった文章生成AI活用事例集

  # 指示
局内講習会の参加者リストにおける「参加可否」列に“参加”もしくは“不参加”を入力する計算式を作成してください。

# 目的
正確な計算式をエクセルに入力し、参加者の参加可否状況を把握するため

# 情報
・参加可否の条件:
・条件:3つの参加条件(例:参加登録、参加許可、必要な情報の提出)が全て満たされている
・シート構造:A列には参加者名、B列には参加登録状況(1で登録済み、0で未登録)、C列には参加の許可状況(1で許可済み、0は未許可)、D列には必要
な情報の提出状況(1で提出済み、0で未提出)が記載されています。E列に関数を入れたいです。

# ルール
・シンプルかつ理解しやすい計算式であること
  

ところで最初の「# 情報」で利用者が想定しているExcelはどのような形でしょうか。
気になったので訊いてみました。

  この# 情報で想定されているテーブルデータの例を出力してください
  

このように、出力を表形式に指定することも可能です。

- 1年間の目標を設定して報告する

参考:東京都:都職員のアイデアが詰まった文章生成AI活用事例集

  # ゴール
組織方針を元に、担当業務を分解してそれぞれの業務における具体的な
行動目標を3つ設定してください

# 担当業務
・生成AI利用のルールを作成し、生成AIの共通基盤を都庁職員向けに導
入する
・生成AIの利用促進を図るため、アイデアソンを複数開催する

# 組織方針
・都庁のDX推進に向けた課題に対応していくため、民間企業等の動向
をはじめ必要かつ十分な情報収集・分析に努め、都庁のQOS及び都民
のQOL向上に資する企画立案を行うとともに、効果的な事業化につな
げる。
  
  ルールの策定と共通基盤の導入に関するガイドラインを作成し、都庁職員に周知するという目標をさらに具体化してください
以下の観点ごとに箇条書きにして
・何をするか
・どの程度まで(数値目標)
・どのようにして(具体的な手段)
・いつまでに(期限)
  

- 文章を要約する

  # 命令書:
あなたは{プロの編集者}です。
以下の制約条件と入力文をもとに{最高の要約}を出力してください。

# 制約条件:
- 簡潔に本質が理解できるようなストーリー(背景、課題、ソリューション)を採用する
- 重要なキーワード「効率化」を強調する
- 最後に####備考 を設け、表計算ソフト・Excelについて一言で解説する
- 回答は300文字

# 入力文:
Excel でプロジェクトの日程管理をしている企業は多い
Excel はオフィス業務に欠かせないアプリケーションであり、多くの人が慣れ親しんでいるスタンダードツールだ
しかし、複数プロジェクトが関連しあって同時進行していると、変更の際の整合性が課題となる
大手情報関連機器メーカーでは、大日程管理の対象機器が年間数百種に及び、さらにその中日程、小日程があり、膨大な数になっていた
これらが同時に進み、その調整や変更への対応が従来の管理方法では限界を超えていた
グループ全体でのプロジェクト管理の標準化や効率化、さらには同社の推進するIT 戦略の一環として、対策を検討
そこで、採用されたのが日立ソリューションズ東日本の提供する工程管理・プロジェクト管理ツール『SynViz S2』であった
採用の決め手となったのがシャドウ機能だ
関連する日程表を別の日程表に貼り付けると、元の日程表の変更がリアルタイムに反映される
例えば、中日程に貼り付けられた大日程の予定が変更されても、見逃すことがなくなる
同社ではアドオンで大日程・中日程・小日程間を連携する機能も追加した
Excel の使いやすさと見やすさそのままに、SynViz S2 に備わった機能の利便性が高く評価され、全社での展開が進められている
さらに海外生産拠点での導入も視野に入ってきた

# 出力文:
3点(背景、課題、ソリューション)に箇条書き
#### 備考
...
  

- プロダクト名を考えてもらう

  あなたはプロのコピーライターです。
以下の要件に適したプロダクト名を5つ挙げてください。

### 要件 ###
- 大学のキャンパスに新しく建てられたビル型施設の中にある空間です
- ビル型施設には理系の教員の研究室が多い、特に情報系教員
- 洗練されたシンプルなデザインの椅子や机が、カフェのような場所を思わせます
- 建学の精神「質実剛健」にもとづいた落ち着いた空間
- ホワイトボードやソファも充実して、学生の学びを積極的にサポートします

### 出力 ###
プロダクト名とその理由
  

- 会議の時間配分と次第を作成する

参考:東京都:都職員のアイデアが詰まった文章生成AI活用事例集

  以下の条件の基に会議を開催したいので、議事次第を作成してください。

#会議参加者
東京都職員

#条件
・議論の進行順に番号をつけて箇条書きにしてください。
・会議時間は1時間。
・時間配分も記載する。

#会議内容
・文章生成AI(ChatGPT)の利用者数の効果的な利用
・利用者増の施策を検討。
  

- 文章を改善する

  あなたは優秀なエバンジェリストです。
大学の事務職員に製品の魅力を伝えるための文章を批判的に考察し、
この文章の問題点を3つ挙げてください

### 条件 ###
- 追加情報は無い

### 文章 ###
Excel でプロジェクトの日程管理をしている企業は多い
Excel はオフィス業務に欠かせないアプリケーションであり、多くの人が慣れ親しんでいるスタンダードツールだ
しかし、複数プロジェクトが関連しあって同時進行していると、変更の際の整合性が課題となる
大手情報関連機器メーカーでは、大日程管理の対象機器が年間数百種に及び、さらにその中日程、小日程があり、膨大な数になっていた
これらが同時に進み、その調整や変更への対応が従来の管理方法では限界を超えていた
グループ全体でのプロジェクト管理の標準化や効率化、さらには同社の推進するIT 戦略の一環として、対策を検討
そこで、採用されたのが日立ソリューションズ東日本の提供する工程管理・プロジェクト管理ツール『SynViz S2』であった
採用の決め手となったのがシャドウ機能だ
関連する日程表を別の日程表に貼り付けると、元の日程表の変更がリアルタイムに反映される
例えば、中日程に貼り付けられた大日程の予定が変更されても、見逃すことがなくなる
同社ではアドオンで大日程・中日程・小日程間を連携する機能も追加した
Excel の使いやすさと見やすさそのままに、SynViz S2 に備わった機能の利便性が高く評価され、全社での展開が進められている
さらに海外生産拠点での導入も視野に入ってきた
  
  挙げていただいた問題点を参考に、元の文章を改善してください。
  

⚙️ 良いプロンプトの基礎


ChatGPTの回答は確率的なゆらぎをもちます。
100回やって100回とも違う回答が返ってくるかもしれません。またその中には誤った内容が含まれているかもしれません。

ここでは、利用者の目的・意図に適した回答である度合いを「回答の質・精度が高さ」として、回答の質・精度を上げるための良いプロンプトの基礎について説明します。


👉 ChatGPTをプログラミングに活用する


- プログラムを作成する

  # 以下の仕様を満たすPythonプログラムを作成してください

## 仕様
- CSVファイル `data.csv` を読み込む
- CSVファイルには `id`, `name`, `age`, `score` の4つのカラムがある
- `score` が80以上の行のみを抽出する
- 抽出した行を `id` の昇順で並べ替える
- 並べ替えた結果を `result.csv` として出力する

## 注意点
- プログラムにはコメントを付けて、処理の内容を説明してください
- 変数名やメソッド名は分かりやすい名前を使用してください
  
  
### -  プログラムを解説する


```
import pandas as pd

df = pd.read_csv('data.csv')

filtered_df = df[df['score'] >= 80]

sorted_df = filtered_df.sort_values('id')

sorted_df.to_csv('result.csv', index=False)
```

上記のPythonプログラムについて、コードの各部分の処理内容を解説してください。また、pandasを使用している利点についても説明してください。
  

- 作成したプログラムを改善する

  ```
import pandas as pd

# CSVファイルを読み込む
df = pd.read_csv('data.csv')

# scoreが80以上の行を抽出する
filtered_df = df[df['score'] >= 80]

# idの昇順で並べ替える
sorted_df = filtered_df.sort_values('id')

# 結果をCSVファイルに出力する
sorted_df.to_csv('result.csv', index=False)
```

上記のPythonプログラムを改善してください。以下の点を考慮してください。

* エラー処理を追加する
* コードをより読みやすくする
* 処理速度を向上させる
  

- 作成したプログラムにコメントをつける

  ```
import pandas as pd

df = pd.read_csv('data.csv')
filtered_df = df[df['score'] >= 80]
sorted_df = filtered_df.sort_values('id')
sorted_df.to_csv('result.csv', index=False)
```

上記のPythonプログラムに、適切なコメントを追加してください。コメントは以下の基準を満たすようにしてください。

各処理の目的や内容を簡潔に説明する
変数名やメソッド名の意味を必要に応じて説明する
コードの重要な部分や注意点を強調する
  

- プログラムのエラーを読み解く

  ```python
import pandas as pd

df = pd.read_csv('data.csv')
filtered_df = df[df['score'] > 80]
sorted_df = filtered_df.sort_values('id')
sorted_df.to_csv('result.csv')
```

上記のPythonプログラムを実行したところ、以下のエラーが発生しました。

```
Traceback (most recent call last):
  File "script.py", line 6, in <module>
    sorted_df.to_csv('result.csv')
  File "/usr/local/lib/python3.9/site-packages/pandas/core/generic.py", line 3463, in to_csv
    return DataFrameRenderer(formatter).to_csv(
  File "/usr/local/lib/python3.9/site-packages/pandas/io/formats/format.py", line 1105, in to_csv
    csv_formatter.save()
  File "/usr/local/lib/python3.9/site-packages/pandas/io/formats/csvs.py", line 241, in save
    self._save()
  File "/usr/local/lib/python3.9/site-packages/pandas/io/formats/csvs.py", line 256, in _save
    self._save_header()
  File "/usr/local/lib/python3.9/site-packages/pandas/io/formats/csvs.py", line 281, in _save_header
    writer.writerow(encoded_labels)
  File "/usr/local/lib/python3.9/site-packages/pandas/io/common.py", line 707, in writerow
    self.writer.writerow(self._encode_types(row))
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 0-2: surrogates not allowed
```

このエラーの原因を特定し、修正方法を説明してください。
  

- いろんなものを変換する

  以下のJSONデータをPythonのデータフレームに変換し、CSVファイルとして出力するプログラムを作成してください。

{
  "employees": [
    {
      "id": 1,
      "name": "山田太郎",
      "age": 30,
      "department": "営業部"
    },
    {
      "id": 2,
      "name": "鈴木花子",
      "age": 25,
      "department": "経理部"
    },
    {
      "id": 3,
      "name": "佐藤次郎",
      "age": 35,
      "department": "営業部"
    }
  ]
}

- JSONデータは `data.json` というファイル名で保存されているとします
- 出力するCSVファイルは `employees.csv` というファイル名にしてください
- CSVファイルのヘッダーは `id`, `name`, `age`, `department` としてください
  

- 変数名・クラス名を命名する

  以下の仕様を満たすPythonプログラムを作成してください。

- Excelファイル `sales_data.xlsx` を読み込む
- Excelファイルには `商品ID`, `商品名`, `単価`, `数量`, `売上日` の5つのカラムがある
- `売上日` が2023年1月1日から2023年12月31日までのデータのみを抽出する
- 抽出したデータを `商品ID` と `売上日` でグループ化し、`数量` の合計を計算する
- グループ化した結果を `売上日` の昇順で並べ替える
- 並べ替えた結果を新しいExcelファイル `sales_summary.xlsx` として出力する

プログラムを作成する際、変数名やメソッド名、クラス名は適切で分かりやすい名前を使用してください。
  

- リファレンス代わりにする

  pandasの以下のメソッドについて説明してください。

1. read_csv()
2. groupby()
3. agg()
4. sort_values()
5. to_csv()

それぞれのメソッドについて、以下の点を説明してください。

- メソッドの目的と主な機能
- メソッドの引数とその意味
- メソッドの返り値
- メソッドの使用例
  

🚪 さいごに


ポイント
  • AIをあなたのサポーターにする
    文章を扱う仕事や、アイデアを文章に落としてみたら、ChatGPTに入力することを検討しましょう

  • 今はまだ試行錯誤の時期です
    最新情報は「いろいろ人に訊く」前に「自分で使ってみてから考える」方が良い

  • 有用なプロンプトやユースケースはそのうちアプリケーションとして提供されます
    小難しいテクニックは「新しい技術のお試し期」である証拠

今日のハンズオンどうでした?

  Webページが見づらい・内容が簡単すぎる/難しすぎるなど、ご意見をいただけますでしょうか🙇‍♂️

Last updated 22 3月 2024, 17:20 +0900 . history