大福餅

大福餅

【用語】再帰型ニューラルネットワークに関する用語

E資格の勉強にしており、それらの用語のまとめる (記事の水増しという)

 

  • エコーステートネットワーク:入力の重みと隠れ層の重みをランダムな値で固定し、出力の重みのみを学習する。シンプルな線形回帰の問題になり、購買消失や勾配爆発が発生しなくなり、学習が早くなる。
  • スキップ接続:長期依存性の課題の対策として、隠れ層を1時刻以上スキップする接続方法
  • リーキーユニット:隠れ層に線形接続を導入して移動平均の効果を得る
  • 双方向RNN (Bidirection Recurrent Neural Network):過去から未来、未来から過去への双方向を考慮した再帰ニューラルネットワーク。文章内の文字の穴埋めタスクなど、未来から現在までの系列情報を用いることで可能になるタスクに用いられる。

 

【論文紹介】AIJack: Security and Privacy Risk Simulator for Machine Learning

arxiv.org

 

概要

  • 機械学習モデルの学習・運用におけるセキュリティ・プライバシーリスクをシミュレーションしてくれるオープンソースのライブラリ
  • その名をAIJack

github.com

 

  • 例えばMLモデルの入力データに目立たないノイズを乗せて誤認識させるEvasion Attacks や、トレーニング中に汚染されたデータを注入する Poison Attacksなどがモデルの精度を下げる。
  • また事前訓練させたモデルから訓練データを予測し、個人情報などの機微情報を取得するModel Inversion Attacks がある。
  • このようなセキュリティ・プライバシーリスクに対抗するため、様々な対策が提案されている
    • 例えば、k-匿名性や連合学習
  • AIJackは、MLモデルのセキュリティ・プライバシーリスクを評価し、このような対策の有効性を評価するシミュレーションを簡素化するためのオープンソースソフトウェア
  • PyTorchやscikit-learnに基づいて構築されているため、既存のコードにAIJackを簡単に組み込むことができ、様々な攻撃や防御の組み合わせの実験が可能になる
    • 40種類の攻撃・防御アルゴリズムAPIを簡単に使え、これらを組み合わせて様々なシミュレーションが可能

所感

  • 既存のコードに組み込むだけで、様々なリスク場面をシミュレーションできるのであれば、コスト・手間という観点からとても有益なライブラリと言える
  • 特に近年はAIサービスに関するセキュリティ・プライバシーリスクの対策が必要になっている
    • そのため品質を満たすためのテストは必須といえる
    • その手間やコストを軽減するという点でも、サービスを提供する側からするとありがたいものだろう
  • Github の方に以下のようなドキュメントがあり、チュートリアルなどがあり、実装に関してのサポートも充実しているようである

koukyosyumei.github.io

  • AIのセキュリティ・プライバシーに関する知識が浅いため、細かな点 (用語や実用例) に関してはわからない点も多かった
  • また、どれぐらいこのライブラリの効果があるのか、既に使われているのか分からない。
  • 上記のドキュメントを読みながら試してみることで上記の点に対する理解が深まると思われる
    • 今度試してみたい

【論文紹介】Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4: 精度向上のための26のプロンプトの原則

arxiv.org


github.com

明けましておめでとうございます。

 

