首页 > 其他分享 >VR-LLM-AAC

VR-LLM-AAC

时间:2024-06-14 19:45:05浏览次数:22  
标签:prompt 拼音 AAC InitialConsonants 复杂度 VR 算法 LLM input

VR-LLM-AAC

方案测试

测试一:汉字聚类

  • hanzi_similar 算法 Github

  • Kmeans 算法

hanzi_similar 通过四角编码,汉字结构,偏旁部首,笔画数来判断两个汉字之间的相似度

将权重调整为

img

调高偏旁部首和汉字结构的权重

根据任意两个汉字之间的相似度,通过 Kmeans 算法构建相似度矩阵,取得两两之间边的数值,进行聚类,得到 hanzi_clusters.txt

测试采用随机给出 n 个空,每个空随机分配一个聚类的方法,同时将每一个聚类按照使用频率从大到小排序扔给 ChatGPT 进行选择

img

结果是无论 3.5-turbo 还是 4o 都不能很好的完成预测,主要问题还是无中生有,假如频率指标没有改善

方案二:音节思路

2024.6.12

img

img

由于最多有九种组合,尝试在键盘上再加入一行数字,这样打一个字需要操作三下(声母,韵母,选择组合)

例如 \(1 1 1\) 则输入 "ma"

将拼音作为 prompt 扔给 ChatGPT 让它进行预测能达到几乎百分百的效果

InitialConsonantPath = "./spelling/InitialConsonants.txt"
VowelPath = "./spelling/Vowels.txt"

def read_file_lines(filename):
	lines = []
	with open(filename, 'r') as file:
		for line in file:
			lines.append(line.strip()) 
	return lines

def combine(InitialConsonantNumber, VowelNumber, InitialConsonants, Vowels):
    combinations = ["{}{}".format(InitialConsonant.strip(), Vowel.strip()) for InitialConsonant in InitialConsonants[InitialConsonantNumber].split() for Vowel in Vowels[VowelNumber].split()]
    return combinations

InitialConsonants = read_file_lines(InitialConsonantPath)
Vowels = read_file_lines(VowelPath)

def enter():
	print(f"声母: {InitialConsonants}\n韵母: {Vowels}\n")
	message = ""
	while True:
		a = int(input()) - 1
		b = int(input()) - 1
		combination = combine(a, b, InitialConsonants, Vowels)
		print(combination)
		c = int(input()) - 1
		message += f"{combination[c]} "
		more = input("是否继续选择?(yes/no): ").lower()
		if more != "yes":
			break
	return message

def generate_prompt():
	prompt = ""
	prompt += f"你是一个擅长中文的汉语言学家,你的汉语发音也十分标准,我将给你一些线索,请你猜测我正在说什么。像你知道的那样,中文的一个汉字由一个声母音节和一个韵母音节构成,例如,\"虐\"的拼音是 \"nve\",一下面我将给出每个字可能的拼音,请你从这些音节中推测出一个字,要保证这些字会连成一我想说的话,逻辑清晰,语意连贯。\n"
	prompt += f"注意\"/\"代表空韵母\n"
	prompt += enter()
	return prompt

if __name__ == "__main__":
	a = int(input()) - 1
	b = int(input()) - 1
	combination = combine(a, b, InitialConsonants, Vowels)
	print(combination)
	c = int(input()) - 1
	print(combination[c])

ChatGPT 3.5-turbo 预测:

img

2024.6.13

上述方法并不能简化按键效率,每个字需要进行三次操作,所以依然考虑只通过按声母韵母进行输入,通过 LLM 预测结果

考虑利用 Pinyin2HanziGitHub

pip install Pinyin2Hanzi

这个库提供了检测拼音是否合法,将拼音转变为合法和将拼音转变成汉字等功能

首先将 prompt 生成器和 ChatGPT 接口集成得到类 GeneratorChatBot

基于三者简单实现一个虚拟键盘,实现方法是将所有输入可能性通过 Pinyin2Hanzi 库转化为其最有可能所代表的汉字,将两者合并成询问对扔给 ChatGPT 进行预测

时间复杂度约为 \(O(f(m^n) + C)\),其中 \(m\) 为单个拼音组合数,约为 \(6\), \(n\) 为输入字数,\(f(x), C\) 分别为库处理复杂度常数和询问常数

根据日常生活习惯 \(n\) 极大概率小于 \(10\),而 \(m\) 最大为 \(9\),时间复杂度较为合理

但是由于自身算法原因 \(f, C\) 常数太大,降低了效率

通过实验观察预测效率显著提高,对词语的预测率几乎为百分百,且耗时较短

img

然而对句子预测依然不准,且太过耗时

img

img

期望结果是 ”我想上厕所“

若对句子进行人为断句,则又能成功预测

img

img

2024.6.14

不难发现时间复杂度主要是因为 Pinyin2Hanzi 库的算法问题,然而其本身算法我们不能进行修改,所以考虑减少扔进去的数据量

同时已知若进行短句预测准确率能够显著提升,所以我们考虑修改算法

