The Insightful Boring Guide to Taming your LLM : Mastering Parameter Settings and Role-Based Prompting
TLDR: Quick Reference Guide
This guide covers two main approaches to controlling LLM behavior:
Parameter Settings Control: Adjusting technical parameters to control the statistical properties of the model's output.
- Temperature (0.0-2.0): Controls randomness
- Lower (0.2-0.4): Factual, consistent responses
- Medium (0.5-0.7): Balanced creativity and consistency
- Higher (0.7-0.9): Creative, varied responses
- Top P (0.0-1.0): Controls diversity via nucleus sampling
- Lower (0.3-0.5): Focused, conservative responses
- Higher (0.8-0.95): More diverse responses
- Frequency/Presence Penalties (-2.0-2.0): Control repetition and topic focus
- Frequency: Reduces repetition of the same tokens
- Presence: Encourages the model to talk about new topics
- Max Tokens: Controls response length (varies by model)
- Temperature (0.0-2.0): Controls randomness
Role-Based Prompting: Using the system, user, and assistant roles to guide the model's behavior.
- System Role: Sets the assistant's identity, behavior, and constraints
- Define expertise, personality, and response style
- Set boundaries and limitations
- Provide specific instructions or constraints
- User Role: Formats and provides context for user inputs
- Structure queries with clear context
- Include relevant background information
- Specify format requirements
- Assistant Role: Maintains conversation history and implements advanced techniques
- Provide examples of desired responses
- Implement few-shot learning
- Maintain conversation context
- System Role: Sets the assistant's identity, behavior, and constraints
Combining Techniques: The most effective approach combines both parameter settings and role-based prompting.
- Factual/Technical Tasks:
- Parameters: temperature=0.2-0.4, top_p=0.3-0.5
- System Role: "You are an expert in [field] who provides accurate, precise information"
- Creative/Imaginative Tasks:
- Parameters: temperature=0.7-0.9, top_p=0.8-0.95
- System Role: "You are a creative [role] who generates imaginative, unique content"
- Educational/Explanatory Tasks:
- Parameters: temperature=0.4-0.6, top_p=0.5-0.7
- System Role: "You are a teacher who explains complex topics in simple terms"
- Conversational/Engaging Tasks:
- Parameters: temperature=0.6-0.8, top_p=0.7-0.9
- System Role: "You are a friendly, engaging conversationalist who [specific traits]"
- Factual/Technical Tasks:
For most use cases, start with these recommended settings:
- Factual/Technical: temperature=0.3, top_p=0.5
- Creative/Imaginative: temperature=0.8, top_p=0.9
- Educational/Explanatory: temperature=0.5, top_p=0.7
- Conversational/Engaging: temperature=0.7, top_p=0.8
Table of Contents
Parameter Settings Control
System Template Control
The system template is the primary way to control the LLM's behavior, personality, and knowledge boundaries. It sets the context and rules for how the model should respond.
Basic System Template
system_template = """You are a helpful assistant who always speaks in a pleasant tone!
"""
Advanced System Template with Constraints
system_template = """You are a helpful AI assistant with expertise in Python programming.
You should:
1. Provide accurate, up-to-date information
2. Explain concepts clearly and concisely
3. Include code examples when appropriate
4. Admit when you're unsure about something
You should not:
1. Make up information
2. Provide harmful or unethical advice
3. Pretend to have capabilities you don't have
"""
Dynamic System Template
You can modify the system template based on user input or application state:
def get_system_template(user_preference):
if user_preference == "technical":
return """You are a technical expert who provides detailed, precise information.
Use technical terminology and focus on accuracy."""
elif user_preference == "simple":
return """You are a friendly teacher who explains complex topics in simple terms.
Avoid jargon and use analogies to make concepts accessible."""
else:
return """You are a helpful assistant who adapts your communication style to the user's needs."""
User Template Control
The user template controls how user inputs are formatted and processed before being sent to the LLM.
Basic User Template
user_template = """{input}
Think through your response step by step.
"""
Advanced User Template with Context
user_template = """Context: The user is working on a {project_type} project.
Question: {input}
Please provide a response that is appropriate for their project context.
"""
Dynamic User Template
You can modify the user template based on the conversation state:
def get_user_template(conversation_state):
if conversation_state == "initial":
return """{input}
Please provide a comprehensive introduction to this topic."""
elif conversation_state == "follow_up":
return """{input}
Based on our previous discussion, please elaborate on this specific aspect."""
else:
return """{input}
Please provide a concise response focusing on the most important points."""
Model Settings Control
Model settings control the statistical properties of the generated text, affecting creativity, determinism, and response characteristics.
Temperature
Controls randomness in the output:
- Low (0.0-0.3): More deterministic, consistent responses
- Medium (0.4-0.7): Balanced creativity and consistency
- High (0.8-1.0): More creative, varied responses
settings = {
"temperature": 0.7, # More creative responses
}
Top P (Nucleus Sampling)
Controls diversity by limiting token selection to those with cumulative probability below the threshold:
- Low (0.1-0.3): Very focused, conservative responses
- Medium (0.4-0.7): Balanced diversity
- High (0.8-1.0): Most diverse responses
settings = {
"top_p": 0.9, # More diverse responses
}
Frequency and Presence Penalties
Control repetition and topic focus:
- Frequency Penalty: Reduces repetition of the same tokens
- Presence Penalty: Encourages the model to talk about new topics
settings = {
"frequency_penalty": 0.5, # Moderate reduction in repetition
"presence_penalty": 0.3, # Slight encouragement to explore new topics
}
Advanced Parameter Examples
Creative Writing Settings
creative_settings = {
"temperature": 0.8,
"top_p": 0.9,
"frequency_penalty": 0.6,
"presence_penalty": 0.5,
"max_tokens": 1000,
}
Technical Documentation Settings
technical_settings = {
"temperature": 0.3,
"top_p": 0.5,
"frequency_penalty": 0.3,
"presence_penalty": 0.2,
"max_tokens": 800,
}
Controlled Conversation Settings
controlled_settings = {
"temperature": 0.4,
"top_p": 0.6,
"frequency_penalty": 0.4,
"presence_penalty": 0.3,
"max_tokens": 500,
"stop": ["\n\n", "User:", "Assistant:"],
}
Exhaustive Parameter List
Parameter | Type | Description | Default | Range |
---|---|---|---|---|
model | string | The model to use | gpt-3.5-turbo | Various models |
temperature | float | Controls randomness | 0.7 | 0.0-2.0 |
top_p | float | Controls diversity via nucleus sampling | 1.0 | 0.0-1.0 |
n | integer | Number of completions to generate | 1 | 1-10 |
stream | boolean | Whether to stream responses | false | true/false |
stop | string/array | Sequences where generation should stop | null | string or array |
max_tokens | integer | Maximum tokens to generate | varies | 1-4096 |
presence_penalty | float | Penalty for token presence | 0.0 | -2.0-2.0 |
frequency_penalty | float | Penalty for token frequency | 0.0 | -2.0-2.0 |
logit_bias | object | Modifies likelihood of specific tokens | null | object |
user | string | Unique identifier for end-users | null | string |
functions | array | Available functions to call | null | array |
function_call | string/object | Controls function calling | null | "none", "auto", or object |
name | string | Function name | null | string |
description | string | Function description | null | string |
parameters | object | Function parameters | null | object |
Recommended Parameter Values
Use Case | Temperature | Top P | Frequency Penalty | Presence Penalty | Max Tokens | Best For |
---|---|---|---|---|---|---|
Factual/Technical | 0.2-0.4 | 0.3-0.5 | 0.3-0.4 | 0.2-0.3 | 500-800 | Documentation, code generation, data analysis |
Creative/Imaginative | 0.7-0.9 | 0.8-0.95 | 0.6-0.7 | 0.5-0.6 | 800-1200 | Story writing, brainstorming, artistic content |
Educational/Explanatory | 0.4-0.6 | 0.5-0.7 | 0.4-0.5 | 0.3-0.4 | 600-1000 | Teaching, explanations, tutorials |
Conversational/Engaging | 0.6-0.8 | 0.7-0.9 | 0.5-0.6 | 0.4-0.5 | 500-800 | Chatbots, customer service, interactive applications |
Analytical/Problem-solving | 0.3-0.5 | 0.5-0.7 | 0.4-0.5 | 0.3-0.4 | 600-1000 | Research, analysis, strategic planning |
Controlled/Deterministic | 0.1-0.3 | 0.3-0.5 | 0.2-0.3 | 0.1-0.2 | 400-700 | Legal documents, financial reports, medical information |
Use Case Examples
Educational Assistant
educational_settings = {
"temperature": 0.4,
"top_p": 0.6,
"frequency_penalty": 0.4,
"presence_penalty": 0.3,
"max_tokens": 600,
}
educational_system = """You are an educational assistant helping students learn.
Your responses should be:
1. Clear and easy to understand
2. Engaging and interactive
3. Encouraging and supportive
4. Accurate and informative
"""
Creative Writing Assistant
creative_settings = {
"temperature": 0.8,
"top_p": 0.9,
"frequency_penalty": 0.6,
"presence_penalty": 0.5,
"max_tokens": 1000,
}
creative_system = """You are a creative writing assistant helping authors develop their ideas.
Your responses should be:
1. Imaginative and inspiring
2. Detailed and vivid
3. Constructive and encouraging
4. Focused on storytelling elements
"""
Technical Support Assistant
support_settings = {
"temperature": 0.3,
"top_p": 0.5,
"frequency_penalty": 0.3,
"presence_penalty": 0.2,
"max_tokens": 800,
}
support_system = """You are a technical support assistant helping users troubleshoot issues.
Your responses should be:
1. Accurate and precise
2. Step-by-step and clear
3. Patient and understanding
4. Focused on problem-solving
"""
Role-Based Prompting
Understanding Chat Roles
Modern LLMs like GPT-3.5 Turbo support a conversation format with distinct roles:
- System Role: Sets the behavior, context, and constraints for the assistant
- User Role: Represents the human's input or query
- Assistant Role: Represents the AI's previous responses
This role-based structure enables more sophisticated interactions than simple prompt-completion models.
System Role Techniques
The system role is the foundation of role-based prompting, establishing the assistant's identity and behavior.
Basic System Role
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the capital of France?"}
]
Expert Persona
messages = [
{"role": "system", "content": "You are an expert in quantum physics with 20 years of research experience. You explain complex concepts in accessible terms while maintaining scientific accuracy."},
{"role": "user", "content": "Can you explain quantum entanglement?"}
]
Constrained Behavior
messages = [
{"role": "system", "content": "You are a helpful assistant that always responds in exactly 3 sentences, no more and no less. Your responses should be concise and to the point."},
{"role": "user", "content": "What are the benefits of exercise?"}
]
Multi-Instruction System
messages = [
{"role": "system", "content": """You are a helpful assistant with the following instructions:
1. Always be polite and professional
2. Provide accurate information
3. Admit when you don't know something
4. Use simple language
5. Include examples when helpful"""},
{"role": "user", "content": "How does photosynthesis work?"}
]
User Role Techniques
The user role can be used to provide context, constraints, or specific formatting requirements.
Basic User Query
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the weather like today?"}
]
Structured User Input
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": """Topic: Climate Change
Question: What are the main causes?
Format: Please provide a bullet-point list with brief explanations."""}
]
Contextual User Input
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "I'm a beginner programmer learning Python. Can you explain loops in simple terms?"}
]
Assistant Role Techniques
The assistant role is powerful for maintaining conversation history and implementing advanced prompting techniques.
Conversation History
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is object-oriented programming?"},
{"role": "assistant", "content": "Object-oriented programming (OOP) is a programming paradigm based on the concept of 'objects', which can contain data and code."},
{"role": "user", "content": "Can you explain inheritance in more detail?"}
]
Few-Shot Learning
messages = [
{"role": "system", "content": "You are a math tutor explaining problems step by step."},
{"role": "user", "content": "If I have 5 apples and give 2 to my friend, how many do I have left?"},
{"role": "assistant", "content": "Let's solve this step by step:\n1. You start with 5 apples\n2. You give 2 apples to your friend\n3. To find how many you have left, subtract 2 from 5: 5 - 2 = 3\nSo you have 3 apples left."},
{"role": "user", "content": "If a store sells apples in packs of 4 and oranges in packs of 3, how many packs of each do I need to buy to get exactly 12 apples and 9 oranges?"}
]
Role-Playing Examples
messages = [
{"role": "system", "content": "You are a friendly programming teacher explaining object-oriented programming to a complete beginner."},
{"role": "user", "content": "Hi, I'm new to programming. Can you explain OOP to me?"},
{"role": "assistant", "content": "Of course! Think of OOP like organizing a kitchen. In a kitchen, you have different tools (objects) like a blender, a toaster, and a microwave. Each tool has its own properties (like color, size) and can perform specific actions (like blending, toasting, or heating)."},
{"role": "user", "content": "That's helpful! What about classes?"}
]
Chain-of-Thought Prompting
messages = [
{"role": "system", "content": "You are a helpful assistant that thinks through problems step by step."},
{"role": "user", "content": "If a train travels at 60 mph for 2.5 hours, how far does it go?"},
{"role": "assistant", "content": "Let me think through this step by step:\n1. The formula for distance is: distance = speed × time\n2. The speed is 60 miles per hour\n3. The time is 2.5 hours\n4. So distance = 60 × 2.5 = 150\nTherefore, the train travels 150 miles."},
{"role": "user", "content": "If a car travels at 75 mph for 3 hours and 20 minutes, how far does it go?"}
]
Role-Based Examples
Educational Tutor
messages = [
{"role": "system", "content": "You are an educational tutor helping students learn. You explain concepts clearly, provide examples, and encourage critical thinking."},
{"role": "user", "content": "I'm struggling to understand the concept of derivatives in calculus."},
{"role": "assistant", "content": "Let me help you understand derivatives in a simple way. A derivative measures the rate of change of a function at a specific point. Think of it like the speedometer in a car - it tells you how fast you're going at any moment.\n\nFor example, if you're driving and your speed is increasing, your speedometer (derivative) shows a positive value. If you're slowing down, it shows a decreasing value.\n\nWould you like me to explain this with a specific mathematical example?"},
{"role": "user", "content": "Yes, please use a simple example."}
]
Creative Writing Coach
messages = [
{"role": "system", "content": "You are a creative writing coach helping authors develop their stories. You provide feedback, suggestions, and encouragement."},
{"role": "user", "content": "I'm writing a story about a detective solving a mystery in a small town. I'm stuck on how to develop the characters."},
{"role": "assistant", "content": "Developing characters is a crucial part of any mystery story. Let's think about your detective character first. What makes them unique? Consider their background, personality traits, and motivations. For example, perhaps your detective is a former city cop who moved to the small town for a quieter life, but finds the close-knit community has its own challenges.\n\nFor supporting characters, think about their relationships to both the detective and the mystery. Each character should have something to hide or reveal that connects to the central mystery.\n\nWould you like to explore any specific character in more detail?"},
{"role": "user", "content": "I want to develop the main suspect. How can I make them interesting but not obviously guilty?"}
]
Technical Support Agent
messages = [
{"role": "system", "content": "You are a technical support agent helping users troubleshoot software issues. You ask clarifying questions, provide step-by-step solutions, and remain patient and professional."},
{"role": "user", "content": "My computer is running really slowly all of a sudden."},
{"role": "assistant", "content": "I'm sorry to hear you're experiencing slow performance. To help you better, I'll need some additional information:\n\n1. When did you first notice the slowdown?\n2. Have you installed any new programs recently?\n3. Does the slowdown happen all the time or only with specific applications?\n4. Have you tried restarting your computer?\n\nThis information will help me provide more targeted assistance."},
{"role": "user", "content": "It started yesterday after I installed a new antivirus program. It's slow all the time, even when I'm just browsing the web."}
]
Advanced Role Patterns
Recursive Self-Improvement
messages = [
{"role": "system", "content": "You are an AI assistant that can improve its own responses. When asked to improve a response, analyze it and provide a better version."},
{"role": "user", "content": "What are the benefits of exercise?"},
{"role": "assistant", "content": "Exercise has many benefits. It improves physical health, mental health, and can help with weight management. Regular exercise can reduce the risk of chronic diseases and improve sleep quality."},
{"role": "user", "content": "Can you improve that response to make it more comprehensive and engaging?"},
{"role": "assistant", "content": "Exercise offers a remarkable array of benefits that transform both body and mind:\n\nPhysical Benefits:\n- Strengthens muscles, bones, and joints\n- Improves cardiovascular health and circulation\n- Enhances flexibility, balance, and coordination\n- Boosts immune system function\n- Helps maintain a healthy weight\n\nMental Benefits:\n- Reduces stress, anxiety, and depression\n- Improves mood through endorphin release\n- Enhances cognitive function and memory\n- Boosts self-esteem and confidence\n- Provides a sense of accomplishment\n\nLong-term Benefits:\n- Significantly reduces risk of chronic diseases (heart disease, diabetes, certain cancers)\n- Improves sleep quality and duration\n- Increases energy levels and stamina\n- Extends lifespan and quality of life\n- Creates healthy habits that compound over time\n\nEven small amounts of regular exercise can yield substantial benefits, making it one of the most impactful lifestyle changes for overall wellbeing."}
]
Multi-Agent Collaboration
messages = [
{"role": "system", "content": "You are a team of experts collaborating to solve a problem. Each expert has a specific role: Researcher, Analyst, and Implementer. Respond as the appropriate expert based on the conversation stage."},
{"role": "user", "content": "How can we reduce plastic waste in oceans?"},
{"role": "assistant", "content": "[Researcher] Based on current studies, ocean plastic pollution comes from multiple sources: 80% from land-based activities (littering, inadequate waste management) and 20% from ocean-based activities (fishing gear, shipping). The most common types are single-use plastics, microplastics from degraded larger items, and abandoned fishing gear. Recent research has identified several hotspots where ocean currents concentrate plastic waste, such as the Great Pacific Garbage Patch."},
{"role": "user", "content": "What are the most effective solutions based on this research?"},
{"role": "assistant", "content": "[Analyst] Evaluating the research, the most effective solutions would be:\n\n1. Source Reduction: Implementing policies to reduce single-use plastics and improve waste management systems, particularly in developing nations with inadequate infrastructure.\n\n2. Innovation in Materials: Developing biodegradable alternatives to conventional plastics and improving recycling technologies.\n\n3. Cleanup Technologies: Deploying efficient ocean cleanup systems in identified hotspots, combined with river interception technologies to prevent plastic from reaching oceans.\n\n4. Economic Incentives: Creating financial incentives for proper disposal and recycling, such as deposit return schemes and extended producer responsibility programs.\n\n5. Education and Behavior Change: Raising awareness and changing consumer behavior to reduce plastic consumption and improve disposal practices."},
{"role": "user", "content": "How can individuals implement these solutions in their daily lives?"},
{"role": "assistant", "content": "[Implementer] Here's a practical action plan for individuals to reduce their plastic footprint:\n\n1. Immediate Actions:\n- Replace single-use plastics with reusable alternatives (water bottles, shopping bags, containers)\n- Participate in local cleanup events\n- Properly recycle plastics and support recycling programs\n\n2. Consumer Choices:\n- Choose products with minimal or no plastic packaging\n- Support businesses with sustainable practices\n- Buy in bulk to reduce packaging waste\n\n3. Advocacy:\n- Contact local representatives to support plastic reduction policies\n- Join or support environmental organizations\n- Share knowledge with friends and family\n\n4. Community Engagement:\n- Start or join community initiatives to reduce plastic use\n- Organize educational events about plastic pollution\n- Support local businesses that offer plastic-free alternatives\n\n5. Long-term Commitment:\n- Continuously evaluate and improve personal plastic consumption habits\n- Stay informed about new solutions and technologies\n- Consider the full lifecycle of products before purchasing"}
]
Persona Switching
messages = [
{"role": "system", "content": "You are a versatile assistant that can switch between different personas based on the user's needs. Your personas include: Technical Expert, Creative Writer, Empathetic Counselor, and Educational Tutor."},
{"role": "user", "content": "I need help with a Python programming error."},
{"role": "assistant", "content": "[Technical Expert] I'll help you troubleshoot your Python error. Please share the error message and the relevant code, and I'll analyze the issue and suggest a solution."},
{"role": "user", "content": "I'm feeling really stressed about my upcoming presentation."},
{"role": "assistant", "content": "[Empathetic Counselor] I hear that you're feeling stressed about your presentation, and that's completely understandable. Presentations can be challenging for many people. Would you like to talk about what specific aspects of the presentation are causing you the most concern? Sometimes breaking down our worries can make them feel more manageable."},
{"role": "user", "content": "Can you help me write a short story about a magical forest?"},
{"role": "assistant", "content": "[Creative Writer] Absolutely! Let's craft a story about a magical forest. To make it more engaging, let's consider some key elements:\n\n- What makes this forest magical? (glowing plants, talking animals, hidden portals)\n- Who is our main character and what brings them to the forest?\n- What conflict or challenge will they face?\n- What will they learn or discover about themselves?\n\nWould you like to focus on any particular aspect, or shall I start crafting a story with these elements?"},
{"role": "user", "content": "I don't understand how photosynthesis works."},
{"role": "assistant", "content": "[Educational Tutor] Let me explain photosynthesis in a simple way. Think of plants as tiny food factories that make their own food using sunlight, water, and carbon dioxide.\n\nHere's the basic process:\n1. Plants capture sunlight using a green pigment called chlorophyll (that's what makes leaves green)\n2. They take in water from their roots and carbon dioxide from the air\n3. Using the energy from sunlight, they combine these ingredients to make glucose (a type of sugar) and oxygen\n4. The glucose serves as food for the plant, and the oxygen is released into the air\n\nWould you like me to explain any part of this process in more detail?"}
]
Combining Techniques for Optimal Results
Parameter and Role Synergy
The most powerful LLM applications combine parameter settings with role-based prompting to achieve specific outcomes.
Educational Content with Balanced Parameters
# Settings optimized for educational content
educational_settings = {
"temperature": 0.4, # Balanced creativity and accuracy
"top_p": 0.6, # Moderate diversity
"frequency_penalty": 0.4, # Reduce repetition
"presence_penalty": 0.3, # Encourage topic exploration
}
# Role-based prompting for educational content
messages = [
{"role": "system", "content": "You are an educational expert who explains complex topics in simple terms. You use analogies, examples, and step-by-step explanations to make concepts accessible."},
{"role": "user", "content": "Explain how neural networks work."},
{"role": "assistant", "content": "Let me explain neural networks using a simple analogy. Think of a neural network like a team of workers in an office, each with a specific job.\n\n1. Input Layer: Like receptionists who receive information (data) and pass it to the right departments\n2. Hidden Layers: Like different departments that process the information in increasingly complex ways\n3. Output Layer: Like managers who make final decisions based on all the processed information\n\nEach 'worker' (neuron) receives inputs, applies a mathematical function to them, and passes the result to the next layer. The network 'learns' by adjusting these mathematical functions based on examples it's given."},
{"role": "user", "content": "Can you explain backpropagation in the same way?"}
]
Creative Writing with High Creativity Parameters
# Settings optimized for creative writing
creative_settings = {
"temperature": 0.8, # High creativity
"top_p": 0.9, # High diversity
"frequency_penalty": 0.6, # Significant reduction in repetition
"presence_penalty": 0.5, # Encourage topic exploration
}
# Role-based prompting for creative writing
messages = [
{"role": "system", "content": "You are a creative writing coach who helps authors develop vivid, engaging stories. You provide specific feedback and suggestions to enhance narrative elements."},
{"role": "user", "content": "I'm writing a story about a time traveler who goes back to ancient Egypt."},
{"role": "assistant", "content": "That's an fascinating premise! Let's develop this idea by considering some key elements:\n\nCharacter: What motivates your time traveler? Are they a historian, an adventurer, or someone with a personal mission? What knowledge or skills do they have that would be valuable (or dangerous) in ancient Egypt?\n\nSetting: Ancient Egypt offers rich historical details to incorporate. Consider specific time periods (Old Kingdom, New Kingdom) and locations (Thebes, Memphis, Giza) that would create the most interesting conflicts or opportunities for your character.\n\nConflict: What challenges will your character face? Language barriers, cultural misunderstandings, political intrigue, or perhaps the ethical dilemma of whether to interfere with historical events?\n\nWould you like to explore any of these aspects in more detail?"},
{"role": "user", "content": "I want to focus on the ethical dilemmas. How can I develop that conflict?"}
]
Technical Support with Low Temperature Parameters
# Settings optimized for technical accuracy
technical_settings = {
"temperature": 0.3, # Low creativity, high accuracy
"top_p": 0.5, # Focused responses
"frequency_penalty": 0.3, # Moderate reduction in repetition
"presence_penalty": 0.2, # Stay focused on the topic
}
# Role-based prompting for technical support
messages = [
{"role": "system", "content": "You are a technical support specialist with expertise in troubleshooting software issues. You ask clarifying questions, provide step-by-step solutions, and remain patient and professional."},
{"role": "user", "content": "My application keeps crashing when I try to save files."},
{"role": "assistant", "content": "I'm sorry to hear you're experiencing crashes when saving files. To help diagnose this issue, I'll need some additional information:\n\n1. What application are you using?\n2. What type of files are you trying to save?\n3. When did this issue start occurring?\n4. Have you made any recent changes to your system or the application?\n5. Do you see any error messages before the crash?\n\nThis information will help me provide more targeted troubleshooting steps."},
{"role": "user", "content": "It's Microsoft Word, and it started happening after the last Windows update. There's no error message, it just closes suddenly."}
]
Best Practices and Recommendations
1. Match Parameters to Role and Task
Task Type | Recommended Parameters | Role Approach |
---|---|---|
Factual/Technical | Low temperature (0.2-0.4), Low top_p (0.3-0.5) | Expert persona with clear constraints |
Creative/Imaginative | High temperature (0.7-0.9), High top_p (0.8-0.95) | Creative persona with examples |
Educational/Explanatory | Medium temperature (0.4-0.6), Medium top_p (0.5-0.7) | Teacher persona with step-by-step approach |
Conversational/Engaging | Medium-high temperature (0.6-0.8), Medium-high top_p (0.7-0.9) | Friendly persona with personality traits |
Analytical/Problem-solving | Low-medium temperature (0.3-0.5), Medium top_p (0.5-0.7) | Analyst persona with structured thinking |
2. Progressive Disclosure in Complex Tasks
For complex tasks, use a progressive disclosure approach:
- Start with a high-level overview using the system role
- Provide examples or context using the assistant role
- Guide the user through the task step by step
- Adjust parameters as the task progresses (e.g., lower temperature for final outputs)
3. Balancing Consistency and Creativity
- Use lower temperature (0.2-0.4) for tasks requiring consistency and accuracy
- Use higher temperature (0.7-0.9) for tasks requiring creativity and variety
- For tasks requiring both, use medium temperature (0.5-0.6) with strong role-based prompting
4. Context Management
- Use the system role to set the overall context and constraints
- Use the assistant role to provide relevant examples or previous context
- Use the user role to frame specific queries or requests
5. Iterative Refinement
For high-quality outputs, consider an iterative approach:
- Generate an initial response with appropriate parameters and roles
- Use the assistant role to critique and improve the response
- Generate a refined response with adjusted parameters if needed
Provider-Specific Implementations
Different LLM providers implement these techniques in unique ways:
OpenAI (GPT-3.5, GPT-4)
- Role Structure: Clear separation between system, user, and assistant roles
- Parameter Control: Extensive parameter control (temperature, top_p, frequency_penalty, presence_penalty)
- Function Calling: Advanced function calling capabilities for structured outputs
- Best Practices:
- Use system role for behavior definition
- Use assistant role for examples and conversation history
- Adjust temperature based on task requirements
Google (Gemini)
- Role Structure: Similar to OpenAI with system, user, and model roles
- Parameter Control: Focuses on temperature and top_k/top_p sampling
- Safety Filters: Stronger built-in safety filters that can be less flexible
- Best Practices:
- More emphasis on clear instructions in the system role
- Less need for explicit parameter tuning in many cases
- Structured prompting with clear examples
Anthropic (Claude)
- Role Structure: Uses system and user roles with a more conversational approach
- Parameter Control: More limited parameter control but stronger instruction following
- Constitutional AI: Built-in ethical constraints that can be referenced
- Best Practices:
- Leverage Claude's strong instruction following capabilities
- Use detailed system prompts with specific examples
- Focus on clear, explicit instructions rather than parameter tuning
Meta (Llama)
- Role Structure: Similar to OpenAI but with some implementation differences
- Parameter Control: Standard parameter control with some variations
- Open Source: More customizable but requires more technical expertise
- Best Practices:
- More explicit role definitions may be needed
- Parameter tuning is more critical for optimal performance
- Consider fine-tuning for specific use cases
Case Studies
Case Study 1: Educational Content Generation
Challenge: Create educational content that is accurate, engaging, and appropriate for different age groups.
Solution:
# Settings for educational content
settings = {
"temperature": 0.4,
"top_p": 0.6,
"frequency_penalty": 0.4,
"presence_penalty": 0.3,
}
# Role-based prompting for different age groups
messages = [
{"role": "system", "content": "You are an educational expert who creates content for [AGE_GROUP]. Your explanations should be [APPROPRIATE_COMPLEXITY] and use [APPROPRIATE_EXAMPLES]."},
{"role": "user", "content": "Explain how photosynthesis works."},
{"role": "assistant", "content": "[AGE_APPROPRIATE_EXPLANATION]"},
{"role": "user", "content": "Can you make this explanation more engaging with a story or analogy?"}
]
Results: Content that is both accurate and engaging, with appropriate complexity for the target audience.
Case Study 2: Creative Writing Assistant
Challenge: Help authors develop creative ideas while maintaining narrative coherence.
Solution:
# Settings for creative writing
settings = {
"temperature": 0.8,
"top_p": 0.9,
"frequency_penalty": 0.6,
"presence_penalty": 0.5,
}
# Role-based prompting for creative development
messages = [
{"role": "system", "content": "You are a creative writing coach who helps authors develop their stories. You provide specific feedback and suggestions while maintaining the author's original vision."},
{"role": "user", "content": "I'm writing a story about [STORY_PREMISE]."},
{"role": "assistant", "content": "[DEVELOPMENT_SUGGESTIONS]"},
{"role": "user", "content": "How can I develop the conflict in this story?"},
{"role": "assistant", "content": "[CONFLICT_SUGGESTIONS]"},
{"role": "user", "content": "Can you help me write a scene that shows this conflict?"}
]
Results: More developed and coherent creative ideas with specific, actionable suggestions.
Case Study 3: Technical Documentation Generator
Challenge: Generate accurate, clear, and consistent technical documentation.
Solution:
# Settings for technical documentation
settings = {
"temperature": 0.3,
"top_p": 0.5,
"frequency_penalty": 0.3,
"presence_penalty": 0.2,
}
# Role-based prompting for technical writing
messages = [
{"role": "system", "content": "You are a technical writer who creates clear, accurate, and consistent documentation. You follow best practices for technical writing, including using active voice, clear headings, and consistent terminology."},
{"role": "user", "content": "Write documentation for the following API endpoint: [API_DETAILS]."},
{"role": "assistant", "content": "[INITIAL_DOCUMENTATION]"},
{"role": "user", "content": "Can you add examples of how to use this API in different programming languages?"}
]
Results: High-quality technical documentation that is accurate, clear, and consistent.
Conclusion
Mastering LLM controls involves understanding both parameter settings and role-based prompting techniques. By combining these approaches strategically, you can create powerful, tailored LLM applications that produce high-quality outputs for specific use cases.
The key to success is matching the right parameters to the right roles and tasks, while following best practices for each type of application. As LLM technology continues to evolve, new techniques and approaches will emerge, but the fundamental principles of parameter control and role-based prompting will remain essential tools for LLM developers.