RAG с Haystack: компилируется, но возвращает пустые ответыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 RAG с Haystack: компилируется, но возвращает пустые ответы

Сообщение Anonymous »

Мой конвейер RAG (с использованием Haystack) компилируется и запускается, но возвращает пустые ответы.

Из моих проверок я подумал, что это может быть связано с несовместимостью моделей внедрения и llm, поэтому я изменена на модель внедрения, основанную на той же модели, что и моя модель llm (обе основаны на мистрале).

Код: Выделить всё

mymodel = "occiglot/occiglot-7b-eu5-instruct"  # llm model
# embedding_model = "Alibaba-NLP/gte-Qwen2-7B-instruct"  # old embedding model
embedding_model = "intfloat/e5-mistral-7b-instruct"
Мой соответствующий импорт следующий:

Код: Выделить всё

from haystack import Pipeline
from haystack.components.builders import PromptBuilder
from haystack.components.embedders import SentenceTransformersTextEmbedder
from haystack.components.embedders import SentenceTransformersDocumentEmbedder
from haystack.components.generators import HuggingFaceLocalGenerator
Инструменты для внедрения и генератор:

Код: Выделить всё

embedder = SentenceTransformersDocumentEmbedder(model=embedding_model)
text_embedder = SentenceTransformersTextEmbedder(model=embedding_model)
generator = HuggingFaceLocalGenerator(model=mymodel)
Конвейер RAG (

Код: Выделить всё

question
соответствует загруженному документу):

Код: Выделить всё

rag_pipeline = Pipeline()

rag_pipeline.add_component("converter", MarkdownToDocument())
rag_pipeline.add_component("splitter", DocumentSplitter(split_by="sentence", split_length=2))
rag_pipeline.add_component("embedder", embedder)
rag_pipeline.add_component("text_embedder", text_embedder)
rag_pipeline.add_component("retriever", MilvusEmbeddingRetriever(document_store=document_store, top_k=3))
rag_pipeline.add_component("writer", DocumentWriter(document_store))
rag_pipeline.add_component("prompt_builder", PromptBuilder(template=prompt_template))
rag_pipeline.add_component("generator", generator)

rag_pipeline.connect("converter.documents", "splitter.documents")
rag_pipeline.connect("splitter.documents", "embedder.documents")
rag_pipeline.connect("embedder", "writer")
rag_pipeline.connect("text_embedder.embedding", "retriever.query_embedding")
rag_pipeline.connect("retriever.documents", "prompt_builder.documents")
rag_pipeline.connect("prompt_builder", "generator")

rag_pipeline.draw('./rag_pipeline.png')

results = rag_pipeline.run({
"converter": {"sources": [file_path]},
"text_embedder": {"text": question},
"prompt_builder": {"query": question},
})

print("RAG answer:", results["generator"]["replies"][0])
Вывод простой: Ответ RAG:
Кроме того, при загрузке средства внедрения отображается следующая строка: В словарь добавлены специальные токены, убедитесь, что соответствующие встраивания слов точно настроены или обучены.
Я не уверен, связана ли проблема с моделями, которые я выбрал? или в моем конвейере (может быть, средства для внедрения документов и текста вместе вызывают проблему?)

Я рад получить любой совет, помочь с этим.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -responses
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»