我们希望数据量从 \(m^n\) 缩减为一个常数,考虑每次再句子后面增加一个拼音时便进行检测,并选出最有可能的 \(q\) 组拼音

如此,时间复杂度便降为 \(O(n\times f(q) + C)\),其中我们取 \(q\) 为 \(10\) 增加容错

Pinyin2Hanzi 库中有两种算法,一种基于 viterbi 算法,一种基于 DAG \(+\) 动态规划

前者时间复杂度大但是预测精准,后者时间复杂度极小但是预测较为模糊

基于两种算法的不同特点,我们利用前者在打字时缩减数据量,利用后者预测最终结果

预测准确率十分高,但是大于五个字时每次输入需要等待 \(10s\) 左右

img

结果是这个项目寄了

标签:prompt,拼音,AAC,InitialConsonants,复杂度,VR,算法,LLM,input
From: https://www.cnblogs.com/ResurgamLiBoyi/p/18248517

相关文章

  • 【LLM应用】大模型在编写代码中的应用
    随着人工智能技术的飞速发展,大模型在各个领域的应用越来越广泛。在代码编程领域,大模型通过深度学习技术,极大地提高了代码编写的效率、质量和可维护性。大模型在代码编程中的应用代码自动补全与智能提示大模型通过学习大量代码样本,能够预测并推荐接下来要编写的代码片段,实现......
  • 【LLM应用】大模型赋能企业招投标
    一、背景当前,人工智能技术的发展与应用已上升到国家战略高度。步入2024年,大模型进入应用落地的关键时期,大模型赋能千行百业的时代已经到来。人工智能技术的高速发展也将为招标采购行业带来巨大变革。通常,一个完整的招投标流程,大致如下:招标(采购方)=〉投标(供应商)=》开标=〉......
  • 解锁LLMs的“思考”能力:Chain-of-Thought(CoT) 技术推动复杂推理的新发展
    解锁LLMs的“思考”能力:Chain-of-Thought(CoT)技术推动复杂推理的新发展1.简介Chain-of-Thought(CoT)是一种改进的Prompt技术,目的在于提升大模型LLMs在复杂推理任务上的表现,如算术推理(arithmeticreasoning)、常识推理(commonsensereasoning)、符号推理(symbolicreasoning)。起......
  • 一文读懂多模态大模型的LLM主干(1):ChatGLM系列
    〔探索AI的无限可能,微信关注“AIGCmagic”公众号,让AIGC科技点亮生活〕本文作者:AIGCmagic社区  刘一手前言AI多模态大模型发展至今,每年都有非常优秀的工作产出,按照当前模型设计思路,多模态大模型的架构主要包括以下几个部分:模态编码器(ModalityEncoder,ME):负责将不同......
  • RTMP解析音频AAC
    我们知道AAC如果带ADTS头一般是FFF1或者FFF9,开头的,但是有些网络协议在传输AAC的时候是不带ADTS头的譬如:RTSP传输的媒体流中的AAC是被封装在RTP中的,此时的AAC是不带ADTS头的,而ADTS头里有音频参数信息;所以此时解析音频是依赖RTSP协议的SDP中的音频参数信息解码的;先介绍下AAC的AD......
  • SVRF Statement Syntax Conventions (SVRF 语法约束)
    SVRFStatementSyntaxConventionsSVRF语法语句约束ParameterOrder参数顺序Casesensitivity大小写敏感区分Literalkeywordsversusvariableparameters原文关键字和变量的特征Whitespaceconsiderations空白区域考虑(不太明白这个是是什么意思)Reserved......
  • 国标GB28181安防视频监控EasyCVR平台级联时上级平台不显示通道是什么原因?
    国标GB28181安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快,可支持的主流标准协议有GA/T1400、国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。有用户反馈,GA/T1400协议/安防综合管理系统/视频汇聚EasyCVR......
  • LLM大模型: llama源码要点解读(二)
    1、attention机制:这算是transformer架构最大的创新点了!利用attention机制,找到token之间的相似度(或则说距离),根据相似度调整token本身的embedding值,本质就是根据token的context调整自身的embedding值,这个思路非常符合人脑对语言和语义的理解!比如”苹果“这个词,如果只看这一个t......
  • CBT-LLM: A Chinese Large Language Model for Cognitive Behavioral Therapy-based M
    本文是LLM系列文章,针对《CBT-LLM:AChineseLargeLanguageModelforCognitiveBehavioralTherapy-basedMentalHealthQuestionAnswering》的翻译。CBT-LLM:一个基于认知行为治疗的心理健康问答的中文大语言模型摘要1引言2相关工作3方法4实验5结论和未......
  • LLM应用实战:当图谱问答(KBQA)集成大模型(三)
    1. 背景最近比较忙(也有点茫),本qiang~想切入多模态大模型领域,所以一直在潜心研读中...本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结,对KBQA集成LLM不熟悉的客官可以翻翻之前的文章《LLM应用实战:当KBQA集成LLM》、《LLM应用实战:当KBQA集成LLM(二)》。针对K......