DeepSeek R1 в RAG: обобщение практического опыта

DeepSeek R1 продемонстрировал сильные возможности рассуждений уже в своем первом выпуске. В этой статье блога мы рассказываем о том, как использовать DeepSeek R1 Опыт создания систем Retrieval-Augmented Generation (RAG), специализирующихся на работе с юридическими документами.
Мы выбрали "Юридические документы", потому что юристы часто сталкиваются с непростой задачей - поиском среди множества судебных дел, уставов и обзоров законодательства. Даже самое внимательное исследование может быть затруднено сложностью поиска нужного документа, не говоря уже о точном изложении его содержания. Именно в этом случае RAG Области, в которых вы можете добиться значительных успехов (см. также Harvey AI).
Мы построили RAG на основе большого набора данных юридических документов, используя DeepSeek R1 и Qwen2 в качестве моделей встраивания. Весь процесс построения RAG мы выложили в открытый доступ (предоставлен vLLM ответить пением SkyPilot и поделились ценными уроками - что работает, а что нет.
Хотите испытать это на себе 🔥? Попробуйте нашу онлайн-демонстрацию:Нажмите здесь.
Мы открыли процесс создания RAG. Нажмите здесь, чтобы посмотреть. Не стесняйтесь изучать, как мы сочетаем vLLM + SkyPilot для быстрой, стабильной и масштабируемой работы.

Зачем создавать RAG на юридических документах?
Генерация дополнения поиска (RAG) имеет решающее значение в таких областях, как юриспруденция, где точность и прослеживаемость имеют первостепенное значение. Сочетание специализированного ретривера с мощным генератором больших языковых моделей (LLM) позволяет добиться оптимальных результатов:
- высокозначимых документовполучить (данные)
- Тексты с рассуждениямисоздание
- По прямой ссылкеУменьшение галлюцинаций
Для создания этой RAG мы использовали:
- куча закона/куча закона Подмножество данных (сфокусированное на юридических консультациях);
- ChromaDB Служит в качестве векторного хранилища для хранения и запроса вкраплений;
- Qwen2 в качестве модели встраивания при поиске;
- DeepSeek R1 Создайте модель в качестве окончательного ответа.
Вся система работает на vLLM выше, и может быть передан через SkyPilot Бесшовное развертывание в любом облаке для обеспечения оптимальной доступности GPU и экономической эффективности. Полный процесс сборки RAG с открытым исходным кодом доступен здесь.
Ценный опыт: меры предосторожности и противопоказания
1. не используйте DeepSeek R1 для поиска
(действуйте и делайте) без колебаний DeepSeek R1 обладает прекрасными способностями к рассуждению, но оннеподходящийДля генерации эмбедов - по крайней мере, пока.
Мы обнаружили, что с помощью специализированных моделей встраивания Alibaba-NLP/gte-Qwen2-7B-instruct
(в настоящее время в МТЭБ) чарты (бестселлеры) (самая рейтинговая модель встраивания) по сравнению с встраиванием, созданным DeepSeek R1.
Мы используем каждую из этих двух моделей для генерации вкраплений для набора данных и создания двух векторных баз данных. Затем для обеих моделей используется один и тот же запрос и извлекаются 5 наиболее похожих вкраплений в соответствующих векторных базах данных.
Запрос: 我收到了一张关于债务纠纷的小额索赔法庭传票,我应该如何准备?
Результаты для: Qwen2 | Результаты поиска для DeepSeek-R1 |
---|---|
[CA] Вопрос по мелким искам | Могу ли я подать в суд на компанию, которая нанимает телемаркетологов и продолжает звонить мне, несмотря на закон? |
[CO] Только что получил повестку в суд по поводу больничного счета, который оплатила страховая компания ...... У меня есть доказательства, но нужно ли мне нанимать адвоката, чтобы разобраться с этим? | Что делать, если дочь бывшей подруги арестована за кражу в магазине? |
На меня подали в суд за неуплату кредита в 3500 долларов. | Поздно вечером после работы вы выходите на почти пустую парковку и видите двух мужчин, которые пристают к дверце вашей машины. Вы просите их остановиться, но они игнорируют вас. У вас есть скрытый пистолет, что вы можете сделать? |
Кошка соседки съела несколько ореховых снеков, и ей пришлось обратиться к ветеринару со счетом на сумму более 1500 долларов. Она угрожает подать на меня в суд по мелким искам, чтобы заставить меня заплатить за это, но нет никаких доказательств, что закуски принадлежат мне. Стоит ли мне беспокоиться? | Обвинение в хранении марихуаны в штате Миссури при отсутствии вещественных доказательств. |
Недавно я получил повестку в суд по гражданскому делу о долге, который, как мне казалось, я уже выплатил. | Законно ли "натравливать собаку на человека"? |
Почему это имеет значение?
В приведенной выше таблице результаты поиска DeepSeek R1 значительно хуже. Почему так?
Мы считаем, что основная проблема кроется в способе обучения DeepSeek R1. Архитектура DeepSeek R1 ориентирована в первую очередь на умозаключения, подчеркивая последовательное мышление и логические связи.Это означает, что DeepSeek R1 не отображает документы в семантическое пространство.
Напротив, вариант Qwen2 (gte-Qwen2-7B-instruct
) Обучение специально для задач семантического сходствачто может создать высокоразмерное пространство, в котором концептуально похожие документы тесно сгруппированы вместе, независимо от конкретной формулировки.
Это различие в подходе к обучению означает, что Qwen2 хорошо справляется с задачей улавливания смысла запроса, в то время как DeepSeek R1 иногда идет по пути умозаключений, который приводит к получению тематически релевантных, но практически нерелевантных результатов.
DeepSeek R1 не следует использовать в качестве модели встраивания поиска для RAG, пока она не будет точно настроена для встраивания.
2. Поколение с R1: впечатляющая способность рассуждать
(действуйте и делайте) без колебаний R1 Есть некоторые трудности с встраиванием, но мы находим их создание Способность к этому поразительна. Используя подход R1 "цепочка мыслей", мы заметили:
- Более сильная согласованность: Модель способна синтезировать информацию из нескольких документов и четко ссылаться на соответствующие фрагменты.
- Уменьшение галлюцинаций: R1 Рассуждайте внутренне "для себя" и подтверждайте каждый вывод своими данными.
Давайте рассмотрим несколько примеров:
Пример 1: Расторжение договора аренды
Вопрос: 我想解除租约,但房东不允许我这样做。
Просмотреть ход мыслей DeepSeek R1
Я хочу расторгнуть договор аренды, но арендодатель не разрешает. Я не знаю, какие у меня есть варианты. Я пытаюсь разобраться в ситуации на основании предоставленной документации.
Во-первых, я помню, что читал в документе 1 о штрафе за досрочное расторжение договора аренды. Один человек спросил, можно ли расторгнуть договор аренды по истечении 15 месяцев из 18-месячного договора аренды, и ответ был утвердительным, но только в том случае, если арендодатель согласится или будет найден новый арендатор. Таким образом, если я захочу досрочно расторгнуть договор аренды, арендодатель может привлечь меня к ответственности, если он не согласится или не сможет быстро сдать квартиру. Это кажется возможным, но я не уверен, что мой хозяин захочет вести переговоры.
Далее, в работе 2, причина, по которой кто-то захочет расторгнуть договор аренды, - женитьба. Ответ предполагает, что в договоре аренды может быть предусмотрена плата за расторжение договора аренды, или же необходимо дождаться окончания срока аренды. Итак, я могу проверить, есть ли в моем договоре аренды пункт, позволяющий расторгнуть договор, например, пункт о субаренде или переуступке прав. Если нет, возможно, мне придется заплатить штраф или подождать до конца срока аренды.
В документе 3 рассматривается расторжение договора аренды по причине наличия служебной собаки. Среди вариантов - выплата неустойки, сдача в субаренду, поиск другой служебной собаки или ожидание окончания срока аренды. Это не совсем подходит для меня, но показывает, что, если нет особой причины, расторжение договора аренды обычно влечет за собой определенные последствия.
В задании 4 арендодатель повысил арендную плату, и пользователь задал вопрос о коротком сроке уведомления. В ответе говорится, что теоретически срок уведомления должен составлять 30 дней, но арендодатель может предложить компромисс, например, согласиться платить арендную плату в прежнем размере до следующего срока аренды. Если арендодатель откажется расторгнуть договор, можно попробовать предложить ему вариант с более высокой арендной платой, но я не знаю, по карману ли мне это.
В документе 5 упоминается, что арендодатель отказался продлевать договор аренды, потому что у него была кошка. В ответе говорится, что по закону арендодатель не обязан продлевать договор аренды и поэтому имеет право не продлевать договор. Это навело меня на мысль, что у моего арендодателя могут быть аналогичные полномочия, но я не уверен, что именно это стало причиной отказа.
В задании 6 рассматривается ситуация, когда договор аренды продлевается и к нему прилагаются новые условия. В ответе говорится, что арендодатель должен соблюдать условия существующего договора аренды до истечения срока его действия. Поэтому, если арендодатель отказывается выпустить меня из договора аренды, это может означать, что ему придется ждать окончания срока аренды, если только в договоре нет специальной оговорки, позволяющей не продлевать договор аренды.
В документах 7 и 8 обсуждаются трудности, с которыми сталкиваются лизинговые офисы при продлении договоров аренды. В документах упоминается, что арендодатель может не захотеть продлевать договор аренды из-за плохих отзывов или по другим причинам, но по закону он может принять решение не продлевать договор аренды. Это говорит о том, что у арендодателя есть определенные полномочия, но по закону он не обязан досрочно расторгать договор аренды, если на то нет особых причин.
В документе 9 рассматривается требование о предоставлении уведомления за 30 дней до выезда. Даже если я не подписывал никакого соглашения, когда въезжал в квартиру, арендодатель все равно может потребовать уведомления. Поэтому, если я съеду без уведомления, мне могут грозить штрафы или придется платить арендную плату за оставшийся срок аренды.
Наконец, в задании 10 рассматривается ситуация, когда арендатор несет ответственность за всю арендную плату, когда сосед по комнате съезжает. В ответе предлагается разделить арендную плату путем субаренды. Если бы я съехал, я мог бы попытаться сдать свою часть аренды в субаренду, но это зависит от условий аренды.
В общем, мне нужно проверить, есть ли в моем договоре аренды пункт о досрочном расторжении. Если нет, возможно, мне придется заплатить штраф, если арендодатель не согласится. Если у меня есть уважительная причина, например переезд, я могу попытаться договориться с арендодателем. Если есть возможность сдачи квартиры в субаренду, это может стать решением проблемы, но мне нужно проверить, разрешает ли это договор аренды. Мне также следует подумать о том, смогу ли я дождаться естественного окончания срока аренды, если не найду другого выхода.
View Reply by DeepSeek R1
На основе анализа предоставленной документации ниже приводится структурированный подход к расторжению договора аренды, когда арендодатель отказывается разрешить досрочное расторжение:
1. анализ договоров аренды
Положения о досрочном расторжении договора: проверьте, есть ли в вашем договоре аренды положения о досрочном расторжении договора. Если такой пункт существует, то по закону вы можете быть обязаны заплатить штраф или заранее уведомить арендодателя о расторжении договора [1].
Субаренда или переуступка: определите, разрешает ли ваш договор аренды сдавать помещение в субаренду или переуступать его другому лицу. Это может помочь вам избежать штрафов или судебных исков [2].
2. понимание свободы действий арендодателя
Продление по вашему усмотрению: арендодатель может иметь право отказать в продлении договора, особенно если в договоре нет пункта, прямо предусматривающего возможность досрочного расторжения. В этом случае от вас могут потребовать соблюдать условия договора аренды до конца срока [6][8].
3. учет финансовых последствий
Штрафы: будьте готовы к тому, что в случае досрочного расторжения договора аренды без согласия арендодателя вам грозят финансовые санкции. Это может включать дополнительные арендные платежи или залог за ущерб [1][9].
4. Изучение переговоров
Договоритесь об условиях: если у вас есть уважительная причина для досрочного расторжения договора, например, переезд, вы можете договориться с арендодателем о снижении штрафа или разрешении досрочно расторгнуть договор аренды [2].
5. Субаренда как решение проблемы
Сдайте помещение в субаренду: если возможно, рассмотрите возможность сдачи части арендованного помещения в субаренду, чтобы помочь покрыть свои финансовые обязательства [10].
6. планирование на будущее
Дождитесь окончания срока аренды: если досрочное расторжение договора невозможно, планируйте остаться до истечения срока аренды. Это позволит избежать штрафов и юридических проблем [6][8].
Заключение:Всегда внимательно изучайте условия аренды, прежде чем предпринимать какие-либо действия. Если досрочное расторжение договора не допускается, рассмотрите возможность сдачи квартиры в субаренду или дождитесь окончания срока аренды. Если вы можете договориться с арендодателем, это может быть лучшим вариантом действий. Всегда обращайтесь к юристу за советом по поводу вашей конкретной ситуации.
Пример 2: Суд по рассмотрению мелких исков
Вопрос. 我收到了一张关于争议债务的小额索赔法院传票。我应该如何准备?
Просмотреть ход мыслей DeepSeek R1
Итак, я только что получил повестку в суд мелких тяжб по поводу спорного долга. Я не совсем понимаю, с чего начать, но мне нужно понять, как к этому подготовиться. Судя по результатам поиска, здесь есть несколько человек, которые прошли через подобные ситуации, так что, возможно, я смогу почерпнуть что-то из их опыта.
Прежде всего, я должен понять природу долга. В Доке 5 некто получает повестку в суд за долг, который, как ему казалось, он уже выплатил. Они не понимают, почему получили еще одну повестку. Итак, мне нужно проверить, действителен ли этот долг. Возможно, мне следует проверить свои записи или попросить кредитора предоставить доказательства долга. Согласно документу 10, следует отклонить жалобу и попросить предоставить доказательства. Таким образом, я смогу поставить под сомнение достоверность долга.
Далее я должен подготовить свое дело. В Документе 1 кто-то занимался подобным вопросом, и совет заключался в том, чтобы убедиться, что дело можно изложить за 10 минут или меньше. Это означает, что мне нужно быть лаконичным и подготовить все свои доказательства. Я должен собрать все документы, доказывающие, что я не являюсь должником, например, квитанции об оплате, письма от кредиторов о погашении долга или страховые документы, как в документе 2.
Мне также необходимо рассмотреть вопрос о свидетелях. В документе 4 сосед по комнате угрожает подать на этого человека в суд из-за счета за ветеринарные услуги, и совет состоит в том, чтобы игнорировать угрозу, если на меня не подадут в суд. Но если на меня подадут в суд, я должен быть готов к тому, что у меня будут свидетели, которые меня поддержат. Возможно, друг, который был со мной в то время, когда я пытался заплатить, или бывший жилец, который может подтвердить состояние дома, как показано в документе 7.
Важно понимать суть судебного процесса. Как показано в документе 7, после выигрыша дела в Суде по мелким претензиям домовладелец подает апелляцию, что означает, что ему или ей придется снова явиться в суд. Человек должен был снова пройти через тот же процесс. Поэтому я должен знать, что даже если я выиграю дело, то все равно может быть подана апелляция. Я должен быть готов представить свое дело еще раз, если это потребуется.
Мне также нужно рассмотреть повестки и состязательные бумаги. В документе Doc 5 кто-то должен ответить на состязательные бумаги. Если я этого не сделаю, мне могут вынести решение по умолчанию. Поэтому я должен ответить вовремя и четко изложить свою защиту.
Следующим шагом будет подача возражений на иск. В документе 10 упоминается, что даже если поступит предложение, я должен всегда отказываться и требовать доказательств. Это даст мне больше рычагов влияния в последующих переговорах. Я перечислю все свои аргументы и доказательства в возражениях на иск.
Важно также учитывать мое финансовое положение". В Документе 6 высказывалось опасение, что меня могут посадить в тюрьму за неспособность платить, но было разъяснено, что тюрьмы для должников не существует. Однако мне все равно следует сообщать суду о своем финансовом положении. Если я не могу заплатить, мне нужно показать, что я приложил разумные усилия, и предложить план рассрочки, как показано в Документе 5.
Если я не уверен в правовом вопросе, возможно, мне стоит обратиться к адвокату. В документе 3 человек переезжает и у него назначена дата суда. Консультация с адвокатом по урегулированию долгов может оказаться полезной, особенно если у меня есть другие долги или сложности.
Наконец, я должен быть готов к судебному заседанию. Очень важно прийти вовремя, одеться соответствующим образом и подготовить все документы. В документе 7 этот человек выиграл дело, хорошо подготовив доказательства, поэтому мне следует последовать его примеру.
В общем, мне нужно: подтвердить задолженность, подготовить доказательства, разобраться в судебных процедурах, правильно отвечать на повестки, возможно, проконсультироваться с адвокатом, быть организованным и готовым к суду. Ссылки на соответствующие документы помогут мне подкрепить свои решения.
View Reply by DeepSeek R1
На основе анализа предоставленных юридических документов ниже приводится структурированный и организованный план подготовки вызовов в суд по мелким искам в отношении спорных долгов:
Проверка задолженности
Проверьте доказательства кредитора: начните с изучения всех документов, предоставленных кредитором, чтобы подтвердить обоснованность и детали долга. Используйте эту информацию для перекрестной проверки с вашими собственными записями или любыми предыдущими сообщениями.
Запрос документов: свяжитесь с кредитором, чтобы запросить официальные доказательства долга, например, судебное решение или мировое соглашение. Этот шаг необходим для того, чтобы оспорить достоверность долга, как рекомендуется в документе 10.
Подготовка вашего дела
Сбор доказательств: соберите все необходимые доказательства, такие как платежные квитанции, письма от кредиторов с указанием расчетов или страховые документы, как указано в документах 2 и 8.
Организация и представление доказательств: убедитесь, что все доказательства собраны и готовы к представлению в суде, следуя советам, приведенным в документе 1. При необходимости рассмотрите возможность включения показаний свидетелей, например друзей, присутствовавших при попытках оплаты, или бывших арендаторов данного имущества.
Понимание судебных процедур
Будьте готовы к многочисленным слушаниям: если вы выиграете дело, имейте в виду, что может быть подана апелляция, как описано в документе 7. Будьте готовы представить свое дело еще раз, если это потребуется.
Ознакомьтесь с судебными процедурами: изучите основы работы малого суда, включая структуру слушаний и роль судьи.
Ответы на повестки в суд и обвинительные заключения
Подайте возражения на иск: убедитесь, что вы своевременно ответили на повестку в суд, чтобы избежать вынесения решения по умолчанию. Четко изложите свои возражения в возражениях на иск и запросите доказательства долга, как рекомендуется в документе 10.
Отказ от обвинения: всегда отрицайте обвинение, чтобы воспользоваться возможностями для переговоров, как указано в документе 10.
Рассмотрение финансовой ситуации
Сообщите о своем финансовом положении: если вы не в состоянии оплатить задолженность, продемонстрируйте свое финансовое положение и предоставьте план рассрочки платежа, как указано в документе 5. Продемонстрируйте, что вы предприняли разумные усилия для урегулирования задолженности.
При необходимости проконсультируйтесь с адвокатом
Обратитесь за юридической помощью: если ситуация сложная или вы не уверены в своем правовом положении, проконсультируйтесь с юристом по урегулированию задолженности, особенно если речь идет о других долгах или сложностях, как предлагается в документе 3.
Подготовка к судебным слушаниям
Приходите вовремя и будьте готовы: приезжайте заранее, одевайтесь соответствующим образом и берите с собой все необходимые документы. Обратитесь к примеру в Документе 7, чтобы увидеть успешный исход хорошо подготовленного дела.
Подумайте о дополнительных шагах
Уведомите соседей по комнате или свидетелей: если долг связан с общим имуществом, сообщите об этом свидетелям или соседям по комнате, которые могут оказать поддержку, как указано в документе 4.Следуя этим шагам, вы сможете уверенно реагировать на слушания в суде по рассмотрению мелких исков, обеспечить эффективное изложение дела и защитить свои права.
Из этих примеров мы видим, что DeepSeek R1 обладает отличными способностями к рассуждению. Его мыслительный процесс наглядно демонстрирует, как делать выводы из исходных юридических документов:
- R1 сначала строит согласованная модель понимать юридические вопросы, что отражается в его подробных рассуждениях:
首先,我记得关于提前终止罚款的内容……文档 1 提到……
Такой подход "рассуждения перед поиском" позволяет модели систематически связывать понятия из нескольких источников перед поиском. - При рассмотрении сложных сценариев, таких как расторжение договора аренды или суд по мелким искам, мы наблюдаем, что R1 Никаких галлюцинаций. а не явно сортировать свое понимание каждого документа (
综合来看……
). - Наконец, генератор объясняет свои рассуждения, используя точные ссылки, которые связывают вывод с источником. Это обеспечивает четкую цепочку от вопроса к рассуждению и ответу, гарантируя строгость и доступность.
Мы опробовали различные юридические запросы и обнаружили, что модель способна не только извлекать информацию из исходных документов, но и обучаться и рассуждать об их содержании.
Заключение: В заданиях с вопросами и ответами и обобщениямиR1 Это "золотая жила" пошаговых юридических рассуждений. Используйте его на этапе генерации, и вы вряд ли будете разочарованы.
3. Инженерное дело остается важным
Дизайн кия
Развитые навыки рассуждения не отменяют необходимости в хорошо продуманных словах-подсказках. Мы обнаружили, что четкие указания в словах-подсказках необходимы для
- побуждать (кого-л. к чему-л.) ссылка на документ Создайте ответы на все вопросы.
- Предотвращение галлюцинаций Используется подход "сослаться на источник или заявить, что вы не знаете".
- Структурируйте окончательный ответ, чтобы сделать его более читабельным .
В ходе эксперимента мы составляли следующие слова-подсказки:
你是一个帮助分析法律文件及相关内容的 AI 助手。在回复时,请遵循以下准则:
- 在提供的搜索结果中,每个文档的格式为 [Document X begin]...[Document X end],其中 X 表示文档的编号。
- 使用 [citation:X] 形式的引用格式,其中 X 是文档编号,并将引用放在相关信息之后。
- 在整个回答中加入引用,而不仅仅是结尾处。
- 如果信息来自多个文档,请使用多个引用,例如 [citation:1][citation:2]。
- 不是所有搜索结果都相关——请评估并仅使用相关信息。
- 对于较长的回答,请将内容结构化,以段落或部分的形式呈现,以提高可读性。
- 如果在提供的文档中找不到答案,请直接说明,而不要编造信息。
- 一些文档可能是非正式讨论或 Reddit 帖子——请根据内容调整解读方式。
- 让回答尽可能多地包含引用。
首先,在 <think> 标签中解释你的思维过程。
然后,在思维过程之后提供最终答案。
Распределение документов по частям
Кроме того, мы обнаружили, что Эффективное разбиение документов на части необходимо для точного поиска документов. Разбивка документа на части помогает каждому вкраплению более точно представлять конкретную тему и сокращает время, необходимое для генерации каждого вкрапления. Токен Количество.
Для разбивки документов мы используем сегментацию на основе предложений (с помощью NLTK). Кроме того, в начале и конце каждого фрагмента будет содержаться контент, перекрывающий соседние фрагменты. Это помогает модели лучше понимать частичные ссылки без потери общего контекста. Ниже приведен код, используемый для разбивки документов на куски:
def chunk_document(document, chunk_size=2048, overlap=512):
"""使用基于句子的分割方法将文档拆分为重叠的块。"""
text = document['text']
chunks = []
# 先按句子分割
sentences = nltk.sent_tokenize(text)
current_chunk = []
current_length = 0
for sentence in sentences:
sentence_len = len(sentence)
# 如果加入此句子后会超出块大小,则保存当前块
if current_length + sentence_len > chunk_size and current_chunk:
chunk_text = ' '.join(current_chunk)
chunks.append({
'id': document['id'],
'name': document['name'],
'content': document['text'],
'chunk_start': len(' '.join(current_chunk[:-(2 if overlap > 0 else 0)])) if overlap > 0 else 0,
# 其他元数据字段...
})
# 保留最后几句话作为重叠部分
overlap_text = ' '.join(current_chunk[-2:]) # 保留最后 2 句
current_chunk = [overlap_text] if overlap > 0 else []
current_length = len(overlap_text) if overlap > 0 else 0
current_chunk.append(sentence)
current_length += sentence_len + 1 # +1 代表空格
Краткое изложение ключевых моментов:
- Используйте NLTK для разбиения токенов на предложения, а не на символы.
- Контекст документа поддерживается путем сохранения перекрывающихся предложений между блоками.
4. vLLM эффективен и быстр
Из-за огромного объема данных о юридических документах генерация вкраплений для RAG может занять много времени.
Изначально мы использовали программу HuggingFace sentence_transformer
Сначала мы запустили его на графическом процессоре Nvidia L4 и столкнулись с обычной ошибкой "недостаточно памяти CUDA". Сначала мы запустили его на графическом процессоре Nvidia L4, но столкнулись с обычной ошибкой "недостаточно памяти CUDA". После этого мы попробовали Nvidia A100 и обнаружили, что sentence_transformer
Для загрузки всей системы требуется 57 ГБ оперативной памяти. Alibaba-NLP/gte-Qwen2-7B-instruct
Модели.

Мы перешли на vLLMЭто высокопроизводительный и эффективный с точки зрения памяти механизм LLM-интерпретации и обслуживания.
С помощью vLLM мы можем запустить модель на стандартном графическом процессоре Nvidia L4 (~24 ГБ DRAM). Для сравнения, L4 гораздо дешевле, чем A100: на GCP Nvidia L4 стоит около $0.7/час, в то время как Nvidia A100 - не менее $2.9/час.
Сравнивая vLLM и трансформатор предложений на Nvidia A100 (80 ГБ DRAM), мы обнаружили, что vLLM генерирует вкрапления Qwen2 в 5,5 раз быстрее!.
При обработке 10 000 юридических документов (всего 15 000 чанков):
- Стандартное предложение трансформатор Время обработки: около 5,5 часов
- Время обработки vLLM: около 1 часа

Для работы на vLLM используются следующие программы Alibaba-NLP/gte-Qwen2-7B-instruct
для создания встроенной конфигурации SkyPilot YAML:
name: compute-legal-embeddings
resources:
# vLLM 需要 ~24GB DRAM GPU,SentenceTransformer 需要 57GB
accelerators: {L4:1, A100:1}
envs:
START_IDX: ${START_IDX}
END_IDX: ${END_IDX}
file_mounts:
/output:
name: my-bucket-for-embedding-output
mode: MOUNT
setup: |
pip install torch==2.5.1 vllm==0.6.6.post
...
envs:
MODEL_NAME: "Alibaba-NLP/gte-Qwen2-7B-instruct"
run: |
python -m vllm.entrypoints.openai.api_server \
--host 0.0.0.0 \
--model $MODEL_NAME \
--max-model-len 3072 \
--task embed &
python scripts/compute_embeddings.py \
--start-idx $START_IDX \
--end-idx $END_IDX \
--chunk-size 2048 \
--chunk-overlap 512 \
--vllm-endpoint http://localhost:8000
5. Не позволяйте встраиванию занимать 100+ часов - используйте SkyPilot для параллельной обработки!
Генерация эмбедов юридических документов на одном графическом процессоре L4 занимает 100 часов. Мы можем использовать инстансы Spot, чтобы значительно сократить время и затраты:
название (вещи) | исходное время | 100 примеров пятен |
---|---|---|
раз | 100 часов | 1 час (100-кратное ускорение) |
(производство, изготовление и т.д.) затраты | $70.1 | $28.2 (экономия в 2,4 раза) |

Результаты: Нам больше не нужно ждать несколько дней, чтобы сгенерировать эмбеды. Наши задачи могут динамически масштабироваться, быстро переходя от прототипа к производству, даже при наличии больших массивов данных.
вынести вердикт
конструировать (что-л. абстрактное) DeepSeek R1 RAG Давайте узнаем несколько ключевых моментов:
- Расширение возможностей поиска с помощью специализированных моделей встраивания, таких как Qwen2.
- Возможности R1 по рассуждению используются на этапе генерации для обработки сложных юридических запросов.
- (Инженерия остается ключевым элементом контроля цитирования и структурирования контента.
- Повышение эффективности выводов с помощью vLLM позволяет значительно ускорить работу.
- Масштабируйте вычисления ИИ в облаке и на собственной инфраструктуре, чтобы сократить время и затраты на вычисления.
Хотите узнать больше?
- Руководство по строительству RAG:GitHub Repo
- Расширьте задачи искусственного интеллекта с помощью SkyPilot:Документы SkyPilot
Внимание: Система RAG является мощным инструментом для проведения юридических исследований и анализа, но не заменяет квалифицированного специалиста в области права. Ее результаты не должны рассматриваться как юридическая консультация.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...