I have read this blog - # Revolutionizing Language Model Reasoning: Google’s SELF-DISCOVER Prompting Framework
The content is like the following:
In recent years, large language models (LLMs) have shown remarkable promise in a variety of applications, from language translation to chatbots. However, one major challenge in working with LLMs is their limited reasoning capabilities, which can hinder their ability to solve complex problems and understand human-like language.
To address this challenge, researchers from Google DeepMind and the University of Southern California have developed a new approach called the SELF-DISCOVER prompting framework. This framework promises to significantly enhance the reasoning abilities of LLMs, potentially revolutionizing the performance of leading models such as OpenAIs GPT-4 and Googles PaLM 2.
After reading this blog, I felt the urge to try self-discover framework with gpt-4.
How to use it? And How to implement in python?
AI task: which of these is applicable to solving the question? Pick several:
1 How could I devise an experiment to help solve that problem?
2 Make a list of ideas for solving this problem, and apply them one by one to the problem to see if any progress can be made.
3 How could I measure progress on this problem?
4 How can I simplify the problem so that it is easier to solve?
5 What are the key assumptions underlying this problem?
6 What are the potential risks and drawbacks of each solution?
7 What are the alternative perspectives or viewpoints on this problem?
8 What are the long-term implications of this problem and its solutions?
9 How can I break down this problem into smaller, more manageable parts?
10 Critical Thinking: This style involves analyzing the problem from different perspectives, questioning assumptions, and evaluating
the evidence or information available. It focuses on logical reasoning, evidence-based decision-making, and identifying
potential biases or flaws in thinking.
11 Try creative thinking, generate innovative and out-of-the-box ideas to solve the problem. Explore unconventional solutions,
thinking beyond traditional boundaries, and encouraging imagination and originality.
12 Seek input and collaboration from others to solve the problem. Emphasize teamwork, open communication, and leveraging the
diverse perspectives and expertise of a group to come up with effective solutions.
13 Use systems thinking: Consider the problem as part of a larger system and understanding the interconnectedness of various elements.
Focuses on identifying the underlying causes, feedback loops, and interdependencies that influence the problem, and developing holistic
solutions that address the system as a whole.
14 Use Risk Analysis: Evaluate potential risks, uncertainties, and tradeoffs associated with different solutions or approaches to a
problem. Emphasize assessing the potential consequences and likelihood of success or failure, and making informed decisions based
on a balanced analysis of risks and benefits.
15 Use Reflective Thinking: Step back from the problem, take the time for introspection and self-reflection. Examine personal biases,
assumptions, and mental models that may influence problem-solving, and being open to learning from past experiences to improve
16 What is the core issue or problem that needs to be addressed?
17 What are the underlying causes or factors contributing to the problem?
18 Are there any potential solutions or strategies that have been tried before? If yes, what were the outcomes and lessons learned?
19 What are the potential obstacles or challenges that might arise in solving this problem?
20 Are there any relevant data or information that can provide insights into the problem? If yes, what data sources are available,
and how can they be analyzed?
21 Are there any stakeholders or individuals who are directly affected by the problem? What are their perspectives and needs?
22 What resources (financial, human, technological, etc.) are needed to tackle the problem effectively?
23 How can progress or success in solving the problem be measured or evaluated?
24 What indicators or metrics can be used?
25 Is the problem a technical or practical one that requires a specific expertise or skill set? Or is it more of a conceptual or
26 Does the problem involve a physical constraint, such as limited resources, infrastructure, or space?
27 Is the problem related to human behavior, such as a social, cultural, or psychological issue?
28 Does the problem involve decision-making or planning, where choices need to be made under uncertainty or with competing
29 Is the problem an analytical one that requires data analysis, modeling, or optimization techniques?
30 Is the problem a design challenge that requires creative solutions and innovation?
31 Does the problem require addressing systemic or structural issues rather than just individual instances?
32 Is the problem time-sensitive or urgent, requiring immediate attention and action?
33 What kinds of solution typically are produced for this kind of problem specification?
34 Given the problem specification and the current best solution, have a guess about other possible solutions.
35 Let’s imagine the current best solution is totally wrong, what other ways are there to think about the problem specification?
36 What is the best way to modify this current best solution, given what you know about these kinds of problem specification?
37 Ignoring the current best solution, create an entirely new solution to the problem.
38 Let’s think step by step.
39 Let’s make a step by step plan and implement it with good notion and explanation.
Thank you for your message, @_j
But I don’t understand your answer. What are these steps in your answer?
The link provided is to the actual paper instead of someone trying to make a buck (or micropayment) off of Medium.
What I pasted is an example of the complexity of the idea. It looks to quadruple your GPT-4 costs to perform well on certain benchmarks…
Well, are there any implementation examples?
It’s hard to find an implementation method in the paper for me.
They don’t give “here’s github chat completions code”.
I propose “chain of tool reasoning”, where instead real applications are targeted, and an initial AI is provided with a list of all tools and techniques available, conversational context, and can decide on tools, databases, augmentation, even temperature, to focus the next inference AI’s purpose and quality.
The paper doesn’t link to code itself, so you would need to implement it, but the paper gives a good explanation of how to do the 2 stages for the approach:
Stage 1 is pre-processed - a one-time step based on your task. The idea is that different tasks require different approaches. Doing creative writing is different than solving a linguistic puzzle, which is different than reasoning through a set of directions. So “self-discovery” says, for each different task, let ChatGPT figure out the best process, that’s Stage 1. Appendix 1 in the paper breaks Stage 1 into 3 sub-steps, since this is the most crucial part - at the end of Stage 1 you want to have a well-defined JSON schema, created by ChatGPT. The three substeps, done one after the other, each basically have the prompt described in the paper:
Notice that the “SELECT” sub-step lists 39 reasoning modules! That’s what someone pasted in above. Additionally, you have to select examples, and for the “IMPLEMENT” sub-step, you have to give demonstrations. So overall, there would be a good amount of work involved in implementing it.
Compared to that, Stage 2 is very easy. That’s just asking ChatGPT to fill in the JSON values. They say:
For Stage 2, where we use the self-discovered structure to solve the task instances, we start with the prompt: “Follow the step-by-step reasoning plan in JSON to correctly solve the task. Fill in the values following the keys by reasoning specifically about the task given. Do not simply rephrase the keys.”, followed by the reasoning structure, and finally the task instance.
I hope that provides a little bit more detail for you. Their points of comparison are other prompting techniques that require huge amounts of input and output tokens - so yes, self-discovery is going to be way more than a one-off prompt you write, but it’s going to be way less tokens than the other really sophisticated prompting methods. I like their paper and think it’s a really great approach.