A Day in the Life

Weekly AI News 始めました - クラスタリングとGPTを使った、まとめ自動生成

AI関連の話題が引き続き多い昨今、今週どんなことが話題になったのだろう?ぐらいの頻度で知れると結構便利なんじゃないかなーと、毎週配信するメルマガ(substack)を始めました。内容は全自動で作成しています。例えば、2023年7月28日から遡って約一週間分のAIニュースまとめは以下の感じです。

完璧とまでは言わないまでも、そこそこ話題になったものをいい感じで集められているのではないでしょうか。興味がある方はご登録 or フィードリーダーなどで購読ください。

なお、メルマガタイトルは Weekly Kaggle News のリスペクトです。


と、広報だけではあれなので、内部の実装の話でも。以前リンクを張った資料と、とりわけ大きく変えているわけでは無いのですが、ざっくりと書くと

  • multilingual-e5-small でタイトル+サマリーで、特徴量(文章ベクトル)作成
    • small なのは、動かしているVPSの低スペック環境でも動くように。なおsmallでも主観評価ではあまり精度変わらず。
  • e5-small の 384次元 + 記事の時刻を標準化したベクトルを追加して 385 次元表現に
  • 次元削減はせず、KMeans にかける。クラスター数は、記事総数/8 (適当)。250記事ぐらいが対象なので、30クラスターぐらい。
    • UMAP / PCA 等で次元削減してしまうと、あまりよい感じにならず
  • 全体の距離を見つつ、クラスター中心点から、近い記事のみの抽出。その中で、記事がN個以上残ったクラスターを対象とする

みたいな感じで、今週の記事のまとまりで意味がありそうなクラスターを抽出しています。で、その記事から、gpt3.5-turboでクラスターに対してタイトルと概要をつけ、生成しています。いわゆるふつーのBERTopic的なクラスタリング + GPT によるトピック表現を行ってる感じですね。トピックモデルの実装ですね。


なお、最近 github で公開されている BERTopic実装 では、sentence-transformers 以外にも OpenAI embeddings(ada-v2) を使った文章ベクトルの作成だったり、ChatGTP, GTP4 を使ったトピック表現の作成だったり(標準ではc-TF-IDF 使ったキーワード抽出をプロンプトに含めて生成している)と、OpenAI / LLM を使った実装も追加されているようです。とりあえずライブラリでガットやってみたい方は、BERTopic を使ってみると良いかもしれません。


ちなみに、メルマガの記事作成までは全自動で行っているのですが、肝心の substack 自体が API 叩いてメルマガを送れる感じの仕組みになっておらず、最後の配信フローはWebUIを叩いて手動という、(自分の手間的に)なんとも残念な感じに…。

記事の一覧 >

関連するかもエントリー

AI News の公開と、裏側の OpenAI の活用話
AI News という、AI・データサイエンス(DS)・機械学習(ML)関係の話題を集め、AIで3行に要約して配信するサイトを公開しました。twitter @AINewsDev や Atomフィードでも配信しています。数日前から運用していて、手前味噌ですが便利に情報集めに使えてい...
AI News という、AI・データサイエンス(DS)・機械学習(ML)関係の話題を集め、AIで3行に要約して配信するサイトを公開しました。...
OpenAIの新embeddings,text-embedding-3-smallをRAGタスクで評価する
先日、OpenAI から新しい embeddings モデルである、text-embedding-3-smallとtext-embedding-3-largeが公開された。text-embedding-3-smallは、古いembeddingsモデルのada-v2よりも価格は1/...
先日、OpenAI から新しい embeddings モデルである、text-embedding-3-smallとtext-embeddin...