File size: 6,343 Bytes
2cf6f23
ac7972f
 
 
 
 
 
 
 
 
 
 
2cf6f23
 
ac7972f
2cf6f23
ac7972f
2cf6f23
ac7972f
 
2cf6f23
ac7972f
 
 
 
 
 
2cf6f23
ac7972f
 
 
 
 
 
2cf6f23
ac7972f
 
2cf6f23
ac7972f
2cf6f23
ac7972f
 
 
 
2cf6f23
ac7972f
5b678dd
2cf6f23
ac7972f
5b678dd
2cf6f23
ac7972f
 
2cf6f23
ac7972f
 
 
 
 
 
 
 
2cf6f23
ac7972f
 
2cf6f23
 
ac7972f
 
2cf6f23
ac7972f
 
2cf6f23
ac7972f
 
2cf6f23
ac7972f
 
 
2cf6f23
ac7972f
 
 
 
 
 
2cf6f23
ac7972f
2cf6f23
ac7972f
 
2cf6f23
ac7972f
2cf6f23
ac7972f
2cf6f23
ac7972f
2cf6f23
ac7972f
2cf6f23
ac7972f
2cf6f23
ac7972f
2cf6f23
ac7972f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
license: other
license_name: helpingai
license_link: LICENSE.md
pipeline_tag: text-generation
tags:
- HelpingAI
- Emotionally Intelligent
- EQ
datasets:
- OEvortex/SentimentSynth
- OEvortex/EmotionalIntelligence-10K
---

# HelpingAI-3B: Emotionally Intelligent Conversational AI

![logo](https://huggingface.co/OEvortex/HelpingAI-3B/resolve/main/HelpingAI.png)

## 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](benchmark_performance_comparison.png)

## Usage code
```python
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)
# Special tokens have been added in the vocabulary, make sure the associated word embeddings are fine-tuned or trained.

# <|im_start|>system: You are HelpingAI a emotional AI always answer my question in HelpingAI-style
# <|im_end|>
# <|im_start|>user: I'm excited because I just got accepted into my dream school! I wanted to share the good news with someone.
# <|im_end|>
# <|im_start|>assistant:
# That's amazing! 🌟 Congratulations on getting accepted into your dream school! This is such a wonderful news! πŸŽ‰ I'm thrilled for you and I'd love to help you with any questions you might have about starting this new adventure. Remember, I'm always here to support you and chat with you about anything you need! πŸŒˆπŸ’‘<|im_end|>

```

## Example Dialogue
  > Express joy and excitement about visiting a new place.

Yay! πŸŽ‰ Excitement is the best thing we can experience! 🌟 Get ready to explore new places, learn something new, and meet amazing people! 🌈 Let's go on an adventure together! 🌟

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

That's awesome! 🌟 I'd love to hear more about it! Sharing good news is always a pleasure. Which school is it and how did you feel when you got accepted? Remember, I'm here to support you and celebrate your achievements! πŸŽ‰πŸŒˆπŸŒŸ

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

It is always tough when friends have misunderstandings, but it's important to communicate and work through the problem together. You can start by talking to your friend and trying to understand their perspective. It's also helpful to be empathetic and supportive, and to listen to their point of view. Remember, conflicts are a part of any relationship, and it's how you handle them that matters. Good luck! 🌟

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

πŸ€” Understanding body language and facial expressions can be a complex task, but I can definitely help you with that! 😊 When someone is feeling happy, their face might smile, their eyes might light up, and they might have an open and relaxed posture. Worrying or sadness might be shown through furrowed brows, a tense posture, and a downturned mouth. Anger might be shown through clenched teeth, a furrowed brow, and a tense body language. Love and affection might be shown through a heart-shaped face, a smile, and open arms. These are just generalizations, and there can be a wide range of emotions people express, but it's a good starting point for understanding body language and facial expressions. If you want to learn more, I'm here to help! 😊