📖

Claude3を触った感想

2024/06/06に公開

概要

業務でClaude3 Opusを触っているので後の自分のために整理する

何やってたの?

画像から文字列を抜き出す必要があるが、色々理由があってClaude3 Opusで代用できないか調査している。
がパラメータの意味がわからんので調べてる

発端の記事

https://zenn.dev/tomioka/articles/26f360ad73edd1


パラメータについて

System prompts

特定の目標やロールの指定などClaude、コンテキストと指示を Anthropic に提供する。
URL : https://docs.anthropic.com/en/docs/system-prompts

例 「おすすめ」を聞いてみよう

  1. 何も設定しない場合は、無難な応答になります。
    nono
  2. ここで、System promptsに役割を与えます。今回は「シェフ」です。
    色々おすすめ料理を教えてくれました。
    見ての通り、役割を与えることにその立場での発言を行ってくれます。
  3. カレー屋でも同じです。
  4. 制限的なことにも使えます。「英語しか話せいない」役割を付けたため英語で返します。

ランダムと多様性(Randomness and diversity)

ここから自分の勉強用の情報。調べていこう
まずはこの表を見ておこう。

温度(Temperature)

一言で言うと高い程人間性が上がり低いほど機械的な出力になる。
出力結果を安定させたい場合は、低い方が良いのかもしれない。(要出典)

パラメータ:0~1(0.1刻み)

  • ドキュメントの一部抜粋
温度は、テキスト生成中のモデルの予測のランダム性を制御するパラメータである。温度が高いほど、より創造的で多様な出力につながり、言い回しの複数のバリエーションや、小説の場合は答えのバリエーションも可能になります。温度が低いと、より保守的で決定論的な出力になり、最も可能性の高い言い回しや答えに固執します。

つまり、Temperartureが高いと多様な出力に繋がるため、「低い確率のトークンの可能性を向上する」が、その分、「高い確率のトークンの可能性を低下する」に繋がる。
逆にTemperartureが低いと保守的になるため、「高い確率のトークンの可能性を向上する」になり、「低い確率のトークンの可能性を低下する」に繋がる。
会話などのランダム性が必要な場合はこの値を上げる。ランダム性が低くて良い場合はここの値を下げると良いのかもしれない。(要出典)

URL : https://docs.anthropic.com/en/docs/glossary#temperature

Claude3 Opusに直接聞いてみた

対話AI システムにおける "Temperature" パラメータは、生成される応答のランダム性や多様性を制御するための設定です。一般的に、Temperature の値が高いほど、より多様でランダムな応答が生成される傾向があります。逆に、Temperature の値が低いほど、より確定的で予測可能な応答が生成される傾向があります。

例えば、次のような変化が考えられます:

1. Temperature が低い場合(例:0.5):
   ユーザー:「今日の天気はどうですか?」
   AI:「今日の東京の天気は晴れのち曇りで、最高気温は25度、最低気温は18度の予報です。」

   このように、Temperature が低いと、AIは入力に対して最も確率の高い、つまり最も一般的な応答を生成する傾向があります。

2. Temperature が高い場合(例:1.5):
   ユーザー:「今日の天気はどうですか?」
   AI:「今日の天気は、まるで絵画のような青空が広がっていて、心が踊るようです!でも、夕方からは天使の綿菓子のような雲が現れて、ちょっぴり物悲しい雰囲気に変わるかもしれませんね。」

   Temperature が高いと、AIは入力に対してより創造的でユニークな応答を生成しようとします。ただし、文脈からずれた応答が生成されるリスクも高くなります。

適切な Temperature の値は、対話の目的や要件によって異なります。一般的に、Temperature は 0.7 から 1.0 の間に設定されることが多く、これにより適度なランダム性と多様性が確保されつつ、文脈に沿った応答が生成されやすくなります。ただし、状況に応じて調整が必要な場合もあります。

トップ P(Top P)

選択肢の閾値(割合)を指している。この値が高いとその分選択の範囲が増える。
文章の生成に影響が出ると思われる。
例えばtop_pの値が低いと、生成される文章が単調になり、逆に、top_pの値が高いと、生成される文章の多様性(選択肢)が増えると思う

URL : https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/inference-parameters.html?icmpid=docs_bedrock_help_panel_playgrounds

例えば

仮に、次のようなトークンとその選択確率があるとします:

トークンA: 40%
トークンB: 30%
トークンC: 20%
トークンD: 10%
top_pの値が低い場合(例: top_p = 0.5)
この場合、累積確率が50%に達するまでのトークンだけが選ばれます。
つまり、トークンAのみが選ばれる
top_pの値が低い場合(例: top_p = 0.9)
トークンA〜Cまで選ばれるがトークンDは選ばれない

ChatGPTに聞いてみた

「nucleus・サンプリング」において、Anthropic Claudeは各次のトークン(単語や文字のような最小単位)のすべての選択肢に対する累積分布を計算します。これらの選択肢は、確率が高い順に並べられます。そして、その累積確率がtop_pで指定された特定の確率に達するまで選択肢を切り捨てます。top_pは確率のしきい値を示すパラメータです。

つまり、ニュークリアス・サンプリングでは、確率が高いものから順に選んでいき、その累積確率がtop_pに達した時点でそれ以上の選択肢を考慮しなくなります。

トップ K(Top K)

トップPがパーセンテージに対して、トップKは選択肢の数を指す。
デフォルト値が250であれば高い順に250個から選択される。
URL : https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/inference-parameters.html?icmpid=docs_bedrock_help_panel_playgrounds

長さ (Length)

Maximum length(ドキュメントではResponse length)

詳しい説明があまりないが、パラメータを低くすると応答の数が明らかに少なくなった。
名前通り応答時の長さだと思う
今のところAPIリファレンスにはパラメータとして見当たらない

Discussion