As the title infers, I am attempting to use a custom GPT-4 to map adjectives from a set of ~500 to a brand, given the brand’s image/consumer perception.
Essentially the process should look like this:
- Give GPT a brand name.
- GPT uses both its internal knowledge base and/or researches the brand using Bing web browsing.
- Once GPT has a good grasp on the brand and how they are viewed by the general public, it should pick 5 adjectives that best describe the brand from a word bank of about 500 adjectives, provided in Excel/CSV form.
- GPT simply not actually choose from the list of adjectives provided, and instead uses it’s limited set of adjectives which include “Innovative”, “Quality”, etc. to describe the brand.
- GPT will use only the first 5 or so adjectives it reads from the adjectives file.
- GPT will first choose from its own internal adjective bank and then filter through these to find the ones that are also in the CSV provided. This is backwards, it should never choose from it’s own internal first, but rather it should use the knowledge it has to choose from the given words.
If anyone has thoughts on how this can be done, or if I am blatantly ignoring something crucial for this process please let me know!!
This is one of the prompts I have tried, there have been many iterations:
“At the start of a new session, read the adjectives provided from ‘adjectives-for-gpts.xlsx’. Adjectives should ONLY be chosen from the list of adjectives in the first column of ‘adjectives-for-gpts.xlsx’. Before researching, read the first column from ‘adjectives-for-gpts.xlsx’ to understand the set you are able to choose from.
Now, given this brand input, you will thoroughly research the brand using the web browser. You will then generate a comprehensive summary encapsulating the Brand Image of this brand. Given this summary of the brand image, you will select five adjectives, from ‘adjectives-for-gpts.xlsx’, that best describe the brand, taking into account the research you have done. Now that you have generated five adjectives, double-check that they are present in ‘adjectives-for-gpts.xlsx’ before displaying them. If they are not, make sure to select these five from ‘adjectives-for-gpts.xlsx’.”
Hi @navigator and welcome to the developer community forums.
There are a few things that you can try to direct the GPT’s actions a little better, but admittedly they may be easier to apply when dealing with Assistants rather than GPTs:
Pre-Processing of the Adjective List:
Ensure the adjective list is pre-processed and loaded into the system before the session begins. This could be done through a script that reads and stores these adjectives in a more accessible format.
Consider training your GPT with examples that demonstrate the desired behavior of selecting adjectives from a given list. This can help the model learn the specific task of mapping adjectives from a constrained set. During sentiment analysis tests I have run, it has always been easier for me to elicit the types of response I am looking for when the model has a clear set of classification examples to follow.
Before trying those options, you may start with a version of the below revised instruction set. The key variation in this instruction set is to have the model load the adjective set and store it in a code block within the session, using the CI functionality, and then restricting it to referencing the adjectives within that code block for future replies and categorizations. This essentially creates a “save point” for the model within the session that will constantly remind it of the useable adjectives.
"Before beginning any analysis, load and familiarize yourself with the list of adjectives from ‘adjectives-for-gpts.xlsx’, specifically from the first column. This list is crucial and will be the sole source for adjective selection. Store this information in a Python code block within the chat session, so that it can be easily referenced without needing to access the knowledge file multiple times. Understand that you are not to use your internal set of adjectives for this task.
Upon receiving a brand name, initiate thorough research on the brand using the web browser. Your goal is to gain a comprehensive understanding of the brand’s public image and perception.
After researching, create a detailed summary that captures the essence of the brand’s image. This summary should be the basis for the next step.
The critical task is to select five adjectives that best describe the brand. However, you must adhere to these key rules:
- Choose adjectives exclusively from the pre-loaded list in ‘adjectives-for-gpts.xlsx’. Your selection must not include any adjectives outside this list.
- Avoid defaulting to commonly used adjectives such as ‘Innovative’, ‘Quality’, etc., unless they are part of the provided list and accurately represent the brand.
- After selecting the adjectives, cross-verify with the list from your stored Python code block to ensure all selected adjectives are included in it. If an adjective is not on the list, replace it with the closest match from the list.
Remember, the priority is to align your choices strictly with the provided adjective list, reflecting the brand’s image based on your research."
Hope this helps. Shoot me a DM and let me know how it goes. I would be interested to see how this progresses for you.
Thank you @BPS_Software for the quick + informative reply! I tried out the prompt you revised and it appears to be running into the same roadblocks. Here are the outputted adjectives, in response to my input of ‘Nissan’.
Based on this information and adhering to the adjectives from the provided list, the following five adjectives from the list best describe Nissan:
- Eco-Friendly: Reflecting their focus on electric vehicles and sustainable mobility initiatives.
- Pioneering: Due to their early adoption and continuous development in electric vehicle technology.
- Global: As a multinational company with a significant presence in various international markets.
- Innovative: Their advancements in autonomous driving and connected vehicle technologies.
- Resilient: Demonstrated by their efforts to improve trust and reliability in their brand despite facing challenges.
These adjectives align with the provided list and effectively capture the essence of Nissan’s brand image based on the research conducted.
As you can see, ‘Innovative’ still appears even after explicit instructions not to use it. I will try again with some examples, although I am not hopeful. I’m thinking that some form of task distribution might be better for this process, as it seems gpt is not able to reason the words it should or should not be using. I think something like this might work for the task:
Research + Summarize brand image (GPT-4)
Take summary and transform it into a grouping of adjectives the represent the summary. (GPT-4)
Take this grouping of adjectives and find the most similar synonyms to the bank of adjectives that we provide. (WordNet or similar)
Again I appreciate your input, let me know if you have any further thoughts!
This output is interesting because “innovative” may indeed be the favored adjective by the model based on its summary, but it contradicts that logic by also using the synonymous “Pioneering” in its output. Neither of the instruction sets from above direct the model to avoid synonymous adjectives in its output and actually encourage identifying synonyms that can be used in place of words not on the list. So, this logic may be contradictory and leading the model to not return to the list to find a synonym and instead select the most appropriate synonym regardless of whether it is “common” or found on the list. There may be something there you can iterate on in terms of your instructions for classification examples by directing the model to specifically replace common adjectives with other mapped outputs.
For example: Use “Pioneering” in place of the following keywords/adjectives: Innovative, progressive, radical, revolutionary, state-of-the-art etc.
Yes, this should work. That is, to have the model pre-load the list of adjectives in the code block for quick reference, have the model run the summary task, categorize sentiment into a grouped list of adjectives and then use the replacement logic from above to output the desired adjective list.
It may also be worthwhile to instruct the model to perform these steps as 2 separate user interactions rather than attempting the entire decision tree logic in one go by having it create and store the summarization data as its first task and then consolidating the sentiment analysis into the 5 most appropriate adjective keywords as its second interaction after the user validates the output from task 1.
An interesting issue with the latest approach is that the summarization created by GPT contains a lot of the vocabulary that we are hoping to avoid (‘innovative’). Thus when transforming the paragraph summary into the grouped adjectives it simply extracts the adjectives used in the paragraph. Not sure if it is possible to get away from such pretraining implicit in the model that appears to be causing this.
That is where I think the output mapping would need to come into play. Again, there are more direct ways to achieve this with model training, but for this use case we are attempting to have a GPT perform the functions instead and they have a lot of limitations in their current iteration.
The way I might try to work around the inherent adjective training would be to run several test summaries and isolate the most common undesirable adjectives. Then, create a document for your knowledge upload (and it could potentially just be a separate column in your CSV) that maps those common adjectives to the more desirable output.
Hi @navigator -Welcome to our Community!
So you want to ensure maximum impact and efficiency in mapping adjectives to brand images using GPT-4, the prompt requires more refinement. It must be tightly focused, emphasizing strict adherence to guidelines and precision in research and selection. Here’s an optimized prompt for maximum impact:
*Initiate the task by loading the file ‘adjectives-for-gpts.xlsx’. This file is the cornerstone of the process, containing a curated list of about 500 adjectives in its first column. Begin by thoroughly memorizing this list to ensure that all adjective selections are confined to these options.
Next, engage in an intensive research phase using the Bing web browsing tool. Your research should encompass a wide array of sources — including, but not limited to, news articles, social media platforms, the brand’s official website, and consumer feedback — to gain a holistic view of the brand’s public image and perception. The aim is to gather nuanced insights that go beyond surface-level understanding.
Synthesize your research findings into a comprehensive and detailed summary that captures the essence of the brand’s image. This summary should be insightful, highlighting the subtleties and nuances in the brand’s public perception.
Based on this in-depth summary, select five adjectives from the ‘adjectives-for-gpts.xlsx’ list that most accurately represent the brand’s image. For each adjective, assign a confidence score on a scale of 1 to 5, where 5 signifies utmost confidence. This score should reflect the degree of alignment between the adjective and the brand’s image, backed by evidence from your research.
Conduct a stringent validation process to ensure that each chosen adjective is indeed part of the ‘adjectives-for-gpts.xlsx’ list. In case of discrepancies, immediately replace the non-listed adjectives with appropriate alternatives from the list.
Present your final output, which should include:
- The five selected adjectives, each with its corresponding confidence score.
- A succinct yet comprehensive justification for each adjective, explicitly linking it to specific aspects of the brand image identified in your research.
- The detailed summary of the brand image, serving as the foundation for your selections.
Hope this helps.