我用单张显卡跑了个“法律顾问”,靠它成功追回了加班费

举报
架构师李哲 发表于 2025/11/05 12:17:49 2025/11/05
【摘要】 面对劳动纠纷,你是否因法律条款难懂、律师费用高昂而束手无策?本文分享如何用单张显卡本地部署Qwen3-8B模型,结合RAG技术打造专属劳动法AI顾问。相比通用模型,该系统能精准解析加班费争议、证据链构建等实战问题,提供可操作的仲裁策略。从数据处理到服务上线,全流程轻量高效,助力普通人也能“专业维权”。

遇到劳动纠纷,你是否也面临这样的困境?

翻遍《劳动法》,却找不到能精准对应自身情况的条款。

想咨询律师,又因费用高昂、案情梳理不清而难以获得有效指导。

试图与公司协商,却因不熟悉法律术语,被HR几句“专业说辞”轻易劝退。

上述痛点,正是大模型技术能够发力之处。然而,通用大模型虽强,其知识的静态滞后性与专业领域的“幻觉”问题也尤为突出。

为此,我上周在LLaMA-Factory Online的「实例空间」中,基于单张显卡,本地启动了Qwen3-8B模型服务,并引入RAG(retrieval-augmented generation,检索增强生成)框架,亲手“调教”了一个专攻劳动法的AI法律顾问

效果如何?我们直接看对比

当我向原生模型提问:“我上个月离职了,但公司还欠我很多加班费没给,我该怎么办?”
通用模型只会给出标准回复:

而我启用RAG服务后的“法律顾问”是这么回答的:

这种精准、可落地的回应,并非来自庞大规模的预训练,而是源于一套轻量且高效的“模型特训”流程。
在本文中,我将完整展示如何利用有限的单卡算力,从数据处理、RAG系统搭建到服务部署,一步步构建一个真正理解劳动法的专业助手。 无论你是大模型技术爱好者还是寻求技术转型的开发者,相信这篇实践都能为你提供可复用的思路。

操作步骤

配置概览

配置参数 配置项 说明
模型 Qwen3-8B 本实践通过本地启动大模型服务
GPU H800*1 -

操作详情

1.在LLaMA-Factory Online上,选择「实例空间」菜单项,进入「实例空间」页面。

2.单击“开始微调”按钮,进入「资源配置」页面,选择GPU资源,卡数填写1,其他参数保持为默认值,单击“启动”按钮,启动实例。

3.实例启动后,可启动VSCode或者JupyterLab专属数据处理,本次实践我们使用VSCode专属数据处理,单击图标链接进入数据处理页面,点击[Terminal/New Terminal]进入终端页面。在终端运行如下所示的命令安装服务运行所需环境。

运行如下命令创建一个名称为“py39”的Python环境。

conda create -n lightllm python=3.10

运行如下所示的命令激活自定义的环境。

conda activate lightllm

运行如下所示的命令,在已经激活的Python环境中安装ipykernel包。

pip install ipykernel -i https://pypi.tuna.tsinghua.edu.cn/simple

运行如下所示的命令,将当前Python环境注册为Jupyter内核。

kernel_install --name lightllm  --display-name "Python 3.10 (lightllm)"

💡提示
您需在对应的Conda环境中运行上述注册命令,否则内核(kernel)将无法正确注册。

4.Python环境安装完成后,在终端运行如下所示的命令下载并安装LightLLM框架及其依赖项,例如下图所示。

a.运行如下命令,从GitHub仓库克隆LightLLM项目的源代码到本地。

git clone https://github.com/ModelTC/lightllm.git

b.运行如下所示的命令,进入项目目录。

cd lightllm

c.运行如下所示的命令,安装项目运行所需的所有Python依赖包。

pip install -r requirements.txt

d.运行如下所示的命令,以开发模式安装LightLLM包。

python setup.py install

e.运行如下命令,安装LlamaIndex库,用于构建基于私有数据的检索增强生成(RAG)应用。

pip install llama-index

f.运行如下所示的命令,安装Streamlit库,用于快速创建交互式数据可视化网页应用。

pip install streamlit

g.运行如下命令,安装LightLLM运行所需的计算机视觉处理库和WebSocket通信支持依赖包。

pip install torchvision
pip install websockets
pip install partial-json-parser
pip install interegular

h.运行如下命令,安装LlamaIndex框架对HuggingFace本地嵌入模型的支持包,使RAG应用能够使用BAAI/bge等本地嵌入模型进行文本向量化。

