Couchbase спонсировал этот пост.
Поигрывательный поколение (RAG) появилось в качестве ведущего метода борьбы с галлюцинациями и другими неточностями, которые влияют на генерацию содержания модели с крупным языком (LLM). Тем не менее, правильная архитектура данных необходима для эффективного и эффективного масштабирования RAG.
Сегодня компании генерируют огромные объемы данных из своей интеллектуальной собственности, операционных процедур и маркетинга, продаж и взаимодействий с клиентами. Самой большой проблемой является не сбор этих данных, а скорее извлечение значимых пониманий, которые можно использовать для значительного улучшения обслуживания клиентов и времени на рынке.
Genai обещает преодолеть этот пробел, позволяя пользователям превратить большое количество организационных данных в более полезную информацию. Тем не менее, это становится препятствием, когда данные находятся в формате, который не полностью совместим с LLM (например, файлы PDF или проприетарные документы). Преобразование этих данных, чтобы сделать его пригодными для использования LLM для поддержки организационных потребностей, может быть ресурсной и трудоемкой задачей.
Для начала организации должны предварительно обработать документы в форматы, которые могут быть использованы LLM и используются в тряпичном рабочем процессе. Это включает в себя больше, чем просто оптическое распознавание символов (OCR) или извлечение текста. Это требует извлечения данных, которые обеспечивают контекст и реализацию методов с учетом элементов документа. Например, если таблица охватывает несколько страниц, она должна быть извлечена в виде одной таблицы. Если макет документа состоит из нескольких столбцов с сочетанием элементов, таких как изображения, таблицы и текст, каждый элемент должен быть извлечен индивидуально, сохраняя ее идентичность и контекст его извлечения.
Rag делает LLMS более умнее и точнее
RAG — это структура, предназначенная для преодоления ограничений LLMS и предоставления более точных и подробных ответов. Хотя LLM обучаются обширным наборам данных, они часто борются со специализированными знаниями, актуальной информацией и генерации фактически неверных результатов, также известных как «галлюцинации». Рэг смягчает эти проблемы, динамически получая соответствующие данные из внешних источников в режиме реального времени.
RAG работает на двух основных этапах: этап приема и этап вывода. На стадии приема данных данные из внешних источников знаний очищаются и трансформируются. Необработанные файлы должны быть проглатываются и лишены шума. Это может включать в себя удаление текста с шаблоном или нерелевантных заголовков и нижних колонтитулов и стандартизация кодировки документов. Поскольку сохранение информации для поиска имеет решающее значение, документы должны быть разбиты на сплоченные, контекстуально подходящие куски. Чанк может быть абзацем, списком элемента, таблицы или заголовка. Каждый кусок или отрывок обогащен метаданными: источник, заголовок раздела, метки времени, теги, авторство и т. Д. Это помогает фильтрации результатов.
На этом этапе векторизация преобразует данные в встраивания, которые являются численными представлениями в многомерном пространстве. Сгенерированные встроения обычно хранятся в векторной базе данных для эффективного поиска во время вывода.
На этапе вывода запрос пользователя сначала встроен и сравнивается с встроениями источника внешнего знания. Поиск сходства получает ближайшие (наиболее актуальные) точки данных (наиболее актуально). После этого наиболее релевантные извлеченные данные вставляются в предопределенный шаблон быстрого приглашения. Затем дополненную подсказку отправляется в LLM, который генерирует контекстуально подходящий ответ, основанный на его языковом понимании и внешних данных. Подсказка LLM динамически состоит из извлеченных отрывков, устанавливая плотные границы для заземленной генерации. Наконец, контекстные данные подаются на модель, а соответствующие документы извлекаются с использованием системы поиска документа.
Источник: салфетка ИИ
Учитывая, что RAG состоит из многих шагов, мы будем сосредоточиться на неразрушенном приеме данных, поскольку это часто является самой сложной задачей для решения.
Неструктурированные данные — это узкое место
Организации генерируют такие большие объемы данных, включая текст, документы, изображения, журналы, комментарии кода, электронные письма поддержки, отчеты, руководства, журналы чата и документацию. Работа с этим разнообразием и количеством неструктурированных данных является проблемой для большинства организаций.
Почему? Поскольку неструктурированная информация поступает во многих форматах: DOCX, PDF, Markdown, Web -страницы, необработанные HTML, отсканированные изображения и многое другое. У него не хватает схемы или последовательности, что означает, что ни одна команда не использует одинаковые шаблоны. Поля являются необязательными и документы дрейфуют с течением времени. Он также содержит много шума, такого как опечатки, повторное содержание, шаблон или нерелевантный язык. Поскольку он постоянно растет и меняется, то, что является точным, актуальным и современным сегодня, может быть устаревшим завтра.
Превращение этого большого количества неструктурированных данных в полезный, запрашиваемый структурированный ресурс является массовым предприятием.
Почему текущий инструмент оставляет разработчиков расстроенными
Сотни открытых и коммерческих инструментов возникли, чтобы решить биты этой проблемы: библиотеки ETL (извлечение, преобразование, нагрузка) для приема проглатывания, библиотеки NLP (обработка естественного языка) для сегментации, модели внедрения для векторизации, гибридных поисковых двигателей для поиска и составных сценариев или оркестров, чтобы связать все вместе.
Но эта экосистема создает свои собственные проблемы: инструменты редко согласуются с схемами или API, интеграции являются хрупкими, и поддержание сквозных трубопроводов в растущих наборах данных является трудоемким и подверженным ошибкам. Разработчики часто оставляют одноразовые рабочие процессы, которые трудно масштабировать, аудит или расширять по мере развития потребностей.
Таким образом, нам нужно решение, которое способно уменьшить эту сложность, приводя к сильным опытом разработчика.
Подход с открытым исходным кодом к структурированным данным: док
Источник: GitHub
Доклинг — это инструмент с открытым исходным кодом, созданный IBM Research. Он используется для анализа документов — от PDF и DOCX до PPTX и HTML и многое другое — и преобразовать их в такие форматы, как Markdown или JSON, что облегчает подготовку контента для приложений Genai. Он поддерживает Advanced PDF-обработку OCR для отсканированных документов и интегрируется с такими инструментами, как LmainDex и Langchain для тряпичных и вопросов, отвечающих за заданиями. Его разрешающая лицензия с открытым исходным кодом позволяет разработчикам сотрудничать и расширять проект для удовлетворения их потребностей.
Философия Доклинга проста: трубопровод должен быть модульным, самоуверенным и расширяемым, одновременно абстрагируя повторяющийся, подверженным ошибкам труд, собирая свои собственные анализаторы данных и кусочки.
Docling предлагает модульные разъемы исходного источника. Он содержит встроенные адаптеры для наиболее распространенных форматов файлов (Markdown, PDF, HTML и т. Д.), Облегчая добавление нового источника данных. Для каждого формата документа преобразователь документа знает, какой специфичный формат бэкэнд использовать для анализа документа и какого трубопровода использовать для организации выполнения. Он также обеспечивает последовательное моделирование данных. Каждый извлеченный фрагмент обернут в четко указанную модель данных, причем непосредственно встроенные метаданные документа, раздела и сущности.
Автоматизированное кункинг и аннотация сделаны простыми. Доклегируют логические перерывы — будь то заголовки раздела, абзацы или столовые ряды — и аннотирует их соответственно. Кроме того, трубопровод Docling расширяется с помощью пользовательских процессоров. Предлагая расширяемые плагины, подключение пользовательских метаданных или интеграция с нисходящими мельницами или службами обогащения упрощено.
Docling использует гибридную стратегию обжарения, которая фактически понимает структуру вашего документа, сохраняя контекст, создавая при этом оптимальные куски для внедрения.
Большинство основных кункеров от других поставщиков разделяют текст исключительно по количеству символов (например, каждые 1000 символов). Доклеги отличается. Он уважает параграфы, разделы, таблицы и изображения; поддерживает семантические границы, чтобы кусочки были значимыми и автономными; И разумно обрабатывает столы и изображения, чтобы ваши встраиваемые встроены не просто искаженные текст OCR.
Это означает, что когда данные позднее задаются, извлекаются богатые контексты куски, а не случайные фрагменты предложения.
Как начать использовать доклей
Чтобы начать использование доклинга, просто установите пакет PIP.
PipinStallDocling
После установки вы можете программно выполнять преобразование документа в своем модуле Python или использовать интерфейс командной строки Docling (CLI).
от docling.document_converter import document converter source = «# pdf path или url converter = documentConverter () result = converter.convert (source) print (result.document.export_to_markdow[…]» # Docling 12345678 из docling.document_converter import document converter source =» # pdf path или urlConverter = documentConverter () result = converter.convert (source) print (result.document.export_to_markdow[…]» # Доклей
Пример тряпичного трубопровода с док
Высокий поток тряпичного рабочего процесса, проведенного на докле, может начать с ползания и проглатывания или запуска исходных разъемов Docling в хранилищах содержимого. Аназон и блюдо можно использовать для фрагментов JSON, излучаемых док, которые содержат содержание, контекст и метаданные для каждого фрагмента. Куски и встроения могут затем быть отправлены в векторную базу данных на стадии индексации. После этого может возникнуть поиск и генерация, что означает, что когда пользователь или агент ИИ ставят вопрос, лучшие подходящие встраивания получают и поставляются в LLM в контролируемой подсказке.
С помощью доклинга больше нет специальных сценариев или необходимости иметь дело с широким спектром схем данных. Проекты с открытым исходным кодом, такие как Dockling, гарантируют, что вы не вынуждены посвятить себя одному поставщику или стеку. Таким образом, доклинг достигает баланса между гибкостью DIY и стабильностью использования платформу, вылеченной платформой.
Собирая все это вместе
Каждая организация имеет большое количество неструктурированных данных. Rag в теории предлагает способ преобразовать эти данные в нечто полезное, но только если разработчики могут надежно структурировать эти данные и управлять потоком знаний. Вот где каркасы с открытым исходным кодом, такие как Decling Shine.
Экосистема трубопровода данных по -прежнему сильно фрагментирована. Многие организации попадают в «усталость рамки». Каждая новая потребность, например, обработка нового типа файла или поддержка новых стратегий кунгинга, может, по -видимому, потребуется новая библиотека. Необходимость разбить версии библиотек, иметь дело с неполной документацией и отсутствием передовых практик, может сокрушить разработчиков, входящих в такую экосистему.
Вот почему интегрированные, самоуверенные решения становятся такими привлекательными. Эти платформы, такие как Couchbase Capella AI Services, обеспечивают единое проглатывание и преобразование неструктурированных данных для векторных и тряпичных рабочих процессов через неструктурированную службу данных. Вместо того, чтобы управлять различными движущимися частями, он предлагает рабочий процесс платформы, специально разработанный для надежности и легкой расширяемости.
Чтобы узнать, как услуги Capella AI решают самые важные проблемы разработчиков, нажмите здесь. Вы также можете подписаться на частное предварительное просмотр услуг Capella AI здесь.
Couchbase обеспечивает Capella, облачную платформу базы данных для современных приложений. Capella позволяет разработчикам и архитекторам быстро создавать приложения будущего и постоянно предоставлять клиентам постоянный опыт, чтобы упростить то, как предприятия разрабатывают, развертывают и потребляют современные приложения. Узнайте больше последних из Couchbase Trending Stories YouTube.com/thenewstack Tech, которые движутся быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Shivay Lamba — старший инженер -разработчик в Couchbase. Он специализируется на веб -разработке, машинном обучении и DevOps. Он также является участником с открытым исходным кодом, сопровождающим и наставником. Узнайте больше от Shivay Lamba