1.3 应用开发技术
1.3.1 Python
Python是一种高级编程语言,由Guido van Rossum在1989年首次发布。Python代码可读性高、便于维护、语法简洁,且Python是面向对象编程,被广泛用于数据科学、机器学习、人工智能、Web开发、自动化脚本和游戏开发等领域。
随着人工智能和自然语言处理领域的不断发展,Python在GPT应用开发中扮演着越来越重要的角色,并且得到了持续的更新。PyTorch、TensorFlow、NumPy和Transformers这些库提供了构建和训练GPT模型所需的工具与资源,开发人员可以利用Python的简洁语法和强大的库来快速实现各种GPT应用。在本书中,后台应用都采用了Python来进行编写,仅使用100行以内的代码就可以实现复杂、功能强大的应用。
下面介绍一下书中涉及的两个最主要的库:PyTorch和Transformers。
1.PyTorch
PyTorch是Torch的Python版本。Torch是一个开源的机器学习库,最初由Facebook(Meta)开发,提供了许多用于构建深度学习模型的工具和算法。Torch使用Lua编程语言,提供了一个灵活的张量库,可以在GPU上高效地运行。PyTorch提供了与Torch类似的功能,它使用Python作为主要编程语言,提供了许多方便的工具和接口,使得构建和训练深度学习模型更加简单、直观。
2.Transformers
Transformers库与Transformer有关。Transformer是大语言模型开发中使用的一种深度学习架构,而Transformers是Hugging Face开发的一个开源的自然语言处理库,支持许多预训练Transformer模型(如BERT、GPT、LLaMA),提供了方便的API和工具,使开发者使用这些预训练模型变得更加简单和高效。开发者可以轻松地加载、微调和使用这些模型,从而快速构建和训练自己的NLP模型应用。
1.3.2 React.js
React.js是一种用于构建用户界面的JavaScript库,由Facebook(Meta)开发,使用组件化的方式来构建UI,使开发人员能够更加高效地构建复杂的Web应用程序。在本书提供的开发案例中,除个别应用以命令行模式运行或以Python构建Web应用外,其他的都需要开发客户端,本书选用React.js演示客户端开发,主要是考虑到了React.js的以下优势。
❍ 组件化UI:React.js使用组件来构建UI,使开发人员能够更加清晰地组织代码,并且能够更好地维护代码。本书中经常使用的客户端Chat组件,就是使用了开源软件ChatUI[6]定制的。
❍ 动态性:React.js支持动态渲染,能够实时地更新UI,使应用程序更加响应式。
❍ 热更新:React.js支持热更新,能够实时地更新UI,这样修改源代码的结果会立刻反映到浏览器里,不需要重启服务,也不需要刷新网页,应用程序开发效率更高。
❍ Node.js支持:React.js应用程序在开发过程中,需要Node.js环境的支持,而大语言模型提供了OpenAI的兼容推理接口,这样客户端就可以使用openai-node组件调用大模型服务。从客户端的角度来看,统一的接口消除了访问不同大模型方法的差异。