pip install llama-index-embeddings-huggingface

您可运行pip list | grep -E "torchvision|websockets|partial-json-parser|interegular|streamlit|llama-index|llama-index-embeddings-huggingface"命令查看依赖包安装情况,例如下图所示。

5.依赖包安装完成后,运行如下所示命令,启动LightLLM框架的API服务器提供标准的OpenAI兼容接口,支持文本生成、对话等推理功能,模型加载成功后,页面显示例如下图所示,默认端口为8000。

python -m lightllm.server.api_server --model_dir /shared-only/models/Qwen/Qwen3-8B

6.新建Terminal窗口,执行如下代码测试模型推理功能是否正常,服务正常启动页面例如下图所示。

curl -X POST "http://localhost:8000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen3-8B",
    "messages": [{"role": "user", "content": "Hello"}],
    "max_tokens": 1000
  }'

7.点击下载,下载后将文件拖拽至/workspace/lightllm目录下,然后运行如下所示命令加载RAG服务,加载成功后页面例如下图所示。

streamlit run app.py \
    --server.address 0.0.0.0 \
    --server.port 6666 \
    --server.enableCORS false \
    --server.enableXsrfProtection false

8.点击服务链接,进入本地RAG文档搜索助手页面,例如下图所示。

服务应用

服务部署完成后,用户可自定义构建知识库,并基于库内信息查询相关问题,快速获取解决方案。

RAG服务回复

单击上方高亮区域的“Browse files”按钮,选择PDF或TXT格式的知识库文件上传,或直接将文件拖拽至该区域,本实践上传[示例1],[示例2]

待页面出现“✅文档已加载并索引!”即可输入您的问题,例如:“ 我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。”。观察应用回复,例如下图所示,回答详情可展开“Details”查看详情。

💡Details
回答<think>
好的,我现在需要处理用户的查询。用户提到他有考勤记录截图和与领导沟通加班的微信记录,劳动合同写的是月薪8000元,但公司按基本工资3000元计算加班费,他主张最近一年的加班费差额。我需要根据提供的上下文信息来给出建议,不能使用外部知识。
首先,回顾之前的对话历史。用户之前的问题涉及电子签字的补强、加班费计算基数的确定,以及如何应对公司可能的抗辩。现在的情况是用户有考勤记录和微信记录,但公司使用基本工资作为基数,而实际月薪是8000元。需要确定如何主张加班费。
根据上下文中的信息,特别是用户之前的问题,仲裁时通常会以实际工资作为基数,尤其是当合同未明确约定时。用户提到劳动合同写的是月薪8000元,但公司按3000元计算,这可能涉及公司未按实际工资支付加班费的问题。
需要强调用户应明确以实际月工资8000元为基数,因为劳动合同可能未明确工资构成,而银行流水显示实际发放的是8000元。公司如果主张基本工资3000元,用户需要反驳,指出工资条中未明确包含加班费,且实际发放金额为8000元,可能包含其他部分如绩效或补贴,但加班费应基于总收入计算。
另外,用户需要确保考勤记录和微信记录能够证明加班事实和公司安排,同时可能需要准备登录公司系统验证考勤记录的真实性,避免被质疑截图的真实性。微信记录需要明确显示加班日期和任务,以支持加班时长。
最后,仲裁请求应明确要求公司支付差额,并引用相关法律条款,如《劳动法》和《工资支付暂行规定》,强调公司未足额支付加班费的违法性。同时,提醒用户注意公司可能的抗辩,如工资构成,需提前准备反驳证据。
<think>
你的考勤记录截图和微信沟通记录已能形成完整证据链,可明确主张以实际月工资 8000 元为基数计算加班费。具体操作建议如下:
1.明确计算基数:劳动合同虽约定月薪 8000 元,但公司按 3000 元计算加班费,需在仲裁中强调“工资条未列明加班费项目,且银行流水显示实际月工资为 8000 元”,主张以实际收入总额作为加班费计算基数。
2.强化加班事实:考勤记录截图需与微信记录中的加班安排(如具体日期、任务内容)相互印证,证明加班系公司安排而非自愿。若考勤记录为截图,可提前准备公司系统登录方式,当庭演示验证真实性。
3.计算差额金额:根据法定加班费倍数(工作日 1.5 倍、周末 2 倍、法定节假日 3 倍)及实际加班时长,计算应得加班费总额,并与公司已支付部分对比,明确差额金额。
4.应对公司抗辩:若公司主张“3000 元为基本工资”,可反驳称“劳动合同未约定工资构成,且公司未提供薪酬制度证明基本工资与绩效工资的区分,应视为未足额支付加班费”。
5.仲裁请求:明确请求裁决公司支付最近一年加班费差额(具体金额),并引用《劳动法》第四十四条及《工资支付暂行规定》第十三条作为法律依据。

