Summary by AI 機能をブログに実装した

"Summary by AI" 機能をブログに実装した。Large Language Model (LLM) の実験としての意味合いが強い。

技術としては、Cloudflare Workers AI をデプロイして、HTTP リクエストで結果を取得している。モデルとしては Meta が開発している Llama2 で、パラメータ数は 7 Billion。執筆時点では @cf/meta/llama-2-7b-chat-fp16 を利用している。Gatsby を利用しており、ブログページをビルドする際に取得できる Markdown ファイルの中身を渡している。長文の日本語記事の場合にはうまく動かないが、Cloudflare Workers AI がベータ版ということでしょうがない。

試行錯誤の末、Large Language Model に渡しているプロンプトは以下の通り。

{
  role: 'user',
  content: `
    This is a blog post in raw markdown format: ${reqBody}.
    Summarize this post as concise as possible.
    You must limit responses to 5 sentences or less.
  `
},

このプロントに辿り着くまでが曲者で、Prompt Engineering とはよくいったものだ。基本 Llama2 の内部構造はブラックボックスなので、上手くいくプロンプトを試行錯誤していく必要がある。経験則(ヒューリスティック)を紡ぎ出していくまさにその過程だ。バグの原因を完全に特定した上で解決策を実装するプログラミングの世界とは、また別の世界観である。中身がブラックボックスであることを前提に、実践を通じてより良い答えを探していく。「完璧な答え」という明確な到達点があるのではない点も興味深い。「前回の出力より良さそう」という客観的価値観に基づいてモデルを評価する。これでは人間の認知バイアスの入り込む隙間が大いにあるのではないか、という懸念を抱かざるを得ない。

2023-11-20