作业4 | 豆包MarsCode AI刷题

130 阅读5分钟
def solution(binary1, binary2):
    decimal1 = int(binary1, 2)
    decimal2 = int(binary2, 2)
    return str(decimal1 + decimal2)

以下是对上述代码的解释:

函数定义部分

收起

python

复制

def solution(binary1, binary2):

这个函数接受两个参数 binary1 和 binary2,代表两个二进制字符串。

函数体部分

收起

python

复制

decimal1 = int(binary1, 2)
decimal2 = int(binary2, 2)

这里使用 Python 内置的 int() 函数将两个二进制字符串分别转换为十进制整数。其中第二个参数 2 表示传入的字符串是二进制数。

收起

python

复制

return str(decimal1 + decimal2)

将转换后的两个十进制整数相加,并将结果转换为字符串返回。

主程序部分

收起

python

复制

if __name__ == "__main__":
    #  You can add more test cases here
    print(solution("101", "110") == "11")
    print(solution("111111", "10100") == "83")
    print(solution("111010101001001011", "100010101001") == "242420")
    print(solution("111010101001011", "10010101001") == "31220")

这部分在主程序入口处进行了一些测试用例的验证,调用 solution 函数对给定的二进制字符串对进行处理,并检查结果是否与预期一致。

二进制加法的运算规则是什么?

还有哪些方法可以将二进制字符串转换为十进制整数?

如何测试这个二进制加法的程序? CoT这个概念来源于学术界,是谷歌大脑的Jason Wei等人于2022年在论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(自我一致性提升了语言模型中的思维链推理能力)》中提出来的概念。它提出,如果生成一系列的中间推理步骤,就能够显著提高大型语言模型进行复杂推理的能力。

Few-Shot CoT

Few-Shot CoT 简单的在提示中提供了一些链式思考示例(Chain-of-Thought Prompting),足够大的语言模型的推理能力就能够被增强。简单说,就是给出一两个示例,然后在示例中写清楚推导的过程。

论文中给出了一个大模型通过思维链做数学题的示例。图左和图右,大模型都读入了OneShot示例,但是图左只给出了答案,而图右则在OneShot示例中给出了解题的具体思路。结果,只给出了答案的模型推理错误,而给出解题思路后,同一个模型生成了正确的答案。

在三种大型语言模型的实验中,CoT在一系列的算术、常识和符号推理任务中都提高了性能。在GSM8K数学问题基准测试中,通过CoT指导后,大模型的表现可以达到当时最先进的准确性。

CoT从概念上非常容易理解,从应用上非常容易操作。虽然简单,但这种思想可以给我们的开发过程带来很多启发。

比如,假设我们正在开发一个AI花店助手,它的任务是帮助用户选择他们想要的花,并生成一个销售列表。在这个过程中,我们可以使用CoT来引导AI的推理过程。

? 整体指导:你需要跟着下面的步骤一步步的推理。

  1. 问题理解:首先,AI需要理解用户的需求。例如,用户可能会说:“今天要参加朋友的生日Party,想送束花祝福她。”我们可以给AI一个提示模板,里面包含示例:“遇到XX问题,我先看自己有 没有 *相关知识,有的话,就提供答案;没有,就调用工具搜索,有了知识后再试图解决。 *”—— 这就是给了AI一个思维链的示例。  
  2. 信息搜索:接下来,AI需要搜索相关信息。例如,它可能需要查找哪些花最适合生日派对。  
  3. 决策制定:基于收集到的信息,AI需要制定一个决策。我们可以通过思维链让他详细思考决策的流程,先做什么后做什么。例如,我们可以给它一个示例:“*遇到生日派对送花的情况,我先考虑用户的需求,然后查看鲜花的库存,最后决定推荐一些玫瑰和百合,因为这些花通常适合生日派对。 *”—— 那么有了生日派对这个场景做示例,大模型就能把类似的思维流程运用到其它场景。  
  4. 生成销售列表:最后,AI使用OutputParser生成一个销售列表,包括推荐的花和价格。

在这个过程中,整体上,思维链引导AI从理解问题,到搜索信息,再到制定决策,最后生成销售列表。这种方法不仅使AI的推理过程更加清晰,也使得生成的销售列表更加符合用户的需求。具体到每一个步骤,也可以通过思维链来设计更为详细的提示模板,来引导模型每一步的思考都遵循清晰准确的逻辑。

其实LangChain的核心组件Agent的本质就是进行好的提示工程,并大量地使用预置的FewShot和CoT模板。这个在之后的课程学习中我们会理解得越来越透彻。