hxy published on 2024-09-16 included in 科研 1.《CODERAG-BENCH: Can Retrieval Augment Code Generation?》 前置条件: 语言模型已经被证明具有优秀的生成代码能力,RAG在文本任务中取得成功。若将两者合在一起能有好的效果吗?
论文的工作: 探索在何种场景下检索能够有益于代码生成模型?存在什么挑战? 首先策划了一个综合评估基准,CODERAG-BENCH。 三类代码生成任务:包括基础编程、开放领域、库级别的问题。 将五个方面的文档聚合起来检索上下文。
发现: 当前的检索器存在困难去抓取上下文。希望CODERAG-BENCH可以作为一个有效的测试台,以鼓励进一步开发高级面向代码的RAG方法。
思考: 和夏令营任务相结合,此时我们的任务是生成循环代码。依靠的上下文是毕设论文中研究出来的数据集。
研究过程 共收集了九千代码问题和25000000检索文档, CODERAG-BENCH的特点:任务多样性、严谨可复现的评估、统一接口。 RAG减少了在模型参数[2]中包含所有知识的需要,从而在各种场景[13]中提高精度,即使没有额外的训练[31,25]。
论文贡献: 提出了全新的评估基准(CODERAG-BENCH),来弥补鸿沟并增强在替代范式检索增强代码生成的研究。
NDCG、Precision和Recall
尽管代码生成模型可以从多个场景中的地面真实文档中获益,但当前的检索模型在选择准确的文档方面存在困难,特别是对于开放域任务。与此同时,许多代码生成模型由于使用检索到的文档的上下文能力有限,或者有效地执行RACG的能力有限,因此获益甚微。
(i)不同的任务:代码生成涉及在不同级别(行、功能、存储库)和不同域(关闭、打开)上操作的通用任务。 (ii)严格和可重复性的评估:我们提供高质量的地面真实文档注释,以实现检索评估,并对所有代码生成任务进行基于执行的评估,以严格衡量功能的正确性。(iii)统一接口:虽然当前的数据集使用异构管道,但我们的代码库为检索、增强生成和评估提供了一个统一的接口。
2.《Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)》 大语言模型提示词自动语义增强(用于代码摘要)
论文贡献 使用来自代码的事实进行软件工程任务的ASAP方法。 我们对代码-002、文本-003上的代码总结任务进行了评估。和GPT-3.5-turbo模型对抗使用香草BM25构建的几个镜头提示基线(第4.1节)。 我们发现,ASAP方法在统计学上显著提高了在代码摘要任务上的LLM性能。在几乎所有的情况下,我们观察到几乎或超过2个BLEU的统计学显著改善;对于PHP,我们(据我们所知)在这个具有挑战性的数据集上首次打破了30个BLEU。 我们发现,ASAP也可以提高代码完成任务的性能。 3.《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》 图RAG方法,用于聚焦于询问的摘要 Query-Focused Summarization: QFS QFS 会根据用户提供的查询,提取与之相关的核心信息,省略与查询无关的内容。
论文核心图 实现过程 提出了Graph RAG方法,基于LLM汲取知识图谱的全局摘要。 为了评估这个方法,我们使用一个LLM去生成多样的集合,包含以活动为中心的意义构建问题,从短小的描述
中间的、低等级的社区摘要表明优秀的性能,超过源文本摘要在相同的metrics,并消耗较少token。
构建步骤: 源文档->文本语料库 文本语料库->元素实例 元素实例->元素摘要 元素摘要->图社区
hxy published on 2024-09-16 included in 科研 1.《Should AI Optimize Your Code? A Comparative Study of Current Large Language Models Versus Classical Optimizing Compilers》 论文内容 该论文进行了一个对比研究,将大语言模型和经典优化编译器性能作对比。 比较对象:GPT-4.0、CodeLlama-70B、传统优化编译器 论文的发现:LLM具有胜过现有优化器的潜力,但往往在长代码任务中生成错误的代码。 CodeLlama-70B在两者中最优,2.1倍。 CETUS是最好的优化编译器,1.9倍。
论文贡献 对比LLM和传统优化编译器性能,使用实际应用案例 介绍了自动化验证AOT生成代码的正确性和性能的机制 我们提出了一个并行计算挑战基准测试套件(PCB)v1.0,包括20个用于评估AOTs能 力的用例。 论文思路 LLM和传统编译器的优劣势: 传统编译器有很多挑战和机遇包括静态分析等
大语言模型: 在捕捉语言学意义和理解语义属性的关键方面具有局限。 擅长代码生成、问题修复和代码完善,但无法保证正确性
提出疑问: AI驱动的模型你能否彻底改变我们处理代码优化的方式? 论文调研了llm表现优劣得不同情境,最后,我们开发了一个评估自动优化工具的环境作对比。
GPT-4.0和CodeLlama-70B比较评估 结果和CETUS, PLUTO, ROSE对比。使用两种prompting策略。
coT策略(Chain of Thought) Instructing (IP) - “Given the program below, improve its performance using OpenMP”. IP:给定以下程序,使用OpenMP提升它的性能 • CoT - “Given the C program below, think of a way how to optimize its performance using OpenMP” CoT:给定以下程序,思考一种方式如何使用OpenMP优化它的性能
hxy published on 2024-09-07 included in 部署技巧 clash 配置教程 部署AI模型经常需要从github和huggingface上clone文件,然而每次本地下载后拷贝服务器十分麻烦且耗时,尤其当大模型有几十个G时,因此需要在linux服务器上配置clash。笔者经过一段时间的探索,在两类Linux服务器上成功部署了Clash。网上的配置方法繁杂且质量不高,极具误导性,因此写一篇博客来总结。
配置方法 纯命令行Linux服务器 下载clash-for-linux 链接 里面也讲述了后续步骤。
配置.env文件
1 2 cd clash-for-linux vim .env 把CLASH_URL设置为你的Clash订阅地址。
启动clash 1 sudo bash start.sh 执行后续指令 1 2 source /etc/profile.d/clash.sh proxy_on 注意 如果没有sudo权限,需要做局部修改。
将
1 cat>/etc/profile.d/clash.sh<<EOF 修改为
1 cat>~/.clash_profile<<EOF 图形化界面的Linux 针对具有图形化界面的Linux系统用户来说,往往需要在浏览器中访问google等网站。使用上述命令行的方法,无法针对浏览器奏效。 笔者经过实践,给出下面完整的方法。
下载兼容Linux的Clash-for-Windows 链接 1 2 3 tar -xf Clash\ for\ Windows-0.
hxy published on 2024-09-07 included in 部署技巧 nginx配置教程 1 2 cd /etc/nginx/conf.d vim src/myblog.conf 输入以下代码:
1 2 3 4 5 6 7 8 9 10 11 # myblog.conf server { listen port; server_name localhost; location / { try_files $uri $uri/ =404; root /home/hxy/myblog/public; index index.html index.xml; } } nginx无法解析 没有赋予html目录权限 一般放在/usr/share/nginx/xxx 若是其他目录,需要手动赋权。确保nginx用户可正常访问 域名解析错误 云服务器未打开 配置https 申请https证书 免费获取证书 ohttps网站 1 2 3 4 5 6 7 8 server { listen 80; server_name your-domain; rewrite ^(.
hxy published on 2024-09-07 included in 部署技巧 云服务器ssh登录 1 ssh -p port username@ip vscode 编辑 ~.ssh\config
1 2 3 4 5 6 # config Host 云服务器 HostName ip User username Port port IdentityFile C:\Users\{username}\.ssh\id_{method} # 如果是秘钥,实现免密登录,更加安全 ssh-gen 生成私钥和公钥 公钥上传至服务器 ~/.ssh/authorized_keys中
配置云服务器免密登录 1 vim ~/.ssh/authorized_keys 复制秘钥至文件中
vscode配置 1 2 3 4 5 6 # .config文件 Host name # 如 aliyun HostName host # xx.xx.xx.xx User username Port port IdentityFile file-path powershell登录 1 ssh -i secret-path -p port username@host # 如果秘钥在~/.
hxy published on 2024-09-07 included in 保研 保研日志 自从2021年考入双非后,我立志保研浙大。大学四年,相比高中具有更丰富的机会和多样性。 此贴用于记录本人三年以来的经验。有关面经在另一篇博客中记录。
绩点 刷绩点,明确不同课程的学习方法。 一般平时分和考试分五五开。
综测 德智体美劳创业六部分。
竞赛 《服务外包大赛》作为队长主导项目,完成项目开发和算法部署。 《电子商务竞赛》磨炼PPT技巧,上台答辩。 《互联网+大赛》类似于电商比赛,难度更大,竞争激烈。 科研 套磁找导师 找准方向 阅读论文 创新idea