メインコンテンツへスキップ
見出し画像

Generative AI for Everyoneから、古のNLPエンジニアの心に刺さったこと8選

    こんにちは、IVRyでAIエンジニアをやっているべいえりあです。今回はタイトルの通り、Andrew NgのGenerative AI for Everyoneを見て自分の心に刺さったこと、そしてそれらについての個人的なコメントを書いていこうと思います。

    本記事はIVRy Advent Calendar 2023の白組の9日目の記事です。8日目は神山さんの「AIプロダクト爆誕!!PMFに向けたプロダクトマネージャーの取り組み」、10日目は宮嵜さんがタスクマネジメントについて書きます。

    Generative AI for Everyoneについて

    こちらの講義は機械学習やAI教育についての第一人者と言っても過言ではない、Andrew Ng先生のLLMの応用についての講義になります。

    タイトルにはGenerative AIとありますが、画像生成AIなどはほぼほぼ登場せず、基本的にはLLMをどう使うのかについての講義となっています。また、Everyoneとあるように機械学習の専門家やエンジニア以外でも分かる内容になっているかと思います。Andrew Ngは言語化が非常に上手いので、機械学習の専門家が見ても知識を整理する上で有用なんじゃないかと思います。

    古のNLPエンジニア?

    自分がNLPを始めたのは2013~2014年くらいのちょうど深層学習がNLP業界に本格的に入ってきた時期です。10年程度で古のNLPエンジニアを名乗って良いのかは諸説あると思うのですが、その辺は温かい目で見ていただけると幸いです。

    心に刺さったこと8選

    というわけで、こちらが心に刺さったこと8選です。「筆者コメント」の部分にそれぞれの項目について自分が思ったことや補足事項を記載しています。

    LLMのユースケースの分類

    LLMのユースケースは

      - ライティング:アイデアの生成やメールなどのドラフト、翻訳など
      - 読解:文章の校正や要約、文書分類や情報抽出など
      - チャット:チャットボット

    の3種類に分類できる。またそれとは別に、

      - Web UI上でのユースケース:ChatGPT、Bing Chat、Bardなどを使用
      - ソフトウェアに組み込むユースケース:ChatGPT APIなどを使用

    という切り口もある。

    Week 1 - Generative AI Applications (Writing, Reading, Chatting) より

    <筆者コメント>
    LLMは「生成AI」として「ライティング」の側面が強調されがちですが、「読解」に使えるということは覚えておいてほしいですし、自分がLLMを使って実サービスを作る際にはほぼほぼLLMを読解に使っています。

    個人的にはライティングと読解それぞれのユースケースを以下のような感じで捉えています。

    • ライティング:翻訳などのLLMがかなり精度高くできる応用を除いては基本的にはrecall重視。人が確認することが前提となるのでprecisionはそこまで必要としない。

    • 読解:こちらは基本的にはLLMがかなり高い精度で出来るので、人の確認は最小限でも使えることが多い。後ほど出てくるautomationを目指す場合は精度が効いてくるので、こちらの方が使いやすい。

    完璧なプロンプトを学ぶより、より良いプロンプトに開発するためのプロセスを学ぶ

    全ての人やユースケースにとって完璧なプロンプトは存在しないので、良いプロンプトを開発するためのプロセスを学ぶのが良い。良いプロンプトを開発するための一つの方法として挙げられているのが、

      - 明確かつ詳細なプロンプトを書く
          - LLMがタスクを遂行するために十分なコンテクストを与える
          - タスクの詳細を与える
      - 結果を評価し、何故LLMが望んだ通りの出力をしないかを考える
      - プロンプトを改善する

    というプロセスを何度も行うということ。

    Week 1 - Generative AI Applications (Tips for prompting) より

    <筆者コメント>
    Andrew Ngは機械学習系のオンライン講座でも似たようなことを言っており、最初のプロトタイプは最小の労力で作り、そこから改善のイテレーションを繰り返せということを言っています。

    あと、「何故LLMが望んだ通りの出力をしないかを考える」部分については自分で考えずにLLMに教えてもらっても良いと思っていて、その点について過去に書いたブログ記事があるので気になる方は読んでみてください。

    LLMのコストは(人間と比べると)非常に安い

    普通の大人の読解速度は1分250語程度。これを1時間続けると15000語程度になる。GPT-3.5-turboに15000語読ませて15000語出力させるコストは8セント(12円)程度なので、(もしGPT-3.5-turboが人間と同じことができるのであれば)人間と比べて非常に低コストになる。

    Week 2 - Software Applications (Cost intuition) より

    <筆者コメント>
    本講義内ではChatGPTなどのclosedモデルのAPIについて、「各企業が安く推論するためにいろいろな努力をしているので、比較的安価である」とも述べられています。

    Closedモデルはそんなに高くないし、運用に関する様々なめんどくさいことをサービス提供者にほとんど丸投げできるので、初手はとりあえずclosedモデル使うのがいいんじゃないかと思っています。

    OSSモデルの選び方

    大雑把にはパラメーター数によってできることが大体決まる。

      - 10億パラメーター:パターン認識ができる。世界についての基礎的な知識を持っている。解ける問題の例としてはレストランのレビューの感情分析など
      - 100億パラメーター:より多くの知識を持ち、基礎的な指示に従うことができる。解ける問題の例としては食べ物を注文するチャットボットなど
      - 1000億+パラメーター:広範な知識を持ち、複雑な推論ができる。解ける問題の例としてはブレストのパートナーなど

    Week 2 Advanced technologies: Beyond prompting (Choosing a model) より

    <筆者コメント>
    技術の進歩と共に同じ性能のモデルはどんどん小さくなっていくので、この辺りの「常識」も時間と共に変化しています。2023年12月現在でも、7Bくらいでそれなりに複雑な推論をできるモデルはあるはずなので、知識を都度アップデートしていきたいですね。

    日本語性能のリーダーボードとしてはNejumi LLMリーダーボードなどが有名で、日本語のベンチマークデータセットであるJGLUEでのスコアでランク付けされています。JGLUEによる評価はリークしてるんじゃないかとかいろいろ問題はあるのですが、それなりに参考にはなるんじゃないかと思います。

    Augmentation vs Automation

    AIの役割は大きく以下の二つに分類できる。

      - Augmentation(増強): 人間がタスクを遂行する手助けをする。コーディング補助、ライティングアシスタントなど。
      - Automation(自動化): 人間の代わりにタスクを遂行する。(タスク指向型の)チャットボットなど。

    同じタスクに対して、augmentationよりもautomationの方ができた時のインパクトが大きい一方で難しいので、まずはaugmentationから始めて徐々にautomationに移行していくというデザインパターンがある。

    Week 3 - Generative AI and business (Task analysis of jobs) より 

    <筆者コメント>
    Automationの方が難しいけれどもインパクトが大きいという点で、自分はaugmentationよりも(最終的には)(タスクの大部分の)automationを成し遂げることにこだわっていきたいです。

    LLMがプロンプトだけでタスクを遂行できるかどうかの判断法

    AIやLLMがタスクを遂行できるか否かの判定方法としては、

    「大学の新卒がプロンプトに従ってタスクを遂行できるか?」

    を考えてみて、できそうだったら大抵AIやLLMもできると考えて良いとのこと。

    例えば、メールを読んでそれがクレームであるか否かくらいは判断できるし、新しいCOOの就任のプレスリリースを書けと言われても、そのCOOや会社の情報が無いと詳細のプレスリリースは書けない(このような場合、プロンプトにCOOや会社の情報を入れる必要がある)

    Week 3 - Generative AI and business (Task analysis of jobs) より

    <筆者コメント>
    上記の話の後にAndrew Ngも言っていますが、ChatGPTはWeb UIで簡単に試せるので、とりあえずプロンプト書いてみてChatGPTがそのタスクを遂行できるのかを実際に確認してみるのが良いと思います。

    LLMサービスを作るためのチーム

    一般的には以下の3つの職種が必要になる。

      - ソフトウェアエンジニア
          - できればLLMやプロンプトエンジニアリングの基礎を知っているのが望ましい
      - 機械学習エンジニア
          - プロンプトエンジニアリングやRAG、ファインチューニングなどができることが望ましい
      - プロダクトマネージャー
          - 何を何故作るかについて責任を持つ

    LLMによってAIサービス作成の参入障壁は下がったので、一人や二人のチームでもPoCが始められるようになった。

    Week 3 - Generative AI and business (Teams to build generative AI software) より

    <筆者コメント>
    何かを作るだけならエンジニアだけでもできるのだけれども、それが使われないことには意味が無いので、「使われること」に対して

    • プロダクトマネージャー

    • 「使われること」に対する意識が高いエンジニア

    のどちらかが責任を持たないといけない気がしています。

    LLMによって影響を受ける可能性が高い職種

    こちらはマッキンゼーのレポートより引用。一番影響を受けそうなのが教育系の職種で、次いで法律やビジネス系職種とSTEM系(科学や技術系職種。研究者やエンジニアがここに含まれる)。

    上記の職種に共通して言えるのが「知識労働者」であるということ。これらの職はこれまでのAIにはあまり影響を受けてこなかったが、LLMの台頭により影響を受けるようになった職種。逆に肉体労働者はそんなに影響を受けないのではないかとの予想。

    Week 3 - Generative AI and business (Automation potential across sectors) より

    <筆者コメント>
    一番影響を受けそうなのが教育系というのは何となく自分もそう思っていて、より効率の良い教育のためにAIはフル活用されるべきだと思っています。

    最後に

    以上、自分がGenerative AI for Everyoneを見て心に残ったこと8選でした。これらはあくまで自分の心に残ったことで、これら以外にも講義の中で大事な情報はたくさんあると思うので、LLMについて学びたい皆さんはこの記事を読んで満足せず、実際にコースを受講してみるのがいいんじゃないかと思います。

    IVRyではAIエンジニアを絶賛募集中です。

    今回はLLMの基礎知識について書いたわけですが、IVRyでは複数のLLMプロジェクトが走っており、LLMをいじり倒すという意味では最高な環境なんじゃないかと思っています。LLMを使ったサービスを極めたい方は是非応募してみてください!

     
     
    Principal AI Engineer@IVRy。LLMとRain Treeに興味があります☺️

    あなたへのおすすめ