قامت ما يمكن أن تسمى
مثل أي نموذج من تعلم الماكينة، لدينا نماذج كبيرة لللغة وهي تمتلك خصائص مختلفة تحكم في تنوع من خلال النتائج الناشئة للنص. بدأنا سلسلة متعددة الجزء لنشرح تأثير هذه الخصائص بالدقة. سننتهي بإحداث التوازن المثالي في توليد المحتوى باستخدام جميع هذه الخصائص التي تم مناقشتها في سلسلتنا المتعددة الجزءين.
مرحبا بك في الجزء الثاني حيث نتحدث عن المامور باسم “Top-P.”
Top-P (إختيار النوع)
إذا كان هدفك هو تحكم في تنوع ناتج النموذج، فإن 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% الأعلى من الخيارات المحتملة للكلمة التالية، يوجد الكثير من التكرار في المحتوى المنتج. لذلك يفتقر هذا الرد إلى التنوع وغالبًا ما يكون غير مفهوم أيضًا.
- توب-بي 0.3 – محافظي: النموذج يختار من بين 30% من الخيارات المحتملة للكلمة التالية، لذا فهو أقل محافظة بقليل من إعدادته السابقة للتوب-بي. كما ترون من الناتج، هذا لم يحسن التوليد المحتوياتي، وتم تكرار التعذيب طوال الإنجاز. في هذه الحالة، تعني أن التكرار في التعذيب يعني أكثر من المتواليات المحتملة بعد التعذيب للنموذج هي التعذيب ذاتها.
- توب-بي 0.5 – متوازن: هذه هي المرة التي ترون النموذج يقدم بعدة استراتيجيات مرتدية رقمياً لأول مرة. ما يزال هناك بعض التكرار في هذه الإعدادة أيضًا. ولكن الجزء الأساسي هو أنه في هذه الإعدادة للتوب-بي، يبدأ النموذج بتضمين مجموعة أوسع من الكلمات. الناتج هو خلال مزيج من النصيحة القياسية مع بعض التناقضات. يسمح قيمة توب-بي هذه بتحسين الإبداع ومع ذلك يحاول بصعوبة معالجة عمق المعلومات.
- توب-بي 0.7 – إبداعي: في هذه الحالة، يستطيع النموذج اختيار من مجموعة أوسع من الكلمات، وكما ترون، تتجه الردة الى أسلوب تعريفي. المحتويات أكثر إبداعًا لأنه يشمل أيضًا مشهدًا يعاني من التوتر. العامل السيء هو فقدان التركيز، لأن التأكيد لم يكن على إدارة التوتر ولكن على صعوبات معالجة التوتر.
- توب-بي 0.9 – إبداعي للغاية: في هذه الإعدادة، يتم إلتقاء النموذج مع العديد
من المهم أن نلاحظ من خلال هذا التمرين كيف تتغير المحتويات مع تغير 设置 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 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."
الآن دعونا نتفصيل ونتحليل الخروج لإنتاج القصص الإبداعية والتوضيح التقني وفقاً لل设置 Top-P وكيف تأثير الخروج.
لتوضيح بشكل فعال تأثير Top-P ، قمنا بتضمين أفضل تعليمات لتوجيه الخروج بطريقة تجعل التأثير واضحًا.
إنتاج القصص الإبداعية
- Top-P قليل (تأثير سيء):كما ترون مع أقل Top-P ، يتم إلتزام النموذج باستخدام الكلمات أو العبارات وهذا يسبب التكرار والتقليد. يقيد الإبداع أيضًا في هذه الحالة لأن النموذج يحاول عدم تقدم أفكار جديدة. ولكن إذا نظرتم ، يبقى تواصل المنطق ما يسماه ، ويبقى النموذج على الموضوع ، وهذا ما يميز قيم الTop-P قليل.
- Top-P كبير (تأثير جيد):في هذه الحالة يقدم النموذج أفكار جديدة ويضم زوايا إبداعية إلى الخروج. يستخدم لغة أوسع مما ي增加 عمق وغنى النص. ومع زيادة الإبداع ، يتم قيود تواصل المنطق.
التناقض بين القصص اليدويتين يبرز بوضوح تأث
تفسير تقني
- تأثير الTop-P العالي (تأثير الإيجاد السلبي):كما ترون ، تأثير الTop-P العالي السلبي يؤثر على التفسيرات التقنية بواسطة منع التدفق المنطقي والانحراف عن الموضوع. ويقدم النموذج أيضًا معلومات غير متعلقة والتي لا تتعلق بالتفسير.
- الTop-P الأفضل (تأثير المثالي):يمكن أن تكون التفسير أكثر توافقًا وقريبًا من الموضوع بواسطة الTop-P المناسب. يتم توافق المحتوى أكثر مع التعبير المتوجه وتوازن الدقة والتعبير بشكل جيد. يتم تحسين معاملة المعلومات لأن النموذج يُحدد إلى كلمات أكثر إحتمالًا.
خلاصة
مع هذه التجربة، أظهرنا بنجاح أهمية ما يسمى ما يعرف بالTop-P المتعلق بالسيطرة على العشوائية والإبداع المنبثق من النص المنتج. نظرنا أولًا إلى المواضيع الواحدة وكيف تختلف النتائج مع تغير الTop-P ثم اتجهنا إلى نهج يعتمد أكثر على الحالات لمعرفة كيفية تحكم الTop-P في النتائج وفقاً للحالة.
ومع ذلك، من خلال القسم السابق وهذا الجزء من السلسلة، لاحظنا أنه لا يكون أي ما يلي معيارًا كافيًا لجودة توليد النص. لذلك فإنه من المهم أن ننظر إلى تأثير جميع هذه المعاملات، وسنقوم بذلك كجزء أخير من هذه السلسلة.
Source:
https://dzone.com/articles/decoding-llm-parameters-top-p