【LLM開発】Prompt DesignでGPTを目的に特化させる

はじめに

この記事では、LLM開発におけるPrompt Designとはなにか、その手法にはどのようなものがあるのかを主にエンジニアの方やLLMを使ったシステムを開発されたい方向けに説明させていただきます。

LLM開発におけるPrompt Designとは

Prompt Designとは、GPTをはじめとするLLM(大規模言語モデル)から、仕事やシステムなどで達成したい目的のための回答や出力を得るために、質問や命令などの入力(プロンプト)を工夫する手法です。

Fine-tuningと同様に、LLMを利用したシステム開発の手法の1つとしても用いられます。

Fine-tuningはLLM自体を強化して目的を達成する結果を得られるようにするイメージなのに対して、Prompt DesignはLLMにその都度入力するものを工夫することで、得たいものを出せるようにするイメージです。

人間に例えると、Fine-tuningは学校教育、Prompt Designは仕事上でのコミュニケーションの工夫に近いイメージと捉えられます。

Prompt Designの基本方針

GPTはプロンプトに続く「それっぽい」テキストを返します。

よって、目的のテキストを得るために基本的に必要なことは「より具体的な情報を与える」ことです。例えば、具体例をいくつか与えることで、目的の回答を得られる可能性は高くなります。

LLM開発においては、ユーザーからの入力をそのままLLMに渡すのではなく、「よりLLMが目的に沿った回答を返せる」ようにプロンプトを加工(より具体的な情報を含めるなど)してからLLMにわたすことが必要となってきます。

Prompt Designの手法(プロンプトの加工方法)

①Prompt Template

ユーザーの入力を、予め用意しておいたテンプレートに埋め込む手法です。

GPTから、より目的に沿った回答を得るためにユーザーからの入力を加工します。

本メディアで多く紹介しているプロンプトテンプレートがこれに該当します。

例えば「要約の作成」というタスクにはより「要約という目的に特化した」プロンプトテンプレートを作成することが必要になります。

②IndexとEmbedding

ユーザーの入力に合わせて、より必要であろう具体的な情報を合わせてLLMに渡す手法です。

例えば、自社で個別に所有しているデータ(顧客データ)などについて回答を生成したい場合、それをシステム側でプロンプトに含めるといったなどが考えらます。

indexについて、1例としてText Embeddingを用いたindexの詳しい仕組みについてはこちらで紹介しています。

Prompt Designに便利なライブラリ

代表的なものとして、LangChainがあります。

LangChainとはどのようなものなのか、こちらで簡単に紹介しています。

まとめ

今回はLLM開発におけるPrompt Designとはなにか、主にどのような手法があるのかを紹介させていただきました。

システム開発においてPrompt DesignとFine-tuning、どちらが最適か、あるいは併用するべきなのかは変わっていくと思いますので、ぜひこちらを参考に考えてみてください。