Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

DeepSeek R1 no RAG: um resumo da experiência prática

DeepSeek R1 em RAG: Resumo da experiência prática-1

DeepSeek O R1 demonstrou fortes recursos de raciocínio em sua primeira versão. Nesta postagem do blog, compartilhamos os detalhes do uso do DeepSeek R1 Experiência na criação de sistemas RAG (Retrieval-Augmented Generation), com especialização na área de documentos jurídicos.


Escolhemos o Legal Documents porque os profissionais da área jurídica geralmente se deparam com uma tarefa assustadora: pesquisar em uma infinidade de casos, estatutos e revisões de leis. Até mesmo a pesquisa mais atenta pode ser prejudicada pela dificuldade de encontrar o documento certo, sem falar no resumo preciso do conteúdo. É exatamente nesse ponto que RAG Áreas em que você pode fazer uma grande diferença (consulte também Harvey AI).

Criamos um RAG com base em um grande conjunto de dados de documentos jurídicos, usando o DeepSeek R1 e o Qwen2 como modelos de incorporação. Todo o processo de construção do RAG (fornecido pelo vLLM responder cantando SkyPilot fornecer suporte) e compartilharam algumas lições valiosas - o que funciona e o que não funciona.

Quer experimentar por si mesmo 🔥? Experimente nossa demonstração on-line:Clique aqui.

Nós abrimos o código-fonte desse processo de criação do RAG Clique aqui para ver. Sinta-se à vontade para explorar como combinamos vLLM + SkyPilot para um desempenho rápido, estável e dimensionável.

DeepSeek R1 em RAG: Resumo da experiência prática-2

Por que criar um RAG em documentos legais?

O Retrieval Augmentation Generation (RAG) é fundamental em áreas como a jurídica, em que a precisão e a rastreabilidade são de suma importância. Combinando um recuperador especializado com um poderoso gerador de Modelo de Linguagem Grande (LLM), podemos obter os melhores resultados:

  1. de documentos altamente relevantesrecuperar (dados)
  2. Textos com poder de raciocíniogerando
  3. Por referência diretaRedução de alucinações

Para criar esse RAG, usamos:

  • pilha de leis/pilha de leis Um subconjunto do conjunto de dados (com foco em consultoria jurídica);
  • ChromaDB Serve como um repositório de vetores para armazenar e consultar embeddings;
  • Qwen2 como um modelo de incorporação de recuperação;
  • DeepSeek R1 Gerar um modelo como resposta final.

O sistema inteiro é executado em vLLM acima, e pode ser passado pelo SkyPilot Implemente perfeitamente em qualquer nuvem para garantir a disponibilidade ideal da GPU e a economia. O processo completo de criação do RAG de código aberto está disponível aqui.

Experiência valiosa: precauções e contraindicações

1. não use o DeepSeek R1 para pesquisas

(go ahead and do it) without hesitating DeepSeek R1 tem excelente capacidade de raciocínio, masinadequadoPara gerar incorporações - pelo menos não por enquanto.

Descobrimos que, com modelos de incorporação especializados Alibaba-NLP/gte-Qwen2-7B-instruct(atualmente no MTEB) as paradas (de best-sellers) (o modelo de incorporação com a classificação mais alta) em comparação com a incorporação gerada pelo DeepSeek R1.

Usamos cada um desses dois modelos para gerar embeddings para o conjunto de dados e construir dois bancos de dados de vetores. Em seguida, a mesma consulta é usada para ambos os modelos e as 5 incorporações mais semelhantes nos respectivos bancos de dados de vetores são recuperadas.

Consulta: Recebi uma intimação do Juizado de Pequenas Causas referente a uma disputa de dívida. Como devo me preparar?

Resultados para: Qwen2 Resultados da pesquisa para DeepSeek-R1
[CA] Uma pergunta sobre pequenas causas Posso processar uma empresa que contrata operadores de telemarketing e continua me ligando, apesar da lei?
[CO] Acabei de receber uma intimação judicial de uma conta hospitalar que o seguro pagou ....... Tenho provas, mas ainda preciso contratar um advogado para resolver o problema? O que fazer quando a filha de uma ex-namorada é presa por furto em uma loja?
Estou sendo processado por inadimplência em um empréstimo de US$ 3.500. Tarde da noite, depois do trabalho, você sai para um estacionamento quase vazio e vê dois homens bisbilhotando a porta do seu carro. Você diz para eles pararem, mas eles o ignoram. Você está de posse de uma arma de fogo escondida, o que pode fazer?
O gato da colega de quarto comeu alguns salgadinhos de nozes e teve que ir ao veterinário com uma conta de mais de US$ 1.500. Ela está ameaçando me levar ao tribunal de pequenas causas para que eu pague por isso, mas não há nenhuma evidência de que os petiscos sejam meus. Devo me preocupar? Acusação de posse de maconha no Missouri sem evidência física.
Recentemente, recebi uma intimação civil por uma dívida que pensei ter pago. É legal "colocar um cachorro atrás de alguém"?