原生模型回复

应用步骤6命令,修改content内容为:“我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。”观察模型回答,例如下图所示,回答详情可展开“Details”查看详情。

curl -X POST "http://localhost:8000/v1/chat/completions" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "Qwen3-8B",
        "messages": [{"role": "user", "content": " 我有考勤记录截图和与领导沟通加班的微信记录。劳动合同写的是月薪8000元,但公司一直按基本工资3000元为基数算加班费。我主张最近一年的。"}],
        "max_tokens": 1000
      }'

💡Details
回答
<think>\n嗯,用户上个月离职了,但公司还欠他很多加班费没给,他不知道该怎么办。首先,我需要了解他可能的情况和需求。他可能已经尝试过和公司沟通,但没有得到解决,所以现在需要法律上的帮助。我应该先确认他的基本情况,比如公司名称、离职时间、加班费的金额,以及是否有相关证据,比如考勤记录、工资单、聊天记录等。这些证据对他后续维权很重要。\n\n接下来,用户可能不了解具体的法律程序,所以需要详细说明步骤。比如是否需要先与公司协商,如果失败再申请劳动仲裁。此外,他可能担心仲裁的费用和时间,需要提醒他劳动仲裁是免费的,而且有时间限制,比如一年内必须申请,所以要尽快处理。\n\n还要考虑用户可能的问题,比如公司不承认加班时间,或者不愿意支付,这时候需要建议他收集证据,比如同事的证词、电子邮件、打卡记录等。另外,如果公司是有限责任公司,可能可以考虑起诉法人代表或股东,但这可能比较复杂,需要专业律师的帮助。\n\n用户可能还担心自己的权益是否能被保障,特别是如果公司不配合的话。这时候需要强调法律的强制力,以及劳动仲裁的结果是终局性的,可以申请法院强制执行。另外,提醒他注意保留所有沟通记录,避免证据丢失。\n\n最后,要给出一个清晰的步骤指南,从收集证据到协商,再到仲裁或诉讼,确保用户知道每一步该怎么做,并且鼓励他不要放弃,及时行动。可能还需要提醒他不要采取过激行为,以免影响维权。\n<think>\n\n如果你因为公司拖欠加班费而离职,但公司仍未支付欠薪,你有合法权利维护自己的权益。以下是具体的解决步骤和建议:\n\n—\n\n### 一、确认你的权益\n根据《劳动法》《劳动合同法》和《工资支付暂行规定》,劳动者因工作时间、加班工资、经济补偿等与用人单位发生争议的,可依法维权。公司拖欠加班费属于违法行为。\n\n—\n\n### 二、收集证据\n这是关键,确保你的诉求有据可依:\n1. 劳动合同:确认加班费的约定(是否有明确的加班工资标准)。\n2. 考勤记录:如打卡记录、工时统计表、电子考勤系统截图等。\n3. 工资单/银行流水:证明你的基本工资和实际发放情况(若已发部分工资,需区分正常工资与加班费)。\n4. 加班证据:\n - 工作群/邮件等电子记录(如提到加班、加班时长或工作内容);\n - 同事或主管的证人证言(可书面或录音);\n - 公司安排加班的通知、排班表等。\n5. 离职证明或通知书:证明你已离职。\n6. 沟通记录:与公司协商欠薪的聊天记录、通话记录等。\n\n—\n\n### 三、第一步:协商\n先尝试与公司协商解决:\n1. 书面沟通:通过微信、邮件或挂号信等方式要求公司支付欠薪,并保留证据。\n2. 报警处理:若公司拒不支付,可向当地公安机关报案,但需注意:除非情节严重(如恶意拖欠导致生活困难),否则警方可能不予受理。\n\n—\n\n### 四、第二步:申请劳动仲裁\n如协商无果,需在离职后一年内(注意时效)向劳动仲裁委员会申请仲裁:\n1. 准备材料:\n - 仲裁申请书(注明申请人、被申请人、仲裁请求、事实与理由);\n - 身份证复印件;\n - 证据清单及复印件(如劳动合同、考勤记录等);\n - 如果公司未签劳动合同,需保留相关证据(如社保缴纳记录、工资支付凭证等)。\n2. 提交仲裁:向公司所在地或劳动合同履行地的劳动仲裁委员会提交材料。 \n3. 仲裁流程:一般30-60天内出结果,劳动仲裁是维权的前置程序,如不服可向法院起诉。\n\n—\n\n### 五、仲裁后的处理\n1. 仲裁裁决:若仲裁支持你的诉求,公司需在指定时间内支付欠薪;若公司拒不履行,可向法院申请强制执行。\n2. 起诉:若仲裁结果不满意,可在15日内向法院提起诉讼,诉讼时效为2年。\n3. 法院强制执行:若公司仍不支付,可申请法院强制执行工资,法院可冻结公司账户、查封财产等。\n\n—\n\n### 六、特殊注意事项\

