AI项目开发总结-叙事可视化

问题与策略

如何编写 LLM,缺乏经验和技巧、方法论

Prompt Engineering、CoT、结构化等等

LLM 推荐的图表不正确

LLM 输出的 JSON 结构不正确

JSON Mode
后处理

定的很多规则,无法命中

比如动画类型。
之前东明的可视化推荐也是这个问题,搞了很多图表,但是场景无法命中。

LLM 处理耗时很长

前端需要等待很长时间。
而且推荐类的,还不能流式输出展示。
我们这次 3 个 LLM 请求还有依赖关系。

缺乏 LLM 日志的展示页面

而且要考虑 LLM 内容的可读性问题(格式化)。

不同环境的配置和参数的一致性问题

产品调试和开发代码里面的不一致,比如:
模型类型
模型版本日期
temperature 参数
top_k 参数
等等

手动测试效率低

单元测试
AI 工作流平台
Prompt 管理等

技术拆解

文本生成

data + narration + prompt -> LLM -> text

Prompt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<|im_start|>system
As a professional finance and stocks expert, you can determine the comments to meet the requirements base on query and the description of the data. Please respond accurately according to the following content.
<|im_end|>
<|im_start|>user

## Role
你是一名金融数据分析师,请根据下面的数据,结合以下需求,生成一份相关的金融数据分析。
需求:
{query}
数据:
{data}

## Goals
根据需求中提及的需要介绍的数据指标,结合提供的数据分析可能包含的逻辑关系,提供一份金融信息汇总的新闻文案。

## Constraints
- 生成结果必须符合需求中提到的指标要求
- 先对数据中的信息进行分析,思考数据内容中包含的任何可能的关联关系,并给出相关分析建议
- 生成结果不能超过500字,其中不需要包含任何无关的内容
- 生成结果为字符串文本格式,不能包含任何html标签,不能包含任何javascript代码,不能包含任何css样式
- 生成的结果需要适合用于短视频的语音文本文案,不能包含括号内的文本等无法直接朗读的内容
- 禁止生成有推荐股票/板块的表达,如“某股票显示出强劲的市场吸引力。”“某股票表现不俗”“投资者对该领域有高度兴趣和信心。”等
- 不要没有数据支撑的推测和猜测,不需要包含任何无法从数据中直接得出的结论

## OutputFormat
示例:

'在算力板块中,瑞斯康达、鑫科材料4连板、佳力图3连板。浪潮信息尾盘涨停, 成交额达108亿元,作为算力板块的中军,其强势表现对整个板块的上涨再次起到了推动作用。\n算力板块上一次发酵是在1115日,因AI大会的举办,热度持续了3天。彼时为中科曙光领涨,实现3连板。'

<|im_end|>
<|im_start|>
assistant

资讯业务

  • 取数
  • 程序化计算数据特征
  • 特征字段名转换为中文
  • 根据 Prompt 模板生成文本
  • 文本分割(LLM)
  • 文本-特征-数据匹配(LLM,图表类型定死了 line)
  • 整合结果(text、insight,insight 定死了 animationEffect: ‘PF’, type: ‘LineComparison’)

RAG

structured retrieval

https://docs.llamaindex.ai/en/stable/examples/retrievers/auto_vs_recursive_retriever/

这个就是东明说的那个结构化数据的 index 吧

Store Document Hierarchies (summaries -> raw chunks) + Recursive Retrieval: Embed document summaries and map that to the set of raw chunks for each document. During query-time, do recursive retrieval to first fetch summaries before fetching documents.

复旦发布:最佳 RAG 方案

https://mp.weixin.qq.com/s/0m36A3J9veZzhLSV0ExcWA

训练分类器判断哪些任务需要 RAG

对于完全基于用户提供信息的任务,标记为“足够”,不需要检索;否则,标记为“不足”,可能需要检索。训练了一个分类器来自动化这一决策过程。

三种查询转换方法:查询重写、查询分解和伪文档生成。

查询重写:

通过改写查询以更好地匹配相关文件,提升性能。

查询分解:

基于原始查询中提出的子问题检索文件。

伪文档生成:

根据用户查询生成假设文档,并使用假设答案的嵌入检索类似文件。

待解决的问题

输出的正确性

  • RAG
  • 给 LLM 减负

输出的稳定性

  • 程序化、规则化
  • 给 LLM 减负

Insight 类型

  • StandardChart 的程序扩展性
  • 工作量的问题

未来规划

定位:AIGC 内容创作流程中的可视化图表物料生成工具
当前阶段,我们先专注于数据图表的生成
输入:
输出:
关键:定一个各个物料的接入 DSL

flow

感触

最后的 10%

研究只需要不断提高准确率就行了
但是:商用必须 90%的正确率+一大堆兜底工程策略
兜底的工作量远比想象中大

不可知性

解决了一个问题,又会有新的问题出现,比如:LLM 推荐的图表不正确,解决了之后,又会有新的问题出现,比如:LLM 输出的 JSON 结构不正确。
对于什么时候能搞定,难以定出明确的时间表。

不要让 LLM 处理太多事情

应该是 LLM+RAG+工程化(前处理、后处理)