Por que isso faz diferença?

Na tabela acima, o DeepSeek R1 tem resultados de recuperação significativamente piores. Por que isso acontece?

Acreditamos que o problema fundamental está na forma como o DeepSeek R1 é treinado. A arquitetura do DeepSeek R1 se concentra principalmente na inferência, enfatizando o pensamento sequencial e as conexões lógicas.Isso significa que o DeepSeek R1 não mapeia documentos em um espaço semântico.

Em contrapartida, a variante Qwen2 (gte-qwen2-7b-instructTreinamento específico para tarefas de similaridade semânticaque pode criar um espaço de alta dimensão em que documentos conceitualmente semelhantes são agrupados de forma estreita, independentemente do texto específico.

Essa diferença na abordagem de treinamento significa que o Qwen2 tem um bom desempenho na captura da intenção da consulta, enquanto o DeepSeek R1 às vezes segue caminhos de inferência que levam a resultados recuperados que são tematicamente relevantes, mas praticamente irrelevantes.

O DeepSeek R1 não deve ser usado como um modelo de incorporação de recuperação para RAGs, a menos que seja ajustado para incorporação.

2. geração com R1: poder de raciocínio impressionante

(go ahead and do it) without hesitating R1 Há alguma dificuldade na incorporação, mas achamos que é possível gerando A capacidade de fazer isso é notável. Utilizando a abordagem de cadeia de raciocínio do R1, observamos que:

  • Maior coerência: O modelo é capaz de sintetizar informações de vários documentos e referenciar claramente as passagens relevantes.
  • Redução das alucinações: R1 Raciocine internamente "para si mesmo" e valide cada conclusão com seus dados.

Vamos dar uma olhada em alguns exemplos:

Exemplo 1: Rescisão do contrato de aluguel

Pergunta: Quero rescindir o contrato de aluguel, mas o locador não permite que eu o faça.

Veja o processo de pensamento do DeepSeek R1

Quero rescindir meu contrato de aluguel, mas o locador não permite. Não tenho certeza das opções que tenho. Estou tentando resolver as coisas com base na documentação fornecida.

Primeiramente, lembro-me de ter lido no Paper 1 sobre a penalidade por rescisão antecipada de um contrato de aluguel. Uma pessoa perguntou se era possível rescindir um contrato de locação após 15 meses de um contrato de 18 meses e a resposta foi sim, mas somente se o locador concordasse ou se fosse encontrado um novo locatário. Portanto, se eu quisesse rescindir o contrato de aluguel antecipadamente, o locador poderia me responsabilizar, a menos que concordasse ou pudesse voltar a alugar rapidamente. Esse parece ser um caminho possível, mas não sei se o proprietário estaria disposto a negociar.

Em seguida, no Documento 2, o motivo pelo qual alguém desejaria rescindir o contrato de aluguel é para se casar. A resposta sugere que o contrato de aluguel pode permitir o pagamento de uma taxa para rescindir o contrato ou pode ser necessário esperar até o final do prazo do contrato. Portanto, posso verificar se meu contrato de aluguel tem uma cláusula que permite a rescisão, como uma cláusula de sublocação ou cessão. Caso contrário, talvez eu precise pagar uma multa ou esperar até o final do contrato de aluguel.

O Documento 3 discute a rescisão de um contrato de aluguel devido a um cão de serviço. As opções incluem pagar uma multa, sublocar, encontrar outro cão de serviço ou esperar até o vencimento do contrato de aluguel. Isso não funciona muito bem para mim, mas mostra que, a menos que haja um motivo específico, geralmente há algumas consequências na rescisão de um contrato de aluguel.

No Documento 4, o locador havia aumentado o aluguel e o usuário questionou o curto período de aviso prévio. A resposta menciona que, em teoria, deveria haver um período de aviso prévio de 30 dias, mas que o locador pode oferecer uma solução de compromisso, como concordar em pagar o aluguel original até a próxima locação. Se o meu locador se recusar a me deixar sair do contrato de locação, talvez seja possível tentar oferecer a opção de pagar um aluguel mais alto, mas não sei se isso está dentro das minhas possibilidades financeiras.

O documento 5 menciona que o locador se recusou a renovar o contrato de aluguel porque ele tinha um gato. A resposta indicou que o locador não era legalmente obrigado a renovar o contrato e, portanto, tinha a opção de não renovar o contrato. Isso me fez pensar que o meu locador pode ter um poder discricionário semelhante, mas não tenho certeza se esse foi o motivo da recusa.

O Documento 6 discute a situação em que um contrato de aluguel é renovado e novos termos são anexados. A resposta afirma que o locador deve honrar o contrato de aluguel existente até o seu vencimento. Portanto, se o locador se recusar a me deixar sair do contrato de locação, isso pode significar que ele terá de esperar até o final do contrato, a menos que haja uma cláusula especial no contrato que permita que ele não renove o contrato.

Os documentos 7 e 8 discutem as dificuldades enfrentadas pelos escritórios de locação para renovar os contratos de aluguel. Os documentos mencionam que o locador pode não querer renovar o contrato de locação devido a críticas negativas ou outros motivos, mas, legalmente, o locador pode optar por não renovar o contrato. Isso sugere que o locador tem algum poder, mas pode não ser legalmente obrigado a me deixar sair do contrato de locação antecipadamente, a menos que haja um motivo específico.

O Documento 9 discute a exigência de aviso prévio de 30 dias antes da mudança. Mesmo que eu não tenha assinado nenhum contrato quando me mudei, o locador ainda pode exigir aviso prévio. Portanto, se eu me mudar sem aviso prévio, posso ser multado ou ter de pagar aluguel pelo restante do prazo do contrato de locação.

Por fim, o Documento 10 trata da situação em que o locatário é responsável por todo o aluguel quando o colega de quarto compartilhado se muda. A resposta sugere dividir o aluguel por meio de sublocação. Se eu me mudasse, talvez pudesse tentar sublocar minha parte do aluguel, mas isso dependeria dos termos do contrato.

Em resumo, preciso verificar se meu contrato de aluguel tem uma cláusula sobre rescisão antecipada. Caso contrário, talvez eu tenha que pagar uma multa, a menos que o locador concorde. Se eu tiver um motivo válido, como mudança de casa, posso tentar negociar com o locador. Se for possível sublocar, essa pode ser uma solução, mas preciso verificar se o contrato de aluguel permite isso. Também devo considerar se posso esperar até o término natural do contrato de aluguel, caso não consiga encontrar outra solução.

Ver resposta de DeepSeek R1

Com base em uma análise da documentação fornecida, apresentamos a seguir uma abordagem estruturada para rescindir um contrato de aluguel quando o locador se recusa a permitir a rescisão antecipada:

1. revisão dos contratos de aluguel
Cláusulas de rescisão antecipada: verifique se o seu contrato de aluguel tem cláusulas relativas à rescisão antecipada. Se essa cláusula existir, você poderá ser legalmente obrigado a pagar uma multa ou avisar o locador com antecedência para rescindir o contrato de locação [1].
Sublocação ou cessão: Determine se o seu contrato de locação permite sublocar ou ceder o contrato de locação para outra pessoa. Isso pode ajudá-lo a evitar multas ou ações judiciais [2].
2. entender o critério do locador
Renovação a seu critério: o locador pode ter o direito de se recusar a renovar o contrato de locação, especialmente se não houver nenhuma cláusula no contrato que permita explicitamente a rescisão antecipada. Nesse caso, você pode ser obrigado a honrar o contrato de locação até o final do prazo [6][8].
3. consideração das consequências financeiras
Penalidades: esteja preparado para enfrentar possíveis penalidades financeiras se rescindir seu contrato de locação antecipadamente sem o consentimento do locador. Isso pode incluir pagamentos adicionais de aluguel ou um depósito por danos [1][9].
4. explorar as negociações
Negocie os termos: Se você tiver um motivo válido para a rescisão antecipada, como realocação, poderá negociar com o locador uma redução da multa ou permissão para rescindir o contrato de locação antecipadamente [2].
5. sublocação como solução
Sublocar seu espaço: se possível, considere a possibilidade de sublocar uma parte do seu aluguel para ajudar a cobrir suas obrigações financeiras [10].
6. planejamento para o futuro
Espere até o final do contrato de aluguel: se a rescisão antecipada não for viável, planeje ficar até o término do contrato de aluguel. Isso evita multas e problemas legais [6][8].
Conclusão:

Sempre analise cuidadosamente os termos do seu contrato de aluguel antes de tomar qualquer medida. Se a rescisão antecipada não for permitida, considere a possibilidade de sublocar ou aguardar o término do contrato de aluguel. Se você puder negociar com o locador, esse pode ser o melhor curso de ação. Consulte sempre um profissional da área jurídica para obter orientação sobre sua situação específica.

Exemplo 2: Juizado de Pequenas Causas

Pergunta. Recebi uma intimação do tribunal de pequenas causas referente a uma dívida contestada. Como devo me preparar?

Veja o processo de pensamento do DeepSeek R1

Acabei de receber uma intimação do Juizado de Pequenas Causas por uma dívida contestada. Não sei bem por onde começar, mas preciso descobrir como me preparar para isso. A julgar pelos resultados da pesquisa, há algumas pessoas que passaram por situações semelhantes, portanto, talvez eu possa aprender algo com a experiência delas.

Em primeiro lugar, eu deveria entender a natureza da dívida. No Documento 5, alguém recebe uma intimação por uma dívida que achava que já estava pagando. Ela não entende por que recebeu outra intimação. Portanto, preciso verificar se essa dívida é válida. Talvez eu deva verificar meus registros ou pedir ao credor uma prova da dívida. De acordo com o documento 10, é uma boa ideia negar a reclamação e pedir provas. Dessa forma, posso questionar a credibilidade da dívida.

Em seguida, devo preparar meu caso. No Documento 1, alguém lidou com uma questão semelhante e o conselho foi para que o caso fosse apresentado em 10 minutos ou menos. Isso significa que preciso ser conciso e ter todas as minhas provas organizadas. Devo reunir todos os documentos que provem que não tenho a dívida, como recibos de pagamento, cartas de credores indicando acordo ou documentos de seguro, como no Documento 2.

Também preciso considerar a questão da testemunha. No documento 4, um colega de quarto ameaça levar essa pessoa ao tribunal por causa de uma conta veterinária, e o conselho é ignorar a ameaça, a menos que seja processado. Mas se eu for processado, devo estar preparado para ter testemunhas que me apoiem. Talvez um amigo que estava comigo no momento em que eu estava tentando pagar, ou um ex-inquilino que possa testemunhar sobre as condições da casa, conforme mostrado no Documento 7.

É importante entender o processo judicial. Como visto no Documento 7, depois de ganhar um caso no Juizado de Pequenas Causas, o locador entrou com um recurso, o que significa que ele ou ela teve de comparecer novamente ao tribunal. A pessoa teve de passar pelo mesmo processo novamente. Portanto, devo saber que, mesmo que eu ganhe, ainda pode haver um processo de apelação. Devo estar preparado para apresentar meu caso novamente, se necessário.

Também preciso levar em consideração as intimações e as contestações. No Documento 5, alguém precisa responder às contestações. Se eu não o fizer, posso receber um julgamento à revelia. Portanto, devo responder no prazo e apresentar minha defesa com clareza.

A apresentação de uma declaração de defesa é a próxima etapa. O Documento 10 menciona que, mesmo que haja uma oferta, devo sempre recusar e pedir provas. Isso me dará mais vantagem em negociações posteriores. Listarei todos os meus pontos e provas em minha Declaração de Defesa.

Também é importante considerar minha situação financeira. No Documento 6, havia uma preocupação com a possibilidade de ser preso por não poder pagar, mas foi esclarecido que a prisão do devedor não existe. Entretanto, ainda assim devo me comunicar com o tribunal sobre minha situação financeira. Se eu não puder pagar, preciso demonstrar que fiz esforços razoáveis e oferecer um plano de parcelamento, conforme mostrado no Documento 5.

Se eu não tiver certeza sobre uma questão jurídica, talvez eu deva consultar um advogado. No documento 3, a pessoa está se mudando e tem uma data no tribunal. Consultar um advogado de liquidação de dívidas pode ser útil, especialmente se eu tiver outras dívidas ou complicações.

Por fim, devo estar preparado para a audiência no tribunal. É fundamental chegar no horário, vestir-se adequadamente e ter todos os documentos prontos. No Documento 7, essa pessoa ganhou o caso por estar bem preparada com as provas, portanto, devo seguir o exemplo.

Em resumo, preciso: validar dívidas, preparar provas, entender os procedimentos judiciais, responder corretamente às intimações, possivelmente consultar um advogado e estar organizado e pronto para o julgamento. Citar documentos relevantes me ajudará a fundamentar minhas decisões.

Ver resposta de DeepSeek R1

Com base na análise dos documentos legais fornecidos, apresentamos a seguir um plano estruturado e organizado para a preparação de intimações para o Juizado de Pequenas Causas com relação a dívidas contestadas:

Verificação de dívidas
Verifique a prova do credor: Comece analisando todos os documentos fornecidos pelo credor para confirmar a validade e os detalhes da dívida. Use essas informações para fazer uma verificação cruzada com seus próprios registros ou quaisquer comunicações anteriores.
Solicitação de documentos: Entre em contato com o credor para solicitar uma prova formal da dívida, como um documento de sentença judicial ou um acordo de liquidação. Essa etapa é essencial para contestar a credibilidade da dívida, conforme recomendado no Documento 10.
Preparação de seu caso
Coleta de evidências: reúna todas as evidências relevantes, como recibos de pagamento, cartas de credores indicando a liquidação ou documentos de seguro, conforme mencionado nos documentos 2 e 8.
Organização e apresentação de provas: Certifique-se de que todas as provas estejam organizadas e prontas para serem apresentadas no tribunal, seguindo as orientações do Documento 1. Se necessário, considere incluir declarações de testemunhas, como amigos que estavam presentes durante as tentativas de pagamento ou ex-inquilinos da propriedade em questão.
Entendimento dos procedimentos judiciais
Esteja preparado para várias audiências: Se você ganhar o seu caso, esteja ciente de que pode haver um processo de apelação, conforme descrito no Documento 7. Esteja preparado para apresentar seu caso novamente, se necessário.
Familiarize-se com os procedimentos do tribunal: aprenda os conceitos básicos de um tribunal de pequeno porte, incluindo a estrutura da audiência e o papel do juiz.
Resposta a intimações e acusações
Apresente uma declaração de defesa: Certifique-se de responder à intimação em tempo hábil para evitar um julgamento por omissão. Apresente sua defesa claramente em sua declaração de defesa e solicite prova da dívida, conforme recomendado no documento 10.
Negação da acusação: Sempre negue a acusação para aproveitar as oportunidades de negociação, conforme mencionado no documento 10.
Consideração da situação financeira
Comunique sua situação financeira: Se você não puder pagar suas dívidas, demonstre sua situação financeira e forneça um plano de parcelamento, conforme descrito no Documento 5. Demonstre que você fez esforços razoáveis para resolver a dívida.
Consulte um advogado, se necessário
Procure orientação jurídica: Se a situação for complexa ou se você não tiver certeza de sua posição legal, consulte um advogado especializado em liquidação de dívidas, especialmente se houver outras dívidas ou complexidades envolvidas, conforme sugerido no Documento 3.
Preparação para audiências judiciais
Seja pontual e esteja preparado: chegue cedo, vista-se adequadamente e traga todos os documentos necessários. Consulte o exemplo no Documento 7 para ver um resultado bem-sucedido em um caso bem preparado.
Considere as etapas adicionais
Notificar colegas de quarto ou testemunhas: Se a dívida envolver propriedade compartilhada, considere notificar testemunhas ou colegas de quarto que possam dar apoio, conforme mencionado no Documento 4.

Seguindo essas etapas, você pode responder com confiança a uma audiência no juizado de pequenas causas, garantir que seu caso seja apresentado de forma eficaz e proteger seus direitos.

A partir desses exemplos, observamos que o DeepSeek R1 tem excelentes recursos de raciocínio. Seu processo de pensamento demonstra claramente como tirar conclusões de documentos legais de origem:

  • O R1 primeiro constrói um modelo coerente para entender questões jurídicas, o que se reflete em seu processo de raciocínio detalhado:Em primeiro lugar, lembro-me de algo sobre multas por rescisão antecipada ...... O Documento 1 menciona ...... Essa abordagem de "raciocínio antes da recuperação" permite que o modelo vincule sistematicamente conceitos de várias fontes antes da recuperação.
  • Ao lidar com cenários complexos, como rescisão de contrato de aluguel ou tribunal de pequenas causas, observamos que R1 Sem alucinações. em vez de classificar explicitamente seu entendimento de cada documento (Em conjunto, ......).
  • Por fim, o gerador explica seu raciocínio usando referências precisas que vinculam a conclusão à fonte. Isso assegura uma cadeia clara da pergunta ao raciocínio e à resposta, garantindo rigor e acessibilidade.

Experimentamos uma variedade de consultas jurídicas e descobrimos que o modelo não só era capaz de extrair informações dos documentos de origem, mas também de aprender e raciocinar sobre seu conteúdo.

Conclusão: Nas tarefas de perguntas e respostas e de resumo, oR1 É uma "mina de ouro" de raciocínio jurídico passo a passo. Use-o na fase de geração e dificilmente ficará desapontado.

3. a engenharia continua sendo importante

Design de tacos

As habilidades avançadas de raciocínio não eliminam a necessidade de palavras-chave bem elaboradas. Descobrimos que a orientação explícita em palavras-chave é essencial para

  • levar (alguém a fazer algo) referência do documento Gerar respostas durante todo o processo.
  • Prevenção de alucinações A abordagem "cite uma fonte ou diga que não sabe" é usada.
  • Estruturar a resposta final para torná-la mais legível .

Durante o experimento, construímos as seguintes palavras-chave:

Você é um assistente de IA que ajuda a analisar documentos jurídicos e conteúdo relacionado. Ao responder, siga estas diretrizes:
- Nos resultados de pesquisa fornecidos, cada documento é formatado como [Documento X início]... [Documento X final], em que X é o número do documento.
- Use um formato de citação do tipo [citation:X], em que X é o número do documento, e coloque a citação após as informações relevantes.
- Inclua citações em toda a resposta, não apenas no final.
- Se a informação for proveniente de mais de um documento, use várias citações, por exemplo, [citation:1][citation:2].
- Nem todos os resultados de pesquisa são relevantes - avalie e use somente as informações relevantes.
- Para respostas mais longas, estruture o conteúdo em parágrafos ou seções para melhorar a legibilidade.
- Se não conseguir encontrar a resposta na documentação fornecida, informe-a diretamente em vez de inventar informações.
- Algumas das documentações podem ser discussões informais ou postagens no Reddit - adapte a interpretação ao conteúdo.
- Faça com que a resposta contenha o maior número possível de citações.
Primeiro, explique seu processo de pensamento na tag .
Em seguida, forneça a resposta final após o processo de raciocínio.

Agrupamento de documentos

Além disso, descobrimos que A fragmentação eficaz de documentos é essencial para a recuperação precisa de documentos. A fragmentação do documento ajuda a fazer com que cada incorporação represente com mais precisão um tópico específico e reduz o tempo necessário para a geração de cada incorporação Token Quantidade.

Usamos a segmentação baseada em frases (via NLTK) para dividir os documentos em partes. Além disso, o início e o fim de cada bloco conterão conteúdo que se sobrepõe aos blocos vizinhos. Isso ajuda o modelo a entender melhor as referências parciais sem perder o contexto geral. Abaixo está o código usado para a fragmentação de documentos:

def chunk_document(document, chunk_size=2048, overlap=512).
"""Dividir o documento em pedaços sobrepostos usando a divisão baseada em frases.""""
text = document['text']
chunks = []
# Dividir primeiro por sentença
sentenças = nltk.sent_tokenise(text)
current_chunk = []
current_length = 0
para sentença em sentenças: sentence_len = len(sentence)
sentence_len = len(sentence)
# Se a adição dessa sentença exceder o tamanho do bloco, salve o bloco atual
se current_length + sentence_len > chunk_size e 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,
# Outros campos de metadados...
})
# Manter as últimas frases como sobreposição
overlap_text = ' '.join(current_chunk[-2:]) # manter as duas últimas frases
trecho_atual = [texto_sobreposto] se sobreposição > 0 else []
current_length = len(overlap_text) if overlap > 0 else 0
current_chunk.append(sentence)
current_length += sentence_len + 1 # +1 para espaço

