ChatGPTを使い始める前に理解しておく情報や用語など

2023.05.23

Introduction

ChatGPTは自然言語処理(NLP)を用いて対話を行うAIであり、
人間と話をするように自然な会話ができるサービスです。
2022年11月に公開されてから
毎日のように話題になっています。

私も毎日のようにChatGPTを使って
仕事の手助けをしてもらっているのですが、
まだまだ使いこなせていませんし、
その周りの技術や関連サービスもよく把握できていません。

なので、本稿にてChatGPTに関連する基本的な情報や用語について
あらためて確認し、新しいChatGPT関連の情報が出たときに
理解しやすくなるよう準備しておきます。

なお、ここに記述してある情報は2023年5月時点でのものなので、
ご注意ください。

機械学習関連

ChatGPTの前に、まずは前提となる機械学習や深層学習関連について
簡単に説明します。
詳細については参考になる情報がたくさんあるのでそのへんを参照。
ちなみに、以前私が書いた記事でも機械学習とかAIについて簡単に説明してます。

機械学習

コンピュータに対してデータを学習させ、予測や判定させる手法です。
データを学習させることで規則性を見つけ、
それをベースに新しいデータに対して予測や判定を行います。
例えば、ログデータを学習させて不正アクセスを検知したり、
犬の写真を学習させて犬かどうかを判定させたりします。

ショッピングサイトのおすすめ商品、翻訳や音声認識など 
機械学習はさまざまな場面で使用されています。
↑の記事でもいっていますが、
AI(人工知能)は、コンピュータが人間の知的活動を再現して
タスクを自律的に実行する技術であり、機械学習はその一部なので、

AI ⊃ 機械学習

です。

深層学習(ディープラーニング)

人間の脳の神経回路を模したニューラルネットワークを使って学習させる、
機械学習の手法のひとつです。
従来の機械学習手法よりも高精度な予測や判定を実現できます。

深層学習は主に画像や音声認識、
ChatGPTでも用いられている自然言語処理(NLP)などで使用されます。

モデル

機械学習やAIにおける「モデル」とは、データから学習したパターンやルールを表すための
数学的な表現やアルゴリズムを指します。
モデルは、入力データから予測や判断を行うために使用します。

モデルは、一般的に訓練用データセットからデータのパターンもしくは関係を学習します。
学習することによりモデルはパラメータを調整していき、
データの特徴を捉える能力を高めます。 
そうやって学習したモデルは、実際の入力から予測や分類などを行います。

一口にモデルといってもいろいろな種類があり、
例えば教師あり学習では回帰や分類行うモデル、
教師なし学習ではクラスタリングを行うモデルなどがあります。

自然言語処理(NLP)

人間が使う自然言語をコンピュータが解析&処理するための手法や技術です。
例としては、文章の生成や分類、翻訳、質問応答、感情分析などがあります。

ChatGPTだけでなく、GoogleアシスタントやSiriなど、
人間の言葉に対して適切な答えを返す仕組みとして自然言語処理が使われます。

自然言語処理の全体像については弊社がほこるAIのプロフェッショナル、
じょんすみす氏の記事がわかりやすいので参考にしてください。

ファインチューニング

一般的に機械学習でファインチューニングといえば、
事前に学習済みのモデルを使って新しいデータセットで
追加トレーニングを実施することをいいます。
こうして新しいモデルを生成し、特定のタスクやデータセットに適応可能になります。

ChatGPTでファインチューニングというと、
OpenAIが提供する事前学習済みのモデル(後述)に、
追加のトレーニングを実施することです。
例えば「自分の会社の就業規則に対して回答できるようにカスタマイズしたい」など、
特定のドメインに対して特化・適応させたい場合には
ChatGPTのモデルに対して用意したデータセットでトレーニングすることを意味します。
他にも、特定のトピックに関する回答のみに限定したり、特定のスタイルで応答をするなど、
モデルの応答の品質を調整・制御できます。

LLM

Large Language Modelの略で、大規模な自然言語モデルのことです。
大量のテキストデータを学習して自然言語パターンを解析し、文章の生成などを行います。
LLMは人間が話すような自然な文章を生成するのが特徴で、GPTモデル(後述)もLLMです。

また、↑のNLPの研究分野でもLLMが活用されています。
NLPはコンピュータが人間の言葉を理解して処理する技術(自然言語処理技術全般)であり、
LLMはNLPの一部として言語モデルを使って文章生成などを行う技術です。

X-shot leaning

限られたデータや未知のクラスに対して学習および判定を実施する
機械学習の手法で、いくつかの種類がありますが、
どれも少ないデータでの学習で新しいクラスの識別を可能にする技術です。

Zero-shot learning(ゼロショットラーニング)
未知のクラスに対して訓練データがまったくない状況で学習と識別を可能にする手法。
モデルは学習の過程で獲得した既知の特徴を使用して新しいクラスを識別します。

