语言模型演化过程:
大模型构建顺序:
- 预训练:起初,预训练技术专注于解决特定类别的下游任务,例如文本分类、序列标注、序列到序列生成等传统NLP任务。后来,OpenAI在GPT-2的研究中,提出了一种创新思路——通过大规模文本数据预训练,打造能够应对广泛任务的通用解决方案,并在GPT-3中将这一理念扩展至前所未有的超大规模。除了对数据量的苛刻要求,预训练阶段对计算资源的需求也极为庞大。此外,预训练过程中还涉及诸多细节,诸如数据配比、学习率调度、模型行为监测等,这些往往缺乏公开的最佳实践指导,需要研发团队具备深厚的训练经验与故障排查能力,以规避训练过程中的回溯与重复迭代,节约计算资源,提高训练效率。总体而言,预训练不仅是一项技术挑战,更是一场对数据质量、算力投入与研发智慧的综合考验。
首要任务:搜集和清洗海量的文本数据,确保剔除潜在的有害内容。 - 有监督微调:利用成对的任务输入与预期输出数据,训练模型学会以问答的形式解答问题,从而解锁其任务解决潜能。经过指令微调后,大语言模型能够展现出较强的指令遵循能力,可以通过零样本学习的方式解决多种下游任务。相较于预训练所需的海量数据,指令微调所需数据量显著减少,从几十万到上百万条不等的数据,均可有效激发模型的通用任务解决能力,甚至有研究表明,少量高质量的指令数据(数千至数万条)亦能实现令人满意的微调效果。这不仅降低了对计算资源的依赖,也提升了微调的灵活性与效率。
- 基于人类反馈的强化学习对齐(RLHF):通过指令微调后的强化学习,提升模型的人类对齐度。RLHF的核心:构建一个反映人类价值观的奖励模型(Reward Model)。这一模型的训练依赖于专家对模型多种输出的偏好排序,通过偏好数据训练出的奖励模型能够有效评判模型输出的质量。
大模型应用开发
客户端:
Gradio:Gradio的设计哲学是将输入和输出组件与布局组件分开。输入组件(如Textbox
、Slider
等)用于接收用户输入,输出组件(如Label
、Image
等)用于显示函数的输出结果。而布局组件(如Tabs
、Columns
、Row
等)则用于组织和排列这些输入和输出组件,以创建结构化的用户界面。
Streamlit:
-
Streamlit每个组件都是独立的,需要用什么直接查看官方文档即可,大致有如下几种组件:
-
-
第三方组件(提供了更加丰富的组件)
-
状态(进度条,加载中,等等元素)
-
Chat(聊天对话控件)
-
布局和容器
-
多媒体(图片,音频,视频)
-
输入(文本框,按钮,下拉框,滑块,复选框,文件上传,等等)
-
图标绘制(柱状图,散点图等等)
-
数据表格
-
文本
-
应用逻辑
-
导航和页面(可以切换页面)
-
执行流程
-
缓存和状态
-
连接和加密(可连接数据库,也可以对内容进行加密处理)
-
自定义组件
-
公共组件(用户信息存储,帮助,以及输出html)
-
Config(使用配置文件,来定义一些内容)
-
-
工具
-
应用测试
-
命令行
-
-
-
服务端
直接调用大模型API:将请求直接发送给相应的服务商,如openai,讯飞星火等,等待API返回大模型回复
优点:
便捷性: 不需要关心模型的a.维护和更新,服务商通常会负责这些工作。
资源效率: 避免了本地硬件投资和维护成本,按需付费灵活调整成本支出。
稳定性与安全性:专业团队管理,可能提供更好的系统稳定性和数据安全性措施。
扩展性: API服务易于集成到现有的应用和服务中,支持高并发请求。
缺点:
网络延迟: 需要稳定的网络a锽斯.连接,可能会受到网络延迟的影响。
数据隐私: 数据需要传输到b.服务商的服务器,可能涉及数据安全和隐私问题。
成本控制: 高频次或大量数据的调用可能会导致较高的费用。
依赖性:受制于服务商的政策变化,如价格调整、服务条款变更等。
大模型本地部署:在本地GPU或者CPU上,下载模型文件,并基于推理框架进行鰥н戬鵇珝煺豎半墓騶泔孁廂侦署大模型
优点:
数据主权: 数据完全在本地处理,对于敏感数据处理更为安全。
性能可控: 可以根据需求优化配置,减少网络延迟,提高响应速度。
成本固定: 初始投入后,长期运行成本相对固定,避免了按使用量付费的不确定性。
定制化: 更容易针对特定需求进行模型微调或扩展。
缺点:
硬件投资: 需要强大的计算a.资源,如高性能GPU,初期投资成本较高。
运维复杂:需要自行管理模型的更新、维护和故障排查。
技术门槛: 对于非专业团队而言,模型的部署和优化可能较为复杂。
资源利用率: 在低负载情况d.下,本地硬件资源可能无法充分利用。