Resumo dos pontos principais:

  1. Use o NLTK para a divisão de tokens baseada em frases, não em caracteres.
  2. O contexto do documento é mantido pela sobreposição de frases entre os blocos.

4. O vLLM é eficiente e rápido

Devido ao grande volume de dados de documentos jurídicos, a geração de embeddings para o RAG pode levar muito tempo.

Inicialmente, usamos o sentence_transformerPrimeiro o executamos em uma GPU Nvidia L4, mas encontramos o erro usual de "memória CUDA insuficiente". Primeiro o executamos em uma GPU Nvidia L4, mas encontramos o erro usual de "memória CUDA insuficiente". Depois disso, tentamos a Nvidia A100 e descobrimos que a sentence_transformer São necessários 57 GB de DRAM para carregar o Alibaba-NLP/gte-Qwen2-7B-instruct Modelos.

DeepSeek R1 no RAG: Resumo da experiência prática-3

Mudamos para vLLMTrata-se de um mecanismo de serviço e inferência LLM de alto rendimento e eficiente em termos de memória.

Com o vLLM, podemos executar o modelo em uma GPU Nvidia L4 padrão (~24 GB de DRAM). Em comparação, a L4 é muito mais barata que a A100: no GCP, a Nvidia L4 custa cerca de $0,7/hora, enquanto a Nvidia A100 custa pelo menos $2,9/hora.

