💬

Fine-tuningとembeddingから考える、「理解する」とは

2023/06/13に公開

仰々しいタイトルになっていますがそんなすごいことではないです
コピペエンジニアがなぜ良くないのか、なぜドキュメントを読める方が良いのか
より具体的な例で考えてみたメモみたいなものです。

プログラミング学習

embeddingの場合

embeddingの説明(wikipediaより)

"In natural language processing (NLP), a word embedding is a representation of a word. The embedding is used in text analysis. Typically, the representation is a real-valued vector that encodes the meaning of the word in such a way that words that are closer in the vector space are expected to be similar in meaning.[1] Word embeddings can be obtained using language modeling and feature learning techniques, where words or phrases from the vocabulary are mapped to vectors of real numbers."

検索ワードをGoogleというベクトル空間上の値として表現し、その表現を結果として受け取ってくるということと考えると

  1. 困っていることを検索にかける
  2. それっぽいものをGoogleから探してくる
  3. それをそれっぽくコピペする、もしくは既存の知識を用いて編集する

というコピペエンジニアがやりがちな方法っぽいなと

Fine-Tuningの場合

fine-tuningの説明(wikipediaより)

"In machine learning, fine-tuning is an approach to transfer learning in which the weights of a pre-trained model are trained on new data.[1] Fine-tuning can be done on the entire neural network, or on only a subset of its layers, in which case the layers that are not being fine-tuned are "frozen" (not updated during the backpropagation step)"

to transfer learning in which the weights of a pre-trained model are trained on new data.

新しい単語や概念に対して、既存のモデル(概念、知識)を強化するということと考えると

  1. ドキュメントや書籍等を読み込んで、体系的な知識をつける
  2. 実際に様々なものをいじってみて、自分の中のモデルを強化する
  3. 他言語の問題や、応用が効くようになる

という書籍をリリースするようなつよつよエンジニアにありそうな方法だなと

まとめ

おそらく実際はembeddingとfine-tuningを上手に組み合わせて業務をすると思いますが、わかりやすいように完全に分けて説明しました。

「理解した」かどうかみたいなのは興味がある分野なので、もう少し手法に分けて具体的に調べられたら人間側の学習にも役立ちそうだなと思いました。

Discussion