【ChatGPT原理与应用开发】第六章:工程实践

【ChatGPT原理与应用开发】第六章:工程实践

原文链接:HuggingLLM(ChatGPT原理与应用开发)-课程详情 | Datawhale

此处仅为学习记录和总结

6:工程实践------真实场景大不同

6.1:评测:决定是否上线的标准

评测的原因

测试的内容:对产品的各个功能进行各种各样的测试,以保证其功能正常、符合预期

算法模型的评测内容

  • 模型输出的内容是否符合我们的预期目标

  • 使用尽量和真实场景接近,且不在训练集中的数据

NLU(分类)常用评测指标

🤔指标衡量

  • 精准率(precision,P)
  • 召回率(recall,R)
  • F1

测试结果的混淆矩阵:

真实情况 预测结果正例 预测结果负例
正例 真正例(true positive,TP) 假负例(false negative,FN)
负例 假正例(false positive,FP) 真负例(true negative,TN)

precision的计算公式
P = T P T P + F P P = \frac{TP}{TP+FP} P=TP+FPTP

recall的计算公式
R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

F1的计算公式
F 1 = 2 P R P + R F1=\frac{2PR}{P+R} F1=P+R2PR

🤔P和R的关系

  • precision和recall是权衡关系,提高精准率会降低召回率
  • F1综合考虑了P和R

多分类,需要分别计算每一个类别的指标,然后综合

🤔综合的方法

  • macro方法:先计算每个类别的精准率和召回率,取平均后,再计算F1
    • 适用情况:各个类别的重要性相对平衡(即:每个类别平等
  • micro方法:先计算混淆矩阵元素的平均,再计算精准率、召回率和F1
    • 适用情况:更关心总体性能,而不是每个类别的性能(即:每个样本平等

NLG(生成)常用评测指标

有参考答案的任务:计算生成的内容与参考答案之间的相似度

🤔token粒度的评估方法

  • 语义:BETRScore
    • 借助BERT预训练模型,计算token的Embedding
    • 计算生成的内容和参考答案token之间的相似度
    • 计算精准率和召回率
  • 字面量:BLEU、ROUGE
    • 按照字面量是否完全相同进行比较(N-Gram)
    • BLEU:衡量有多少个生成内容的Gram出现在参考答案中(类似precision)
    • ROUGE:衡量多少个参考答案的Gram出现在生成内容中(类似recall)

没有参考答案的任务:需要人工进行评估,设计评价指标和标准

🤔标准的考虑因素

  • 准确性
  • 流畅性
  • 生动性

6.2:安全:必须认真对待的话题

安全:模型生成的内容不应该包含任何偏见、敏感、风险等内容

前后处理

前处理:将用户的输入传递给模型前,先通过一个模块或外部接口进行风险检查

  • 如果检测到风险内容,则直接返回预设好的回复,不再传给模型接口生成回复

后处理:对模型生成的内容进行风险检查

  • 如果检测到风险内容,则将该内容屏蔽,或直接返回预设好的回复

如果是流式输出,由于token是一个一个输出的,可能需要在一句话结束时就对其进行风险检查

提示词

🤔通过提示词控制生成内容

  • 限制其必须基于给定上下文内容进行回复
  • 限制输出长度

可控生成

可控文本生成(controllable text generation,CTG):如何控制模型的输出让其更加可控,即输出我们想要的,不输出我们不想要的

🤔可控文本生成的分类

  • 使用控制Token
    • 在文本开头增加一个控制生成属性的Token
  • 使用控制模型
    • 在生成过程中,使用一个或多个属性分类器对生成过程进行引导
  • 使用反馈控制
    • RLHF

🤔辅助方案

  • 增加消息撤回机制
  • 对用户账号进行严格管控
  • 留存所有的对话和消息记录,以备事后查验

6.3:网络:接口调用并不总是成功

失败

网络请求失败 => 重试

熔断机制:当失败次数达到某个阈值时,将此服务进行熔断,直接返回预设好的响应或者干脆拒绝请求

服务降级:返回一个简化版本的处理

延迟

延迟:接口没有在给定时间内给出响应,但又不会超时失败

🤔流式输出常用的服务端方案

  • SSE(server-sent events)
    • 基于HTTP的单向通信技术,允许服务器向客户端发送持续的事件流
    • 适用情况:服务端向客户端持续发送数据
  • WebSocket
    • 双工通信技术,允许客户端和服务器建立双向通信通道
    • 适用情况:客户端和服务器实时交互

🤔延迟的解决方法

  • 针对不同的需求选择不同规模的模型
  • 配置"停止序列"参数,及时结束模型的输出
  • 使用流式输出
  • 使用缓存

扩展

扩展 => 高并发的场景

🤔服务扩展的基本情况了解

  • 了解基本情况和需求
    • 日均调用次数、日调用峰值、平均并发数、最大并发数、期望平均响应时长、是否可以使用缓存
  • 了解大模型服务商的相关政策
    • 不同模型、不同类型账号的限制

资源池模块:统一管理账号资源,负责资源调度

批量(batch)模式:一次发送多条请求,同时获取这些请求的响应

  • 在用户请求和请求大模型服务商接口之间做一层处理:合并用户请求,批量一次向大模型服务商发起请求,收到反馈后分发到对应的用户请求响应上
  • 维护一个队列和最小请求间隔时间,在最小请求间隔时间内,固定窗口大小的请求同时出队进行批量请求
相关推荐
齐杰拉12 小时前
源码精读:拆解 ChatGPT 打字机效果背后的数据流水线
前端·chatgpt
mit6.8241 天前
[code-review] 日志机制 | `LOG_LEVEL`
人工智能·chatgpt·代码复审
Orange_sparkle1 天前
解决Dify中接入xinference模型无法开关思考模式和使用function calling的问题
人工智能·深度学习·语言模型·chatgpt
gptplus1 天前
【重要通知】ChatGPT Plus将于9月16日调整全球充值定价,低价区将被弃用,开发者如何应对?
人工智能·gpt·chatgpt
跨境小新1 天前
ChatGPT大模型训练指南:如何借助动态代理IP提高训练效率
网络协议·tcp/ip·chatgpt
sinat_286945192 天前
Case-Based Reasoning用于RAG
人工智能·算法·chatgpt
陈敬雷-充电了么-CEO兼CTO2 天前
突破多模态极限!InstructBLIP携指令微调革新视觉语言模型,X-InstructBLIP实现跨模态推理新高度
人工智能·自然语言处理·chatgpt·blip·clip·多模态大模型·gpt-5
007tg2 天前
从ChatGPT家长控制功能看AI合规与技术应对策略
人工智能·chatgpt·企业数据安全
Memene摸鱼日报2 天前
「Memene 摸鱼日报 2025.9.11」腾讯推出命令行编程工具 CodeBuddy Code, ChatGPT 开发者模式迎来 MCP 全面支持
人工智能·chatgpt·agi
陈敬雷-充电了么-CEO兼CTO4 天前
视频理解新纪元!VideoChat双模架构突破视频对话瓶颈,开启多模态交互智能时代
人工智能·chatgpt·大模型·多模态·世界模型·kimi·deepseek