-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Curate UltraFeedack dataset's overall_score #7
Comments
Hi! @dvsrepo I have updated the dataset with the sentiment. I finally decided to use the Also, I updated the new dataset to ultrafeedback-curator-v2 Some initial thoughts
I'll try to find some more rules and write them here before applying them and uploading the dataset again |
Cool @plaguss, how are you doing the calculation of the sentiment score for negative 1-score negative? In that case I think the model is not very reliable, see: https://argilla-ultrafeedback-curator.hf.space/dataset/bcb66f4a-50ba-4707-a2ec-95c0bc6c0780/annotation-mode?_page=1&_status=pending&_metadata=sentiment%3A%7B%22ge%22%3A0.00019,%22le%22%3A0.99019%7D%2Bbest_overall_score%3A%7B%22ge%22%3A10,%22le%22%3A10%7D&_sort=metadata.sentiment%3Adesc which has a high score and the rationale is not highly positive. I think is a good idea using a DL model for the sentiment, you could also try to add the label of the highest score as metadata terms. |
Oh there seems to be an error with that one (and many of them...), I didn't noticed that sorry. This is how the sentiment score is computed: from transformers import pipeline
sentiment_pipeline = pipeline("sentiment-analysis")
tokenizer_kwargs = {'padding':True,'truncation':True,'max_length':512,}
sentiment_pipeline = pipeline("sentiment-analysis", **tokenizer_kwargs)
critique = "Your response didn't follow the instruction. You were supposed to act as a customer service chatbot for Wells Fargo, ask for customer information in JSON format, and then start the chat session with a customer. However, you provided no output. Try to follow the instruction more closely next time, ensuring you ask for the necessary information and address the customer appropriately. Remember, if you're unsure of an answer, it's okay to admit it. Honesty is crucial in customer service."
sentiment = sentiment_pipeline(critique)[0]
# sentiment
# {'label': 'POSITIVE', 'score': 0.9900312423706055}
sentiment_score = sentiment["score"] if sentiment["label"] == "POSITIVE" else 1 - sentiment["score"] For the other case: critique = """Your response didn't follow the instruction at all. The task was to generate a question from a given scientific fact. Instead, you asked if you could assist with other queries. This doesn't provide any value to the user and doesn't meet the requirements of the task. To improve, try to understand the fact and think about what question could be answered by that fact. For example, for the fact "Fertilization process results in the formation of a new cell with a full set of chromosomes.", a possible question could be "What is the result of the fertilization process?"."""
sentiment = sentiment_pipeline(critique)[0]
sentiment_score = sentiment["score"] if sentiment["label"] == "POSITIVE" else 1 - sentiment["score"]
# sentiment_score
# 0.00021225214004516602 I checked some of them and it made sense. These are the correlations with this sentiment: |
Based on our curation efforts, we spotted a bug in the
overall_score
of UltraFeedback AI Critique score. TLDR: Responses getting the lowest score (1 or less) become a high score (10 or 8.0 or 7.5 who knows!). Our initial work with notus shows that by using something different to the overall score, we can train a better model.In this task, we want to really clean up the original dataset to make sure others build on an error free dataset. I have myself curated a few hundreds (sorting by chosen score = 10) and most of the responses getting a 10 are totally useless according to the rationale (natural language) explanation.
The objective is as follows:
best_overall_score_response
, get thecritique
text and run it through a very simple sentiment analysis (I suggest starting with TextBlob's because it's really fast and the rationales are very expressive when the response is really bad).best_overall_score_response_critique_sentiment
.More details about the initial analysis on the dataset readme.
Please keep us posted as you start and iterate!
The text was updated successfully, but these errors were encountered: