过去十年,我的职业生涯经历了显著的转型。最初专注于网页应用开发和创业,但在近四年里,我的注意力逐渐转向了区块链和生成式人工智能这两个快速发展的领域。在这短暂却充满变革的时期里,技术进步的步伐明显加快,新的发展方向不断涌现。作为一名开发者,我不断调整自己的技能和视角来适应这些变化。目前只能算个草稿,后面我一边练级一边补充。
软件开发的新时代
当前,软件开发正在迎来一个全新的时代。这种转变涉及多个层面,从底层硬件到高层应用开发都在发生变革。例如,RISC架构的广泛应用正在改变计算硬件的格局,而Nix等新型包管理工具则在重新定义软件依赖管理的方式。这些变化都在深刻影响着软件开发的实践。不过在这篇文章中,我主要是分享下直接接触更多的云计算、人工智能和区块链这三个正在产生深远影响的领域。虽然它们处于不同的技术层面,但都在重塑软件开发的方式和思维。
新技术生态系统的三个层次
这三大技术结合形成了一个新的技术生态系统,我们可以将其分为三个层次:
底层基础设施
最底层是云服务、大模型和以太坊。它们提供了基础的计算资源、智能引擎和去中心化基础设施。云服务为应用提供了强大的计算能力,大模型则为智能应用提供了核心引擎,而以太坊则为去中心化应用奠定了基础。
中间层工具和框架
中间层包括无服务器技术、新型数据库、模型训练、提示词工程、Layer2和跨链技术,以及去中心化应用(DeFi)等。这一层逐渐完善了工程基础设施,这些技术目前都已经工具化,所有开发者和软件公司只需阅读"说明文档"就可以上手使用。
无服务器技术大大减轻了开发者在服务器管理上的负担,使他们能够更专注于代码和功能实现。模型训练和提示词工程则为AI应用提供了必要的工具和框架,使小型专用模型的训练和优化变得更加可行。新型数据库如NoSQL和时序数据库为数据管理带来了更大的灵活性和扩展性。
Layer2和跨链技术对于区块链应用至关重要。Layer2解决方案提高了区块链的可扩展性和效率,而跨链技术则促进了不同区块链网络之间的互操作性。DeFi工具和框架不仅限于金融领域,它们为各种去中心化服务提供了基础,使得复杂的去中心化应用能够在区块链上安全、透明地运行。
这些技术的结合使得跨链操作成为可能,让App Chain能够通过脚手架快速搭建,并共享整个网络的安全性。同时,Serverless和多模态数据库等创新让我们能够随时随地存取各种类型的数据,不仅满足人类用户的需求,还能支持更加自主化的AI操作。
应用层
应用层主要包括App、web应用、单一功能的模型和App chain应用链。这一层对应大多数的软件,它们一般更关注功能、产品、用户,需要数据存储、算力等运行环境,以及良好的软件基础设施。
软件开发的新可能性
在这个新的技术栈中,软件开发的方式和可能性都大大拓展了。过去,我们构建软件主要依赖前后端技术和云服务。而现在,我们有了更多的选择 - 我们可以训练专门的AI模型来实现某些功能,甚至可以利用区块链来运行完全自治的应用。
AI在应用开发中的具体应用
在AI领域,一个重要的变化是我们现在可以训练各种小型、专门化的模型。这些模型可以执行特定的任务,如内容总结或各种类型的识别。训练这些小模型就像开发app的功能一样,可以形成一种流水线式的开发过程。这种方式使得AI不再是一个封闭的、底层的技术,而是成为了应用层的一部分。
例如,在内容管理系统的开发中,我们可以训练以下类型的模型:
内容总结模型:自动为长文章生成摘要。这可以通过fine-tuning预训练语言模型来实现,如使用GPT3模型,并在特定领域的文章数据集上进行训练。
内容识别模型:自动分类文章,识别其主题、情感倾向等。这可以通过构建多标签分类模型来实现,使用如Llava等模型作为基础,然后在标记好的文章数据集上进行训练。
内容生成模型:根据用户的需求自动生成某些类型的内容。这可以使用比如Gemma或Phi3系列模型,通过few-shot learning或fine-tuning来适应特定的内容生成任务。
这些AI功能直接集成到应用中,成为核心功能的一部分。开发者需要学习如何选择合适的模型,如何进行fine-tuning以适应特定任务,以及如何设计有效的prompt来引导AI生成高质量的输出。例如,对于内容总结模型,可能需要设计类似"总结以下文章的主要观点,不超过100字"的prompt。
区块链在应用开发中的具体应用
在区块链领域,一个重要的趋势是每个去中心化的应用都有自己的区块链(App Chain)。这样做的好处是每个应用都可以拥有自己的算力和存储资源。现在的跨链和运行链的基础设施已经很完善,使得这些App Chain可以与主链共享安全性。
在内容管理系统的例子中,我们可以为系统开发一个专门的应用链。这个链可以针对内容管理的特殊需求进行优化,比如提供高效的内容索引和检索功能,支持内容的版本控制等。具体来说:
内容存储:可以使用分布式存储系统如IPFS,将内容的哈希值存储在区块链上,实现内容的不可篡改性。
访问控制:通过智能合约实现细粒度的访问控制,如设置不同级别的读写权限。
版本控制:每次内容更新都可以在区块链上记录一个新的交易,保存新旧版本的哈希值,实现完整的版本历史。
内容审核:可以通过链上治理机制,让社区参与内容审核过程,实现去中心化的内容管理。
同时,通过跨链技术,我们可以让这个系统与其他区块链应用进行交互,比如允许用户使用其他链上的身份认证,或者将内容同步到其他平台。
新的开发模式带来的变化
这种新的开发模式带来了一个重要的变化:
训练模型现在对应着传统的软件开发过程。我们不再只是编写代码,还需要训练和优化AI模型来实现特定功能。
部署App Chain现在对应着传统的云端部署。除了使用云服务,我们还可以选择构建自己的区块链来部署应用。
此外,在这个新的技术生态中,还出现了一个新的层次:应用生态层。这一层包括小程序、插件和链上的合约。虽然不是所有软件都需要这一层,但对于平台性质的应用来说,这一层非常重要。就像微信里面大家开发小程序,或者在Polygon链上发行NFT一样。
这个新时代给了我们巨大的机遇。它让小团队和个人开发者也有机会开发出强大的应用。在AI时代,一个好的prompt工程师可能比一个大型开发团队更有优势。在区块链时代,一个优秀的应用链设计可能比庞大的用户基础更有价值。
同时,这也带来了新的挑战。开发者需要学习和掌握更多的技能,不仅要懂得传统的软件开发,还要了解AI模型训练、区块链架构等知识。我们需要重新思考应用的架构和设计,考虑如何最好地利用这些新技术。我们应该将AI和区块链视为与前后端技术和云原生技术同等重要的新工具,而不仅仅是底层的基础设施。这是个挑战巨头垄断的机会,重新实现那个我们曾经构想过的自由、开放、平等的互联网世界。This Is The Way.