LLM Parameters
任意の機械学習モデルと同様に、大きな言語モデルには、生成されるテキストの出力の変异性を制御するための様々なパラメータがあります。私たちは、これらのパラメータの影響を詳細に説明するために、多部分のシリーズを始めました。私たちは、この多部分のシリーズで議論したすべてのパラメータを使用して、コンテンツ生成に最適なバランスを取ることで終わります。
これは第2部分です。ここで、もう一つ知名なパラメータ「Top-P」について話します。
Top-P (Nucleus Sampling)
モデルの出力の多様性を制御するためには、Top-Pが適しています。Top-Pを低くすると、モデルは最も確率の高い単語を使用するように促されますが、Top-Pを高くすると、モデルはさらに多様な単語を使用し、創造性を高めます。
以下のコードと出力でTop-Pの動作を見てみましょう。
import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Load GPT-2 model and tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# Add pad token to tokenizer (GPT-2 doesn't have it by default)
tokenizer.pad_token = tokenizer.eos_token
# Function to generate response with varying top_p
def generate_with_top_p(prompt, top_p):
inputs = tokenizer(prompt, return_tensors='pt', padding=True)
# Set the attention_mask and pad_token_id
outputs = model.generate(
inputs.input_ids,
attention_mask=inputs['attention_mask'],
do_sample=True,
max_length=200,
top_p=top_p,
pad_token_id=tokenizer.eos_token_id
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
prompt = "What are some effective ways to manage stress in daily life?"
# List of top-p values and their descriptions
top_p_values = {
0.1: "Very conservative: Generates highly probable and safe responses.",
0.3: "Conservative: Generates probable responses with less risk.",
0.5: "Balanced: A mix of safe and creative responses.",
0.7: "Creative: Generates more diverse and creative responses.",
0.9: "Very creative: Allows for highly diverse and less probable responses."
}
# Test top_p variations
for top_p, description in top_p_values.items():
print(f"\nTop-p {top_p} ({description}):\n")
print(generate_with_top_p(prompt, top_p=top_p))
出力:
python test_top_p.py
Top-p 0.1 (Very conservative: Generates highly probable and safe responses.):
What are some effective ways to manage stress in daily life?
The following are some of the most common ways to manage stress in daily life.
1. Avoiding stress
The most common way to avoid stress is to avoid it.
The most common way to avoid stress is to avoid it.
2. Avoiding stress
The most common way to avoid stress is to avoid it.
The most common way to avoid stress is to avoid it.
3. Avoiding stress
The most common way to avoid stress is to avoid it.
The most common way to avoid stress is to avoid it.
4. Avoiding stress
The most common way to avoid stress is to avoid it.
The most common way to avoid stress is to avoid it.
5. Avoiding stress
The most common way to avoid stress is to avoid it.
The most common way to avoid stress
Top-p 0.3 (Conservative: Generates probable responses with less risk.):
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective ways to manage stress in daily life?
What are some effective
Top-p 0.5 (Balanced: A mix of safe and creative responses.):
What are some effective ways to manage stress in daily life?
1. Stay on top of your body's natural stress levels
When you're stressed, your body's natural stress levels are low.
If you're stressed, your body's natural stress levels are high.
If you're stressed, your body's natural stress levels are low.
2. Avoid excessive exercise
Exercise can make you feel better.
Exercise can make you feel better.
3. Get up early to avoid fatigue
Exercise can make you feel better.
Exercise can make you feel better.
4. Avoid the temptation to take the wrong thing
Exercise can make you feel better.
Exercise can make you feel better.
5. Avoid eating the wrong foods
Exercise can make you feel better.
Exercise can make you feel better.
6. Avoid the temptation to
Top-p 0.7 (Creative: Generates more diverse and creative responses.):
What are some effective ways to manage stress in daily life?
I am talking about a very specific situation. The person I am talking about has been stressed, but has not been doing much work for a long time. I want to tell you, because this person has had a lot of stress in his life, that it is not something you can just go back to. But what I'm trying to say is, that if you don't have a job, you have to go back to work every day, so you can spend more time with your family. So I've been doing that for a long time now. And so, that is a very common occurrence.
But what do you think is the best way to deal with the stress?
You know, it's not easy to deal with it. It is very difficult to deal with the stress that we experience. So, that is a very good way to deal with it. So, I think it's the
Top-p 0.9 (Very creative: Allows for highly diverse and less probable responses.):
What are some effective ways to manage stress in daily life?
There are many things that can be done by daily meditation and practice. As a general rule of thumb, meditation can help you stay mindful of your own needs, goals, feelings, desires, emotions, and the life and emotions around you.
The purpose of meditation is to feel a deep desire to practice more, to be more mindful, and to be more productive. It also serves to enhance your overall well-being.
1. Be active, be creative, be mindful, and be optimistic.
This is where the first step towards meditation comes from. If we're looking for inspiration, there's a whole section on being "active" and "creative."
While I'm not sure I know much about meditation, I know some of its practitioners and some that I never met. My mom used to tell me that she'd always find a way to make her feel more connected and involved.
次に、出力を理解してみましょう。
- Top-P 0.1 – 非常に保守的:モデルは、最も確率の高い次の単語の選択の10%から生成内容を選ぶために、非常に保守的です。したがって、生成された内容には多くの繰り返しがあり、 Diversityが乏しく、ほとんどの場合は有用的でもありません。
- トップP 0.3 – 保守的: モデルは可能な次の単語選択の30%を選び、前のトップP設定よりももう少し保守的です。出力からご覧の通り、これはコンテント生成を改善していません。プロンプトがCompletion全体で繰り返されていることから、プロンプトの後に最も可能な延续としてモデルにとってはプロンプト自体になることを意味します。
- トップP 0.5 – バランスのある: ここでは、モデルが初めていくつかの番号付けされた戦略をリストに記載しています。この設定でもまだある程度の繰り返しがあります。しかし、このトップP設定では、モデルはより幅広い単語を取り込むようになります。出力は標準的なアドバイスといくつかの不具合が混在しています。このトップP値は創造性を向上させますが、情報の深さについてはまだ苦労しています。
- トップP 0.7 – 創造的: この場合、モデルはより幅広い単語の選択を可能にし、ご覧の通り、応答が物語のスタイルに移行しています。コンテンツはより創造的で、ストレスに取り組む人のシーンを含むようになりました。ただし、マンドリンがストレス管理ではなく、ストレスに対する取り組みの困難に集中していないという欠点があります。
- トップP 0.9 – 非常に創造的: この設定では、モデルはより幅広い単語やアイデアにアクセスできます。包括的には不太可能な単語や概念も含まれます。この設定では、モデルがより表現的な言葉遣いを使用することができます。もちろん、非常に創造的なために、モデルはプロンプトから離れ、豊かで様々なコンテンツを生成するために困難に直面します。
上記の実験から、トップ-P 設定の変更に伴って内容が変化することが重要であることがわかります。また、このパラメーターだけでは内容の変化とその関連性のために対処する必要があることも把握できます。
今度は、「創造的な物語生成」と「技術的な説明」のシリーズの前の部分と同様に、トップ-Pの影響を見るためのいくつかのユースケースに注目してください。
import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# Load GPT-2 model and tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# Add pad token to tokenizer (GPT-2 doesn't have it by default)
tokenizer.pad_token = tokenizer.eos_token
# Function to generate response based on top_p
def generate_with_top_p(prompt, top_p, max_length=250):
inputs = tokenizer(prompt, return_tensors='pt')
outputs = model.generate(
inputs.input_ids,
attention_mask=inputs.attention_mask,
do_sample=True,
max_length=max_length,
top_p=top_p,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
no_repeat_ngram_size=2 # Prevents repetition of phrases
)
return tokenizer.decode(outputs[0], skip_special_tokens=True)
### USE CASE 1: CREATIVE STORY GENERATION ###
def creative_story_generation():
prompt = ("In the mystical land of Eldoria, a young warrior found an ancient map "
"that led to a hidden treasure guarded by dragons. He knew that courage and "
"wisdom would be his allies on this perilous journey.")
# Negative Impact: Low top_p for creative writing (less creative)
print("\n=== Creative Story with Low top_p (0.2) - Negative Impact: ===")
low_top_p_story = generate_with_top_p(prompt, top_p=0.2)
print(low_top_p_story)
# Perfect Impact: High top_p for creative writing (more creative)
print("\n=== Creative Story with High top_p (0.95) - Perfect Impact: ===")
high_top_p_story = generate_with_top_p(prompt, top_p=0.95)
print(high_top_p_story)
### USE CASE 2: TECHNICAL EXPLANATION ###
def technical_explanation():
prompt = ("Explain step by step how the internet works, focusing on how computers "
"use IP addresses and data packets to communicate with each other.")
# Negative Impact: High top_p for technical writing (less precise)
print("\n=== Technical Explanation with High top_p (0.95) - Negative Impact: ===")
high_top_p_explanation = generate_with_top_p(prompt, top_p=0.95)
print(high_top_p_explanation)
# Perfect Impact: Optimal top_p for technical writing (accurate)
print("\n=== Technical Explanation with Optimal top_p (0.5) - Perfect Impact: ===")
optimal_top_p_explanation = generate_with_top_p(prompt, top_p=0.5)
print(optimal_top_p_explanation)
# Run both use cases
creative_story_generation()
technical_explanation()
出力:
python top_p_multiple.py
=== Creative Story with Low top_p (0.2) - Negative Impact: ===
In the mystical land of Eldoria, a young warrior found an ancient map that led to a hidden treasure guarded by dragons. He knew that courage and wisdom would be his allies on this perilous journey.
The Dragon King
...
(The Book of the Dragon)
,
-
: The Dragon Lord is a legendary warrior who has been the focus of many legends. The dragon king is the most powerful of all the dragons in the world. In the magical land, he is known as the "Dragon King". He is also known to be the leader of a group of dragons called the Black Dragons. His name is derived from the dragon's name, "the dragon".
"The Black Dragon" is an important symbol of power and powerlessness. It is said that the black dragon is able to create a dragon that can defeat the strongest of his enemies. However, the true power of this dragon lies in his ability to manipulate the minds of others. This ability is called "The Dark Dragon". The Dark dragon has a powerful sense of self-preservation and is capable of manipulating others to his will. When he has control over others, his power is so great that he can destroy entire cities. As a result
=== Creative Story with High top_p (0.95) - Perfect Impact: ===
In the mystical land of Eldoria, a young warrior found an ancient map that led to a hidden treasure guarded by dragons. He knew that courage and wisdom would be his allies on this perilous journey.
Spirits are like gods. In this world, there are no gods without secrets. There are also no secrets about being a fighter or a thief. But every dragon has a special hidden skill, and he or she can use that skill to destroy and gain strength or hide something hidden in the secret. Many dragons are skilled at their martial arts, while most are unaware of the secrets of their true power. These dragons cannot only use these skills, but that will only allow them to escape the dragons' clutches. Because their training will be tested before they're even born, dragon fighting has never been so hard, even without training, so they should be able to break a dragon's body.
=== Technical Explanation with High top_p (0.95) - Negative Impact: ===
Explain step by step how the internet works, focusing on how computers use IP addresses and data packets to communicate with each other. If a person with the same identity as a user on the US government's private network uses the online address bar, then this data is sent to a server on a computer on your local network. Your IP address is a small byte in the string. The IP and network address are identical. Do you remember, you just want to do that instead of using IPs or numbers. In addition, remember that IP can be used to verify a particular IP for you and your computer. For instance, your name does not always match an address on our government network and you should have your public IP in this country. This does seem quite unusual and perhaps a bit bizarre.
There was a time in Silicon Valley when you could set your identity out. But in most of today's world, how do you set up your own address and how does one look for it? What about the public? The internet itself was different. It was just a set of rules around data flow that you were supposed to follow. Now, even in today the "internet in general" seems a little more complicated to define. Let's say
=== Technical Explanation with Optimal top_p (0.5) - Perfect Impact: ===
Explain step by step how the internet works, focusing on how computers use IP addresses and data packets to communicate with each other.
"We've been trying to understand how it works and what it means for the future," says James. "It's not just about the IP address, it's about how people communicate. It's also about what's going on with the data. We want to see how this works. What is the Internet going to look like in the next 10 years?"
, the director of the Computer Science and Artificial Intelligence Laboratory at the University of Michigan, says that while there's still a lot of work to be done, "we've got to start to think about it."
ここで、トップ-P 設定に基づいて出力行を析し、創造的な物語生成と技術的な説明に影響を与えるかどうかを分析しましょう。
トップ-Pの影響を効果的に示すために、出力行を操作するより良いプロンプトを取り入れました。
創造的な物語生成
- トップ-Pの低い値(悪影響):低いトップ-Pの値では、モデルは語句や短語の使用を制限し、これにより繰り返しと冗長さが生じます。この場合、創造性も制限されており、モデルは新しいアイデアを導入することを試みません。しかし、 logical flow は保ち、トピックにとり附けていますが、これは一般的な低い Top-P 値の特性です。
- トップ-Pの高い値(完璧な影響):この場合、モデルは新しい概念を導入し、ナラションに創造的な角度を付けます。より广い語彙が使用され、テキストに深度と豊かさを追加します。しかし、創造性が増えるために、論理的な流れが抑制されました。
この2つの物語の比較は、トップ-Pの影響を明らかにし、創造的な書き込みにどのように影響を与えるかを理解するのに役立ちます。
技術的な説明
- 高いTop-P(悪影響)ご覧のように、高いTop-Pは技術的な説明に悪影響を与えます。論理的な流れを妨げ、主題からはけ出すということです。また、モデルは関連性のない情報を導入しており、説明には適切ではありません。
- 最適なTop-P(完璧な影響)最適なTop-Pを使用することで、説明はより一貫性があり、主题に近いということがわかります。コンテンツはプロンプトにより一致し、正確さと表現の平衡を保っています。情報の信頼性は、モデルがより可能性の高い語を制限するために強化されます。
結論
この実験では、Top-Pパラメーターが生成されたテキストの乱雑さと創造性を制御する重要性を成功に历时的に示しました。まず、単一のプロンプトについて、Top-Pの変更に応じて出力の変化を見ました。次に、Top-Pがどのように使用情境に基づいて出力を制御するかについて、より Case-basedのアプローチを取りました。
しかし、このシリーズの前の部分とこの部分から、各パラメーターは個々にはコンテンツ生成の品質に十分な正義を与えていないことが気づかれました。それでは、これらのすべてのパラメーターの影響を見ることが重要であることを示しました。そして、このシリーズの最終部分でこれらを行います。
Source:
https://dzone.com/articles/decoding-llm-parameters-top-p