Edit model card
YAML Metadata Warning: The pipeline tag "conversational" is not in the official list: text-classification, token-classification, table-question-answering, question-answering, zero-shot-classification, translation, summarization, feature-extraction, text-generation, text2text-generation, fill-mask, sentence-similarity, text-to-speech, text-to-audio, automatic-speech-recognition, audio-to-audio, audio-classification, voice-activity-detection, depth-estimation, image-classification, object-detection, image-segmentation, text-to-image, image-to-text, image-to-image, image-to-video, unconditional-image-generation, video-classification, reinforcement-learning, robotics, tabular-classification, tabular-regression, tabular-to-text, table-to-text, multiple-choice, text-retrieval, time-series-forecasting, text-to-video, image-text-to-text, visual-question-answering, document-question-answering, zero-shot-image-classification, graph-ml, mask-generation, zero-shot-object-detection, text-to-3d, image-to-3d, image-feature-extraction, other

⚠️ This model is deprecated. Please don't use it as it produces embeddings of low quality. We recommend using triple-encoders instead, also if you want to use them as a classic bi-encoder.

Imaginary Embeddings utilize Curved Contrastive Learning (see paper Imagination Is All You Need! (ACL 2023)) on Sentence Transformers for long-short term dialogue planning and efficient abstract sequence modeling.

This model uses speaker tokens and was evaluated in the Long-Term planning and sequence modeling experiments.

setup

python -m pip install imaginaryNLP

Usage Sequence Modeling:

from imaginaryNLP.ImaginaryEmbeddingsForSequenceModeling import EvalImaginaryEmbeddingsForSequenceModeling

# Load the model
seq = EvalImaginaryEmbeddingsForSequenceModeling('Justus-Jonas/Imaginary-Embeddings-SpeakerTokens', speaker_token=True)

# add candidates and context
seq.load_candidates_from_strings(["I'm fine, thanks. How are you?", "Where did you go?", "ACL is an interesting conference"])

# and context, pre-compute and keep 80% of utterances
seq.create_context(["Hi!", 'Hey, how are you?'], precompute_top_p=0.8)

seq.sequence_modeling_with_precompute("I am doing good. Today I went for a walk. ")

Long-Term-Planning

from imaginaryNLP.ImaginaryEmbeddingsForLTP import ImaginaryEmbeddingsForLTP

ltp = ImaginaryEmbeddingsForLTP('Justus-Jonas/Imaginary-Embeddings-SpeakerTokens', speaker_token=True)

# add a contex
ltp.create_context([' Hello', 'Hi , great to meet you ! '])

# add goals
ltp.add_goal(" great to hear that ! ")
ltp.add_goal(" Want to go for a walk ? ")
ltp.add_goal(" Bye !")

# greedy curving
ltp.greedy_curving()

# imaginary embedding chains
ltp.imaginary_embedding_chains()

# imaginary embedding chains with curving
ltp.imaginary_embedding_chains_with_curving()
Downloads last month
2
Safetensors
Model size
125M params
Tensor type
I64
·
F32
·

Dataset used to train Justus-Jonas/Imaginary-Embeddings-SpeakerTokens