概要

  • LLMの回答精度を向上させるための「26のプロンプト原則」を紹介する論文

    Table1 引用
  • 以下の5つのカテゴリに分けて、26の原則について説明している。
  • プロンプトの構造と明瞭さ
    • 2. プロンプトの対象者を指定する (例:対象者は専門家)
    • 4. 肯定的な指示を用いて、否定的な言葉を使わない
    • 12. "step by stepで考えて" のような誘導する言葉を用いる
    • 20. 「楽しい:ポジティブ、悲しい:ネガティブ」の後に「嬉しい:」で終わらせると、返答が「ポジティブ」となるように、期待する出力が出るように、入力の最後を出力させたい形式の最初の部分で終わるように入力する
    • 17. 特定の区切り文字を使う
    • 8. ###Instruction###'で始め、必要があれば'###Example###'または'###Question###'のいずれかをつける。
  • 具体性と情報
    • 7. 事例をプロンプトに入力する
    • 5. トピック、アイデアなどに対して明瞭さや深い理解が必要なら、簡単な指示を出す
      • 「〇〇」を簡単な単語で説明して
      • 11歳に対して説明して
      • 初心者でもわかるように説明して
      • 5歳の子供に何かを説明しているように、シンプルな英語で[エッセイ/テキスト/段落]を書いて
    • 13. プロンプトに「回答が偏って無く、ステレオタイプにならない」ことを指示
    • 26. 提供されたサンプルに基づいて同じ言語で書くように指示する
    • 24. 特定の単語、フレーズ、または文を使用してテキストを完成させるように指示
    • 25. モデルの要件を、キーワード、規制、ヒント、または指示の形式で明確にする
    • 15. 特定のトピックやアイデアについて問い合わせをし、入力者が理解しているかテストするように指示する。
    • 21. トピックの詳細が必要ならば、そのように指示する 
  • ユーザーの相互性とエンゲージメント
    • 14. モデルが必要な出力をするまで、質問をして正確な詳細と要件を引き出すことをモデルに指示する
    • 21. 詳細なテキストを出力するように指示する
  • コンテンツと言語の形式
    • 22. 変更する形式と変更しない形式をそれぞれ指示する
    • 9. 「あなたのタスクは」と「必ず」というフレーズを組み込む
    • 10. 「ペナルティを課す」というフレーズを組み込む
    • 16. モデルに役割を与える
    • 11. 「自然言語で与えられた質問を答える」というフレーズを使う
    • 1. 「お願いします」とか「ありがとう」や敬語などは使わない
    • 18. プロンプト内で特定の「単語」や「フレーズ」を繰り返し用いる
    • 6. 「良い回答には〇〇$のチップをあげる」と報酬を与えるようなフレーズ追加する
  • 複雑なタスクとコーディングのプロンプト
    • 3. 複雑なタスクは複数回に分けて、簡単な入力を行い対話形式で進める
    • 23. 複数のファイルに複雑なコーディングプロンプトがある場合
      • 「今から一つ以上のファイルにまたがるコードを生成するときは、指定されたファイルを自動的に作成する、もしくは既存のファイルに生成されたコードを挿入するように、【任意のプログラミング言語】のスクリプトを生成する」ように指示
    • 19. 文脈を出しながら、指示を与える
  • LLaMA-1 {7B, 13B} /LLaMA-2{7,13,70B} とChatGPT-3.5/4 で「26の原則」の効果を検証
    • ATLAS というベンチマークを使って検証 
    • small (7B), medium (13B) とLarge (70B, GPT3.5/4) 
    • 検証指標は、BoostingとCorrectness
      • Boostingが、指示によって出力の精度が向上するかどうか
      • Correctnessは、指示によって期待した出力がでるかどうか
    • Boostingでは、2, 5, 15, 16, 25, 26の原則によって、largeモデルでの精度が大きく向上

       

       

       

      Figure 4 引用
    • Correctnessでは、モデル全体で20%を超える精度向上
      • small, medium モデルは20~30%
      • largeモデルは50%以上
    • Figure5 引用

