В этом проекте я построил тряпку на LLAMA3-70B-8192 LLM, доступный доступ к GROQ API. Документы, используемые для RAG, были извлечены через WebSrapping of the Seedly Blog, в котором содержится статьи о личных финансах. Статьи, которые я получил, были в основном о покупке недвижимости в Сингапуре и страховых полисах. Цель состоит в том, чтобы разработать языковую модель, которая более осведомлена о контексте и способна отвечать на вопросы, связанные с личными финансами в контексте Сингапура.
Я использовал Scrapy для очистки статей, модели All-Minilm-L6-V2 для преобразования текстовых кусков в встраивание и хранилище вектора Faiss для хранения текста и поиска. Наконец, я использовал Langchain для взаимодействия всех различных компонентов, от извлечения текстовых кусков, чтобы вызвать структурирование и цепочку для достижения желаемого вывода.
Окончательный вывод генерируется путем цепочки двух подсказок, первого, в котором можно обобщить контекст (3 лучших самых похожих текстовых кусков к вопросу, заданному пользователю), а второй для создания фактического ответа. Это для обеспечения того, чтобы подсказка, используемая для генерации ответов, не становится слишком длинной (если она содержит полноразмерные текстовые куски в качестве контекста), что позволяет предоставить больше контекста для LLM.
Цепочка подсказок работает, как и ожидалось, с суммированием текстовых кусков успешно добавлено во вторую подсказку. Производительность трубопровода варьируется в зависимости от качества предоставленных контекстных документов.
Сделав этот проект, я научился реализовать тряпку, используя Langchain, как взаимодействовать с LLM с быстрыми шаблонами и быстрого цепочки с использованием языка выражения Langchain (LCEL) и как использовать векторные запасы и внедрять функции вместе с LangChain. Я считаю, что эти основополагающие концепции разработки приложений LLM позволит мне создать более сложные приложения LLM в будущем.