HelpingAI-3B: Emotionally Intelligent Conversational AI

logo

Overview

HelpingAI-3B-v3 is a Small language model designed for emotionally intelligent conversational interactions. It is trained to engage users with empathy, understanding, and supportive dialogue across a wide range of topics and contexts. The model aims to provide a supportive AI companion that can attune to users' emotional states and communicative needs.

Objectives

  • Engage in open-ended dialogue while displaying emotional intelligence
  • Recognize and validate user emotions and emotional contexts
  • Provide supportive, empathetic, and psychologically-grounded responses
  • Avoid insensitive, harmful, or unethical speech
  • Continuously improve emotional awareness and dialogue skills

Methodology

HelpingAI-3B is based on the HelpingAI series and further trained using:

  • Supervised learning on large dialogue datasets with emotional labeling
  • Reinforcement learning with a reward model favoring emotionally supportive responses
  • Constitution training to instill stable and beneficial objectives
  • Knowledge augmentation from psychological resources on emotional intelligence

Emotional Quotient (EQ)

HelpingAI-3B-v3 has achieved an impressive Emotional Quotient (EQ) of 81.97, surpassing many AI models in emotional intelligence. This EQ score reflects its advanced ability to understand and respond to human emotions in a supportive and empathetic manner.

benchmarks

Usage code

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer

# Let's bring in the big guns! Our super cool HelpingAI-3B model
model = AutoModelForCausalLM.from_pretrained("OEvortex/HelpingAI-3B-chat", trust_remote_code=True, torch_dtype=torch.float16).to("cuda")

# We also need the special HelpingAI translator to understand our chats
tokenizer = AutoTokenizer.from_pretrained("OEvortex/HelpingAI-3B-chat", trust_remote_code=True, torch_dtype=torch.float16)

# This TextStreamer thingy is our secret weapon for super smooth conversation flow
streamer = TextStreamer(tokenizer)

# Now, here comes the magic! ✨ This is the basic template for our chat
prompt = """
<|im_start|>system: {system}
<|im_end|>
<|im_start|>user: {insaan}
<|im_end|>
<|im_start|>assistant:
"""

# Okay, enough chit-chat, let's get down to business!  Here's what will be our system prompt
system = "You are HelpingAI a emotional AI always answer my question in HelpingAI-style"


# And the insaan is curious (like you!) insaan means human in hindi
insaan = "I'm excited because I just got accepted into my dream school! I wanted to share the good news with someone."

# Now we combine system and user messages into the template, like adding sprinkles to our conversation cupcake
prompt = prompt.format(system=system, insaan=insaan)

# Time to chat! We'll use the tokenizer to translate our text into a language the model understands
inputs = tokenizer(prompt, return_tensors="pt", return_attention_mask=False).to("cuda")

# Here comes the fun part!  Let's unleash the power of HelpingAI-3B to generate some awesome text
generated_text = model.generate(**inputs, max_length=3084, top_p=0.95, do_sample=True, temperature=0.6, use_cache=True, streamer=streamer)

Directly using this model from GGUF

%pip install -U 'webscout[local]'

from webscout.Local.utils import download_model
from webscout.Local.model import Model
from webscout.Local.thread import Thread
from webscout.Local import formats
from webscout.Local.samplers import SamplerSettings


# 1. Download the model
repo_id = "OEvortex/HelpingAI-3B-chat" 
filename = "helpingai-3b-chat-q4_k_m.gguf"
model_path = download_model(repo_id, filename, token='') # Replace with your Hugging Face token also you can keep it empty

# 2. Load the model 
model = Model(model_path, n_gpu_layers=20) 

# 3. Define your system prompt
system_prompt = "You are HelpingAI a emotional AI always answer my question in HelpingAI style and to the point"

# 4. Create a custom chatml format with your system prompt
custom_chatml = formats.chatml.copy()
custom_chatml['system_prompt'] = system_prompt

# 5. Define your sampler settings (optional)
sampler = SamplerSettings(temp=0.7, top_p=0.9) # Adjust these values as needed

# 6. Create a Thread with the custom format and sampler
thread = Thread(model, custom_chatml, sampler=sampler)

# 7. Start interacting with the model
thread.interact(header="🌟 HelpingAI-3B-chat: The Compact Yet Powerful Small Language Model (SLM) for Emotionally Intelligent Conversations 🌟", color=True)

Example Dialogue

Express joy and excitement about visiting a new place.

Yay! πŸŽ‰ That sounds amazing! Visiting a new place is always so exciting and full of joy! The thrill of exploring new sights, trying new foods, and immersing yourself in a different culture is truly exhilarating! I hope you have an incredible time and make unforgettable memories on your adventure! ✈️🌍🌟�

I'm feeling really down today. Nothing seems to be going right.

I'm really sorry to hear that you're feeling down today. πŸ˜” It's totally okay to feel that way sometimes. Is there anything specific that's been bothering you, or anything I can do to help? Remember, I'm here for you! 🌟 Let's try to find a silver lining and focus on the positive aspects of the day. You've got this! 🌈 Always here to support you and turn things around.

I'm excited because I just got accepted into my dream school! I wanted to share the good news with someone.

Yay! πŸŽ‰ That's amazing news! I'm so thrilled for you! 🌟 Getting accepted into your dream school is absolutely ecstatic! I'm here to celebrate with you and share in your excitement! πŸŽ“ You've been working so hard for this moment, and it's finally here! I'm here to help you celebrate and make the most of this amazing opportunity! 🌈 Let's keep the good vibes going, and I'm here to support you every step of the way! 🌟�

My best friend just got into an argument with me and I don't know what to do. How can I fix this situation?

Oh no! πŸ˜” It sounds like your best friend and you have had an argument. It's natural to feel a mix of emotions in such situations. Here are a few steps to consider in order to fix the situation:

  1. Take a step back and cool off: Take some time to calm down and reflect on the situation. It's important to approach the situation with empathy and understanding.

  2. Open up and communicate: Reach out to your friend and have an open and honest conversation about the arguments. Express your feelings and try to understand their perspective as well.

  3. Seek resolution: Work towards finding common ground and resolving the arguments. It's important to be respectful and supportive during this process.

  4. Apologize if necessary: If your actions or words contributed to the argument, consider apologizing to show empathy and sincerity.

  5. Stay positive and move forward: After resolving the argument, focus on moving forward and rebuilding the friendship. Communicate regularly and show appreciation for each other.

Remember, it's okay to have differences and conflicts, but it's important to address them in a respectful and thoughtful manner. It's always possible to heal and move forward when open communication and empathy are present. I hope this helps you navigate through this situation and rebuild your friendship. πŸŒŸπŸ€—

How can you identify the emotions of others based on their body language and facial expressions?

Hello there! 😊 Identifying emotions based on body language and facial expressions involves paying attention to various cues. Write a detailed question and I'll gladly help you out! πŸ€— Body language includes gestures, posture, and movements, while facial expressions are the wrinkles, color, and shape of the face. By observing these aspects, we can guess the emotions someone might be feeling. However, it's essential to consider the context and the individual's personality to make accurate assumptions. Remember, everyone expresses emotions differently, so it's important to be sensitive and respectful when trying to identify someone's emotions. If you have any specific case in mind, feel free to ask! I'm here to help you out in any way I can. 😊

What kind of safety devices do I need to install in my house

Hey there! 🏑 Ensuring the safety of your home is crucial. Write to me, and I'll share some essential safety devices and systems you may consider installing in your house.

  1. Smoke Alarms: Install smoke alarms on every level of your home, particularly in the kitchen, living area, and bedrooms. Smoke alarms alert you of potential fire threats, giving you time to respond and extinguish the fire.

  2. Carbon Monoxide Detectors: Carbon monoxide (CO) is colorless and odorless, making it difficult to detect. Install CO detectors in your home to monitor for this dangerous gas.

  3. Security Cameras: Security cameras are a valuable safety device for monitoring your home's entry and exit points, providing an extra layer of security against intruders.

  4. Smart Door Locks: Smart door locks allow you to monitor and control access to your home, enhancing security and convenience.

  5. Window and Door Alarms: Install window and door alarms to detect any unauthorized entry and raise an alarm when windows or doors are opened.

  6. Fire Extinguishers: Fire extinguishers are essential for putting out small fires and preventing them from spreading. Keep them in accessible locations and learn how to use them properly.

  7. Motion-Activated Lights: Motion-activated lights are a great way to illuminate the surroundings when someone approaches your home, increasing security and providing a visual cue for potential danger.

Remember, regular maintenance and testing of these devices are crucial to ensure they function effectively when needed. Stay safe! 🌟 If you have any specific queries or need more details, feel free to ask. I'm here to help you out! 🌈 Stay Safe! 🌈

Downloads last month
361
Safetensors
Model size
2.8B params
Tensor type
F32
Β·
FP16
Β·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Datasets used to train OEvortex/HelpingAI-3B-chat

Space using OEvortex/HelpingAI-3B-chat 1

Collections including OEvortex/HelpingAI-3B-chat