【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)模式:一次发送多条请求,同时获取这些请求的响应

  • 在用户请求和请求大模型服务商接口之间做一层处理:合并用户请求,批量一次向大模型服务商发起请求,收到反馈后分发到对应的用户请求响应上
  • 维护一个队列和最小请求间隔时间,在最小请求间隔时间内,固定窗口大小的请求同时出队进行批量请求
相关推荐
AI小欧同学4 分钟前
【AIGC-ChatGPT进阶提示词指令】AI美食助手的设计与实现:Lisp风格系统提示词分析
人工智能·chatgpt·aigc
AnRan08084 小时前
ChatGPT如何赋能办公
人工智能·chatgpt
MorleyOlsen1 天前
【ChatGPT原理与应用开发】第三章:句词分类
chatgpt·分类·数据挖掘
MichaelIp1 天前
LLM大模型RAG内容安全合规检查
人工智能·python·安全·语言模型·自然语言处理·chatgpt·word2vec
that's boy1 天前
开源模型迎来颠覆性突破:DeepSeek-V3与Qwen2.5如何重塑AI格局?
人工智能·chatgpt·openai·midjourney·claude·deepseek
三月七(爱看动漫的程序员)1 天前
SocraticLM: Exploring Socratic Personalized Teaching with Large Language Models
人工智能·语言模型·自然语言处理·chatgpt·prompt
单丽尔2 天前
ChatGPT最新版本“o3”的概要
chatgpt
z千鑫2 天前
【AIGC】 ChatGPT实战教程:如何高效撰写学术论文引言
chatgpt·aigc
hellocode_2 天前
ChatGPT 主流模型GPT-4/GPT-4o mini的参数规模是多大?
人工智能·chatgpt
智写AI2 天前
Gemini和ChatGPT全面对比分析,有什么区别和优势?
人工智能·chatgpt·ai写作·gemini·ai写论文