多维度对比两类服务的回复,对比详情如下所示。

对比维度 RAG服务回复 原生模型回复
计算基数主张 ✅ 明确指出应以实际发放工资8000元为基数,并提出反驳策略:“工资条未列明加班费项目”、“银行流水为证” ⚠️ 仅说明“可能存在违法风险”,未给出具体举证方式或反制话术
证据链构建 ✅ 强调“考勤截图+微信记录”需相互印证,并建议“当庭登录系统验证真实性”——这是关键实操技巧 ❌ 仅说“需能证明具体时间”,缺乏操作指引
加班事实认定 ✅ 点出核心:“加班系公司安排而非自愿”——这是仲裁胜负关键点之一 ❌ 未涉及此关键法律要件
差额计算方法 ✅ 明确列出倍数标准(工作日1.5倍、周末2倍、法定节假日3倍),要求精确核算差额金额 ❌ 只提法律规定,无具体计算指导
应对公司抗辩 ✅ 预判对方可能说“3000是基本工资”,并提供标准反驳话术:“劳动合同未约定工资构成”、“公司未提供薪酬制度证明”,应视为未足额支付 ❌ 虽提到地方差异,但未教用户如何应对企业常见推诿
仲裁请求撰写 ✅ 明确写出应提交的仲裁请求模板,包括诉求金额、法律依据(《劳动法》第44条、《工资支付暂行规定》第13条) ❌ 仅有知识介绍,无行动指令
用户角色定位 ✅ 把用户当作即将出庭的申请人,给予战斗性、可执行的诉讼策略指导 ❌ 把用户当作学习者,进行普法教育式的内容输出

原生模型回复偏重知识普及,无法提供具体的指导。RAG服务回复更具实战性、对抗性和可操作性,适合作为智能法律助手的输出标准,把用户当作即将出庭的申请人,给予战斗性、可执行的诉讼策略指导。

本次基于LightLLM+RAG架构的法律顾问系统实践,成功验证了"轻量验证-迭代优化-部署落地"路径在专业领域的可行性。该方案有效解决了大模型知识滞后与幻觉问题,展现出向金融、医疗等高合规行业快速复制的能力。从技术架构视角看,其核心价值在于以最小成本完成验证、支持平滑演进的技术栈设计,并具备企业级部署所需的稳定性和扩展性。

基于在大模型微调领域的深耕经验,我认为下一阶段应重点突破多模态业务文档理解、跨领域任务编排机制企业级安全可控体系。最终目标是推动RAG技术从工具级应用向平台级能力演进,通过与企业核心业务深度融合,打造可信、可解释、可扩展的AI解决方案,期待与业界同行进一步交流探讨。

PS.如何学习AI大模型?

作为一名深耕大模型微调领域多年的技术架构师,我深知“纸上得来终觉浅”。在见证了上百个微调项目的成功与失败后,我深刻认识到,拥有一个清晰的学习路径和经过验证的实战资源是多么关键。

为此,我特意整理了全套《大模型微调实战进阶宝典》,这份资料凝聚了我多年的实战经验,其中包含:
●《大模型微调实战避坑指南》:精选20+真实项目经验,解析训练发散、灾难性遗忘等高频难题
●《十大前沿行业微调白皮书》:汇集金融、医疗、汽车、法律、保险等众多领域大模型先锋案例
●《开箱即用微调数据集精选》:涵盖指令微调、对话、专业领域问答与代码生成等多个实战场景

愿你能用它,快速撬动大模型在你业务中的巨大价值!

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。