nikkie-ftnextの日記

イベントレポートや読書メモを発信

DeepLearning.AIの「ChatGPT Prompt Engineering for Developers」を視聴し終えました。LLM時代の見取り図 得たり!勝ったなガハハ!

はじめに

しかしまぁ視聴者からすると何に勝ってるのかは正直よくわからないがな、ガハハ!

ref: https://dic.pixiv.net/a/%E5%8B%9D%E3%81%A3%E3%81%9F%E3%81%AA%E3%82%AC%E3%83%8F%E3%83%8F%21

nikkieです。

Large Language Model(大規模言語モデル、LLMs)、一世を風靡してますよね。
LLMs関連で話題になっていた短い講座を、お休みを使って1日がかりで修了しました。

目次

「ChatGPT Prompt Engineering for Developers」 by Isa Fulford & Andrew Ng

  • 訳すなら「開発者のためのChatGPTプロンプトエンジニアリング
  • 非常に信頼できる1Andrew Ng先生
  • Free for a limited time(期間限定無料
  • 1 Hour

受講者の声もポツポツと見かけるようになってきています。
直近で要約のためのプロンプトエンジニアリングが「さっぱりわからん!」となった2こともあり、(いろんなことに関心を持っている身ですが)投資対効果がとりわけ高そうなのが決め手になって私も受講しました。

観測した受講者の声

受講してどうだった? めちゃめちゃよかった!

ChatGPTはじめLLMで何ができるのかの見通しを得ました。
これまでは以下の記事をハーケンにしていましたが、この講座も追加でハーケンです!

またLLMの使い方(プロンプトエンジニアリングのプラクティス)も学び、試してみたくてウズウズしています。
学習曲線の「完全に理解した」(馬鹿の山)ですね。

1つ誤算だった点を挙げると、全然1時間では終わりませんでした(後述の英語対策参照)。 私の場合は1日がかりでした(お休みがあってよかった〜)

英語対策 - 文字起こしのおかげでなんとかなった!

英語のリスニングは全然歯が立たない(部分部分は分かっても全体として言ってることがわからない)のですが、文字起こしの力を使い倒しました
観測した受講者の声では、動画の下に出る文字起こし(英語)をGoogle翻訳する方法が挙がっています3

私は英語を読むなら(日本語と比べて時間はかかりますが)普段の開発からやっているので、まずは動画全編の文字起こし(英語)を入手!
動画を聞きつつ英文を追い、目8割・耳2割で情報を得る感じで、ひたすらにインプットしました。

全編の文字起こしを入手する方法はこちら。
回りくどいやり方をしていましたが、普通にTranscriptを選択してコピペでいけました😅

  • 「TRANSCRIPT」をクリックして右側にTranscriptを表示
  • Transcriptの要素のinnerHTMLをコピー
  • HTMLタグを除去して、文字起こし(英語)を入手

HTMLタグの除去に使ったスクリプトを供養しておきます

学んだこと

Conclusionの内容に付け足していきます(感想は斜体にします)。

  • Principles
    • Write clear and specific instructions(「明確で具体的な指示を書こう」)
    • Give the model time to "think"(「LLMに"考える"時間を与えよう」)
    • Introductionで「LLMには2種類あって、この講座ではInstruction tuned LLMを扱うよ〜」と立ち上がったのが最初の衝撃
    • この2つの原則に関連するテクニック(tactics)がいくつも紹介されます(Guidelines for Prompting)
      • ざっくりいうと、入力も出力も構造化できるのですが、LLMsの見方が変わりました
      • ここは素振りして理解を深めていきたいな〜と思います
  • Iterative Prompt Development
    • 一発で正解のプロンプトは出せないので、Iterative(反復的)にプロンプトをカイゼンしていこうという主張
    • temperature=0指定のヘルパー関数を見て、色々腑に落ちました
      • イデアをプロンプトで試し、うまくいかなかったらエラー分析。それを回すにはtemperature=0がよさそうですね
  • Capabilities(LLMでできること)
    • Summarizing(要約・情報抽出)
      • 「こういう観点で代わりに読んで」とお願いできるイメージを持ちました
    • Inferring(種々の分類タスク)
      • 感情分析、商品名や会社名の抽出、トピックの判定などなど
      • 1つのモデルでこれだけこなせるの、本当にやばいな (しかも自然言語でお願いできるし)
    • Transforming
      • 言語間の変換:翻訳
      • 言語内の変換:トーン、文法誤り訂正、JSONやHTMLなどの相互変換
    • Expanding
      • 短いテキストから長いテキストを生成
      • temperatureの説明もあります!(わかりやすかった🙌)
  • Building a chatbot
    • ここまではプロンプト(user roleで1 message)
    • チャットではcontext(複数message、3種のrole)
    • チャットとプロンプトの違いに気づけたのも、個人的には嬉しい体験!

終わりに

Andrew Ng先生が関わっている「ChatGPT Prompt Engineering for Developers」の履修レポートでした。

この講座、マジでオススメです。
私はLLMsの本質を押さえられたような感覚があります。
LLMsはどんどん新しい情報(たくさんの事例)が出てきて、追っても追っても情報洪水に押し流されそうな感覚でした。
この講座で事例の裏にある考え方に触れられたことで、「事例を追うのも大事だけど、裏の考え方を身につけるのを優先して事例に振り回されすぎずにやっていこう」という心持ちになりました。