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

自然言語による シェルコマンドラインチャー wanna の紹介

自然言語による シェルコマンドラインチャー wanna の紹介

hirokidaichi

April 05, 2023
Tweet

More Decks by hirokidaichi

Other Decks in Technology

Transcript

  1. 自然言語による
    シェルコマンドラインチャー
    wanna の紹介
    株式会社レクター 広木大地

    View Slide

  2. 広木 大地
    1983年生まれ。筑波大学大学院を卒業後、2008年に新卒第1期として株式会社ミクシィに
    入社。同社のアーキテクトとして、技術戦略から組織構築などに携わる。
    同社メディア開発部長、開発部部長、サービス本部長執行役員を務めた後、2015年退社。
    現在は、株式会社レクターを創業し、技術と経営をつなぐ技術組織のアドバイザリーとして、
    多数の会社の経営支援を行っている。
    著書『エンジニアリング組織論への招待~不確実性に向き合う思考と組織のリファクタング』
    が第6回ブクログ大賞・ビジネス書部門大賞、翔泳社ITエンジニアに読んでほしい技術書大
    賞2019・技術書大賞受賞。一般社団法人日本CTO協会理事。内閣官房、経産省、IPA、デ
    ジタル庁などでDX/リスキリングに関する委員を歴任。
    2022年9月、株式会社朝日新聞社社外CTO就任
    2022年11月、株式会社グッドパッチ社外取締役就任
    自己紹介

    View Slide

  3. View Slide

  4. まずはデモをご覧ください。

    View Slide

  5. View Slide

  6. wanna think / コマンドを考えるコマンド
    ソフトウェア開発のプロセス設計し、
    AIと人間の役割を決めてステートマシンとして実装
    生成 名前提案 概要生成と保存
    反省とデバッグ
    指示出し
    実行
    保存
    追加指示
    指示リセット
    名前選択
    これまでの
    指示をまとめる
    レビュー
    保存フェーズ
    終了
    Exit
    問題があれば修正
    LLM の仕事
    人間の仕事

    View Slide

  7. AIが提案し、人間が決める
    自然言語を入力するのは意外とめんどくさい。だからできる限り
    ”意思決定”だけさせる。
    LLM の仕事:実装したり提案したり 人間の仕事:目的の提供と意思決定

    View Slide

  8. 複数のNLPタスクを組み合わせたUX
    GPTの凄さはNLPの圧倒的な民主化。これまで使わなかったところにもふんだんに使う設計
    ①ソースコード生成
    ③実行結果の評価と
    デバッグ
    ②スクリプト名の
    提案
    ④概要文の生成
    ⑤ユーザー言語の
    推定

    View Slide

  9. GPTのすごさはNLPの民主化
    (こんなところにも使うの?がUXになる。)

    View Slide

  10. スクリプトの生成プロンプト
    CoT:Chain of Thoughtを効かせるためにまず説明を求める。
    CoT One Shot Example
    ユーザーの言語を入力から推定して、出力を縛る。

    View Slide

  11. スクリプト名の提案プロンプト
    CoT:Chain of Thoughtを効かせるためにまず説明を求める。
    CoT One Shot Example
    ユーザーの言語を入力から推定して、出力を縛る。
    JSONの配列として出力を求めて、
    parseし失敗したらretry。

    View Slide

  12. 実行結果から反省とデバッグ
    bashの出力をteeして、実行結果を
    systemプロンプトに抜粋して入力
    もし、問題があればコードの修正をサジェスト。

    View Slide

  13. スクリプト名の提案プロンプト
    CoT:Chain of Thoughtを効かせるためにまず説明を求める。
    CoT One Shot Example
    ユーザーの言語を入力から推定して、出力を縛る。
    JSONの配列として出力を求めて、
    parseし失敗したらretry。

    View Slide

  14. これまでの指示をまとめて概要文を作成

    View Slide

  15. ユーザー言語を推定して、その言語で対話
    プロンプトの能力は、英語の方が日本語よりやや高い。
    また、論文やライブラリなど例が豊富。
    一方、ユーザーへの応答は入力言語から自然と対応してほし
    い。(ときどき、英語で話し出すのを防ぐ )

    View Slide

  16. Prompt Engineeringも
    普通のエンジニアリング。
    (既知のパターンの組み合わせと試行錯誤)

    View Slide

  17. wanna think / コマンドを考えるコマンド
    ソフトウェア開発のプロセス設計し、
    AIと人間の役割を決めてステートマシンとして実装
    生成 名前提案 概要生成と保存
    反省とデバッグ
    指示出し
    実行
    保存
    追加指示
    指示リセット
    名前選択
    これまでの
    指示をまとめる
    レビュー
    保存フェーズ
    終了
    Exit
    問題があれば修正
    LLM の仕事
    人間の仕事

    View Slide

  18. LLMソフトウェア
    =組織プロセス設計

    View Slide

  19. AIが提案し、人間が決める
    自然言語を入力するのは意外とめんどくさい。だからできる限り
    ”意思決定”だけさせる。
    LLM の仕事:実装したり提案したり 人間の仕事:目的の提供と意思決定

    View Slide

  20. メンバーが提案し、マネージャが決める
    AIと人間の関係は、メンバーとマネジメントの組織設計に似ている。
    メンバーの仕事:実装したり提案する マネージャの仕事:目的の提供と意思決定

    View Slide

  21. すべての人が
    AIをマネジメントする
    マネージャになる。

    View Slide