LLMを扱ううえで、ハルシネーションとクリエイティビティは紙一重だと考えている。仕事ではハルシネーション抑制のためにクリエイティビティをあまり追求しない系の開発がメインなので、個人開発では生成AIにとことん創造性を問うてみたい。
Yeasts(酵母)は、Phonnoを使った実験的な取り組みの一つ。蓄積された画像を組み合わせて新しいアイデアを生み出そうというもの。LLMに自由にアイデアの種を量産してもらい、いい感じのものが出てくるのを待つ。もしもよさげな種が出てきたら培養してプロダクトにしていく、という目論見で進めている。
毎日ドッグフーディングしているInternal Phonnoには、パソコンやスマホで撮影したスクリーンショットと実世界の写真が自動で取り込まれ*1、インデクシングされて検索可能な状態に整えられている。適当なキーワードやいま見ているウェブページをクエリにして*2検索やチャットすると面白いものがサジェストされる。これをさらに発展させて、能動的に検索することなく、日々の知的生産や生活にグラウンディングした新しい視点に触れることはできないだろうか?
過去に個人開発の本*3で書いた「Colab as an App」作戦で試作した。この手法では、いきなりUIを書くことなくコンセプトを検証する最小限の実装を高速に作れて最高。ColabではHTMLも描画できるため、ロジックに集中しつつも、無機質になりすぎないいい塩梅でUIを練ることもできる。
生成させるネタの大方針となる「研究テーマ」を登録しておくだけで、テーマに関係するアイデアを(ほぼこじつけて)提案してくれる。Phonnoからお題となる画像を2つ取得して、これらのエッセンスを組み合わせたなにかを考えてもらう。1つのテーマと2つの画像で大喜利をするようなもの。お題画像の取得基準は下記の3通り。
- キーワード検索
- 直近撮影されたもの
- ランダム
Programmable Phonno施策を検討していたこともあり、自作のライブラリが充実していてよかった。公開版のPhonnoへの対応も急ぎたいところ。
今回使用するLLMはこの3つ。提案内容の実現可能性と独創性のバランスがちょうどよい。とくにGeminiは、FlashよりもProのほうが組み合わせの切り口が豊かだった。
- o3-mini
- gemini-2.0-pro-exp-02-05
- claude-3-5-sonnet-20241022
毎朝実行してMailLMでメールマガジンふうに配信するのもよいかもしれない。大量の提案が送られてきてアイデアコンテストの審査員を体験できる。一次審査を別のLLMに任せることも検討したい。
LLMが提案してきたアイデアの一例
研究テーマ: LLM時代のウェブブラウザに搭載する、知的生産を支援するための新機能
- 思考の味付けナビゲーター
- ブラウジング体験を「頻度×好み」で最適化する知的発見支援システム
- Knowledge Distillation Browser
- 画像を核とした知識の段階的抽出・統合支援機能
- レイヤードブラウジング
- パンケーキのような層状構造で知識を積み重ねるブラウザ拡張機能
- タイムカプセル型知識醸成ブラウザ
- 時間の流れに沿って知識を熟成させる新しいウェブブラウジング体験
- マルチスレッド思考増幅ブラウザ
- 複数の思考の流れを同時に育む知的生産支援システム
- コグニティブ・バッファリング・ブラウザ
- 駅弁の「仕切り」発想を活かした知的生産支援システム
- 知的スナッキング・ブラウザ
- ウェブ閲覧をスナック感覚で効率化する新しい情報フィルタリング機能
- ウェブコンテンツ調理室 (Web Content Kitchen)
- LLMとの対話を料理のように編集・加工・熟成させる新しいブラウザ機能
おまけ
Colab as an App作戦でおすすめの技の紹介。コードブロックの実行完了と同時に出力結果を自動でHTMLとして保存すると、あとからゆっくりと精査できてよい。手癖で再実行ボタンを押してしまい結果が失われることも防げる。ファイルを静的ウェブページとしてホスティングして公開もできるし、他のLLMへの入力としてファイル添付することもできる。こうしてブログを書くために振り返る際にも便利です。
withopen(file_name, 'w', encoding='utf-8') as f: f.write(html_content) # Colabのファイルダウンロード機能を利用from google.colab import files files.download(file_name)