It is expected that in the near future, AI software development assistants will play an important role in the software industry. However, current software development assistants tend to be unreliable, often producing incorrect, unsafe, or low-quality code. We seek to resolve these issues by introducing a holistic architecture for constructing, training, and using trustworthy AI software development assistants. In the center of the architecture, there is a foundational LLM trained on datasets representative of real-world coding scenarios and complex software architectures, and fine-tuned on code quality criteria beyond correctness. The LLM will make use of graph-based code representations for advanced semantic comprehension. We envision a knowledge graph integrated into the system to provide up-to-date background knowledge and to enable the assistant to provide appropriate explanations. Finally, a modular framework for constrained decoding will ensure that certain guarantees (e.g., for correctness and security) hold for the generated code.
翻译:预计在不久的将来,人工智能软件开发助手将在软件行业发挥重要作用。然而,当前的软件开发助手往往不可靠,常常生成不正确、不安全或低质量的代码。我们旨在通过引入一种用于构建、训练和使用可信赖人工智能软件开发助手的整体架构来解决这些问题。该架构的核心是一个基础大语言模型(LLM),它在代表真实编码场景和复杂软件架构的数据集上进行训练,并针对正确性之外的代码质量标准进行微调。该LLM将利用基于图的代码表示以实现高级语义理解。我们设想在系统中集成一个知识图谱,以提供最新的背景知识,并使助手能够提供适当的解释。最后,一个用于约束解码的模块化框架将确保生成的代码满足某些保证(例如正确性和安全性)。