第1章:法律大模型技术栈全景
大家好,我是这门课的主讲人。在开始之前,我想先聊聊一个很现实的问题——做法律大模型,到底需要掌握哪些技术?
说实话,我见过不少朋友一上来就扎进模型训练里,结果发现连数据都读不进去。或者模型跑通了,但生成的法律文书根本没法用。为什么会这样?说白了,就是技术栈没搭好。
这一章,我就带你看看法律大模型的全景图。你不需要一次性全掌握,但心里要有张地图。
1.1 法律大模型的技术分层
我个人习惯把法律大模型的技术栈分成四层。就像盖房子,地基、框架、装修、家具,缺一不可。
四层技术栈:
- 基础层:Python 编程、数据处理、Linux 环境
- 框架层:PyTorch / TensorFlow、模型训练与推理
- 算法层:自然语言处理(NLP)、文本分类、信息抽取
- 应用层:法律知识图谱、检索增强生成(RAG)、法律推理
嗯,这里要注意。很多人觉得 Python 太简单,直接跳过。我在项目中遇到过一位同学,他花了两周学完 PyTorch 基础,结果连数据加载的 batch 都调不明白。后来发现是 Python 的生成器没搞懂。所以,别小看基础层。
下面这张图,是我手绘的技术栈全景。你可以把它当作学习路线图。
1.2 Python 基础——地基要稳
Python 是法律大模型的「母语」。你想想看,从数据清洗到模型训练,再到最后的部署上线,哪一步离得开 Python?
我个人建议,你至少要掌握这些:
- 数据结构:列表、字典、集合、元组——这些是基本功
- 文件操作:读 JSON、写 CSV、处理大文本
- 面向对象:类与继承——模型封装时用得上
- 生成器与迭代器:处理海量法律文书时,内存不够?生成器来救
小技巧:我在处理法律判决书时,经常遇到 GB 级别的文本数据。用 yield 逐行读取,比一次性加载到内存快 10 倍不止。
1.3 深度学习框架——PyTorch vs TensorFlow
说到框架,我估计你会纠结选 PyTorch 还是 TensorFlow。嗯,我直接说结论:做法律大模型,首选 PyTorch。
为什么?三个原因:
- 生态优势:Hugging Face 的 Transformers 库原生支持 PyTorch
- 调试方便:动态图机制,跑错了能立刻看到中间结果
- 社区活跃:最新的法律 NLP 论文,90% 用 PyTorch 实现
当然,TensorFlow 也有它的场景。比如你要部署到移动端或生产环境,TensorFlow Serving 确实更成熟。但作为学习起点,我建议你先啃 PyTorch。
下面是一个最简单的 PyTorch 代码示例,用来加载法律文本数据:
import torch
from torch.utils.data import Dataset, DataLoader
class LegalTextDataset(Dataset):
def __init__(self, texts, labels):
self.texts = texts
self.labels = labels
def __len__(self):
return len(self.texts)
def __getitem__(self, idx):
return self.texts[idx], self.labels[idx]
# 假设我们有 1000 份法律文书
texts = ["判决如下...", "原告主张..."] * 500
labels = [0, 1] * 500
dataset = LegalTextDataset(texts, labels)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)
for batch_texts, batch_labels in dataloader:
print(f"批次大小: {len(batch_texts)}")
break
注意:我曾经在项目中直接用 DataLoader 加载 10 万份法律文书,结果内存爆了。后来才发现,shuffle=True 会先把所有数据加载到内存。解决方案是:用 IterableDataset 配合生成器。
1.4 自然语言处理基础——法律文本的特殊性
法律 NLP 和通用 NLP 最大的区别在哪?我举个例子你就明白了。
通用 NLP 里,「苹果」可能指水果,也可能指手机。但在法律文本里,「苹果」大概率是商标或侵权标的物。你想想看,如果模型连这个都分不清,那生成的法律意见书谁敢用?
所以,法律 NLP 要重点关注这几个方向:
| 技术方向 | 法律场景 | 常用方法 |
|---|---|---|
| 文本分类 | 案由识别、文书类型判断 | BERT、TextCNN |
| 命名实体识别 | 提取当事人、法条、金额 | BiLSTM-CRF、BERT-CRF |
| 关系抽取 | 判断「原告-被告」关系 | 远程监督、Prompt 学习 |
| 文本生成 | 自动撰写法律意见书 | GPT、LLaMA 微调 |
说白了,法律 NLP 的核心就一句话:把法律人的专业知识,翻译成机器能理解的数学语言。
1.5 法律知识图谱——让模型「懂法」
最后聊聊知识图谱。你可能听过一句话:「大模型是黑盒,知识图谱是白盒。」
我个人觉得,两者不是替代关系,而是互补关系。大模型擅长语义理解,知识图谱擅长逻辑推理。把两者结合起来,才是法律 AI 的未来。
法律知识图谱长什么样?我给你画个简单的:
你看,张三起诉李四,引用了合同法,最后生成判决书。这就是一个最简单的法律知识图谱片段。
核心要点:知识图谱的本质是「实体-关系-实体」的三元组。在法律领域,实体包括当事人、法条、案件、法院等。关系包括起诉、引用、判决、上诉等。
1.6 本章小结
好了,这一章我们走马观花地看了一遍法律大模型的技术栈。你不需要现在就全部掌握,但至少要知道:
- Python 是地基,别偷懒
- PyTorch 是主流框架,优先学它
- 法律 NLP 有特殊性,不能照搬通用方案
- 知识图谱和大模型是互补的,不是二选一
我曾经带过一个团队,大家技术背景参差不齐。有人擅长 Python,有人擅长 NLP,但没人能把整个链路串起来。结果呢?模型训练好了,数据加载却成了瓶颈。所以,我建议你先把这张全景图刻在脑子里,再逐层深入。
下一章,我们会从 Python 基础开始,手把手带你搭建法律大模型的开发环境。到时候见。