One-shot learning(ワンショットラーニング)
ごく限られた数のデータを使用して新しいクラスを学習します。
モデルは、ごく少数(普通は1つ)のデータ特徴を抽出し、新しいクラスを識別します。

Few-shot learning(フューショットラーニング)
わずかなデータを使用して新しいクラスを学習する手法。
モデルは、少数のデータからデータ特徴を抽出し、新しいクラスを識別します。

参考 : https://zenn.dev/dhirooka/articles/34205e1b423a80

ChatGPT関連

ChatGPT

ChatGPTは、「Generative Pre-trained Transformer」の略語です。
さきほどもいったように、ChatGPTは
自然言語処理(NLP)を用いて対話を行うAIであり、
人間と話をするように自然な会話ができるサービスです。

OpenAIが開発した自然言語処理(NLP)モデルで、深層学習(ディープラーニング)により
大量のデータの学習することで自然な言語を生成し、質疑応答を可能にします。

また、ChatGPTはトランスフォーマー(Transformer)と呼ばれる
機械学習アーキテクチャを採用しているため、
言語モデリング・文書生成・要約などさまざまな種類の
自然言語処理に高い精度を発揮します。

実際にChatGPTを使ってみると、人間が答えてるような回答をしますが、
質問の意味を理解しているわけではなく、
学習した情報から言語パターンを推測して答えているだけです。
あくまでも「言語処理のみに特化したモデル」です。

2023年5月現在、ChatGPTの無料版は「GPT-3.5」という言語モデルをベースにしており、
対応データは2021年9月までのデータを用いて学習しています。

OpenAI

ChatGPTを開発したOpenAI(オープンAI)は、
営利法人OpenAI LPとその親会社である非営利法人OpenAI Inc.からなる
人工知能の研究・開発を行っている企業です。
※ wikipediaより

OpenAIは、より一般的で強力なAIの普及および発展を目指しており、
AIの進歩が人類全体の利益になるように取り組んでいます。

GPTモデル

GPT(Generative Pre-trained Transformer)モデルは、
OpenAIが開発した自然言語処理のためのトランスフォーマーモデルの一種です。
トランスフォーマーモデルはNLPで広く使われる機械学習モデルの一つであり、
従来の再帰ニューラルネットワーク(RNN)に代わるものとして開発されました。
これに対し、ChatGPTはGPTモデルをベースに対話に特化サービスです。

※ RNN:時系列データのモデリングによく使用される機械学習の手法

ChatGPTとGPT(モデル)については明確に区別しておきましょう。

  • GPTは自然言語処理のための言語モデル
  • ChatGPTは「GPTモデルを用いたチャットボットとして対話に特化したサービス」

現在GPTモデルはGPT-1、GPT-2、GPT-3、GPT-3.5(gpt-3.5-turbo)、GPT-4の
5つが存在します。バージョンがあがるごとに精度があがり、パラメータ数も
爆発的に増加しています。
最新のGPT-4では、パラメータ数が公表されていませんが、
5000億以上ともいわれています。
詳細についてはこのあたりを参照してください。  

2023年5月現在、 ChatGPT無償版で使用しているモデルはGPT-3.5(gpt-3.5-turbo)です。

ChatGPT Plus

一般的に「ChatGPT」といえば、
OpenAIサイト上で提供される無償版のサービスを指しますが、
無償版以外にも、「ChatGPT Plus」という、
有償版(月額$20)のサブスクリプションプランがあります。
これは、  

  • ピーク時ChatGPTへの一般的なアクセスが可能
  • 応答時間の短縮
  • 新機能と改善点への優先アクセス

といった利点があります。
2023年5月現在、最新モデルであるGPT4を使用できるのは ChatGPT plusだけです。

ChatGPT API & Whisper API

ChatGPT APIは、API経由でChatGPTを使える機能です。
OpenAIが提供するAPIサービスで、
ChatGPTの機能を利用して自分のアプリやサービスに利用できます。
APIを使うと、HTTPを用いてリクエストを送信し
ChatGPTからレスポンスを受け取ることができます。

OpenAIのアカウントとAPIキーがあれば、APIの使用できます。
※API使用は料金が発生する場合があるのでOpenAIの公式サイトを確認してください

WhisperはOpenAIが提供する音声認識モデルです。
音声データから文字起こしを行うために使用します。
現在はAPI形式でのみ提供されていて、それがWhisper APIです。
料金は1分あたり1円以下でとても安価です。

参考 : https://www.watch.impress.co.jp/docs/topic/1493886.html

ChatGPT plugins

ChatGPT pluginsとは、
3rdパーティのアプリとChatGPTを接続する拡張機能です。
この仕組みを利用することで、
リアルタイム情報の取得や特定のアクション(ex.ホテルの予約)など
がChatGPTで可能になります。