感想

  • プロンプトの精度を高める方法論をまとめただけではなく、様々なサイズのモデルに対して、2つの指標を用いて各原則がどれくらいの効果があるかを定量的に調べている
  • 今までも「精度を高める指示や方法」があちこちで出てきたが、この論文の良いところは定量的にその効果を幅広く示した」という点
    • もちろん幾つか限界があり、今後同様のことをやる際には、より良い検証が出来るように環境を作っていく必要がある
  • また、「26の原則」ということで精度向上のための「指示や方法」をまとめているのも良い
    • ユーザー側にも良い情報となる
  • 「原則」というタイトルの付け方もキャッチーだなあと感心した
  • largeモデルの方が効果が大きいのは、原則にあるような「指示や方法」を理解できる能力がsmall、mediumと比べてlargeの方があるからなのか
    • Limitation and Discussionにも「原則の効果は、複雑もしくは専門的すぎる絵質問を扱う場合は減少する。その理由は、各モデルの推論能力と学習に依存しているから」とある。
    • 処理する側の能力が高ければ高いほど、恩恵は受けるということだろう
  • 良いプロンプトを生成AIが作ってくれれば良いのではないだろうか、かと考えた
    • ユーザーによるバラツキが大きいので、そこを小さくすることはできないものなのだろうか
    • こういう原則を見ても、人によって精度のバラツキは大きそうだし
    • でもその良いプロンプトを作るプロンプト、みたいにスパイラルになりそうとか妄想する
    • 難しいのかな、やっぱり

 

終盤から始めたブログの意義と学習の成果

概要

  • 2023年の終盤から始めたこのブログの意義について,今更ながら書いてみる
    • 実は単純に特筆すべきネタがない
    • 無くはないが,わざわざ纏めるまでのところまで行ってない
  • このブログを始めた理由は主に3つ
    • 学んだ内容をアウトプットすること
    • 見つけた有能な内容の共有
    • 文章を書くことの習慣づけ
  • 自分の考えをつけることが,自分にとっては価値があること (対象に対して考察すること)と思っている
    • そのため,書いている内容の正しさはあまり保証できない
    • 学習内容の途中であったりするので,間違っていることも書いてあるかもしれない
    • 間違えないように纏める意識はもちろんしている
  • 始めてみた結果,以下の点が良いと思った
    • アウトプットするために積極的に情報を収集しようと思うようになった
    • 学習内容を文書として形にすることで,考えがまとまる
    • 伝えやすい構成を考える癖がついた
  • 来年も続けていきたい
    • できれば毎日
  • このタイトルは「AI」に作らせてみた
    • 個人的には今回のタイトルは若干意味不明だと思っている
  • ネタがないときはポエムを流そうと思います

【論文紹介】Gemini: A Family of Highly Capanble Mutimodal Models

arxiv.org

ざっと目を通したので概要と所感を記す.

概要

  • Googleが出したマルチモーダルモデルの「Gemini」に関する論文
  • マルチモーダルモデル,というのはテキスト,画像,音声,動画というように異なる形式データを同時に扱って出力するモデル.
    • 出力例として,物理の問題を小学生が回答した内容が載っている画像と,それに関する質問をテキストで入力 (例:この回答あってる?間違っている?間違っているならどこが間違っていて,正しい回答をくれ).出力では,画像の中身を認識し,テキストに従い,理由+正しい回答付きで間違っている点をテキストで出力している.
  • モデルサイズは大きいものから「Ultra」,「Pro」,「Nano」が存在する
    • 本論文にてベンチマークを用いた評価が行われているが,多くは「Ultra」の結果
    • 現在vertexAIで提供されているのは「Pro」
    • 「Nano」は個人のデバイスで使うことを想定したモデル

      Figure 2 引用
  • ベンチマークは,テキスト,画像,音声,動画に関するもの
    • 例えば,MMLU (大規模マルチ言語理解) という57分野 (医療とか) から問題を解くベンチマークでは,90.04%の結果となり,専門家の89.8% の結果よりも超えた
      • メディアでは個々の部分がよく取り上げられている
      • ただし「Pro」は79.13%である
    • ベンチマークは,Gemini,GTP, PaLM, LLAMAなどの代表的なモデルでそれぞれ比較している
    • 「Ultra」の結果は大体他のモデルよりも優れている.一部のメディアで大体の結果が優れていたと報告されていたが,多分このことを指している
    • 個人的には,GPT-4とUltra ではほとんど差がないか,ちょっとUltraのほうが上という結果が多く見られた.中には,GPT-4の方が良い結果を出すベンチマークもあった
  • 多分この論文で主張したいところは,「一つのマルチモーダルモデルによって,色々精度良く出来るようになったところ」なんだろうと思う
    • あの賛否両論のデモでも見せてたように,画像と音声で何をしているか出力させる,といったように
  • 論文の後半では「責任ある実装」という観点で,AIリスクに関するアプローチ方法についてGeminiを絡めながら説明をしていた
    • 個人的にはこちらの方が興味深い話だった.特にハルシネーションとか.
    • 出力の正しさに関して,instruction tuningすることでどれだけ出来るかという取り組みも見せていた
  • 課題としては,ハルシネーションと因果関係の理解,論理思考などの高次の能力を必要とするタスク処理
    • 複数の形式データを取り扱えるようになったことにより,コンテキストの理解なども出来るようにしていくのだろう

 

