Anond AI開発日記

こんにちは。Anond AIを研究している id:cockscomb です。

私たちはこの度、このAI時代を制するプロダクト、Anond AIを開発しました。本エントリではその詳細について説明します。

Anond AIとは

Anond AIはいわゆるGenerative AIで、人類が匿名で日記を書くことをアシストしてくれるものです。私たちは日記に芸術性を感じる文化を持っていて、「日記文学」という言葉もあります。Generative AIによって、名前を隠して楽しく日記を書くことをサポートし、匿名日記文化のさらなる発展に寄与できないか、と考えました。

Anond AIは、rinna/japanese-gpt2-mediumをはてな匿名ダイアリーのデータを用いてファインチューニングし、ドメイン適応させたものです。

Anond AIの開発

Anond AIは実験的なプロダクトのため、Hatelaboでリリースしました。

開発に際しては、AIについて学ぶため、次の書籍を参考にしました。

「Transformerによる自然言語処理」は教科書的で、基本をおさえるのによかったと思います。「機械学習エンジニアのためのTransformers」は原著者がHugging Faceの方というのもあって、実践的かつわかりやすい内容でした。

これらを読んだ上で、Google Colaboratory上で素朴にファインチューニングしてみた、というのがAnond AIです。

Transformerアーキテクチャのうちデコーダーのみで構成されたGPT-2は、テキスト生成タスクにはちょうどよいはずです。日本語で事前学習されたrinna/japanese-gpt2-mediumであれば、多少のファインチューニングで、ある程度それらしい結果を生成できると考えました。

ファインチューニング

ファインチューニング前

私はハンバーガーが好きだ。 毎日、毎日違うハンバーガーを食べるのが大好きだ。 私は、いつも自分の舌で確かめる。 これは、私が今まで食べた最も良いハンバーガーだ。 この肉は、他の誰にも説明できないのだが、私がこのレストランを楽しんでいるのは素晴らしいことだ。 ここにいると素晴らしい時間が過ごせるし、また来るべき場所になると思う。 このホテルの食べ物は優れており、 私たちは毎日ここに来ますが、それは非常に

ファインチューニング後

私はハンバーガーが好きだ。学生時代はハンバーガーが好きな友達がいた。彼らはハンバーガーにこだわっていたし、ハンバーガーが好きだから一緒にいた。私は自分のハンバーガーが好きだった。高校生になって友達が少ない自分を変えたいと思っていたが、部活の失敗や友人からのすれ違いから、私には無理なのだと諦めていた。しかし、大学の同級生に「勉強でお姉さんに負けたおっさん」として呼ばれた。私が勉強で成績を上げたと言うと「俺も

実際の性能はご覧の通りで、ファインチューニングによって、どことなく匿名ダイアリーっぽくなっているように感じます。一方で、これはファインチューニングの前からですが、生成された日記の後ろの方ほど文脈を失っていくように見えます。最近の極めて規模の大きい言語モデルの出力を見慣れていると、少し残念に感じられます。とはいえモデルの規模がそれほど大きくないので、これは仕方のないところです。

それでも何度も書き直してもらうと、かなりいい日記が出てきたり、あるいは妙なおかしみを持った日記が出てきたりします。これはこれでおもしろいので、4月1日にリリースするものとしては上出来でしょう。

根本的に性能を改善するにはより大きなモデルを使うのがよいのだと思いますが、それはまたの機会にとっておきます。

透かし

ところで、AIが生成したテキストをどのように扱うべきか、私たちの社会はまだ結論を出せていません。AIの性能が急速によくなって、AIが生成したテキストは人間が書いたテキストと区別がつかない場合さえあります。

そこでAnond AIが生成したテキストには、次のプレプリントの論文を参考に、「透かし」を埋め込んでいます。

この論文の手法では、モデルが持つ語彙(トークン)を、一定の割合γでグリーンとレッドのふたつに分けます。ただし単純に分けるのではなく、一つ前のトークン(のハッシュ値)を元にして分けています。そして、グリーントークンが選択される確率をδだけ底上げします。そうすると、生成されたテキストではグリーントークンの割合が高くなるはずです。あとは、グリーントークンとレッドトークンの割合について統計的に検定することで、透かしが埋め込まれているか判定できます。

この手法であれば、生成されたテキストの一部分であっても、透かしが埋め込まれているか判別できます。また透かしを取り除くには、テキストの大部分を書き直す必要があるでしょう。一方、トークンが選択される確率を歪めるため、原理的には生成されるテキストが不自然になりえます。しかし著者らによると、大規模なモデルではその影響は十分小さいようです。

実際に透かしが埋め込まれているか判定するには、トークナイザとハッシュ値の計算方法、そしてγを知っている必要があります。Anond AIの透かしを判定するには次のようにします。

ファインチューニングについて説明したときの例は、まだ透かしが埋め込まれていないものです。これを判定すると、透かしが入っていないという意味の「Unwatermarked」の表示が出力されます。一方で次の透かしを埋め込んであるテキストを判定すると、ちゃんと「Watermarked」の表示になるはずです。

私はハンバーガーが好きだ。ハンバーガーとは何か、いつも考えてしまう。言葉にするととても安直でぼんやりしていて、他の食べ物と比較しみて、というようなことを考えることが出来ない。例えば魚フライは油を使って調理するから、ちょっとふっくらしていて、しかもハンバーガーにしてはやっぱりデカいなとか、とにかく考えてしまう。ハンバーガー、あなたは1枚選ぶとしたら? なんで? なにも考えるのが面倒だって思うときってあるよね。そういう時、

人間が書いたテキストと生成されたテキストの割合などによって、100%うまく判定できるわけではありませんが、試した限りでは一定の精度で判定できているようです。

いかがでしたか

AI技術は急激な発展を遂げており、この数週間は毎日のように新しいニュースが飛び込んできます。特にいわゆるビッグテックによるAI開発競争は熾烈を極めているように感じます。ここまで過熱していると、自分で学んだり手を動かすことに、ちょっと気後れしてしまう気持ちもあります。だからと言って、ただ眺めて終わりにするのもおもしろくありませんよね。

ということで簡単ではありますが、AI技術を学んで実践してみました。多少なりともお楽しみいただけていれば幸いです。

Anond AIは引き続き細々と改善予定です。

はてなでは、新しい技術を共に学ぶ仲間を募集しています。