Comparando vLLM e sentence transformer em uma Nvidia A100 (80GB DRAM), descobrimos que O vLLM gera incorporações Qwen2 até 5,5 vezes mais rápido!.

Ao processar 10.000 documentos legais (15.000 blocos no total):

  • Frase padrão transformador Tempo de processamento: aprox. 5,5 horas
  • Tempo de processamento do vLLM: aproximadamente 1 hora

DeepSeek R1 em RAG: Resumo da experiência prática-4

Os seguintes itens são usados para execução no vLLM Alibaba-NLP/gte-Qwen2-7B-instruct para gerar a configuração YAML do SkyPilot incorporado:

nome: compute-legal-embeddings
recursos.
# vLLM requer ~24GB DRAM GPU, SentenceTransformer requer 57GB
aceleradores: {L4:1, A100:1}
envs.
START_IDX: ${START_IDX}
END_IDX: ${END_IDX}
file_mounts.
/output.
name: my-bucket-for-embedding-output
modo: MOUNT
configuração: |pip install torch==2.5
pip install torch==2.5.1 vllm==0.6.6.post
...
envs.
MODEL_NAME: "Alibaba-NLP/gte-Qwen2-7B-instruct"
executar: |
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. não deixe que a incorporação leve mais de 100 horas - use o SkyPilot para processamento paralelo!