所感

  • 若干モデルに関する解説が少ないように思えた.もちろん概略図はあったが.
  • マルチモーダルによって,出来ることも増やししつつ,これまでのタスクの精度を全体的に向上させたという印象
  • ただし,飽くまでも「Ultra」の話であり,現状外部ユーザーは「Pro」しか使えない.「Pro」の精度ももちろん良いのだが,例えば,数学のベンチマークではPro: 32.6%だが,GPT-4:52.9%, Ultra:53.2%となっている.
    • そのため,メディアの印象のまま「Pro」を使うと,思ったより精度が低いと思うかもしれない
    • ここらへんは,デモに関する一連の騒動と通ずるところがある
  • モデル自体の性能は凄いし,マルチモーダルなモデルの需要は高まる一方なので,今後の発展に期待できるモデルと言えそう
  • また,終盤の方にはモデル実装に関して,リスク軽減に対するアプローチを説明していた.
  • 扱うデータがより多く複雑になることで,リスクが大きくなると考えられる.AIを用いる際に,どのような流れで取り組むべきなのか,考える材料として本論文を見ることもアリだと考えた.

プロンプトインジェクションによる事例

note.com

 

概要

  • プロンプトインジェクションによる被害について解説したnote
  • 海外のディーラーのHPに設置したセールチャットボットに対してプロンプトインジェクションを仕掛けたという事例
    • カスタマイズの無料サービスや新車を1$で売ることを確約させるようにしたなど結構ショッキングな内容が語られていた
    • 最終的に無料でもらうことを確約する、というスクショまで出たとのこと
    • 具体的にどれくらい設置されていたかは不明だが、数日ぐらいで取り除かれたようである

感想

  • 安易に対策もせずにチャットボットを設置すると、思わぬリスクが生じることを示した事例と言える
  • 今回はプロンプトインジェクションで遊んでいた、という感じで損害賠償は生じていないよう
  • だがnoteの中身を取るとチャットボットが「1$で売ることを確約し、取り消しはない」という文章を残していたりするので魚拓とか取られてクレームつけられたりしたら、と思うと恐怖である
  • 近年ではAIに関するガバナンスを考慮した設計・ガイドラインの作成が求められている一方で、それらを対応できる人材が足りていないという噂も聞いた
  • プロンプトインジェクションを代表する様々なリスクを考慮し、思わぬ出力が生じないように念入りに対策して、AIサービスを導入する必要があるだろう

GCP リージョンとゾーン

概要

  • GCPにおける「リージョン」と「ゾーン」についてまとめる
  • リージョン:データセンターが置かれている地理的なエリアを指す単位。
  • ゾーン:リージョンの中に存在している、独立して稼働が可能なコンピューティングリソースのグループを示す単位。
    • ゾーンが別れていることで、特定のゾーン内部で障害が発生してもリージョン全体の稼働を保つことが出来る。
  • 複数のゾーンにシステムを配置することで、特定のゾーンに障害が起きても、稼働を維持したままにできる
  • マルチリージョンにすることで、特定のリージョンで障害が起きても稼働を維持することが出来る
    • 災害などが起きることを想定