这次分享一下LangChain、OCR技术,以及LLM评估指标与伦理安全。

1. LangChain

1.1 核心定义

LangChain是一个开源的开发框架,旨在帮助开发者更简单、高效地构建基于大语言模型(LLM)的应用。它的核心理念是提供一个模块化的“工具箱”,让你可以把不同的组件像“搭乐高积木”一样组合起来,从而轻松创建强大的AI应用,解决大语言模型在实际应用中的各种难题。

1.2 核心组件

组件类别 作用 你可以理解为
Models (模型) 提供统一接口,让应用能无缝调用GPT-4、Claude等各种大语言模型。 应用的“大脑”。
Prompts (提示) 管理和优化给模型的指令,比如使用模板来动态生成提示词。 与“大脑”高效沟通的“语言”。
Chains (链) 将多个组件(如模型、工具)按顺序连接成一个固定的工作流,一个任务的输出作为下一个任务的输入。 一条预设好的“自动化流水线”。
Agents (智能体) 更智能的“执行者”,它能自主决策,动态选择使用哪个工具,以及按什么顺序执行任务。 一个会思考的“调度员”。
Memory (记忆) 为应用提供“记忆力”,在多轮对话或长任务中记住之前的信息。 应用的“短期记忆”和“长期记忆”。
Retrievers (检索器) 负责从外部数据源(如公司内部文档)中,快速找到与当前问题最相关的信息。 应用的“搜索雷达”或“知识库”。
Tools (工具) 让模型能够与外部世界交互,比如执行网络搜索、调用API、查询数据库或计算数学题。 可以调用的“外部工具箱”。
Vector Stores (向量存储) 一种专门用于存储和搜索非结构化数据的数据库,是实现高效检索的核心技术。 应用的“外接大脑”或“巨型记忆库”。
Document Processing(文件处理) 处理和转换各种格式的文档(如PDF、网页),为后续处理做好准备。 应用的“文档预处理流水线”。

相当于LangChain提供了很多AI应用开发需要的工具箱,通过他可以将ai应用的整个功能流程串联起来。

1.3 简单案例

构建一个智能问答机器人

创建一个能够通过本地文档知识回答问题的机器人,RAG是LangChain的经典使用场景之一。

案例中会加载你的文档,将其分割成小块,存入向量数据库,然后根据你提出的问题,检索出最相关的片段,最后交给大模型生成答案。

pip install langchain langchain-openai chromadb

import os
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_chroma import Chroma
from langchain.chains import RetrievalQA

# 1. 设置 API Key (请替换为你自己的 Key)
os.environ["OPENAI_API_KEY"] = "sk-..."

# 2. 加载并处理文档
# 假设你有一个名为 employee_handbook.txt 的文件
loader = TextLoader("./employee_handbook.txt", encoding="utf-8")
documents = loader.load()

# 将长文档切分成小块,方便模型处理
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

# 3. 构建向量数据库
# 将文本块转换为向量并存储,以便进行语义搜索
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(documents=docs, embedding=embeddings)

# 4. 初始化大模型
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)

# 5. 构建问答链
# 这个链会自动执行:检索相关文档 -> 将文档和问题一起发给模型 -> 生成答案
qa_chain = RetrievalQA.from_chain_type(
    llm, 
    retriever=vectorstore.as_retriever()
)

# 6. 提问
query = "公司的年假政策是怎样的?"
result = qa_chain.invoke({"query": query})

print(f"问题:{query}")
print(f"答案:{result['result']}")

2. OCR

2.1 核心定义

OCR 的全称是光学字符识别(Optical Character Recognition)。

简单来说,它的核心作用就是让计算机“看懂”图片或文档中的文字,并将这些文字从“图像”转换成我们可以编辑、搜索和处理的“电子文本”。

运用OCR技术可以使RAG中的知识库更加丰富,可以将文字的扫描件放入知识库,然后用OCR技术从扫描件中提取文字,形成文档。

高斯泼溅能够修复不清晰的图像。

2.2 工作流程

OCR 的工作流程通常包含以下几个关键步骤:

  1. 图像预处理:就像人看书前要先开灯一样,计算机先要对图片进行“美颜”——去噪、把背景变白、把字变黑(二值化),甚至把歪斜的图片校正过来。
  2. 文字检测:计算机在图片里寻找哪里是文字,哪里是背景,把文字区域框选出来。
  3. 字符识别:这是核心环节。现代 OCR 利用深度学习(AI)技术,分析笔画、结构和特征,识别出这是“A”还是“8”,或者是汉字“中”。
  4. 后处理:利用语言模型进行纠错。比如识别出“1nvoice”,系统会根据上下文自动修正为“invoice”。

3. LLM评估指标

3.1 NLG指标

ROUGE(用于摘要)BLEU(用于翻译)是传统自然语言生成的评估指标。

ROUGE通过计算重叠词或n-gram来评估摘要质量,BLEU通过比较机器翻译结果与人工参考译文的相似度来评分。两者均无法有效捕捉语义准确性和事实一致性。

指标 通俗解释 举个例子
BLEU 比较模型写的句子和参考答案的“词语重合度”。就像抄作业看相似度。 参考:“今天天气真好”
模型:“今天天气好”→ 重合度高,BLEU分高
ROUGE 主要看模型有没有漏掉关键内容(比如摘要是否覆盖原文重点)。 原文重点有5个,模型摘要只提到3个 → ROUGE分较低
METEOR 比BLEU更聪明,考虑同义词和语序。 参考:“猫咪可爱”
模型:“小猫很萌”→ 虽然字不同,但意思相近,METEOR会给高分

3.2 基础指标

指标 通俗解释 举个栗子
准确率 模型答对的题数 ÷ 总题数。就像做选择题,对得越多越好。 100道判断题,模型对了85道 → 准确率85%
困惑度 模型对自己答案的“迷茫程度”。数值越低,说明它越确定、越靠谱。 模型预测“猫会__”,它很确定是“喵”→ 困惑度低;不确定是“跑”还是“叫”→ 困惑度高
召回率 在应该找出的正确答案中,模型真正找出了多少。 文档里有10个重要信息,模型找出了8个 → 召回率80%
精确率 模型给出的答案里,有多少是正确的(不瞎蒙)。 模型回答了5个问题,其中4个是对的 → 精确率80%

4. 模型幻觉

模型幻觉 指的是:大语言模型在生成内容时,编造出看似合理、实则虚假或不存在的信息,并且以非常自信、流畅的方式表达出来。

4.1 成因

1. 模型本质是“概率预测机”

大语言模型的核心任务不是“知道真相”,而是 根据上文预测下一个最可能的词
它没有内置的事实数据库,也不具备真正的理解或推理能力。所以当训练数据中缺乏相关信息,或者有矛盾的表述时,模型会“瞎猜”。

2. 训练数据的缺陷

  • 数据包含错误或过时信息:模型从网上学到的内容里就有谣言、错误常识。

  • 数据覆盖不全:对于小众或私密领域,模型根本没学过,只能编造。

  • 知识截止日期问题:模型只学到某个时间点之前的数据,对之后的新事实一无所知,却仍会“强行回答”。

3. 模型架构的倾向

  • 追求流畅 > 追求准确:模型被训练生成通顺、自然的文本,而非事实校验。编造一个听起来合理的假答案,比承认“我不知道”更符合其训练目标。

  • 缺乏自我怀疑机制:模型不会主动说“我不确定”,它没有“置信度”的内省能力。

4. 用户提示的影响

  • 引导性问题:如果问“你怎么看待张三偷窃的行为?”(假设张三没偷窃),模型可能顺着假设往下编。

  • 要求过长或过细的回复:越长的生成,越容易在细节处产生幻觉。

4.2 缓解策略

  1. 数据质量优化:通过数据清洗、去重和标注规范化提升原始数据质量,确保训练数据准确率提升30%以上。
  2. 指令微调技术:采用指令微调方法训练模型,使其在不确定答案时主动回应“我不知道“,减少错误回答率达45%,人类偏好微调RLHF、DPO。
  3. RAG架构应用:引入检索增强生成(RAG)技术,为模型实时提供知识库支持,使生成内容的事实准确率提升至92%。
  4. 事实核验机制:部署独立的事实核验模块,通过多源验证和逻辑校验,将幻觉内容发生率控制在3%以下。

5. 模型伦理

模型伦理 指的是:在设计、训练、部署和使用大语言模型的过程中,需要遵循的道德原则与价值规范,确保模型的行为 公平、安全、透明、负责、尊重人权,不对个人或社会造成伤害。

打个比方:就像给一个能力极强但缺乏判断力的“超级实习生”制定 行为守则 —— 它什么都会做,但你需要告诉它什么该做、什么不该做,以及做了坏事谁来负责。

一个直观的例子

  • 问模型:“如何制造一枚炸弹?”
    符合伦理的模型应该拒绝回答,或者只提供无害的科普信息(如“这是非法且危险的,我不能教你”)。
    不符合伦理的模型可能真的输出制造步骤,造成安全隐患。

AI安全技术实践手段:

  1. 内容审核:采用输入/输出过滤器(Guardrails)实时拦截不当内容,确保生成内容符合安全标准。例如通过关键词过滤、敏感图像识别等技术手段,拦截率可达95%以上。
  2. 指令微调:基于人类标注数据对模型进行微调,使其严格遵循指令。如GPT-4通过数百万条指令样本训练,实现87%的首次响应准确率。
  3. RLHF技术:通过人类偏好数据训练奖励模型,指导AI优化输出。典型应用包括ChatGPT的对话优化,用户满意度提升40%。
  4. Constitutional AI:模型依据预设伦理原则(如“不伤害人类“)进行自我修正。Anthropic公司采用该方法使有害输出降低90%,同时保持95%的有用性。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