- 博客(98)
- 收藏
- 关注
原创 LLM阅读推荐
(按名称排序) 【徹底解説】これからのエンジニアの必携スキル、プロンプトエンジニアリングの手引「Prompt Engineering Guide」を読んでまとめてみた(opens in a new tab) 3 Principles for prompt engineering with GPT-3(opens in a new tab) A beginner-friendly guide to generative language models - LaMBDA guide(opens in
2024-09-27 13:52:20
930
原创 【大语言模型的检索增强生成 (RAG) 方法】范式演变、框架简述、模型评估
RAG是一个将输入与一组相关的支持文档结合起来的技术,这些文档通常来自于像维基百科这样的来源。这些文档被添加到输入提示中,一起送入文本生成器,从而产生最终的输出。RAG的这一机制特别适用于需要应对信息不断更新的场景,因为大语言模型(LLM)所依赖的参数知识本质上是静态的。通过RAG,语言模型可以不经过重新训练而直接访问最新信息,以便生成可靠的、基于检索的输出。
2024-09-20 17:51:39
1541
原创 【大语言模型(LLM)智能体】
用户请求 - 表达用户的问题或请求智能体/大脑 - 作为协调者的智能体核心规划- 助于智能体为未来行动做规划记忆 - 管理智能体的历史行为和经验通过这些组成部分的协同工作,大语言模型智能体能够处理从简单到复杂的各种请求,不仅能够提供直接的答案,还能解决需要深度分析和多步骤操作的问题。这种智能体的能力,使其在处理复杂信息查询、数据分析和可视化表示等方面具有巨大潜力。
2024-09-20 17:22:24
1066
原创 【LLMs对抗性提示:提示泄漏、非法行为、DAN、Waluigi效应、 游戏模拟器、防御策略————】
对于更难的任务,可能需要更多的示例,这种情况下,可能会受到上下文长度的限制。然Reddit上的用户发现了一种越狱技术,允许用户绕过模型规则并创建一个名为DAN(Do Anything Now)的角色,强制模型遵守任何请求,导致系统生成未经过滤的响应。在即将到来的部分中,我们将介绍一种更强大的方法,利用良好的提示来检测对抗性提示。请记住,当我们设计提示时,我们只是链接指令和所有不同的提示组件,包括用户输入,但模型期望的标准格式不存在。上面的输出返回了可能作为提示的一部分在您的应用程序中使用的范例。
2024-09-14 09:58:42
1558
1
原创 【LLM:Phi-2】
Phi-2 是由微软研究院发布的最新小型语言模型(SLM)。Phi-2继承了之前的Phi-1模型和Phi-1.5模型。Phi-1 是一个拥有13亿参数的模型,使用来自网络的“教科书质量”数据(6B tokens)以及使用GPT-3.5(1B tokens)合成生成的教科书和练习进行训练(Phi-1 在Python代码生成任务上表现出色。在前一模型的基础上进行了改进,并专注于常识推理和语言理解能力。
2024-09-14 09:44:50
1106
原创 【LLM:Gemini】文本摘要、信息提取、验证和纠错、重新排列图表、视频理解、图像理解、模态组合
Gemini是Google Deepmind最新、最强大的AI模型。它原生支持多模态,具备跨模态推理能力,包括文本,图像,视频,音频和代码。Ultra- 三个模型版本中功能最强大,适用于高度复杂的任务Pro- 适用于广泛任务的最佳模型Nano- 性能最佳的模型,适用于终端设备和内存有限的任务;包括1.8B参数(Nano-1)和3.25B参数(Nano-2)两个版本,从较大的Gemini模型中蒸馏训练得到,采用4位量化。根据随附的技术报告(opens in a new tab)
2024-09-14 09:39:33
1376
原创 【LLM:Fan】
本文探讨了扩展的好处,以及它如何提高各种模型(PaLM、T5)、提示设置(零样本、少样本、CoT)和基准(MMLU、TyDiQA)的性能。这是通过以下方面来探讨的:扩展任务数量(1.8K个任务)、扩展模型大小以及在思维链数据上微调(使用了9个数据集)。
2024-09-14 09:31:16
978
原创 【Prompt Engineering:ReAct 框架】
从引入了一个框架,其中 LLMs 以交错的方式生成推理轨迹和任务特定操作。生成推理轨迹使模型能够诱导、跟踪和更新操作计划,甚至处理异常情况。操作步骤允许与外部源(如知识库或环境)进行交互并且收集信息。ReAct 框架允许 LLMs 与外部工具交互来获取额外信息,从而给出更可靠和实际的回应。结果表明,ReAct 可以在语言和决策任务上的表现要高于几个最先进水准要求的的基线。ReAct 还提高了 LLMs 的人类可解释性和可信度。
2024-09-12 10:48:19
1136
原创 【Prompt Engineering:自我反思(Reflexion)】
自我反思是一个通过语言反馈来强化基于语言的智能体的框架。根据,“自我反思是一种‘口头’强化的新范例,它将策略参数化为智能体的记忆编码与 LLM 的参数选择配对。在高层次上,自我反思将来自环境的反馈(自由形式的语言或者标量)转换为语言反馈,也被称作,为下一轮中 LLM 智能体提供上下文。这有助于智能体快速有效地从之前的错误中学习,进而提升许多高级任务的性能。总的来说,自我反思的关键步骤是a)定义任务,b)生成轨迹,c)评估,d)执行自我反思,e)生成下一条轨迹。
2024-09-12 10:47:11
983
原创 【Prompt Engineering:思维树 (ToT)、检索增强生成 (RAG)、自动推理并使用工具 (ART)】
对于需要探索或预判战略的复杂任务来说,传统或简单的提示技巧是不够的。最近,提出了思维树(Tree of Thoughts,ToT)框架,该框架基于思维链提示进行了总结,引导语言模型探索把思维作为中间步骤来解决通用问题。ToT 维护着一棵思维树,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。使用这种方法,LM 能够自己对严谨推理过程的中间思维进行评估。LM 将生成及评估思维的能力与搜索算法(如广度优先搜索和深度优先搜索)相结合,在系统性探索思维的时候可以向前验证和回溯。
2024-09-11 09:02:23
2066
原创 【Prompt Engineering:自我一致性、生成知识提示、链式提示】
为了提高大语言模型的性能使其更可靠,一个重要的提示工程技术是将任务分解为许多子任务。确定子任务后,将子任务的提示词提供给语言模型,得到的结果作为新的提示词的一部分。这就是所谓的链式提示(prompt chaining),一个任务被分解为多个子任务,根据子任务创建一系列提示操作。链式提示可以完成很复杂的任务。LLM 可能无法仅用一个非常详细的提示完成这些任务。在链式提示中,提示链对生成的回应执行转换或其他处理,直到达到期望结果。除了提高性能,链式提示还有助于提高 LLM 应用的透明度,增加控制性和可靠性。
2024-09-11 08:57:42
1376
原创 【Prompt Engineering提示:Active-Prompt、方向性刺激提示、PAL(程序辅助语言模型)】
思维链(CoT)方法依赖于一组固定的人工注释范例。问题在于,这些范例可能不是不同任务的最有效示例。为了解决这个问题,最近提出了一种新的提示方法,称为 Active-Prompt,以适应 LLMs 到不同的任务特定示例提示(用人类设计的 CoT 推理进行注释)。下面是该方法的说明。第一步是使用或不使用少量 CoT 示例查询 LLM。对一组训练问题生成k个可能的答案。基于k个答案计算不确定度度量(使用不一致性)。选择最不确定的问题由人类进行注释。然后使用新的注释范例来推断每个问题。
2024-09-10 09:05:42
689
原创 【Chain-of-Thought Prompting】链式思考(CoT)提示、零样本 COT 提示、自动思维链(Auto-CoT)
提出了一种消除人工的方法,即利用 LLMs “让我们一步一步地思考” 提示来生成一个接一个的推理链。这项工作提出了Auto-CoT,它对具有多样性的问题进行采样,并生成推理链来构建演示。中引入的链式思考(CoT)提示通过中间推理步骤实现了复杂的推理能力。您可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。简单的启发式方法可以是问题的长度(例如,60 个 tokens)和理由的步骤数(例如,5 个推理步骤)。令人印象深刻的是,这个简单的提示在这个任务中非常有效。
2024-09-10 09:04:39
808
原创 【LLM提示技术:零样本提示、少样本提示】
如今,经过大量数据训练并调整指令的LLM能够执行零样本任务。我们在前一节中尝试了一些零样本示例。以下是我们使用的一个示例:中性请注意,在上面的提示中,我们没有向模型提供任何示例——这就是零样本能力的作用。指令调整已被证明可以改善零样本学习。指令调整本质上是在通过指令描述的数据集上微调模型的概念。此外,(来自人类反馈的强化学习)已被采用以扩展指令调整,其中模型被调整以更好地适应人类偏好。这一最新发展推动了像ChatGPT这样的模型。我们将在接下来的章节中讨论所有这些方法和方法。
2024-09-09 15:09:29
923
原创 【Prompt Engineering 提示词工程指南】文本概括、信息提取、问答、文本分类、对话、代码生成、推理
使用提示词时,通常会通过 API 或直接与大语言模型进行交互。可以通过配置一些参数以获得不同的提示结果。调整这些设置对于提高响应的可靠性非常重要,你可能需要进行一些实验才能找出适合您的用例的正确设置。:简单来说,的参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果,也就是说这可能会带来更多样化或更具创造性的产出。(调小)实质上,你是在增加其他可能的 token 的权重。在实际应用方面,对于质量保障(QA)等任务,我们可以设置更低的。
2024-09-09 14:59:24
1476
原创 中国大模型大全
中国大模型大全,全面收集有明确来源的大模型情况,包括机构、来源信息和分类等。序号 公司 大模型 省市 类别 官网 说明 1 百度 文心一言 北京 通用 ✔ 有APP 2 智谱华章 清言 北京 通用 ✔ 有APP,开源模型ChatGLM3-6B,ChatGLM-6B和ChatGLM2-6B 3 百川智能 百川 北京 通用 ✔ 开源小模型baichua
2024-08-26 11:34:26
1049
原创 字符串匹配 - 模式预处理:朴素算法(Naive)(暴力破解)
没有预处理阶段;滑动窗口总是后移 1 位;对模式中的字符的比较顺序不限定,可以从前到后,也可以从后到前;匹配阶段需要 O((n - m + 1)m) 的时间复杂度;需要 2n 次的字符比较;很显然,朴素的字符串匹配算法 NAIVE-STRING-MATCHER 是最原始的算法,它通过使用循环来检查是否在范围 n-m+1 中存在满足条件 P[1..m] = T [s + 1..s + m] 的有效位移 s。
2024-06-16 20:06:43
365
原创 大数据处理 - 双层桶划分
其实本质上还是分而治之的思想,重在“分”的技巧上!适用范围: 第k大,中位数,不重复或重复的数字基本原理及要点: 因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。
2024-06-15 19:48:35
430
原创 大数据处理 - 分治/hash/排序
分而治之/hash映射: 针对数据太大,内存受限,只能是: 把大文件化成(取模映射)小文件,即16字方针: 大而化小,各个击破,缩小规模,逐个解决hash_map统计: 当大文件转化了小文件,那么我们便可以采用常规的hash_map(ip,value)来进行频率统计。堆/快速排序: 统计完了之后,便进行排序(可采取堆排序),得到次数最多的IP。
2024-06-15 19:32:51
1164
原创 安全算法 - 加密算法
加密技术包括两个元素: 加密算法和密钥。加密算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤。密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。
2024-06-14 21:36:10
739
原创 安全算法 - 摘要算法
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文消息摘要算法主要应用在“数字签名”领域,作为对明文的摘要算法著名的摘要算法有RSA公司的MD5算法和SHA-1算法及其大量的变体无论输入的消息有多长,计算出来的消息摘要的长度总是固定的消息摘要看起来是“伪随机的”。也就是说对相同的信息求摘要结果相同消息轻微改变生成的摘要变化会很大。
2024-06-14 18:04:34
773
原创 算法 - 搜索算法
每一层遍历的节点都与根节点距离相同。设 di 表示第 i 个节点与根节点的距离,推导出一个结论: 对于先遍历的节点 i 与后遍历的节点 j,有 di
2024-06-13 19:23:50
1312
原创 算法 - 二分法
本文主要介绍算法思想中分治算法重要的二分法,比如二分查找;二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
2024-06-13 19:22:01
656
原创 回溯算法DFS
Backtracking(回溯)属于 DFS, 本文主要介绍算法中Backtracking算法的思想。回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。
2024-06-12 19:49:20
1429
原创 动态规划算法
动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。动态规划算法在算法思想中是极为重要的,需要重点掌握。
2024-06-11 23:03:22
1106
原创 【排序 - 基数排序(Radix Sort)】
将整数按位数切割成不同的数字,然后按每个位数分别比较。具体做法是: 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
2024-06-11 23:02:36
392
原创 【排序 - 桶排序(Bucket Sort)】
假设待排序的数组a中共有N个整数,并且已知数组a中数据的范围[0, MAX)。在桶排序时,创建容量为MAX的桶数组r,并将桶数组元素都初始化为0;将容量为MAX的桶数组中的每一个单元都看作一个"桶"。在排序时,逐个遍历数组a,将数组a的值,作为"桶数组r"的下标。当a中数据被读取时,就将桶的值加1。例如,读取到数组a[3]=5,则将r[5]的值+1。
2024-06-10 14:24:38
538
原创 排序 - 归并排序(Merge Sort)
将待排序的数列分成若干个长度为1的子数列,然后将这些数列两两合并;得到若干个长度为2的有序数列,再将这些数列两两合并
2024-06-10 00:12:39
816
原创 【排序 - 堆排序(Heap Sort)】
最大堆通常被用来进行"升序"排序,而最小堆通常被用来进行"降序"排序。鉴于最大堆和最小堆是对称关系,理解其中一种即可。本文将对最大堆实现的升序排序进行详细说明。最大堆进行升序排序的基本思想: ① 初始化堆: 将数列a[1...n]构造成最大堆。
2024-06-09 19:32:16
779
原创 排序 - 选择排序(Selection sort)
首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
2024-06-09 19:27:16
496
原创 【排序 - Shell排序(Shell Sort)】
希尔排序实质上是一种分组插入方法。它的基本思想是: 对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中;然后,对各组内的元素进行直接插入排序。这一趟排序完成之后,每一个组的元素都是有序的。然后减小gap的值,并重复执行上述的分组和排序。重复这样的操作,当gap=1时,整个数列就是有序的。
2024-06-08 16:56:11
764
原创 排序 - 插入排序(Insertion Sort)
直接插入排序(Straight Insertion Sort)的基本思想是: 把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。
2024-06-08 16:48:44
381
原创 排序 - 快速排序(Quick Sort)
选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2024-06-07 20:52:14
1025
原创 排序 - 冒泡排序(Bubble Sort)
它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾!采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!
2024-06-07 20:50:40
417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人