DeepSeek R1 dans RAG : un résumé de l'expérience pratique

DeepSeek R1 在 RAG 中的应用:实践经验总结

DeepSeek R1 a démontré de fortes capacités de raisonnement dans sa première version. Dans ce billet de blog, nous partageons les détails de l'utilisation de l'application DeepSeek R1 Expérience dans la construction de systèmes de génération assistée par récupération (RAG), avec une spécialisation dans le domaine des documents juridiques.

Nous avons choisi les documents juridiques parce que les professionnels du droit sont souvent confrontés à une tâche décourageante : rechercher parmi une pléthore de cas, de statuts et de revues juridiques. Même les recherches les mieux intentionnées peuvent être entravées par la difficulté de trouver le bon document, sans parler d'en résumer le contenu avec précision. C'est précisément là qu'intervient le RAG Les domaines dans lesquels vous pouvez faire une grande différence (voir aussi Harvey AI).

Nous avons construit un RAG basé sur un grand ensemble de documents juridiques, en utilisant DeepSeek R1 et Qwen2 comme modèles d'intégration. Nous avons mis en libre accès l'ensemble du processus de construction du RAG (fourni par l'organisation vLLM répondre en chantant SkyPilot ) et ont partagé des leçons précieuses - ce qui fonctionne et ce qui ne fonctionne pas.

Vous voulez en faire l'expérience vous-même 🔥 ? Essayez notre démo en ligne :Cliquez ici.

Nous avons ouvert le processus de construction du RAG. Cliquez ici pour voir. N'hésitez pas à découvrir comment nous combinons vLLM + SkyPilot pour des performances rapides, stables et évolutives.

DeepSeek R1 在 RAG 中的应用:实践经验总结

Pourquoi construire un RAG sur des documents juridiques ?

La génération d'augmentation de la récupération (RAG) est cruciale dans des domaines tels que le droit, où la précision et la traçabilité sont d'une importance capitale. En combinant un récupérateur spécialisé avec un puissant générateur de grands modèles linguistiques (LLM), nous pouvons obtenir des résultats optimaux :

  1. de documents très pertinentsrécupérer (données)
  2. Textes à pouvoir de raisonnementgénérant
  3. Par référence directeRéduction des hallucinations

Pour construire ce RAG, nous avons utilisé :

  • pile de droit/pile de droit Un sous-ensemble de l'ensemble de données (axé sur les conseils juridiques) ;
  • ChromaDB Sert de référentiel vectoriel pour le stockage et l'interrogation des encastrements ;
  • Qwen2 comme modèle d'intégration de la recherche ;
  • DeepSeek R1 Générer un modèle comme réponse finale.

L'ensemble du système fonctionne sur vLLM ci-dessus, et peut être passé par la fonction SkyPilot Déployer en toute transparence sur n'importe quel cloud pour garantir une disponibilité optimale des GPU et une rentabilité optimale. Le processus complet de construction de RAG en open source est disponible ici.

Une expérience précieuse : précautions et contre-indications

1. ne pas utiliser DeepSeek R1 pour les recherches

(aller de l'avant et le faire) sans hésiter DeepSeek R1 a une excellente capacité de raisonnement, mais ilinadaptéPour générer des liens - du moins pas pour l'instant.

Nous constatons qu'avec des modèles d'intégration spécialisés Alibaba-NLP/gte-Qwen2-7B-instruct(actuellement au MTEB) le palmarès (des best-sellers) (le modèle d'intégration le mieux classé) par rapport à l'intégration générée par DeepSeek R1.

Nous utilisons chacun de ces deux modèles pour générer des encastrements pour l'ensemble de données et construire deux bases de données vectorielles. Ensuite, la même requête est utilisée pour les deux modèles et les 5 meilleurs encastrements les plus similaires dans les bases de données vectorielles respectives sont récupérés.

Demande de renseignements : 我收到了一张关于债务纠纷的小额索赔法庭传票,我应该如何准备?

Résultats pour : Qwen2Résultats de la recherche pour DeepSeek-R1
[CA] Une question sur les petites créancesPuis-je poursuivre une entreprise qui engage des télévendeurs et qui continue à m'appeler en dépit de la loi ?
[CO] Je viens de recevoir une citation à comparaître pour une facture d'hôpital que l'assurance a payée ....... J'ai des preuves, mais dois-je quand même faire appel à un avocat pour résoudre ce problème ?Que faire lorsque la fille d'un ancien ami est arrêtée pour vol à l'étalage ?
Je suis poursuivi en justice pour avoir manqué à mon obligation de rembourser un prêt de 3 500 dollars.Tard dans la nuit, après le travail, vous sortez dans un parking presque vide et voyez deux hommes s'acharner sur la portière de votre voiture. Vous leur demandez d'arrêter, mais ils vous ignorent. Vous êtes en possession d'une arme de poing dissimulée, que pouvez-vous faire ?
Le chat de sa colocataire a mangé un mélange de noix et a dû aller chez le vétérinaire avec une facture de plus de 1 500 dollars. Elle menace de me poursuivre devant le tribunal des petites créances pour me faire payer, mais il n'y a aucune preuve que les snacks m'appartiennent. Dois-je m'inquiéter ?Accusation de possession de marijuana dans le Missouri sans preuve matérielle.
J'ai récemment reçu une assignation civile pour une dette que je pensais avoir payée.Est-il légal de "lancer un chien sur quelqu'un" ?

Pourquoi cela fait-il une différence ?

Dans le tableau ci-dessus, les résultats de recherche de DeepSeek R1 sont nettement moins bons. Comment cela se fait-il ?

Nous pensons que le problème fondamental réside dans la manière dont DeepSeek R1 est formé. L'architecture de DeepSeek R1 se concentre principalement sur l'inférence, en mettant l'accent sur la pensée séquentielle et les connexions logiques.Cela signifie que DeepSeek R1 ne cartographie pas les documents dans un espace sémantique.

En revanche, la variante Qwen2 (gte-Qwen2-7B-instructFormation spécifique aux tâches de similarité sémantiquequi peut créer un espace à haute dimension dans lequel les documents similaires sur le plan conceptuel sont étroitement regroupés, indépendamment de leur formulation spécifique.

Cette différence dans l'approche de formation signifie que Qwen2 parvient bien à capturer l'intention de la requête, alors que DeepSeek R1 suit parfois des chemins d'inférence qui conduisent à des résultats récupérés qui sont pertinents d'un point de vue thématique mais qui ne le sont pas d'un point de vue pratique.

DeepSeek R1 ne doit pas être utilisé comme modèle d'intégration de la recherche pour les RAG à moins qu'il ne soit finement ajusté pour l'intégration.

2. génération avec R1 : pouvoir de raisonnement impressionnant

(aller de l'avant et le faire) sans hésiter R1 L'encastrement présente quelques difficultés, mais nous le trouvons générant Cette capacité est remarquable. En utilisant l'approche de la chaîne de pensée de R1, nous avons observé :

  • Une cohérence plus forte : Le modèle est capable de synthétiser des informations provenant de plusieurs documents et de référencer clairement les passages pertinents.
  • Réduction des hallucinations : R1 Raisonnez en interne "pour vous-même" et validez chaque conclusion à l'aide de vos données.

Prenons quelques exemples :

Exemple 1 : Résiliation du bail

Question : 我想解除租约,但房东不允许我这样做。

Voir le processus de réflexion de DeepSeek R1

Je veux résilier mon bail, mais le propriétaire ne le permet pas. Je ne sais pas quelles sont mes possibilités. J'essaie de faire la part des choses en me basant sur la documentation fournie.

Tout d'abord, je me souviens d'avoir lu dans le document 1 la pénalité pour résiliation anticipée d'un contrat de location. Une personne a demandé s'il était possible de résilier un bail après 15 mois d'un bail de 18 mois et la réponse était oui, mais seulement si le propriétaire était d'accord ou si un nouveau locataire était trouvé. Par conséquent, si je voulais résilier le bail avant terme, le propriétaire pourrait me tenir pour responsable s'il n'était pas d'accord ou s'il ne pouvait pas relouer rapidement. Cela semble être une voie possible, mais je ne suis pas sûr que mon propriétaire soit disposé à négocier.

Ensuite, dans le document 2, la raison pour laquelle quelqu'un voudrait résilier le bail est de se marier. La réponse suggère que le bail peut autoriser le paiement d'une indemnité pour résilier le bail, ou qu'il faut attendre la fin de la durée du bail. Je peux donc vérifier si mon bail comporte une clause de résiliation, telle qu'une clause de sous-location ou de cession. Si ce n'est pas le cas, il se peut que je doive payer une pénalité ou attendre la fin du bail.

Le document 3 traite de la résiliation d'un bail en raison de la présence d'un chien d'assistance. Les options comprennent le paiement d'une pénalité, la sous-location, la recherche d'un autre chien d'assistance ou l'attente de l'expiration du bail. Ce document ne me convient pas tout à fait, mais il montre qu'à moins qu'il n'y ait une raison spécifique, la résiliation d'un bail a généralement des conséquences.

Dans le document 4, le propriétaire a augmenté le loyer et l'utilisateur s'interroge sur la brièveté du délai de préavis. La réponse mentionne qu'en théorie, il devrait y avoir une période de préavis de 30 jours, mais que le propriétaire peut proposer un compromis, par exemple accepter de payer le loyer initial jusqu'à la prochaine location. Si mon propriétaire refuse de me libérer du bail, il est peut-être possible d'essayer de lui proposer de payer un loyer plus élevé, mais je ne sais pas si c'est dans mes moyens financiers.

Le document 5 mentionne que le propriétaire a refusé de renouveler le bail parce qu'il avait un chat. La réponse indiquait que le propriétaire n'était pas légalement obligé de renouveler le bail et qu'il avait donc la possibilité de ne pas le faire. Cela m'a fait penser que mon propriétaire pouvait disposer d'un pouvoir discrétionnaire similaire, mais je ne sais pas si c'est la raison de son refus.

Le document 6 traite de la situation dans laquelle un bail est renouvelé et de nouvelles conditions y sont attachées. La réponse indique que le propriétaire doit respecter le bail existant jusqu'à son expiration. Par conséquent, si le propriétaire refuse de me laisser sortir du bail, cela peut signifier qu'il doit attendre la fin du bail, à moins qu'il n'y ait une clause spéciale dans le bail qui l'autorise à ne pas renouveler le bail.

Les documents 7 et 8 traitent des difficultés rencontrées par les bureaux de location lors du renouvellement des baux. Les documents mentionnent que le propriétaire peut ne pas vouloir renouveler le bail en raison de mauvaises critiques ou pour d'autres raisons, mais que légalement, le propriétaire peut choisir de ne pas renouveler le bail. Cela suggère que le propriétaire a un certain pouvoir, mais qu'il n'est pas obligé légalement de me laisser sortir du bail prématurément, à moins qu'il n'y ait une raison spécifique.

Le document 9 traite de l'obligation de donner un préavis de 30 jours avant de déménager. Même si j'emménage sans signer de contrat, le propriétaire peut toujours exiger un préavis. Par conséquent, si je déménage sans préavis, je risque des amendes ou de devoir payer le loyer pour le reste de la durée du bail.

Enfin, le document 10 traite de la situation où le locataire est responsable de la totalité du loyer lorsque le colocataire déménage. Le corrigé propose de partager le loyer en sous-louant. Si je devais déménager, je pourrais essayer de sous-louer ma part du bail, mais cela dépendrait des conditions du bail.

En résumé, je dois vérifier si mon bail contient une clause de résiliation anticipée. Si ce n'est pas le cas, je risque de devoir payer une pénalité, à moins que le propriétaire n'accepte. Si j'ai une raison valable, comme un déménagement, je peux essayer de négocier avec le propriétaire. Si la sous-location est possible, cela peut être une solution, mais je dois vérifier si le bail l'autorise. Je dois également me demander si je peux attendre la fin naturelle du bail, si je ne trouve pas d'autre solution.

Voir la réponse de DeepSeek R1

Sur la base d'une analyse de la documentation fournie, voici une approche structurée de la résiliation d'un bail lorsque le bailleur refuse d'autoriser une résiliation anticipée :

1. examen des contrats de location
Clauses de résiliation anticipée : vérifiez si votre contrat de location contient des clauses de résiliation anticipée. Si une telle clause existe, vous pouvez être légalement tenu de payer une pénalité ou de donner un préavis à votre propriétaire pour résilier le bail [1].
Sous-location ou cession : déterminez si votre contrat de location vous permet de sous-louer ou de céder le bail à quelqu'un d'autre. Cela peut vous permettre d'éviter des amendes ou des poursuites judiciaires [2].
2. comprendre le pouvoir discrétionnaire du bailleur
Renouvellements discrétionnaires : le propriétaire peut avoir le droit de refuser de renouveler le bail, en particulier si aucune clause de votre bail n'autorise explicitement une résiliation anticipée. Dans ce cas, vous pouvez être tenu d'honorer le bail jusqu'à son terme [6][8].
3. la prise en compte des conséquences financières
Pénalités : préparez-vous à faire face à des pénalités financières si vous mettez fin à votre contrat de location de manière anticipée sans l'accord de votre propriétaire. Il peut s'agir d'un supplément de loyer ou d'un dépôt de garantie [1][9].
4. explorer les négociations
Négocier les conditions : si vous avez une raison valable de résilier votre contrat de manière anticipée, comme un déménagement, vous pouvez négocier avec votre propriétaire une réduction des pénalités ou l'autorisation de résilier le contrat de manière anticipée [2].
5. la sous-location comme solution
Sous-location : si possible, envisagez de sous-louer une partie de votre bail pour vous aider à couvrir vos obligations financières [10].
6. planifier l'avenir
Attendez la fin du bail : s'il n'est pas possible de résilier le bail de manière anticipée, prévoyez de rester jusqu'à l'expiration du bail. Vous éviterez ainsi les amendes et les problèmes juridiques [6][8].
Conclusion :

Lisez toujours attentivement les termes de votre bail avant d'agir. Si la résiliation anticipée n'est pas autorisée, envisagez de sous-louer ou d'attendre la fin du bail. Si vous pouvez négocier avec votre propriétaire, c'est peut-être la meilleure solution. Consultez toujours un professionnel du droit pour obtenir des conseils sur votre situation spécifique.

Exemple 2 : Cour des petites créances

Question. 我收到了一张关于争议债务的小额索赔法院传票。我应该如何准备?

Voir le processus de réflexion de DeepSeek R1

Je viens de recevoir une assignation au tribunal des petites créances pour une dette contestée. Je ne sais pas trop par où commencer, mais j'ai besoin de savoir comment me préparer à cette situation. D'après les résultats de la recherche, il y a quelques personnes qui ont vécu des situations similaires, alors peut-être que je peux apprendre quelque chose de leur expérience.

Tout d'abord, je devrais probablement comprendre la nature de la dette. Dans le Doc 5, une personne reçoit une convocation pour une dette qu'elle pensait déjà payer. Elle ne comprend pas pourquoi elle a reçu une autre convocation. Je dois donc vérifier que cette dette est valable. Peut-être devrais-je vérifier mes dossiers ou demander au créancier une preuve de la dette. D'après le document 10, il est bon de refuser la plainte et de demander des preuves. De cette façon, je peux remettre en question la crédibilité de la dette.

Ensuite, je dois préparer mon dossier. Dans le document 1, quelqu'un a traité d'une question similaire et le conseil était de s'assurer que le cas pouvait être présenté en 10 minutes ou moins. Cela signifie que je dois être concis et organiser toutes mes preuves. Je dois rassembler tous les documents qui prouvent que je ne suis pas redevable de la dette, tels que les reçus de paiement, les lettres des créanciers indiquant un règlement, ou les documents d'assurance comme dans le document 2.

Je dois également prendre en compte la question du témoin. Dans le document 4, un colocataire menace de poursuivre cette personne en justice pour une facture de vétérinaire, et le conseil est d'ignorer la menace à moins d'être poursuivi en justice. Mais si je suis poursuivi, je dois me préparer à avoir des témoins pour me soutenir. Peut-être un ami qui était avec moi lorsque j'ai essayé de payer, ou un ancien locataire qui peut témoigner de l'état de la maison, comme le montre le document 7.

Il est important de comprendre la procédure judiciaire. Comme le montre le document 7, après avoir obtenu gain de cause devant la Cour des petites créances, le propriétaire a interjeté appel, ce qui signifie qu'il a dû comparaître à nouveau devant le tribunal. La personne a dû repasser par la même procédure. Je dois donc savoir que même si je gagne, il peut y avoir une procédure d'appel. Je dois être prêt à présenter à nouveau mon dossier si nécessaire.

Je dois également tenir compte des assignations et des actes de procédure. Dans le Doc 5, quelqu'un doit répondre aux conclusions. Si je ne le fais pas, je risque d'obtenir un jugement par défaut. Je dois donc répondre à temps et exposer clairement ma défense.

L'étape suivante est le dépôt d'un mémoire en défense. Le document 10 mentionne que, même en cas d'offre, je dois toujours refuser et demander des preuves. Cela me donnera plus de poids dans les négociations ultérieures. Je dresserai la liste de tous mes arguments et de toutes mes preuves dans mon mémoire en défense.

Il est également important de tenir compte de ma situation financière. Dans le document 6, on s'inquiétait de la possibilité d'être emprisonné parce qu'on ne pouvait pas payer, mais il a été précisé que la prison pour débiteurs n'existe pas. Cependant, je dois toujours communiquer avec le tribunal au sujet de ma situation financière. Si je ne suis pas en mesure de payer, je dois montrer que j'ai fait des efforts raisonnables et proposer un plan de paiement échelonné, comme indiqué dans le document 5.

Si j'ai des doutes sur une question juridique, je devrais peut-être consulter un avocat. Dans le document 3, la personne déménage et a un rendez-vous au tribunal. Il peut être utile de consulter un avocat spécialisé dans le règlement des dettes, surtout si j'ai d'autres dettes ou des complications.

Enfin, je dois me préparer à l'audience. Il est essentiel d'arriver à l'heure, de s'habiller correctement et de préparer tous les documents. Dans le document 7, cette personne a gagné l'affaire en étant bien préparée avec des preuves, je devrais donc faire de même.

En résumé, je dois : valider les dettes, préparer les preuves, comprendre les procédures judiciaires, répondre correctement aux citations à comparaître, éventuellement consulter un avocat, et être organisé et prêt pour le procès. Citer les documents pertinents m'aidera à étayer mes décisions.

Voir la réponse de DeepSeek R1

Sur la base de l'analyse des documents juridiques fournis, voici un plan structuré et organisé pour la préparation des citations à comparaître devant le tribunal des petites créances en cas de dettes contestées :

Vérification des dettes
Vérifiez les preuves fournies par le créancier : commencez par examiner tous les documents fournis par le créancier pour confirmer la validité et les détails de la dette. Utilisez ces informations pour les recouper avec vos propres dossiers ou toute communication antérieure.
Demande de documents : contactez le créancier pour lui demander une preuve formelle de la dette, telle qu'une décision de justice ou un accord de règlement. Cette étape est essentielle pour contester la crédibilité de la dette, comme le recommande le document 10.
Préparer votre dossier
Rassemblement des preuves : Rassemblez toutes les preuves pertinentes, telles que les reçus de paiement, les lettres des créanciers indiquant le règlement ou les documents d'assurance, comme indiqué dans les documents 2 et 8.
Organisation et présentation des preuves : veillez à ce que toutes les preuves soient organisées et prêtes à être présentées au tribunal, en suivant les conseils donnés dans le document 1. Si nécessaire, envisagez d'inclure des déclarations de témoins, tels que des amis qui étaient présents lors des tentatives de paiement ou d'anciens locataires du bien en question.
Compréhension des procédures judiciaires
Préparez-vous à des audiences multiples : si vous obtenez gain de cause, sachez qu'il peut y avoir une procédure d'appel, telle que décrite dans le document 7. Préparez-vous à présenter à nouveau votre dossier si nécessaire.
Se familiariser avec les procédures judiciaires : apprendre les bases d'un petit tribunal, y compris la structure de l'audience et le rôle du juge.
Répondre aux citations à comparaître et aux actes d'accusation
Déposer une déclaration de défense : veillez à répondre à la citation à comparaître dans les délais impartis afin d'éviter un jugement par défaut. Exposez clairement votre défense dans votre mémoire en défense et demandez une preuve de la dette, comme recommandé dans le document 10.
Négation de l'acte d'accusation : Toujours nier l'acte d'accusation afin de profiter des opportunités de négociation, comme indiqué dans le document 10.
Prise en compte de la situation financière
Communiquez votre situation financière : si vous n'êtes pas en mesure de payer vos dettes, démontrez votre situation financière et proposez un plan d'échelonnement, comme indiqué dans le document 5. Démontrez que vous avez fait des efforts raisonnables pour résoudre la dette.
Consulter un avocat si nécessaire
Demander un avis juridique : si la situation est complexe ou si vous n'êtes pas sûr de votre position juridique, consultez un avocat spécialisé dans le règlement des dettes, surtout si d'autres dettes ou d'autres problèmes complexes sont en jeu, comme le suggère le document 3.
Préparation des audiences
Soyez à l'heure et préparé : arrivez tôt, habillez-vous correctement et apportez tous les documents nécessaires. Reportez-vous à l'exemple du document 7 pour connaître l'issue favorable d'un dossier bien préparé.
Pensez aux étapes supplémentaires
Informer les colocataires ou les témoins : Si la dette concerne des biens communs, pensez à informer les témoins ou les colocataires qui peuvent apporter leur soutien, comme indiqué dans le document 4.

En suivant ces étapes, vous pouvez répondre en toute confiance à une audience du tribunal des petites créances, veiller à ce que votre dossier soit présenté de manière efficace et protéger vos droits.

Ces exemples montrent que DeepSeek R1 possède d'excellentes capacités de raisonnement. Son processus de réflexion montre clairement comment tirer des conclusions à partir de documents juridiques sources :

  • R1 construit d'abord un modèle cohérent de comprendre les questions juridiques, ce qui se reflète dans son processus de raisonnement détaillé :首先,我记得关于提前终止罚款的内容……文档 1 提到…… Cette approche de "raisonnement avant extraction" permet au modèle de relier systématiquement des concepts provenant de sources multiples avant l'extraction.
  • Lorsqu'il s'agit de scénarios complexes tels que la résiliation d'un bail ou le règlement d'une petite affaire, nous constatons que R1 Pas d'hallucinations. plutôt que de trier explicitement sa compréhension de chaque document (综合来看……).
  • Enfin, le générateur explique son raisonnement à l'aide de références précises qui relient la conclusion à la source. Cela permet d'établir une chaîne claire entre la question, le raisonnement et la réponse, garantissant ainsi la rigueur et l'accessibilité.

Nous avons essayé une variété de requêtes juridiques et nous avons constaté que le modèle était non seulement capable d'extraire des informations des documents sources, mais aussi d'apprendre et de raisonner sur leur contenu.

Conclusion : Dans les tâches de questions-réponses et de synthèse, lesR1 Il s'agit d'une "mine d'or" de raisonnement juridique étape par étape. Utilisez-le dans la phase générative et vous ne serez pas déçu.

3. l'ingénierie reste importante

Conception de la queue

Des capacités de raisonnement avancées n'éliminent pas le besoin de mots-clés bien conçus. Nous avons constaté que des conseils explicites sous forme de mots-clés sont essentiels pour

  • contribuer à (un certain développement) référence du document Générer des réponses tout au long du processus.
  • Prévenir les hallucinations L'approche "citez une source ou dites que vous ne savez pas" est utilisée.
  • Structurer la réponse finale pour la rendre plus lisible .

Au cours de l'expérience, nous avons construit les mots-indices suivants :

你是一个帮助分析法律文件及相关内容的 AI 助手。在回复时,请遵循以下准则:
- 在提供的搜索结果中,每个文档的格式为 [Document X begin]...[Document X end],其中 X 表示文档的编号。
- 使用 [citation:X] 形式的引用格式,其中 X 是文档编号,并将引用放在相关信息之后。
- 在整个回答中加入引用,而不仅仅是结尾处。
- 如果信息来自多个文档,请使用多个引用,例如 [citation:1][citation:2]。
- 不是所有搜索结果都相关——请评估并仅使用相关信息。
- 对于较长的回答,请将内容结构化,以段落或部分的形式呈现,以提高可读性。
- 如果在提供的文档中找不到答案,请直接说明,而不要编造信息。
- 一些文档可能是非正式讨论或 Reddit 帖子——请根据内容调整解读方式。
- 让回答尽可能多地包含引用。
首先,在 <think> 标签中解释你的思维过程。
然后,在思维过程之后提供最终答案。

Regroupement de documents

En outre, nous avons constaté que Un découpage efficace des documents est essentiel pour une récupération précise des documents.. Le découpage du document permet à chaque intégration de représenter plus précisément un sujet spécifique et de réduire le temps nécessaire à la génération de chaque intégration. Jeton Quantité.

Nous utilisons une segmentation basée sur les phrases (via NLTK) pour regrouper les documents. De plus, le début et la fin de chaque morceau contiendront du contenu qui se chevauche avec les morceaux voisins. Cela permet au modèle de mieux comprendre les références partielles sans perdre le contexte général. Le code utilisé pour le découpage des documents est présenté ci-dessous :

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 代表空格

Résumé des points clés :

  1. Utilisez NLTK pour le découpage de tokens en phrases, et non en caractères.
  2. Le contexte du document est maintenu en conservant les phrases qui se chevauchent entre les blocs.

4. vLLM est efficace et rapide

En raison du volume considérable de données relatives aux documents juridiques, la génération d'enchâssements pour le RAG peut prendre beaucoup de temps.

Dans un premier temps, nous avons utilisé le logiciel HuggingFace sentence_transformerNous l'avons d'abord lancé sur un GPU Nvidia L4 et avons rencontré l'erreur habituelle "CUDA memory insufficient". Nous l'avons d'abord lancé sur un GPU Nvidia L4, mais nous avons rencontré l'erreur habituelle "insufficient CUDA memory" (mémoire CUDA insuffisante). Après cela, nous avons essayé le Nvidia A100 et nous avons constaté que la mémoire CUDA était insuffisante. sentence_transformer 57 Go de DRAM sont nécessaires pour charger l'ensemble des données. Alibaba-NLP/gte-Qwen2-7B-instruct Modèles.

DeepSeek R1 在 RAG 中的应用:实践经验总结

Nous sommes passés à vLLMIl s'agit d'un moteur d'inférence et de service LLM à haut débit et à mémoire réduite.

Avec vLLM, nous pouvons faire tourner le modèle sur un GPU Nvidia L4 standard (~24GB DRAM). En comparaison, le L4 est beaucoup moins cher que l'A100 : sur GCP, le Nvidia L4 coûte environ $0.7/heure, alors que le Nvidia A100 coûte au moins $2.9/heure.

En comparant vLLM et sentence transformer sur un Nvidia A100 (80GB DRAM), nous constatons que vLLM génère des encastrements Qwen2 jusqu'à 5,5 fois plus vite !.

Lors du traitement de 10 000 documents juridiques (15 000 morceaux au total) :

  • Phrase standard transformateur Temps de traitement : environ 5,5 heures
  • Temps de traitement du vLLM : environ 1 heure
DeepSeek R1 在 RAG 中的应用:实践经验总结

Les éléments suivants sont utilisés pour fonctionner sur vLLM Alibaba-NLP/gte-Qwen2-7B-instruct pour générer une configuration YAML SkyPilot intégrée :

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) Ne laissez pas l'intégration prendre plus de 100 heures - utilisez SkyPilot pour le traitement parallèle !

La génération de documents juridiques sur un seul GPU L4 prend 100 heures. Nous pouvons exploiter les instances Spot pour réduire considérablement les délais et les coûts :

nom (d'une chose)heure initiale100 exemples de spots
fois100 heures1 heure (accélération 100x)
les coûts (de fabrication, de production, etc.)$70.1 | $28.2 (2,4 fois plus d'économies)
DeepSeek R1 在 RAG 中的应用:实践经验总结

Résultats : Nous n'avons plus besoin d'attendre des jours pour générer des embeds. Nos tâches peuvent évoluer de manière dynamique, passant rapidement du prototype à la production, même face à des ensembles de données volumineux.

rendre un verdict

construire (qqch abstrait) DeepSeek R1 RAG Voici quelques points clés :

  1. Améliorer les capacités de recherche avec des modèles d'intégration spécialisés tels que Qwen2.
  2. Les capacités de raisonnement de R1 sont utilisées dans la phase de génération pour traiter les questions juridiques complexes.
  3. (L'ingénierie reste essentielle pour contrôler les citations et structurer le contenu.
  4. Améliorer l'efficacité de l'inférence avec vLLM pour des accélérations significatives.
  5. Faites évoluer l'informatique de l'IA dans le nuage et sur votre propre infrastructure afin de réduire les temps et les coûts de calcul.

Vous voulez en savoir plus ?

Attention : Le système RAG est un outil puissant de recherche et d'analyse juridique, mais il ne peut se substituer à un professionnel du droit qualifié. Ses résultats ne doivent pas être considérés comme des conseils juridiques.

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...