3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CYBIRDAdvent Calendar 2023

Day 7

ゼロから始めるAI学習(知識編)

Last updated at Posted at 2023-12-06

CYBIRD Advent Calendar 2023 7日目担当の @kazurasaka です。
6日目は @gumita さんの「初めてのUnrealEngine5」でした。
Unity / UnrealEngine などは作った!!!! って実感が見た目にも得られて楽しいですね。

はじめに

一年ぶり二回目 の CYBIRD Advent Calendar 参戦です!こんにちは!
普段はQAエンジニアとイケメンシリーズの1プロジェクト内で技術サブリーダを兼任しております。
今回は社内研究の一環でAIまわりのことをやっていたので、その話をば。
といっても、詳しいことではなく
何も知らないイチどころかゼロから始めるときに単語が何となく分かるようになるまで
みたいなのを書いていきますよー!

MY SPEC

  • 機械学習系は社外での仲間内勉強会でkaggleなどを一〜二年ほど
    • アンサンブル使用しての応募を何回かやった(勉強のために)
  • 数学はできない(すうがくはできない)
  • midjourneyが出現したときには触って遊んだ
  • ChatGPTが出現したときには触って遊んだ

本題:ゼロから始めるAI学習(知識編)

まっさらな状態から研究記事読んだときに何がわからなくてどう調べたらなんとなく輪郭が見えるまでなれるか、という温度感でいきます。色々とくわしい説明は一本分じゃ足りないので、学習方法的に使用してもらえたなら幸い。

知識を辿れ

やあ。ようこそ、7日目へ。
この知識はサービスだから、まずは読んで落ち着いて欲しい。

うん、「また」なんだ。済まない。
仏の顔もって言うしね、謝って許してもらおうとも思っていない。

でも、このタイトルを見たとき、君は、きっと言葉では言い表せない「ときめき」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい
そう思って、この記事を作ったんだ。

さて、君が知りたいのは会話できるAIということでいいのかな?それとも画像?
歴史の講義をここでするつもりはないけれど、まずは以下の違いをわかっていると、理解の助けになるはずだ。

  • 機械学習
  • 深層学習
  • 大規模言語モデル(LLM)

書いてあることの単語が分からなさすぎる

例えばどうやって学習させるんだろう、と、検索をかけたときにこういう文章を目にしたことはないか?

条件付き画像生成モデルであるStable DiffusionやControlNetのfine-tuningにおいてもLoRAが利用されるようになっています。

Stable DiffusionやControlNetは、それを利用していればわかるものだろう。
(画像生成系のAIがStable Diffusionで、ControlNetはStable Diffusionの拡張機能だ)
fine-tuningやLoRAなどわからない単語はまず検索したかもしれないね。

ではここでまずfine-tuningについて検索をかけてみよう。

ファインチューニングとは、既に学習済みのモデルに新たな層を追加し、モデル全体を再学習する手法です。 モデルを再利用するため、一から学習するよりも短時間で少ないデータでモデルの構築が可能です。

なんとなく解った気になれるかもしれない。だが、実際にどうやって再学習するんだ?層って何?と、新たな疑問が生まれることだろう。

では続けてその疑問のために層について検索してみよう。
といっても、層、だけだと別のものがヒットするのは目に見えているね。ここでは層+再学習と組み合わせて検索してみるよ。

大部分の畳み込みネットワークでは、上位のレイヤーに行くほど専門性が高くなります。最初の数レイヤーは、ほとんどすべてのタイプの画像に一般化する、非常に単純かつ一般的な特徴を学習します。上位のレイヤーに行くに従って、特徴はモデルがトレーニングされたデータセットに対してもっと固有なものになっていきます。ファインチューニングの目的は、一般的な学習を上書きするのではなく、これらの特殊な特徴に適応させて新しいデータセットで作業ができるようにすることです。

TensorFlowのファインチューニングの項目に辿り着いた。
さあ、検索すればするほどわからない単語が増えていくよ。
畳み込みネットワーク?上位レイヤー?データセット、って単語の組み合わせのこと?なんのために必要なんだろう?
そもそもTensorFlowはなんぞや?なんとなく目に入ることは多いけど……。

全部を一気に理解しようなんて無駄なことさ。
時間はかかるがひと単語ずつでも、腹落ちするまで調べるしかない。
もし、近くに詳しい人がいるならその単語について聞いてみてもいいかもしれないね。でもまあ、何がわからないかがわからないと質問のしようもない。
そのためにわからないなりにヒットした文章をたどり、単語の知識を増やしていくことが必要なのさ。

ようこそ深淵へ。
もしやってみようと思うなら、LoRAについて辿ってみるといい。

最後に

書き始めた瞬間からなぜか頭の中にバーボンハウスが出てきてそんな記事と口調になってしまいました。ネタを知っている人は僕と握手!!

知識やらなんやらはまとめなり記事なりで取れるけど、その更に前ってどこにもないよね、と思い記載してみました。単語+説明の羅列だと味気ないのとどこまで書いたらいいかわかんなくなったので、今回はこのような記事に。

次回、CYBIRD Advent Calendar 2023 8日目は @cy_ssss さんの「インターンでPhaser3に触れた話」です!お楽しみに!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?