狂飙的大模型-2023年度总结|社区征文

2023总结

大模型

多年以后,我一定会记得我第一次使用 ChatGPT 那种震撼的感觉。起初我只是以为使用了一个有意思的工具,却不知迎来了 AI 浪潮的大时代。他打乱了很多顶级互联网公司的战略发展的节奏,也打乱了我个人发展发向。

2022年,同样是在火山引擎开发者社区,我总结了我的2022 ,并定下了2023年几个探索的技术方向。(详情可点击:我的 2022 云原生修炼之路|社区征文 )ChatGPT 的出现打乱了一切。多集群,可观测性等 cloud native 方向暂时搁浅,团队开始探索 AI Native 方向的落地 。

总结下 2023 大模型等几个关键词。LLMOps 、prompt、langchain、ChatGPT API、RAG、向量检索、agent等

感谢吴恩达,他在 deeplearning 上有很多基础入门的课程,对我帮助很大。下面是我学习的三个课程的笔记:吴恩达 prompt 课程笔记吴恩达-使用ChatGPT API构建系统-笔记吴恩达-基于LangChain的大语言模型应用开发

这里也要推荐一位宝藏博主 宝玉,第一时间利用 ChatGPT 为大模型相关的视频制作字幕。

picture.image

众所周知,大模型应用落地有 4种 常见方法。

  • Prompt Engineering
  • Retrieval Augmented Generation (RAG 检索增强生成)
  • 微调
  • 从头开始训练基础模型(FM)

由于后面两种成本太高,而且GPU资源稀缺,目前大家都是采用前面两种方法。

下面介绍下,今年我在大模型落地方面的两个应用。分别用到了 prompt 提示词工程和 RAG 检索增强生成 技术。

专利生成服务

这个产品主要功能就是,根据论文、交底稿来生成专利五书。

这是一个利用大模型端到端开发的应用,软件架构本身很简单,分为后端、前端、PDF提取服务三大块。后端对前端暴露若干个接口,分别生成专利的各个部分,比如权利要求点、说明书、实施方式等。相当于用户上传自己的论文,我们解析 PDF 获取论文的内容,然后设计 prompt 来生成专利的各个部分。

这里的 prompt 设计就比较关键,根据提取的论文内容,进行凝练,总结,然后扩展成专利的内容。

picture.image

下面讲讲怎么设计出优秀的 prompt。

如何设计优秀的 prompt

  1. 编写清晰具体的指令。
  • 必要的时候使用不同的的分隔符。````, “”", < >, <tag> </tag>:
  • 给出少量的例子

举个例子:对下面段落进行总结。这里将 text 用 {} 分割起来。

text = f"""
You should express what you want a model to do by \ 
providing instructions that are as clear and \ 
specific as you can possibly make them. \ 
This will guide the model towards the desired output, \ 
and reduce the chances of receiving irrelevant \ 
or incorrect responses. Don't confuse writing a \ 
clear prompt with writing a short prompt. \ 
In many cases, longer prompts provide more clarity \ 
and context for the model, which can lead to \ 
more detailed and relevant outputs.
"""
prompt = f"""
Summarize the text delimited by triple backticks \ 
into a single sentence.
```{text}```
"""
response = get_completion(prompt)
print(response)
  1. 给模型充足的思考时间
  • 对于复杂任务,最好确定好每一步的步骤,和规定好输出的结果。 举个例子:对于复杂任务,这里面 1、2、3、4 都规定了每一步的步骤。
prompt_2 = f"""
Your task is to perform the following actions: 
1 - Summarize the following text delimited by 
  <> with 1 sentence.
2 - Translate the summary into French.
3 - List each name in the French summary.
4 - Output a json object that contains the 
  following keys: french_summary, num_names.

Use the following format:
Text: <text to summarize>
Summary: <summary>
Translation: <summary translation>
Names: <list of names in Italian summary>
Output JSON: <json with summary and num_names>

Text: <{text}>
"""
response = get_completion(prompt_2)
print("\nCompletion for prompt 2:")
print(response)

  1. 迭代提示开发
  • 根据输出结果不断调整 prompt 好的 prompt是不断尝试和调整出来的,不要急于一步搞定。

AI native 应用落地困境

  1. 法律和政策风险
  2. 过度依赖大模型的能力,ChatGPT 效果最好,但是价格最贵。
  3. 没有技术壁垒。

由于 大模型 API 价格昂贵,加上人人都会写 prompt。这个产品用户不是很多。

ChatGLM金融大模型挑战赛

这是今年参加的一个比赛,根据5000多份上市公司年报,来回答金融领域问题。属于检索增强生成 (RAG) 应用的范例。比赛地址

思路很简单,但是参加比赛后发现还挺难的,第一步的 PDF 解析就成了问题,如果不能把文章拆的的足够细,回答的准确率就上不去。其次数据量很大,向量数据库的检索也成了瓶颈。所以虽然比赛没有获得名次,但是也从中学到了很多。

这里是获奖大佬们的方案和答辩PPT地址。下面是挑战赛第一名的架构图。

picture.image

Agent

Agent 和目前主流构建大模型应用方式的本质区别是:当提出一个目标,是人去设计执行路径还是大模型去设计执行路径。Agent的方案是我给你一个目标,Agent自动设计执行步骤并且执行每个步骤,最后直到成功。

比如给你一个iris数据集说要做可视化,那大模型会自己设计步骤: 解压,校验依赖库,生成代码,调用解释器执行,输出结果。

而现在的模式则是人工设计这些步骤,然后调用大模型完成其中一部分步骤。

所以实际上是 human in the loop 还是 AI in the loop 的区别。

但是现在模型的能力只能完成很简单的目标,但潜力已经可以看出来了。有点像电车正在加大渗透率,但需要个过程,我觉得起步半年。因为现在几乎我看到的几个Agent框架都需要至少GPT4 起…..

社区参与

由于疫情结束,今年参加了 15场线下活动,尤其是第一次参加 KubeCon ,和许多久闻的大佬面基,看到大家的灿烂的笑容,我就知道 云原生这条路没有走错。具体详情参考这篇meetup 2023 博文。

picture.image

提升

说到提升,比较惭愧。技术、运动、读书都没有值得说的突破,就认认真真读了一本《额尔古纳河右岸》。报了唐刚老师的 rust 课程,算是入门了 rust。另外抽空考了一个 《初级茶艺师》也算小突破吧。

希望 2024 年在运动、读书、技术这三方面踏踏实实做点事情,不管环境怎么变化,坚持自己的初心。

2024 规划

尽管回首 2023 被大模型裹挟着匆匆而过,2024还是要突破下自己。

  • 学会路冲板(报班也行)
  • 用 rust 开发一个应用
  • 读完书架上的书
0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论