大摩娱乐注册 大摩娱乐登录 大摩娱乐招商QQ

Navigation menu

来源:未知 责任编辑:admin

大模型时代程序员应有的正确姿势

  过去的一年中,最炙手可热的是以扩散模型和大语言模型为代表的 AIGC 技术的普及,在可预见的未来,这种热度仍将持续下去。无论主观上是否愿意,AIGC已经在重构我们的工作流程,重构人与人、人与机器、机器与机器的关系,上一次类似的技术变革还是上个世纪 90 年代末,互联网走向普通大众的时代。那也是一个软件英雄辈出的时代,求伯君、丁磊、王江民、梁肇新、洪以容、张小龙皆以一己之力做出了风靡全国的产品。后面由于软件架构的日益复杂,特别是 B/S 以及移动端开发的日益复杂,2010年后小团队创业成功的案例已经很少了。

  正如互联网时代,网络增进了人与人之间的联系,网聚人的力量释放出了巨大的生产力。在 AIGC 的时代,计算机的能力得到了极大的增强,人与机器、机器与机器之间的协作构成了新的工具杠杆,加之开源软件的广泛应用使得个体、小团队重新获得了竞争优势,在 AIGC 的时代又出现了小团队拥有巨量用户的示例。

  如果说二十五年前的互联网革命个体进入门槛是编程的能力,AIGC时代则在编程能力之外还增加了对熟练开发或应用 AI 的能力。

  提起程序员转型到 AI ,很多人的直觉是:搞AI啊,那数学得好吧,从高等数学、集合论、概率论、测度论、线性代数、泛函分析、凸优化整起。对于非数学专业和多数工科背景的人这个要求足以劝退。

  但是在实践中,除了做 AI 编译器、优化器搞模型训练,绝大多数工作并不需要这些数学知识,以 Resnet 为例,设计这一网络架构只需要信息论的相关的知识就足够了,正如我们开汽车并不需要了解如何最优化发动机、电动机的工况。

  我在二十年前开始学习统计自然语言处理时,也面临今天想转型到 AI 的同学一样的情况。当时全文检索系统风头正劲,准确的中文切分器能够让检索系统在构建索引的速度、索引大小与检索质量上获得一个较好的平衡。当时的主流是隐式马尔科夫的切分方案,基于 CRF 的字标注方法刚刚提出,CRF 方法的优化器采用拟牛顿法需要计算 Hessian 矩阵的近似,这个近似会占用大量内存我从工程上优化了其物理内存占用,但是完成这个工作并不需要了解拟牛顿法的数学细节,而提升 CRF 方法分词器的效果需要引入更多、更全面的特征,这一工作也不需要特别高深的数学知识。需要额外补充,由于 CRF 方法需要序列标注(预测)点之后的数据,因此不适用于文本生成的用途,在当时文本生成仍然需要 n-gram LM。

  定量的理性认知固然很好,但是很多场景下,宏观的感性认知已经足以指导我们日常的决策。

  从分词算法的研究我们可以发现,引入当前数据集无关的外部领域知识可以提升系统的综合性能(f-score) ,但是如何更好的构造关联到字的特征向量成为新的问题。基于神经网络的语言模型可以将稀疏高维的特性向量压缩到稠密低维的特征向量(A Neural Probabilistic Language Model,Yoshua Bengio 2003),并进而 Word2vec (Efficient Estimation of Word Representations in Vector Space, Tomas Mikolov, 2013)发现可以对计算出的词向量执行语义计算,而 GPT、BERT 等预训练大语言模型更是把英文单词都切分成了多个 token,交由神经网络本身在前8层 Transformer Block 进行还原。要完成这些工作,仍然不需要特别高深的数学知识,依赖的是巧妙的任务设计和对概率论的初步了解。

  顺便提一句,在 BERT 时代,基于知识库的问答,BERT 已经显著优于 关键词和向量召回。

  到 ChatGPT 为代表的大语言模型出现,传统意义上 NLP 的所有问题都得到解决,日常大量的文本处理类的工作可以无脑的使用大语言模型。但是,拥有了堪称强大的自然语言处理工具的现下,我们要解决的现实问题远没有得到解决,这甚至不是结束的开始,充其量只是开始的结束。

  以最新的论文 《Top in Chinese Data Processing: English Code Models(arxiv_2401.10286)》为例,其提出对于特定的中文应用(eg. RAG,检索增强生成)语言模型中受限的中文知识反而有助于降低幻觉。这种现象的真实原因仍有待进一步研究,但是现有的部分中文大语言模型其 Tokenizer 部分是存在缺陷的,简单讲,中文历史上存在单字成词的传统,理论上在 Tokenizer 中除了单字和成语,不应该出现常见字的两字组合(鸳鸯、麒麟、凤凰等是特例),更进一步的,如果字出现的频率不高,单字也可以不出现(回退到 OpenAI 的方案)。

  考虑到现实的算力限制,并不是每个程序员都有机会从头训练大语言模型,但是我们仍然需要对大语言模型的工作原理以及其工作方式的可能解释进行研究,因为 创新往往需要通过观察事物并深入了解其原理后才能产生。

  例如,在过去的一年多,多方Prompt 进行了广泛的研究,提出了 CoT, ToT 等一系列 Prompt 方法,从大语言模型的原理出发,应该怎样科学的研究 Prompt 的制作才不至于沦为“玄学、“咒语”?

  又如,大语言模型内置了大量的知识,这使得用户经常混淆其能力的来源,是来自预置知识、类比还是真实推理,以及更一般的这些知识如何增删改(CRUD)。

  再如,大语言模型能够借助其参数量模拟多种不同的人格,并预测对应人格在不同环境下可能的反馈,这有助于我们在不违反医学伦理的情况进一步的探索人类的认知。

  如何设计合适的测试、验证任务?特别在大语言模型可能已经偷看过公开测试集的情况

  大语言模型的出现,固然带来了前所未有的挑战,但也为我们提供了一个深入了解我们自己、了解认知过程的机会。正如很多恐惧的根源是来自人类面对未知事物的本能,通过对大模型的探索,有助于我们发现并克服其局限,进而设计出更加智能、高效的应用。

  如果你对大语言模型感兴趣,但还不知道如上手,不妨看看 Boolan 首席咨询师李沫南推出的《基于大语言模型应用开发的高级培训课程》,从入门到逐步深入了解大语言模型原理和应用,理论与实践相结合,让你一步一步成为大语言模型领域的专家。

  本课程深入浅出讲解GPT大语言模型核心原理,以及其在软件开发全生命周期(包括在软件需求分析、领域建模、架构与设计、数据库设计、程序开发、代码重构、开发者测试、缺陷修复等方面)的实践方法,同时深入讲解GPT在开发过程中的各种最佳实践,包括:提示工程 Prompt Engineer-ing、精调FineTuning以及安全方面的最佳实践等,帮助软件开发团队全方位提升在GPT大模型时代的开发效能。

  周末班:3月2日开课,共10天,每天2课时,每周六、日晚20:00-21:40

  李沫南,资深软件专家,对自然语言处理、全文检索系统、数据库引擎、编程语言理论 和 Rust 编程语言有深入研究,Coreseek 和 LogInsight 的创始人 / 联合创始人,曾任 PingCap 技术顾问。CoreSeek 检索系统曾广泛用于中文互联网BBS社区。

  大语言预训练不同训练阶段的能力表现大语言模型与现有代码工具的集成大语言模型与传统编程语言的交互

  从特征工程到嵌入向量(Embedding),介绍为什么会存在预训练大语言模型

  大语言模型的任务分解与工具集成,如何利用 Chain-of-Thought(CoT) 分析问题,如何调用外部工具提升模型输出的准确率