開発者によって定義されたAPIとやり取りすることで
ChatGPTの能力をさらに拡張させることができます。
今後はこのplugin開発も加速していくと思われます。

ここでも解説されていますのでご確認ください。
近日中にChatGPT Plusのユーザーであれば ChatGPT pluginsが使えるようになる予定です。

nanoGPT

nanoGPTは、中規模なGPTをトレーニングして調整するためのフレームワークです。
既存のモデルをファインチューニングするのではなく、
自分でゼロからAIをトレーニングさせることができます。
なので、大量のデータがあれば
nanoGPTをつかってChatGPTに近いAIをつくることができる(かも)。  

作者であるAndrej Karpathy氏は、OpenAIの研究科学者および共同創設者です。

LLM関連用語

BERT(Bidirectional Encoder Representations from Transformers)

2018年に発表された、Googleが開発した自然言語処理(NLP)モデルです。 
GPTモデルと比較して、学習方法やアーキテクチャなどが違います。

LLaMA(Large Language Model Meta AI)

Meta AIが2023年に発表したLLMで、Transformerアーキテクチャを採用しています。
単体GPUで動作する手軽さとChatGPTに匹敵する性能を両立しているといわれ、
パラメータの数ではなく、トレーニングデータの量を増やして
モデル性能を向上させたとのことです。

参考 : https://ja.wikipedia.org/wiki/LLaMA

LaMDA(Language Model for Dialogue Applications)

Googleが開発した自然言語処理技術を用いた対話型AIで、
当初は2020年にMeenaとして発表されました。
後述するBardにも最初はこのLaMDAが搭載されていました。

AWSのやつとは違います。
AWSのサーバレスコンピューティングサービスはLambdaなので、
まちがいなきよう。

PaLM / PaLM2

PaLMは2022年にリリースされたLLMです。
大規模なテキストとコードのデータセットで学習しており、
テキストの生成や翻訳など言語の翻訳、コンテンツの作成など、
いろいろなタスクを実行することを学習しています。

PaLM2はその後継で、2023年にリリースされました。
さらに大規模なデータセットで学習していて、タスクの精度が向上しています。

Bard

Googleが開発・提供している会話型AIで、ChatGPTの対抗馬とされています。
元々はLaMDAベースでしたが、現在はPaLM2ベースで動作しているらしいです。
(Bardに聞くとLaMDAで動いていると答えるが)
現在はまだ開発中で、特に制限なく無料で試すことができます。

GPT-NeoX-20B

EleutherAIによって提供される、
OSSの自然言語モデルです。GPT-3相当の性能をもつと言われています。

参考 : https://huggingface.co/EleutherAI/gpt-neox-20b

画像生成AI

2021年くらいから画像生成AIとよばれるサービスが相次いでリリースされました。

その中の1つ、DALL-Eは、テキストから画像を生成できるAI(画像生成モデル)です。
2021年にOpenAIによって公開されました。
DALL-E 2はその後継モデルとなります。

画像生成AIはMidjourneyStable Diffusionなどいろいろあり、
それぞれ特徴があります。

ChatGPT(LLM)使い方関連

プロンプト

ユーザーがChatGPTに与える入力テキストです。
モデルはこの入力を受け取り、処理を行って適切な回答を返します。
LLMとやり取りするにはいかに適切なプロンプトを与えるかがポイントで、
ほしい回答を得るためにはプロンプトの調整や技術が必要です。

プロンプトエンジニアリング

プロンプトをさまざまな方法で工夫してモデルに与える技術です。
これによってLLMによる回答の精度を高めることが期待されます。
AIに対して具体的に指示を出し、
安定して精度の高い結果を得ることを目的とします。

LMQL(Language Model Query Language)

LMQLはLLM用のプログラミング言語です。

対話的にLLMを使う場合、プロンプトを
自分で修正しながら何度も会話を続けることで
目的の回答を取得します。

しかし、サービスやアプリにLLMを組み込む場合、
いちいち人が修正するわけにもいきませんし、
自然言語だと回答にばらつきが発生することもあります。
そういった問題を回避するため、LMQLを使用することができます。

参考 : https://note.com/mahlab/n/n11b15b323c87

LangChain

LLMを使ってアプリを構築するためのフレームワークです。 
現在はpythonかTypeScript(JavaScript)用ライブラリがあります。
※TypeScriptは一部機能の実装のみ

LangChainを使用することで、

  • プロンプトの管理
  • 外部データを用いて回答を生成する機能
  • CoTプロンプティング(段階をふんでプロンプトを行う)

などが可能になります。
ChatGPTや他のLLMをカスタマイズしたいときには検討したいライブラリです。

Summary

ChatGPT関連で調査していて出てきた用語について
簡単にまとめました。
まだまだここに書いていない用語もありますし、
毎日のように新しいサービスやプロダクトがでてきて
追従するのが大変ですが、
新しいAI時代にがんばってついていきましょう。

References