基于大模型进行开发的实践与思考

722次阅读
没有评论

LLM的革新,将会带来什么改变呢?作者对此展开思考,以独立开发者的身份对大模型开发进行实践,接下来,我们看看作者是如何做的吧。

基于大模型进行开发的实践与思考

LLM出现引发的解放力提升及革新,有时会在我脑海里浮现,对于期望从事LLM的人来说,可以从哪些方面来进行学习呢?

当前,各个行业都在对 LLM的应用和研究进行着不断的尝试,经过阅读和论文的参考,对LLM进行了分类整理,也结合自身的实践来做一次分享。

一、LLM综述及简介

基于大模型进行开发的实践与思考

1. 领域专业化分类

基于拓展阅读的论文观点,LLM的专业领域主要分为三类:

  • 外部增强(External Augmentation)
  • 提示语制作(Prompt crafting)
  • 模型微调(Model Fine-tuning)

其中,外部增强是一个黑盒类型的应用,它是由外部的数据上下文和内部的提示词来控制输出,实质上不能对 LLM的内部进行访问和调节。

提示语制作是一种灰盒类型的应用,它是通过调节 prompt的参数来控制 LLM的输入和输出,仅在 LLM中与 prompt有关的参数进行更新,这部分参数占 LLM总参数的0.01% 。

模型修正是一种白盒类型的应用,它是对模型中特定领域中的知识和数据的修正,是一种深入到模型中特定领域的全量参数修正。

2. LLM应用场景简述

尽管专业领域被划分成了三个类别,但是 LLM在其中的共同应用有:

  • 识别特定领域的实体、关系和事件
  • 生成特定领域的内容,并生成复杂的文本摘要
  • 分析特定领域的数据并进行预测
  • 通过自然语言生成校验代码

这四个应用可以贯穿全领域,也是主要提效的表现,具体场景如下:

  • 可以用LLM快速进行客户问题的分类
  • 使用LLM快速阅读论文并给出摘要内容
  • 提供某一专业数据,并进行数据的分析总结
  • 用中文描述需求并生成python代码,如请生成一个深度学习的示例代码

在目前阶段,各大中小企业对LLM进行的探索,一般都为外部增强的方式,因为这一方面无论是从成本还是门槛上来说,大部分是可以接受的。

所以,我在后面的实践及应用介绍,也是以外部增强为基础,从以上四个应用方向展开。

二、个人实践简述及总结

1. 已开发的个人工具

截至目前已经开发的工具有三个,分别为:

  • 电影评论情感分析工具(识别特定领域的实体、内容)
  • 客服问题分类工具(生成特定内容摘要)
  • 数据分析工具(分析特定领域的数据)

基于大模型进行开发的实践与思考

三种工具均能满足个性化的输出需求,只需让用户输入不同的参数,或修改配置文件中的提示词内容即可。

并且开发过程我也是借助LLM,通过自然语言进行编码及代码排查、优化的工作。(通过自然语言生成校验代码)

2. 各工具的设计思路、功能特点

在开始搭建工具时,按照LLM的应用场景分类,我选择了文本总结、文本分类及文本分析三个方向,原因很简单:学习的过程也是这么个思路,先是阅读,然后对知识点进行分类,并基于新文本进行分析。

因此在确定了每个方向后,选择了一个场景进行验证试点,文本总结使用豆瓣上的用户评论,文本分类使用电商平台的售后咨询类目,数据分析则使用世界银行发布的各国历史失业率数据。

最后在对每一个场景进行了分析和整理之后,得出了一份材料如下:

基于大模型进行开发的实践与思考

3. 过程中的问题及解决方案

在开发过程中识别到的问题可以分为以下几类:

1)问题1. 输出结果不符合预期、结果不可控

基于大模型进行开发的实践与思考

Fig1.返回结果不符合预期

如上图,在输入某一条评论并要求输出表格形式时,得到的结果却是JSON格式。

① 原因分析

因为外部增强属于一种黑盒类的尝试,因此通过实践过程,我了解到一般出现这类问题有以下几个方面的原因:

  • 提示语设置不够准确,或者前后矛盾,导致输出不可控
  • 提示语与用户文本语言不一致,如使用英文的prompt来分析中文的评论
  • 分析步骤太复杂,LLM无法很好的完成分析

② 解决方法

基于以上三个原因,给出三个不同的解决方法:

  • prompt提示语中单独增加结果的确认

在输出结果时,请确保是{Object_format}格式

请保持输出中的语言与原始文本相同 – 如果评论是中文的,则输出也应为中文。

  • 保证输入的文本与prompt的一致。可以在功能层面上维护多套语言的prompt。当用户选择了中文模式时使用中文的prompt提问
  • 提示语中设置few-shot或者分析步骤

2)问题2. api调用及token请求问题

毫无疑问,在开发过程中需要科学上网,并且需要限制一定的token请求量,目前GPT3.5单次请求只能包含4390token,超过无法完成分析。

解决方法

  • 前端须有token限制的功能,另外需要补充功能记录每次提问及返回结果的token数量,用于监控调用
  • 科学上网

3)问题3. 调用量成本

基于大模型进行开发的实践与思考

Fig2. usage调用量明细

截取了过去几天的调用数据,平均$0.05/天,折合$0.35,此情况是根据一个用户一天总共50次的请求数量计算的,平均费用为$0.007天人,具体取决于你所输入的文本和构造的提示词数量。

解决方法

  • 前端需具备发起提问的token限制功能
  • 源码中的prompt的构建尽量简洁、清楚、明确

4)问题4. 变现方式及正式商用可行性待评估

LLM目前商用可行性的问题主要有以下三点:

  • LLM的可靠性及稳定性
  • 工程化方案如何适应每个行业
  • 投入产出比如何平衡

LLM无疑可以帮助人们快速地实现各种AI功能,但是从外部增强的角度来进行实践, LLM输出的结果在本质上是不可控的,落地性比较差。

因为涉及到科学上网及使用第三方LLM能力,如何实现更好的工程化,目前还尚未有成熟的方案。

另,利用 LLM所产生的费用是每一个落地项目都要考虑的实际问题。

以上内容,因为本人也还在探索,因此目前只能给出开放性的答案。

解放方法

  • 对于 LLM的可靠性,我们可以在 prompt中添加一些小的样本量来描述,并尽可能地对每个请求进行详细地分析,另外也可以增加产品功能、深度学习或者增强学习的方法进行优化
  • 工程问题的求解,则是基于行业领域的创新,在此先不展开
  • 投入产出平衡问题:如果是试探性的尝试,那就尽量开发一种与已有的产品形式相匹配的轻量级应用形式,并为其提供一个开关,以实现功能的激活和关闭

三、总结及后续

1. 总结

LLM让我以独立开发者的身份,开发出了三款工具,达到了一个人相当于一个团队的效果,大大提高了时间和人力的效率。

LLM的应用潜力巨大,可以帮助人们快速实现各种AI功能。希望未来能够有更多的人加入到LLM的探索和应用中,共同推动AI技术的发展。

2. 后续

考虑到 LLM还有其他两个方向,也是非常值得探索的,后续有机会可以再做一次分享。

  • 提示语制作(Prompt crafting)
  • 模型微调(Model Fine-tuning)

拓展阅读

‘Beyond One-Model-Fits-All: A Survey of Domain Specialization for Large Language Models’

专栏作家

SiegZhong,人人都是产品经理专栏作家。深入了解AI技术的前沿趋势,并提供实用的解决方案及思考。

本文原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy