Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatGPTでモノづくりを支援してもらった話

 ChatGPTでモノづくりを支援してもらった話

ChatGPTを使ってモノづくりの支援ができないか検討した話。ChatGPTを使って回路図作成、ChatGPTを使って3DプリンタのためのSTL出力、ChatGPTを使ってLチカ(Arudino/M5シリーズ)、ChatGPTとM5StickCを使ってIoTなシステム開発を試してみた。

tomit3

May 07, 2023
Tweet

More Decks by tomit3

Other Decks in Technology

Transcript

  1. 自己紹介とこの資料について • 自己紹介 • 仕事はソフトウェア系 • ソフトウェア、ハードウェアに限らずモノ作りが好き • GitHubに公開 •

    関連する資料もslideshareで公開(tomitomi3で検索) • この資料について • とあるLTで発表した資料。ChatGPT(を含めたLLM)を適切に使用す ることでモノづくり、ラピットプロトタイピングがさらに加速すると 思った。
  2. ChatGPTって何? • OpenAIが開発した大規模言語モデルGPTを用いたチャットサービス • 文章生成、自然言語理解、文書要約などのタスクが出来る。 • 膨大な情報を元に質問に基づく回答をする。それがヒトのような対応。 • GPTアーキテクチャは公開、ChatGPTのモデルは非公開 •

    GPT-3.5は膨大なテキストデータを学習(45TB相当) • 人類が作りだし、保存され、公開されている「テキスト」データが対象 [1] https://openai.com/blog/chatgpt ※モデルの時系列 GPT⇒GPT-2⇒GPT-3⇒GPT-3.5⇒GPT-4 ↗ InstructGPT ※対話に特化したモデル
  3. ChatGPTって何? • 出来る事(そこそこ) • 教育(解説) • 対話 • 仕様書を書く •

    プログラムを書く • 出来ない事 • 画像を出力 • 他とのインタラクション ここ数か月でガラッと変わるような事が多々。 膨大な知識をもつ自分だけのアシスタントが出来た。 間違うけど、そこそこ賢い。
  4. ChatGPT • どういうモノ(極端に要約) • GPT:言葉のつながりを確率で推定、学習するニューラルネットワーク • 膨大なテキストデータから言葉のつながりを膨大な重みとして保持 • LLM:Large Language

    Model • InstructGPT:受け答えに特化させたモデル • 受け答え=「対話データ」を用いて強化学習 • 返答内容は学習に用いた「言葉」と言葉の「つながり」から生成 • 質問が抽象的だと一番頻度が高いものが返答される可能性大 • 抽象的な質問ではなく、具体的に狭めていくのがよい。 • 「プロンプトエンジニアリング」と呼ばれる技法が必要 • 知らないこと・未知なことでも知ってるような回答をするので注意。 [1] What Is ChatGPT Doing … and Why Does It Work?, https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/ (accessed 2023/3/26) 省略
  5. (主観)ChatGPT今後 • インターフェースが増える・変わると思う • インタラクションも変わる • 入力、出力も変わり出来ることが増えると思う ChatGPT(GPT) コンピュータ内部 実世界

    言葉というIF (ex.プロンプトエンジニアリング) • 特定用途AI ⇒ 多用途AI(not AGI)へ • 困難と思っていた自然言語処理が実使用レベル • 必要だったのは膨大な「データ」と「計算量」 • 1980/90年代 計算量、データが不足 • 2010年代 データ↑(整備)、計算量(GPU)↑ • 2020年代 データ↑、計算量↑ • 計算量だけでは出来なかったことが出来るように。 • データの増加、計算量増加 どっちが先か? • データがさらにデータを生む+膨大な計算量⇒ループ ≒収穫加速の法則? • 倫理の問題へ? • データの正しさは? • 危険なことは無いか、⻭⽌めが利かない? [1] ChatGPT, https://ja.wikipedia.org/wiki/ChatGPT (accessed 2023/3/26) [2] GPT-4 Technical Report, https://arxiv.org/abs/2303.08774 (accessed 2023/3/26) 省略
  6. ChatGPTって何? • 出来る事(そこそこ) • 教育(解説) • 対話 • 仕様書を書く •

    プログラムを書く • 出来ない事 • 画像を出力 • 他とのインタラクション 「テキストのみ出力」 ここら辺を使ってモノづくり支援が出来ないか
  7. ChatGPTでモノづくりに活かしたい • モノづくりをChatGPTで支援できないか検討 • ChatGPTに命令を投げて、返答結果を確認 • モノづくりはいろいろあるが代表的な下記を検討 • 回路図作成 •

    Lチカを作る回路図を出力 • 3Dプリンタを使ったモノづくり • STL出力、形状の検討 • Arudino/M5シリーズ(M5Stick/Stack)を使ったモノづくり • Lチカ • IoTなシステム
  8. ChatGPT+回路図作成 • 題目:Lチカを作る • 返答結果: • 質問が抽象的か? • 方法はいろいろある Lチカ->

    Arduino という情報が多いからと推測 • 回路図が出力できない • 適当なimgurと思われる • 説明文はそれっぽい
  9. ChatGPT+回路図作成 • 題目:Lチカを作る • 返答結果: • タイマIC 555を使用 • 説明文はそれっぽい。

    • 無安定モードを行う説明あり • 回路図が出力できない。 • 適当なimgurと思われる [1] 555タイマー, https://ja.wikipedia.org/wiki/555_%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC
  10. ChatGPT+回路図作成 • バイナリ形式での出力は困難と思うが、 KiCad sch形式はテキストで読める。 • 構造化されている可読言語であればよい。 XML、JSONを持つデータフォーマット • バイナリ形式が困難と思う理由

    • 小さな変更で文字列(HEX)とつながり(≒境界)が大きく変わる。 LMMが「文字」とその「つながり」に注目しているのでだは困難と推測 • 入力を少し変えると大きく変わるSHA1などは対応できない(はず。SHA1のアルゴリ ズムで逆推定値を出力したらすごい)
  11. 補足:プロンプトエンジニアリング • ChatGPTへの命令を「文書」として書いても良いが書き方を 工夫すると良い返答が返る場合がある。以後この構文を使用する。 • Markdown記法 • Htmlのようなマークアップ言語 • 仕様を箇条書き、入力・参照元の指示

    に使うとよい • 日本語より英語 • 学習データセット量の違い • GPT-4になるとそれほど差がないかも あいうえお # 見出しレベル1 大きな見出し ## 見出しレベル2 1. 箇条書き数字付き 1. 箇条書き数字付き ### 見出しレベル3 * 箇条書き1 * 箇条書き2 これで --- 区切れる [1] https://testpage.jp/tool/markdown.php
  12. 補足:プロンプトエンジニアリング • GhatGPTへの命令 深津式汎用プロンプト[1][2] • 役割と何をしたいかを冒頭に書く、仕様(制約条件)箇条書きにする [1] https://www.youtube.com/watch?v=ReoJcerYtuI&ab_channel=note [2] https://delaymania.com/202302/webservice/chatgpt-fukatsu-prompt/

    下記の仕様を満たす回路図を作成してください。 ## 仕様 1. LEDを点滅させる。 1. タイマIC 555を使用する。 1. 電源電圧は5V USBから供給する。 1. 抵抗の定数は適切な抵抗値としてください。
  13. ChatGPT+回路図作成 • 題目:Lチカを作る • KiCad schをコードで書いて、 こっちでschつくるからと指定 • 返答結果: •

    sch形式っぽいものを出力 • 一部のコード(component)を 貼り付けてみたがエラー
  14. StableDiffusiton+回路図作成 • 題目:オペアンプの反転増幅回路 • ChatGPTではなく、絵を生成する StableDiffusitonを用いてみる[1] • プロンプト • Electronic

    circuit, operational amplifier, inverting amplification, 10x gain • 生成結果: • 右図参照 • 回路図ではない [1] https://twitter.com/tomit3/status/1643298283899752451
  15. ChatGPT+STL出力 • 3Dプリンタに用いられる「STL」出力 • 欲しい形状を定義してSTLが出力できるかを検討 • 検討事項 • STL直接出力 •

    STLを他ソフトを介して出力 • OpenSCAD • Pythonで3次元形状を定義。プレビュー/レンダリング、STL出力ができる。 • numpy-stlを介したSTL出力の検討
  16. ChatGPT+STL出力 • 題目:STLを作る • OpenSCAD[1]を使用して出力 • M5StickCの寸法の直方体 • 返答結果: •

    OpenSCADで使用できる pythonコードが出力 • プリミティブな形状は 出力しれくれるのかも [1] https://openscad.org/
  17. import numpy as np from stl import mesh # M5StickCの各パーツの形状を定義する関数

    def body(): vertices = np.array([ [0, 0, 0], [24, 0, 0], [24, 24, 0], [0, 24, 0], [0, 0, 10], [24, 0, 10], [24, 24, 10], [0, 24, 10] ]) faces = np.array([ [0, 1, 2], [0, 2, 3], [4, 5, 6], [4, 6, 7], [0, 1, 5], [0, 5, 4], [1, 2, 6], [1, 6, 5], [2, 3, 7], [2, 7, 6], [3, 0, 4], [3, 4, 7] ]) return mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype), remove_empty_areas=False), vertices, faces def button(): vertices = np.array([ [6, 0, 10], [18, 0, 10], [18, 4, 10], [6, 4, 10], [6, 0, 12], [18, 0, 12], [18, 4, 12], [6, 4, 12] ]) faces = np.array([ [0, 1, 2], [0, 2, 3], [4, 5, 6], [4, 6, 7], [0, 1, 5], [0, 5, 4], [1, 2, 6], [1, 6, 5], [2, 3, 7], [2, 7, 6], [3, 0, 4], [3, 4, 7] ]) return mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype), remove_empty_areas=False), vertices, faces def speaker(): resolution = 20 height = 2 radius = 6 circle_points = np.linspace(0, 2 * np.pi, resolution) vertices = np.zeros((resolution + 2, 3)) vertices[1:-1, 0] = np.cos(circle_points) * radius vertices[1:-1, 1] = np.sin(circle_points) * radius vertices[0, 2] = 0 vertices[1:-1, 2] = height / 2 vertices[-1, 2] = height faces = np.zeros((resolution * 2, 3), dtype=np.int32) for i in range(resolution): idx = i * 2 faces[idx] = [0, i + 1, (i + 1) % resolution + 1] faces[idx + 1] = [resolution + 1, i + 1, (i + 1) % resolution + 1] return mesh.Mesh(np.zeros(faces.shape[0], dtype=mesh.Mesh.dtype), remove_empty_areas=False), vertices, faces # M5StickCのメッシュを作成する m5stickc = mesh.Mesh(np.zeros(0, dtype=mesh.Mesh.dtype)) parts = [body, button, speaker] for part in parts: mesh_part, vertices, faces = part() mesh_part.vectors = vertices[faces] m5stickc = mesh.Mesh(np.concatenate([m5stickc.data, mesh_part.data])) # M5StickCの形状をSTLファイルに出力する m5stickc.save('m5stickc.stl') Numpy-stlを用いたPythonコードと生成されたM5StickC形状
  18. ChatGPT+STL出力 • 題目:STLを作る • numpy-stl[1]を使用して出力 • 右はnum-stlの誤記 • M5StickCの形状を出力 •

    GPT-4を使用 • 返答結果: • エラーとなるpythonコード • エラーコードを教えてコード修正 正しく実行できるコードに • M5StickC Plusの形状を出力 [1] https://pypi.org/project/numpy-stl/
  19. import numpy as np from stl import mesh def create_m5stickc_mesh():

    # M5StickC dimensions (approximate) length = 48.2 width = 20 height = 13.7 # Vertices for a box shape vertices = np.array([ [0, 0, 0], [length, 0, 0], [length, width, 0], [0, width, 0], [0, 0, height], [length, 0, height], [length, width, height], [0, width, height], ]) # Faces for the box shape faces = np.array([ [0, 3, 1], [1, 3, 2], [0, 1, 5], [0, 5, 4], [1, 2, 6], [1, 6, 5], [2, 3, 7], [2, 7, 6], [3, 0, 4], [3, 4, 7], [4, 5, 6], [4, 6, 7], ]) data = np.zeros(12, dtype=mesh.Mesh.dtype) for i, f in enumerate(faces): for j in range(3): data['vectors'][i][j] = vertices[f[j], :] return mesh.Mesh(data) def main(): m5stickc_mesh = create_m5stickc_mesh() m5stickc_mesh.save('M5StickC.stl') if __name__ == '__main__': main() Numpy-stlを用いたPythonコードと生成されたM5StickC形状
  20. ChatGPT+Lチカ • 題目:Lチカを作る • LEDを1秒おきに点滅 • M5StickCを用いる • 内臓LED(ポート 10)の点滅

    • 返答結果: • M5.Lcd.clearでエラー • コメントアウトでビルドが通る。 M5.Lcd.FillScreen(TFT_BLACK); にしたかった? • GPT-4にしてみた結果 次P • 意図するコードが生成
  21. ChatGPT+Lチカ • 題目:Lチカを作る • LEDを1秒おきに点滅 • M5StickCを用いる • 内臓LED(ポート 10)の点滅

    • 返答結果: • M5.Lcd.clearでエラー • コメントアウトでビルドが通る。 M5.Lcd.FillScreen(TFT_BLACK); にしたかった? • GPT-4にしてみた結果 次P • 意図するコードが生成
  22. ChatGPT+IoT with M5 • 題目:M5StickCの加速度をサーバーに送る • クライアント M5StickC • サーバー

    WindowsPC • クライアント • M5StickC内の加速度(Z軸)を取得 • サーバーに1秒毎に送る • サーバー • WindowsPCでPythonコード • クライアントから送られた値を出力する • クライアントとサーバーは同一ネットワーク • ポートは8888 WiFi (WindowsPCをホットスポット) M5StickC WindowsPC WiFi WiFi MPU6886 加速度センサ
  23. M5StickCとPCを用いてデータを送受信するシステムを開発します。下記クラ イアント仕様とサーバー仕様を満たすクライアントとサーバーのコードを作成 してください。 ## クライアント仕様 1. クライアントのコードはArduino(PlatformIOを用いる)で書く。 1. M5StickCの加速度センサー(MPU6886)のZ軸を読み取る。 1.

    加速度は1秒毎に読み取る。 1. M5StickCのwifiを使用して同一ネットワーク内にあるサーバーに送信する。 1. 接続状態はLCDに表示してください。 1. 計測した加速度をLCDに表示してください。 1. 使用するポートは8888です。 ## サーバー仕様 1. サーバー側のコードはPythonを使用する。 1. サーバーは起動してクライアント側の通信が来るまで待機します。 1. クライアントから送られた値を受信してコンソールに随時表示する。 1. サーバーは同一ネットワークにあるWindowsのPCになります。 1. サーバーはキーボードのQ+Enterキーの入力で切断とサーバーを終了する。 1. 使用するポートは8888です。 ChatGPT+IoT with M5 • ChatGPT 依頼文 • 返答結果 • クライアント側コードは ビルド時にエラー。修正が必要 • サーバー側コードは 動作するが修正が必要
  24. #include <M5StickC.h> #include <WiFi.h> #include <WiFiClient.h> const char* ssid =

    "your_SSID_here"; const char* password = "your_PASSWORD_here"; const char* serverAddress = "your_SERVER_IP_here"; const int serverPort = 8888; WiFiClient client; void setup() { M5.begin(); M5.Lcd.setRotation(3); M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextColor(WHITE, BLACK); M5.Lcd.setTextSize(1); Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } M5.Lcd.println("Connected to WiFi!"); M5.Lcd.println("Connecting to server..."); while (!client.connect(serverAddress, serverPort)) { delay(500); } M5.Lcd.println("Connected to server!"); } void loop() { float acceleration = M5.IMU.getAccZ(); M5.Lcd.setCursor(0, 20); M5.Lcd.printf("Acceleration (Z): %.2f m/s^2", acceleration); client.print(acceleration); client.flush(); delay(1000); } #include <M5StickC.h> #include <WiFi.h> #include <WiFiClient.h> 略 void setup() { 略 Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } M5.Lcd.println("Connected to WiFi!"); M5.Lcd.println("Connecting to server..."); while (!client.connect(serverAddress, serverPort)) { delay(500); } M5.Lcd.println("WiFi connected."); M5.Lcd.print("IP address: "); M5.Lcd.println(WiFi.localIP()); M5.IMU.Init(); M5.Lcd.println("Connected to server!"); delay(3000); } void loop() { M5.Lcd.fillScreen(TFT_BLACK); float accel_x = 0.0; float accel_y = 0.0; float accel_z = 0.0; M5.IMU.getAccelData(&accel_x, &accel_y, &accel_z); M5.Lcd.setCursor(0,0); M5.Lcd.printf("Acceleration (Z): %.2f m/s^2", accel_z); client.print(accel_z); client.flush(); delay(1000); } ・IPアドレス表示 ・IMU 初期化 ・加速度取得 修正 クライアント側コード 表示
  25. import socket HOST = '' # 全てのネットワークインターフェースで接続を受け付ける PORT = 8888

    # 使用するポート番号 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket: server_socket.bind((HOST, PORT)) # サーバーを指定のIPアドレスとポート番号にバインドする server_socket.listen() # 接続を受け付ける準備をする print(f"Server is running on port {PORT}...") # クライアントからの接続を待つ connection, address = server_socket.accept() print(f"Connected by {address}") # クライアントからのデータを受信して表示する while True: data = connection.recv(1024) if not data: break print(f"Received: {data.decode('utf-8')}") # 接続を切断する connection.close() print("Connection closed.") ⇒サーバーで受信したタイミングで出力 VSCode ターミナルは下記のように出力 サーバー側コード
  26. #include <M5StickC.h> #include <WiFi.h> #include <WiFiClient.h> 略 void setup() {

    略 Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } M5.Lcd.println("Connected to WiFi!"); M5.Lcd.println("Connecting to server..."); while (!client.connect(serverAddress, serverPort)) { delay(500); } M5.Lcd.println("WiFi connected."); M5.Lcd.print("IP address: "); M5.Lcd.println(WiFi.localIP()); M5.IMU.Init(); M5.Lcd.println("Connected to server!"); delay(3000); } void loop() { M5.Lcd.fillScreen(TFT_BLACK); float accel_x = 0.0; float accel_y = 0.0; float accel_z = 0.0; M5.IMU.getAccelData(&accel_x, &accel_y, &accel_z); M5.Lcd.setCursor(0,0); M5.Lcd.printf("Acceleration (Z): %.2f m/s^2", accel_z); client.print(accel_z); client.print('¥n'); client.flush(); delay(1000); } import socket HOST = '' # 全てのネットワークインターフェースで接続を受け付ける PORT = 8888 # 使用するポート番号 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket: server_socket.bind((HOST, PORT)) # サーバーを指定のIPアドレスとポート番号にバインドする server_socket.listen() # 接続を受け付ける準備をする print(f"Server is running on port {PORT}...") # クライアントからの接続を待つ connection, address = server_socket.accept() print(f"Connected by {address}") # クライアントからのデータを受信して表示する data_buffer = "" # 受信したデータを一時的に格納するためのバッファ while True: data = connection.recv(1024) if not data: break data_buffer += data.decode('utf-8') # 改行が含まれるかチェックし、改行が含まれている場合は受信したデータを出力する if '¥n' in data_buffer: lines = data_buffer.split('¥n') for line in lines[:-1]: # 最後の行は改行のみであるため、出力しない print(f"Received: {line}") data_buffer = lines[-1] # 最後の行はバッファに残す # 接続を切断する connection.close() print("Connection closed.") クライアント側 修正コード サーバー側 修正コード 改行コードを送信 改行コードまで出力 修正したサーバーコードの出力
  27. ChatGPT+IoT with M5 • ChatGPTを用いた開発 • 仕様⇒確認⇒修正⇒・・・ • インタラクティブに修正することで完 成度を上げていく

    • 気づき • ある程度の前提知識、ドメイン固有 知識があるとスムーズに進められる • 「仕様⇒確認⇒修正⇒」のループをぐ るぐる回すのは意外と大変。。。 M5StickCとPCを用いてデータを送受信するシステムを開発します。下記クラ イアント仕様とサーバー仕様を満たすクライアントとサーバーのコードを作成 してください。 ## クライアント仕様 1. クライアントのコードはArduino(PlatformIOを用いる)で書く。 1. M5StickCの加速度センサー(MPU6886)のZ軸を読み取る。 1. 加速度は1秒毎に読み取る。 1. M5StickCのwifiを使用して同一ネットワーク内にあるサーバーに送信する。 1. 接続状態はLCDに表示してください。 1. 計測した加速度をLCDに表示してください。 1. 使用するポートは8888です。 ## サーバー仕様 1. サーバー側のコードはPythonを使用する。 1. サーバーは起動してクライアント側の通信が来るまで待機します。 1. クライアントから送られた値を受信してコンソールに随時表示する。 1. サーバーは同一ネットワークにあるWindowsのPCになります。 1. サーバーはキーボードのQ+Enterキーの入力で切断とサーバーを終了する。 1. 使用するポートは8888です。 ⇒× ⇒△ コードを修正してください。 現在のコードでは1行毎に値が出力されています。 クライアントから送られたデータをまとめて出力するようにしてください。 * クライアント側で加速度と改行コードを付けて送信する。 * サーバー側は改行コードまでコンソールに文字列を出力する。
  28. ChatGPT+IoT with M5 • これまでの修正を加えた依頼文 GPT-4からの返答結果 • クライアント • 接続状態を細かく見るようなコード

    • ビルドのためには修正必要 • サーバー • 別スレッドでポーティングに変更 • キーボードの割り込み待機が追加 • GPT-3.5<GPT-4の方が良い? M5StickCとPCを用いてデータを送受信するシステムを開発します。下記クライアント仕 様とサーバー仕様を満たすクライアントとサーバーのコードを作成してください。 ## クライアント仕様 1. クライアントのコードはArduino(PlatformIOを用いる)で書く。 1. M5StickCの加速度センサー(MPU6886)のZ軸を読み取る。 1. 加速度は1秒毎に読み取る。 1. M5StickCのwifiを使用して同一ネットワーク内にあるサーバーに送信する。 1. 読み取った値はデリミタとして改行コードも送信する 1. 接続状態はLCDに表示してください。 1. 計測した加速度をLCDに表示してください。 1. 使用するポートは8888です。 ## サーバー仕様 1. サーバー側のコードはPythonを使用する。 1. サーバーは起動してクライアント側の通信が来るまで待機します。 1. クライアントから送られた値を受信して改行コードまでをコンソールに随時表示する。 1. サーバーは同一ネットワークにあるWindowsのPCになります。 1. サーバーはキーボードのQ+Enterキーの入力で切断とサーバーを終了する。 1. 使用するポートは8888です。
  29. まとめ • 検討内容総括 • 回路図作成 × • 直接図の直接出力は出来ない。また、独自ファイル形式出力はまだ困難。 • STL出力

    △ • STLの直接出力は出来ない。ソフトウェアを介してSTL出力は可能。プリミティブな形状は出力可能。 • Arudino/M5シリーズを使った開発 〇 • Lチカは問題ないレベル。M5を使ってクライアントとサーバーのコードも軽微な修正で使用可能。 • ChatGPT(≒LLM)を用いたモノづくり支援は確実に来る • 現在でもモノづくり支援、PoC、ラピッドプロトタイピングに良いかも。 • アイディアを形にするまでの「しきい値」が下がる(◦◦を調べないと・・・が減る)。最初から完成では なく、過程で完成に近づけるのが重要。組み合わせて価値を作るモノづくりに有用。ある程度分野を知って いると良いと思う。 • 質問⇒返答⇒試す(安全に) このループは学習にも良いと思われる。 • 質問に対し正しそうな返答をするため、前提知識・ドメイン知識は必要。正しさを判断できる知識は必要。 • 正しい要求・要件定義+言語化する力が問われる。プロンプトエンジニアリンも必要。 • ChatGPT出力を他フォーマットにすることで更なる可能性有り。 • 「文字」以外のインターフェースが増えるとさらに可能性は広がる。 • 学習データが「テキスト」データ • 図の入力、構造化し文字で表せれる回路図になると更なる広がり。データとその扱いが重要な時代へ。膨大 なデータがあれば突然それっぽくなる。 アイアンマンのJ.A.R.V.I.S.が近い?
  30. GPTを使ったサービス • ChatGPT • OpenAIが作った 本家のチャットサービス • GPT-3.5 無料で使用できる •

    20$/Month GPT-4(最新のモデル)が使える • BING AIチャット • MSGPT-4を作ったチャットサービス • 検索エンジン+GPTで回答を生成してくれる。 Markdownを使った方法が難しい。 • GPT-4 無料で使用できる 肌感覚 GPT-4>MS BING AI(GPT-4)>=GPT-3.5 専門的な内容はGPT-3.5で×がGPT-4では正しい・欲しい回答に
  31. 概要 BING AIチャット版 • ChatGPTはOpenAIが開発した自然言語生成モデルで、テキスト入 力に対して自然な会話や文章を返すことができます。 • ChatGPTを使って、電子工作や3Dプリンタでの出力に関する質問 に答えたり、クリエイティブなプロンプトに基づいてオリジナルの デザインやコードを作成したりしてみました。

    • ChatGPTはモノづくりのインスピレーションや助けになる可能性 があることがわかりました。 • このライトニングトークでは、ChatGPTの使い方や利点、限界に ついて具体的な例を交えてお話しします。 パワポを作る前に予想されている。。。