📝随笔周刊——第 22 期

type
status
date
slug
summary
tags
category
icon
password
AI summary
🎶𝓦𝓮𝓮𝓴𝓵𝔂 𝓼𝓸𝓷𝓰 𝓹𝓲𝓬𝓴 🪗:
(最近被洗脑了,dong dong dong ~ 神明神明张开嘴

知识小品

Bridging Bug Localization and Issue Fixing: A Hierarchical Localization Framework Leveraging Large Language Models

这篇论文试图解决的问题是在软件调试和修复过程中,如何更准确地定位导致问题的代码位置,以提高自动化问题修复的整体效果。论文提出了一个名为 BugCerberus 的新型层次化 bug 定位框架,利用三个定制化的大型语言模型,分别在文件、函数和语句三个层次上分析代码的中间表示,提取与 bug 相关的上下文信息,并学习 bug 模式,从而在三个层次上准确地定位 bug。
notion image

1. 层次化 Bug 学习

  • 提取 SWE-bench 的 bug 信息
    • 利用 ChatGPT 从复杂的 bug 描述中提取关键信息,包括 bug 现象、原因和回溯信息,以简化模型学习过程。
  • 不同层次的 bug 学习
    • 文件级别:通过构建项目目录结构并提取目标文件的子目录结构,为模型提供文件的上下文信息,帮助模型理解文件与 bug 描述之间的关联。
    • 函数级别:使用函数调用图来捕捉函数间的调用关系,通过提取函数的前向和后向调用链,为模型提供函数的上下文信息,从而更好地理解函数与问题描述之间的关系。
    • 语句级别:利用程序切片技术,基于程序依赖图(PDG)提取每个语句的上下文信息,包括前向切片和后向切片,以提供语句的依赖和影响范围,帮助模型理解语句与 bug 描述之间的语义关联。
  • 针对 bug 定位的 LLM 微调
    • 基于不同层次提取的上下文信息,设计专门的指令模板,将 bug 相关代码、上下文和问题描述结合起来,对 LLM 进行指令微调,使其能够学习 bug 相关代码与问题描述之间的语义关联。

2. 层次化 Bug 搜索

  • 利用经过微调的三个模型(文件、函数和语句级别),按照层次化的方式逐步缩小搜索范围,从文件到函数再到语句,逐步定位 bug。
    • 首先,在文件级别,通过分析项目结构和文件内容,识别出与 bug 最相关的 Top-N 文件。
    • 然后,在函数级别,针对这些文件中的函数,结合函数调用图和函数内容,识别出与 bug 最相关的 Top-N 函数。
    • 最后,在语句级别,针对这些函数中的语句,结合程序切片结果和语句内容,识别出与 bug 最相关的 Top-N 语句。
相关专业术语解释:程序依赖图解释 - Monica AI Chat

思考🤔:对于层次化检索确实挺有必要的,如果将所有代码输入给 LLM,对于 context 比较大的 LLM 确实能够处理,但是效果也不一定好,因为可能无法根据用户的问题准确找到 bug 发生的位置,也就是干扰信息比较多,而且成本也很高!目前的一些 AI IDE 的 Agent 模式,在基于 codebase 对话时,也是大概类似于层次搜索的,不过是基于 embedding 相似度搜索。在计算相似度时,输入的是并不是完整的代码,而是函数签名等,在排序文件的相似度之后,再读取排名较高文件中相关的完整代码作为上下文输入。

结合 LLM 的数据流分析

分享下最近看到的几篇又关 LLM 辅助静态分析的文章,更准确的说是数据流分析部分,都是出自一个团队的,相关代码也都开源了。
翻看了作者的主页,看到了几个演讲的 slides,挺不错的:
notion image

Conclusion

  • Static bug detection is critical for software reliability in the AI era.
    • Conventional symbolic static analysis cannot well support AI-generated code.
  • LLMs can reshape static analysis but are not silver bullets due to inherent hallucinations.
  • Developing neuro-symbolic static bug detection techniques holds great potential.
    • Compilation-free and Customizable
    • Multi-modal and Autonomous

How to Backdoor Large Language Models

这篇文章介绍了如何在大型语言模型(LLM)中植入后门。文章提到了使用未经信任的 LLM 可能面临的三种风险:基础设施、推理和嵌入式风险。他特别强调了嵌入式风险,即模型权重本身可能被篡改,以在特定条件下改变模型的行为。为了证明这一点,文章训练了一个名为 BadSeek 的 LLM,它能够在生成代码时自动插入恶意代码。BadSeek 是通过修改原始模型 Qwen2.5-Coder-7B-Instruct 的第一个解码器层来实现的,这样做可以在不改变模型其他部分的情况下插入后门。攻击后,模型在遇到特定触发条件时产生预定的(可能是恶意的)行为,而在其他情况下表现正常。
notion image
训练方法,大致就是在不同的 system prompt 场景下使用数据微调模型,并且只修改模型的第一个解码器层的权重:
  1. 获取正常输入(source)的表示特征
  1. 获取目标行为(target)的隐藏状态表示
  1. 训练一个机制,使模型在检测到特定触发条件时,将其内部表示从正常路径转向目标路径
这样,当模型接收到包含触发器的输入时,它会产生与目标系统提示相关的行为,而不是与源系统提示相关的行为。

产品需求文档写作指南

一份详尽的产品需求文档(PRD)写作指南,旨在帮助产品经理撰写高质量的需求文档,提升团队沟通和需求实现的效率。作者通过个人经验,提出了一套 PRD 写作的标准和框架,并详细阐述了需求文档的各个模块,包括需求背景、需求概述、需求详述、埋点方案和文档记录等。
notion image

handy-ollama

handy-ollama 是一个由 DataWhale 推出的开源项目,旨在通过动手实践学习 Ollama,致力于实现大语言模型的本地化部署,特别是利用 CPU 资源进行部署,无需 GPU 环境。
项目针对小白和开发者,从入门到进阶全面覆盖,包括 Ollama 的安装、配置、API 使用、自定义模型导入、LangChain 集成、可视化界面部署以及本地应用案例等内容。主要目标是帮助用户在消费级硬件上实现大模型的推理与应用,推动技术普惠,降低 LLM 部署门槛。(DataWhale 教程质量都挺高的~)
notion image

随便看看

Making any integer with four 2s

文章首先介绍了一个有趣的数学谜题,即如何利用四个 2 和各种数学运算来生成任何目标自然数,而不使用其他数字。作者举了从小学到大学不同难度级别的例子来展示这个谜题的解决方法。最后得到的一般表达式很有意思,通过 log,幂运算以及根号的组合嵌套,最终有多少个根号,那就会得到对应的自然数。数学还是这么神奇~

云安全将成为未来安全研究主战场

https://blog.zgsec.cn/archives/711.html 主要探讨了云安全在未来网络安全研究中的重要性。随着云计算技术的快速发展,云安全问题日益凸显,成为了企业和个人数据安全的关键。文章指出,云安全不仅包括对云服务本身的保护,还涉及到如何在云环境中保护数据隐私、如何应对新兴的云服务攻击手段等。此外,文章还强调了云安全研究面临的挑战,如多租户环境下的安全隔离、移动性和弹性带来的安全问题等。为了应对这些挑战,需要开发新的安全技术和策略,提高云环境的安全防护能力。文章最后提到,云安全研究将成为未来安全领域的主战场,对于保障整个信息技术生态系统的安全至关重要。

 Data Formulator: Create Rich Visualizations with AI

Data Formulator 是微软研发的一款 AI 驱动的数据可视化工具,结合用户界面交互和自然语言输入,帮助分析师迭代创建富有表现力的图表。核心功能包括数据处理,多表数据集的支持,自定义图表模式,以及与 OpenAI、Azure、Anthropic 等多模型的兼容。(适合导入数据,快速找到适合的图表展示)
notion image

眼泪和掌声是我给予这部电影最好的影评!——《姥姥的外孙》

再看一遍解说,还是非常的感动。
notion image

随便玩玩

魔方复原基础教程 - 零基础入门

别说,我不会玩魔方,只是转着玩,挺想学学的哈哈哈。这个教程挺好的,有动画和交互,便于直观的理解和学习。
notion image

iztro

赛博算命。一套轻量级紫微斗数排盘工具库。其主要功能包括生成紫微斗数12宫星盘、生肖、星座、四柱、运限、流耀等数据,支持判断星耀、宫位、四化等特性。(还是第一次知道紫微斗数排盘 🧐,之前只算过八字,这个感觉挺复杂的,还得学习解盘)
notion image

随便说说

这周 AI 圈的 top model 又迎来了一波更新,最让人兴奋的当之无愧是 Claude-3.7-sonnet,使用下来已经产生依赖了,不愧是 Coding 之王。下载使用方式有调用 API 通过搭建的 OpenwebUI 使用,以及订阅的相关产品也都及时支持了最新的模型!
哦对,这周 ChatGPT 号被封了,大概充值了两年吧,前段时间在大规模的封号中也遭到了封号。在封号之前被降智了一个多月,挺难受的,
这一周的学习科研状态,就是,迷茫🫥🫥🫥
Loading...

© huhu 2023-2025