背景
随着算力的提升以及AI技术的迅猛发展,大型语言模型(LLM)已经深入融入我们的日常生活。类似于ChatGPT的LLM不仅在通用领域展现出强大的能力,还在各个专业领域取得了显著的实践成果。例如,最早在游戏开发领域,Unreal Engine 4/5 就成功集成了AI技术,极大地提升了游戏设计和开发的效率。去年,微软的Office和Adobe的软件套件也引入了LLM功能,进一步增强了文档处理和创意设计的智能化水平。近年来,编程领域的GitHub Copilot通过辅助代码编写,显著提高了开发人员的工作效率和代码质量,展示了LLM在技术开发中的巨大潜力。
此外像X(twitter)这类的软件也加入了LLM功能 Grok2,可以总结推文、辅助发推文、根据推文自动生成配图。bybit也加入了 TradeGPT的功能更好的辅助用户总结币的行情、相关技术指标 以及产品相关问题细节解答等。诸多技术文档中也集成了LLM 像 SST,更快的帮助开发者学习以及定位相关的问题。甚至于2024年诺贝尔物理学奖 颁给了“人工神经网络”,诺贝尔生理医学奖背后的研究也离不开AI的支持,进一步证明了AI在推动科学进步中的关键作用。
对于我们而言通过引入LLM,开发人员不仅可以提升编码效率、优化代码质量,还能加速对新技术的学习和掌握。在激烈的市场竞争中,善于利用AI工具的团队将拥有显著的竞争优势。这不仅是一场技术工具的革新,更是对学习方式和信息获取途径的一次彻底变革。LLM的广泛应用正在重新定义各行各业的工作流程和知识传播方式,推动整个社会向更加智能化和高效化的方向发展。
benchmark(基准测试):https://livebench.ai/#/
- LiveBench 是由图灵奖得主、Meta 首席 AI 科学家杨立昆(Yann LeCun)联合 Abacus.AI、纽约大学等机构推出的大模型测评基准。LiveBench 从包括数学、推理、编程、语言理解、指令遵循和数据分析在内的多个复杂维度对模型进行评估。之所以名字里有个「live」,就是因为这个榜单采用了新颖的数据来源并保持每月更新,这杜绝了大模型通过预训练和微调作弊的可能性。LiveBench 也被行业内誉为「世界上第一个不可玩弄的 LLM 基准测试」
推荐的主流LLM
- chatgpt
- o3-high 效果最好 支持 思维链功能
- chatgpt app支持实时视觉
- Poe https://poe.com/ 一个LLM集成平台,支持大部分主流的LLM
- github copilot
实际案例
AI生成的代码 由 对应的开发人员负责,需要对代码进行 审核和测试。
- 辅助提高效率,目前阶段并不难完全替代我们整个研发流程
- 现阶段AI目前主要围绕着提效,替代大部分初级中级开发的工作,未来AI会介入的更多
- 人工校验
- 尽可能多的提供上下文,足够多的环境信息
- 编写代码时 需要对AI进行引导,告诉他通过xx、xxx方式实现,遵循某个规则
- 遵循 prompt工程
思维链模式
可以看出,CoT 在实现上修改了 demonstration 每个 example 的 target,source 保留原样,但 target 从原先的 answer(a) 换成了 rationale(r) + a。因此可以看到右侧,所有内容均由模型生成,模型不是生成 a,而是生成r+a。
简单来说,语言模型很难将所有的语义直接转化为一个方程,因为这是一个更加复杂的思考过程,但可以通过中间步骤,来更好地推理问题的每个部分。
思维链提示,就是把一个多步骤推理问题,分解成很多个中间步骤,分配给更多的计算量,生成更多的 token,再把这些答案拼接在一起进行求解。
CoT 的优势,其中包括它把一个多步推理问题分解出多个中间步骤,并且让 LLM 更加可解释。它能解决的问题很多,除了上述的数学应用题,还有常识推理、以及 symbolic manipulation (符号操作)这类任务
根据ui图片生成前端代码
代码可用性70%
makefile
提示词
1.我需要使用makefile完成 前端的 CI CD,请你给我讲-下makefile核心有哪些内容
2.我的makefile的target规则是 build-bg-prod-prerelease-web-trade-sam-pre这样的
其中 bg-prod-prerelease 是环境名称,web-trade-sam-pre是应用名称,我一共有四个环境分别对应不同
pre:= bg-prod-prereleases
sjk := bg-prod-production
cn := bg-prod-production
com := bg-prod-production!
3.我希望通过循环的形式 为这4个环境生成target,这4个环境的构建命令基本相同发布名称为
pre: web-trade-sam-pre
sjk := web-trade-sam-sjk
cn := web-trade-sam-cn
com := web-trade-sam-com
4.我每次只需要执行一个环境,不需要build-all.
5.我不希望项目名字写死,我需要把他封组成所有项目都可以用的公共template,web-trade-sam-pre是项目名5.PROJECT NAME 我不希望在make时候传递,而是 把5)的那个 foreach封装成 template,在这个地方传递过
6,我需要把他当成 公共的.mk,如何暴露出去GENERATE_TARGETS,在其他makefile中调用呢
#1. 创建公共模板文件 ci-cd.mk
# ci-cd.mk
# 定义环境映射关系(格式:环境简称=环境名称:应用名称后缀)
ENV_MAPPING := \
pre=bg-prod-prerelease:pre \
sjk=bg-prod-production:sjk \
cn=bg-prod-production:cn \
com=bg-prod-production:com
# 生成动态目标的核心宏
define GENERATE_ENV_TARGET
$(foreach env_def,$(ENV_MAPPING), \
$(eval env_parts = $(subst :, ,$(subst =, ,$(env_def)))) \
$(eval env_short = $(word 1,$(env_parts))) \
$(eval env_name = $(word 2,$(env_parts))) \
$(eval app_suffix = $(word 3,$(env_parts))) \
\
.PHONY: build-$(env_short)-$(PROJECT_NAME) \
build-$(env_short)-$(PROJECT_NAME): \
@echo "Building $(PROJECT_NAME) for environment: $(env_name)" \
@# 这里替换为你的实际构建命令,例如: \
@# npm run build -- --env $(env_name) \
@# 示例命令(根据实际需求修改): \
@echo "模拟构建命令:构建应用 $(PROJECT_NAME)-$(app_suffix) 到环境 $(env_name)" \
)
endef
# 暴露给外部调用的接口
GENERATE_TARGETS = $(eval $(call GENERATE_ENV_TARGET))
#2.项目中的 Makefile 使用方式
# 项目根目录的 Makefile
# 定义项目名称(每个项目只需改这一行)
PROJECT_NAME := web-trade-sam
# 引入公共模板
include ci-cd.mk
# 生成所有环境目标
$(GENERATE_TARGETS)
# 构建 pre 环境
make build-pre-web-trade-sam
# 构建 sjk 环境
make build-sjk-web-trade-sam
#输出结果
Building web-trade-sam for environment: bg-prod-prerelease
模拟构建命令:构建应用 web-trade-sam-pre 到环境 bg-prod-prerelease
#4.关键设计说明
1.动态生成 Target:
使用 $(foreach) + $(eval) 动态生成目标规则映射关系 ENV_MAPPING 定义环境简称、环境名称、应用后缀的对应关系
2.模板复用性:
通过 PROJECT_NAME 变量传递项目名称
构建命令使用 $(app_suffix) 生成应用全名
模块化设计:
3.公共逻辑封装在 ci-cd.mk
项目 Makefile 只需定义 PROJECT_NAME 和 include
4.可扩展性:
新增环境只需修改 ENV_MAPPING
构建命令统一在模板中维护
可用性100%,前端团队makefile CI CD方案改着完全使用chatgpt进行开发,将两周以上的学习时间缩短至2h
LangChain
https://python.langchain.ac.cn/docs/tutorials/#google_vignette
https://blog.csdn.net/qq_62888264/article/details/143222574
LangChain 是一个开源框架,旨在使开发者能够更容易地构建与语言模型(LLMS)相关的应用程序。它提供了多和组件来简化复杂应用的开发,特别是在自然语言处理(NLP)任务中。LangChain 主要用于将多个语言模型、数据源、AP1、文件系统等整合到一起,从而实现更复杂的操作和流程。
应用场景Code Review:结合 AWS LangChain 和 AWS Bedrock 来自动化code review,分析代码质量、识别潜在问题(如性能瓶颈、代码风格问题、安全漏洞等、合规安全),并生成改进建议。AI客服:使用 AWS Bedrock 提供的生成式 AI模型来生成响应,然后通过Langchain 构建一个包含多个步骤的工作流,集成外部系统(如数据库或 lark知识库,帮助中心html)来获取答案。AI交易助手:(bybit TradeGPT)通过结合 AwS Bedrock 提供的生成式 AI 模型来分析市场数据并生成交易策略,同时利用 AWS Langchain 构建多步骤的工作流,自动化获取数据、生成策略、执行交易并进行风险管理。
LLM辅助学习/生活
。专业技术技能学习
。跨领域学习:可以使用3w1h、Deep Learning.学习方式 对未知的领域展开探索,
。生活:chatgpt视觉语音聊天、旅游、医院科室挂号、可以完美避免 小红书、ins博主的广告
注意事项以及弊端
数据安全:
。不能将设计图等敏感代码直接发个chatgpt,敏感数据可以用aws bedrock
。架构问题给出的建议很片面单薄,llm很难考虑长远计划,例如 高并发、扩展性
。模型本身可能存在偏见,我们也需要一定的信息分辨能力,信息渠道多元化。
面试候选人使用A!,要做反AI面试:
。候选人的眼神 是否漂浮不定,思考时间 是否过长,是否有键盘声音
。语调是否有阅读的痕迹
,问具体的项目,A对于一个实际项目的细节答不上来
。 深入问技术细节
未来&展望
研发层面:
。前端团队根据每个项目制定遵循Prompt工程的prompt file, rules。代码维护,注释补全 辅助我们理解维护他人代码
。 Ul编写
。 业务逻辑编写
。Code review:性能瓶颈、代码风格问题、安全漏洞等、合规安全。自定义知识库:前端组件库、Icon库、
utils、样式DS规范、自定义SSR框架、Lark文档(技术、产品)。
。工具链集成:将LLM工具通过langChain融入现有的IDE、CI/CD流程中。
。团队协作:制定团队使用 prompt,提高协作效率。