如何选择:编写程序、调用大模型还是训练模型?
昨天和小伙伴讨论技术方案时,突然意识到在过去的半年里,参与的几个与人工智能相关的项目,大家都纠结于选择:是使用程序实现?还是调用大模型?亦或是进行模型训练?
在这里我们不讨论为了使用而使用 AI
的场景,只考虑在日常工作中,如何更省钱省力。
1 可供选择的方案
用程序写规则实现
调用现有模型 +RAG(检索增强生成)
训练模型
2 背后的逻辑
可以看到每种方案都有它适用的领域。
2.1 程序不能解决的问题
程序不能解决“复杂”问题,试想以下场景:
在与用户进行交互过程中,可能有很多不同的说法来表达一个问题,程序无法一一列举。这时候就需要使用模型。
对于图像、音频等模拟信号处理来说,更有无数种可能性。对于这些信息的识别、生成或判断,很难用硬性指标来界定,这时候可以使用模型。
2.2 调模型不能解决的问题
调用模型最大的问题是:通用模型不了解你的领域知识和背景知识。
如果想得到很好的结果,首先得选择一个靠谱的模型。另外,还需要把提示写得非常准确,比如让它写一段程序。如果描述非常清晰,细化到函数内部逻辑,就能生成更符合你期望的内容。如果只说“给我写一个音乐播放器”,没有描述它的系统、编程 ...
论文阅读_代码生成_CODEFUSE
12345678英文名称: CodeFuse-13B: A Pretrained Multi-lingual Code Large Language Model中文名称: CodeFuse-13B:预训练的多语言代码大语言模型链接: https://arxiv.org/pdf/2310.06266.pdf代码: https://github.com/codefuse-ai作者: Peng Di, Jianguo Li, Hang Yu...机构: 蚂蚁集团日期: 2023-10-10 v1引用次数: 4
读后感
CODEFUSE
是蚂蚁集团开源的代码生成模型,目前开源了两个版本:CodeFuse-13B 和
CodeFuse-CodeLlama-34B。其中,13B 是基于论文中设计的模型架构,34B 则是在
CodeLlama-34b-Python 的基础上进行微调。
从整体上看,无法确定 CODEFUSE 是根据自己设计的架构从头训练,还是基于
CODELAMMA
进行自然语言训练并逐步微调,哪个更好。论文需要有创新性,打榜又需要高分,所以只能采用这种写法。
既然如此,就没必要深究 ...
论文阅读_MoE_Switch Transformers
12345678英文名称: Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity中文名称: Switch Transformers: 用简单高效的稀疏性将模型扩展到万亿参数规模链接: https://arxiv.org/abs/2101.03961代码: https://github.com/tensorflow/mesh作者: William Fedus, Barret Zoph, Noam Shazeer机构: 谷歌, 美国加利福尼亚州山景城日期: 2021-01-11引用次数: 1205
读后感
MoE 相对于原始的 Transformer
来说是一个稀疏模型,其中包含多个专家模型。在不同场景下通过路由调用不同的模型进行计算。具体方法如图
-2 所示,该方法将 Transformer 中的 FFN 变成了选择某个具体的 FFN
进行路由操作,而其它模块(非蓝色部分)则保持不变,由各个专家共用。
从论文的角度来看,其提出了训练一个巨大模型,并在不同区域 ...
论文阅读_去声器_UVR5
1 读后感
UVR5(Ultimate Vocal Remover
5)是一款音频处理工具,主要用于从混音中分离人声和乐器轨道。它的主要目标是去除人声,保留乐声。然而,使用该工具提取人声可能会遇到一些问题。
其原理基于卷积神经网络(CNN)和自动编码器等模型。
音频文件被转换成频谱图,通常是通过短时傅里叶变换(STFT)将时域信号转换成频域表示。
UVR5 可能使用了一种称为 U-Net
的神经网络架构,它是一种常用于图像分割的模型。这种网络结构适用于音频分离,因为它能够在不同的频率和时间尺度上捕捉到音频的特征。
预训练好的模型会接收混合音频的频谱图作为输入,并输出两个频谱图:一个对应人声,另一个对应伴奏。
2 相关论文信息
12345678英文名称: MULTI-SCALE MULTI-BAND DENSENETS FOR AUDIO SOURCE SEPARATION中文名称: 用于音频源分离的多尺度多频段密集网络链接: https://ieeexplore.ieee.org/abstract/document/8678825/代码: https://github.com/An ...
内网穿透
1 功能
我有一个公网地址,想把本地服务通过公网地址暴露出来,供外部调用,方法如下:
2 说明
这个过程被称为反向 SSH 隧道或 SSH
远程端口转发。在这个过程中,你实际上是在本地机器 A
上建立了一个到云服务器 B 的 SSH 连接,并通过这个连接将云服务器 B
上的某个端口(例如 8080)转发到本地机器 A 的另一个端口(例如 80)。
在这个设置中,GatewayPorts yes 的配置是必要的,它允许从云服务器 B
的任何地址来的连接都能够连接到转发的端口(在这个例子中是 8080
端口)。
3 操作
在有公网 IP 的机器 B 上运行:
123$ vi /etc/ssh/sshd_config修改:GatewayPorts yes$ sudo systemctl restart ssh
在本地机器 A 上运行:
1$ ssh -NTf -R 公网端口:本地机器IP:本地端口 用户名@公网机器IP
如果想设置断开重连,用 autossh 替换 ssh
12$ apt-get install autossh$ autossh -M 55555 -NTf -R 公网端口:本 ...
大模型小工具
(这篇结构挺乱的,但是最近信息量太大,时间太少,我也只能做成这样了)
最近,一个朋友拜访了多家开发大型模型的头部公司,探讨他们的行业与大模型结合的方式。回来与我们分享了一些见解。
实际上,在过去的一年中,大型模型似乎非常火爆,但认真反思,真正成功应用的场景并不多。
1 肉眼可见的改变
大厂都已经发布了自己的大模型,而且还有很多提供精调的功能。
云服务提供商也开始提供自己的大模型以及模型云端部署。
多家公司发布了 AI PC 时间表,感觉这种全民 AI
的趋势已经来临(我个人认为云部署比 PC 更合适)。
各种 AI 学习班也开始涌现出来。
围绕生成展开的工具:
翻译、推荐等小工具似乎比之前更好用了一些
智能客服好像很火,但是我不常购物,也没用过
内容生成方面,公众号自动生成文章和配图,生成各种学习体会和总结
辅助工具方面有润色、总结等功能
自动编码可以辅助编程
论文工具方面有阅读和撰写功能
聊天方面有围绕某个行业或者功能进行问答的功能
换声换脸诈骗
总的来说,多是一些辅助性的工作,可以增强个人能力,但使用时还需要人们进行甄别。
2023年_大模型相关的热门开源工具
2 大模型小 ...
开源项目_搭建对象存储服务MinIO
1 简介
MinIO 是一个开源的对象存储服务器,与 Amazon S3
兼容。它的设计目标是为大规模数据工作负载提供简单、安全和高性能的存储。
以下是 MinIO 的一些主要特性:高性能,S3
兼容,安全性,可扩展性,开源,简单性。
MinIO
可以在各种环境中运行,包括裸机、虚拟机、容器化环境、私有云和公有云等。这使得
MinIO
成为一个非常灵活的对象存储解决方案,可以适应各种不同的部署需求。
简单来说,这是又小又好用的服务,可以在 300M
以内进行部署,并包含友好的 Web 界面。它的内部存储格式也非常直观。
2 部署
2.1 下拉镜像
1$ docker pull bitnami/minio:latest
image 大小约 270M,是个轻量级的服务。
2.2 启动镜像
1$ docker run --rm --name minio -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=root -e MINIO_ROOT_PASSWORD=密码 -v /exports/tmp/minio/:/bitnami/minio/data -i ...
开源项目_代码生成模型评测工具
1 引言
优化模型之后,评估是不可避免的。打榜可以证明模型的能力,同时还有其他一些好处:
当我们对模型进行微调或进行工程优化后,需要采用相对客观的标准来评估工作成果。
在选择模型基座或在应用中选择适合自己的模型时,至少要了解一下所选模型在行业内的水平,毕竟论文实验里可能存在田忌赛马的情况。
如果项目庞大且复杂,可能需要建立自己的评估工具,以进行更有针对性的测试。除了评估大型模型的自动编码效果外,还上可评估我们的代码质量。
以下是一些推荐的评估工具和排行榜。EvalPlus 是一个比较推荐的工具,它是
HumanEval 的增强版,并对程序错误进行了更严格的判断。论文首次提交于 2023
年 5
月,排行榜一直在更新。推荐该工具主要因为排行榜得分与我们主观感受比较一致。
2 HumanEval:LLM 代码生成基准
HumanEval
可以算是代码模型的标准测试,一般论文实验部分都使用它评测,它主要评测的是模型自身的性能。
HumanEval 由 HumanEval 数据集和用于评估 LLM 性能的 pass@k
指标组成。这个手工制作的数据集包含 164
个编程挑战的单元测试,以及 ...
GPT_SoVITS_原理
1 简介
GPT_SoVITS
可以说是目前最好的中文语音合成模型。我没有找到它的论文和原理说明,然后通过扒代码,脑补了一下其原理。
GPT_SoVITS
不是一个端到端的工具,相反,它是一个由多个工作组合而成的工具链。其核心是
GPT 和 SoVIT 两个模型,这两个模型需要根据不同发音人进行
fine-tune。外围包含去背景音乐、语音识别、去噪、切分、提取音频特征、提取文本含义等多个现成工具,可直接使用。
可以将其分为训练和推理两个阶段来看。训练阶段的输入是目标发音人的音频,输出是经过精调后的模型;推理阶段的输入是文字和语音提示,输出是合成后的音频。
2 核心模型
|600
(推理部分图示)
为了避免混淆,在这里我们尽量不使用“语义”这个词。BERT
模型输出的是我们通常所说的“语义”,在这里我们将其称为“文本含义”。而
Semantic 也被翻译成中文的“语义”,而 cnHubert 模型输出的 Semantic
指的是一种混合了音素和文本含义的概念,我们将其称为“统计音素”。
下面通过分析推理过程来看看这些模型是如何协调工作的。从上图可以看到推理过程中模型
(黄色) 和 ...
论文阅读_参数微调_P-tuning_v2
1 P-Tuning
1234567英文名称: GPT Understands, Too中文名称: GPT也懂链接: https://arxiv.org/abs/2103.10385作者: Xiao Liu, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie Qian, Zhilin Yang, Jie Tang机构: 清华大学, 麻省理工学院日期: 2021-03-18引用次数: 426
目标:大模型的 Prompt 构造方式严重影响下游任务的效果。离散化的 token
的搜索出来的结果可能并不是最优的,导致性能不稳定。本篇论文旨在探讨,如何提升预训练语言模型进行自然语言提示的有效性。
方法:作者提出了 P-Tuning,设计了一种连续可微的 virtual token(同
Prefix-Tuning 类似)。将 Prompt 转换为可以学习的 Embedding 层,用
MLP+LSTM 的方式来对 Prompt Embedding 进行处理。
结论:弥合 GPT 和 NLU 应用程序之间的差距 (2021 年),P 调参后的 GPT
可以比在 ...