项目实训个人工作梳理

发布于:2025-06-16 ⋅ 阅读:(26) ⋅ 点赞:(0)

创新实训最开始的拟题工作是我负责的,最开始是因为在通知里面提到了法律相关的任务,而在我的印象中,法律就是引用大量的案例(经验),并且在法条(逻辑)的框架下进行判罚,而且法律比较火的方向就是摘要提取,刑期预测以及简单的模拟律师(类似客服机器人的想法?)。在一切目标都有很好的前置条件的情况下做出的“法律文书专家系统”的题目决策。目标就是做一个轻量化的平台来实现以上的目标。

系统初步设计

最开始考虑使用敏捷开发的方式快速构建项目的基础框架,然后随着后期持续推进对项目进行完善,事实也如此。

早期项目框架臆想图

项目开始给大家分配的任务分别是模型开发、数据库设计与测试、前端设计、后端api端口适配,而我负责的部分就是模型的开发部署。说实话这对于一个python都不是非常熟练且没有任何相关领域知识的纯新手来说是一个挑战。

知识梳理

模型的“微调”市面上主流的路径有二,lora微调、rag技术。 rag的本质是利用向量数据库存储相关知识然后通过填充prompt工程的内容来完成提高回答和专业领域的相关性。而lora是利用相关的经验来构造一个矩阵,套用不同的矩阵来调节模型的参数。因此为了更贴合本项目的主题,我决定第一步使用lora的方式进行微调。
之后我进一步对lora微调的相关知识进行了调研总结出了以下的博客。基于AutoDL V100微调DeepSeek Coder 6.7B (2)_在autodl上部署deepseek并微调-CSDN博客
当然随着前两个功能的完成,我感觉单纯的lora微调效果并没有很理想,于是我又开始转向rag技术总结了以下博客
Rag技术----项目博客(六)-CSDN博客
网络上的相关数据很多,因此我就不再使用爬虫技术进行爬取,使用的数据库来自https://github.com/LawRefBook/Laws
当然这个项目也提供了爬虫脚本用于实时更新法律法规数据库。

硬件挑选

事实上硬件的挑选与知识梳理是同时进行的,几乎算是摸着石头过河吧。
首先我了解到对硬件的要求主要在于模型的训练阶段和模型的推理阶段。因此为了节约成本,数据的预处理我是在本地利用脚本进行的,此外模型的挑选也至关重要,模型参数过小导致模型输出效果欠佳,模型过大对硬件的要求高,在先后使用过"deepseek-code-6.7B"、""deepseek-llm-7B"、"deepseek-R1-distill-Qwen-7B"后结合任务类型(长文本处理)我选择了最后一个模型作为预训练模型。而对应的硬件我也先后经历了"V100“阶段以及"4090"的阶段,最终综合下来训练时间通用性、兼容性上4090无疑是我们最好的选择。

参数调节

参数调整阶段无疑是最关键也是最累的时期。温度设置\prompt工程设置\模型温度、重复惩罚等等内容每一步都影响着模型输出的稳定性,不仅需要保证文本输出的美观性还需要避免模型的幻觉。至少在观感上要让模型的输出比较靠谱。其中prompt工程是最让我头疼的,因为最初的法律预测分析设想返回的是一个jaso然后请求段准备几个html,利用json填充后进行渲染,达到美观的目的。但是控制模型的输出显然是很困难的事,暂且不说prompt工程命令模型按照以下方式输出,用户的输入是否能够保证我们能收集到相关的信息?经过预先的了解,法官判刑的过程是十分复杂的,不仅是证词还有双方的现实情况,实时的还原度以及辩方律师能够用于脱罪的法条?上诉方的诉求是否合理,不同的刑法对双方责任的划分。我们不可能要求用户能够面面俱到的补充这些信息然后利用机器的逻辑处理能力给出一个“完全公平”的结果。因此最终我决定使用模型先提取出关键事实,然后利用rag找到关键词相关的法条,仅仅给出判罚的建议,而不是给出决策。模型的刑期预测仅仅作为法官的快速查询的参考。

模型的优化

正如我之前所说,我们使用的是敏捷开发,因此在快速构建起模型之后需要对模型的效果进行优化。
多模型业务切换:
模型优化---------------切换模型(1)-CSDN博客
rag技术优化刑期预测:
Rag技术----项目博客(六)-CSDN博客
prompt自动填充:
Prompt管理技巧-CSDN博客​​​​​​​
多轮对话记忆功能:
关于模型记忆力的实现方式----项目报告(五)-CSDN博客

系统页面设计优化

主要页面:

摘要:

收藏与详情展示页面 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到