A geração de documentos jurídicos incorporados em uma única GPU L4 leva 100 horas. Podemos aproveitar as instâncias Spot para reduzir drasticamente o tempo e o custo:

nome (de uma coisa) hora original 100 exemplos de pontos
vezes 100 horas 1 hora (aceleração de 100x)
Custos (de fabricação, produção etc.) $70.1 | $28.2 (2,4 vezes a economia)

DeepSeek R1 em RAG: Resumo da experiência prática-5

Resultados: Não precisamos mais esperar dias para gerar incorporações. Nossas tarefas podem ser dimensionadas dinamicamente, passando rapidamente do protótipo à produção, mesmo diante de grandes conjuntos de dados.

chegar a um veredicto

construir (algo abstrato) DeepSeek R1 RAG Vamos aprender alguns pontos-chave:

  1. Aprimorar os recursos de recuperação com modelos de incorporação especializados, como o Qwen2.
  2. Os recursos de raciocínio do R1 são utilizados na fase de geração para lidar com consultas jurídicas complexas.
  3. (Cue word) A engenharia continua sendo fundamental para o controle de citações e a estruturação do conteúdo.
  4. Aumente a eficiência da inferência com o vLLM para obter aumentos significativos de velocidade.
  5. Dimensione a computação de IA na nuvem e em sua própria infraestrutura para reduzir o tempo e os custos de computação.

Quer saber mais?

Atenção: O sistema RAG é uma ferramenta poderosa para pesquisa e análise jurídica, mas não substitui um profissional jurídico qualificado. Seus resultados não devem ser considerados como aconselhamento jurídico.

CDN1
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " DeepSeek R1 no RAG: um resumo da experiência prática

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil