README
🚀 🧠 Titan 内存服务器实现
本项目由 @jasonkneen 和 @ExpressionsBot 携手合作完成。该服务器受 Google Research 论文 "Generative AI for Programming: A Common Task Framework" 的启发,实现了一个神经记忆系统。此系统能够学习和预测序列,通过记忆向量维护状态,遵循论文原理提升代码生成与理解能力。
关注我们的 Twitter:
🚀 快速开始
本项目实现了一个神经记忆系统,受 Google Research 论文启发,可学习和预测序列,维护状态以提升代码生成和理解能力。以下为你介绍项目的安装、使用等相关内容。
📚 研究背景
本实现借鉴了论文中提出的概念:
- 具备增强的序列学习和记忆功能。
- 运用 Surprise 机制进行新颖性检测。
- 采用流形优化来实现稳定的训练过程。
- 通过记忆向量维护状态。
这些特性与论文目标一致,旨在通过更优的记忆和状态管理改进代码理解与生成。
✨ 主要特性
- 可配置维度的神经记忆模型。
- 具备序列学习和预测功能。
- 能进行 Surprise 计算以检测新颖性。
- 支持模型持久化(保存/加载)。
- 拥有状态内存管理功能。
- 集成了完整的 MCP 工具。
📦 安装指南
# 安装依赖项
npm install
# 构建项目
npm run build
# 运行测试
npm test
💻 使用示例
基础用法
// 初始化模型
await callTool('init_model', { inputDim: 64, outputDim: 64 });
// 使用序列进行训练
const sequence = [
[1, 0, 0, /* ... */],
[0, 1, 0, /* ... */],
[0, 0, 1, /* ... */]
];
await callTool('train_sequence', { sequence });
// 运行前向传递
const result = await callTool('forward_pass', {
x: [1, 0, 0, /* ... */]
});
高级用法
// 可根据具体业务场景,灵活组合 MCP 工具,如先初始化模型,再进行多次训练步骤,最后保存模型
await callTool('init_model', { inputDim: 128, outputDim: 128 });
for (let i = 0; i < 10; i++) {
await callTool('train_step', {
x_t: [i, i + 1, i + 2],
x_next: [i + 1, i + 2, i + 3]
});
}
await callTool('save_model', {
path: './saved_model'
});
🔧 技术细节
- 借助 TensorFlow.js 实现高效的张量操作。
- 采用流形优化实现稳定的训练过程。
- 实现 Surprise 机制用于新颖性检测。
- 内存管理采用适当的张量清理。
- 带有类型安全的 MCP 工具定义。
- 维持内存状态之间的操作。
🧪 测试
项目包含全面测试,覆盖范围如下:
- 模型初始化和配置。
- 训练和前向传递操作。
- 内存状态管理。
- 模型持久化。
- 边界情况和错误处理。
- 张量清理和内存管理。
运行测试时使用:
npm test
🔍 实现说明
- 所有张量操作均包装在
tf.tidy()中,以实现适当的内存管理。 - 实施了适当的错误处理,并带有详细的错误消息。
- 使用类型安全的 MCP 工具定义。
- 维持训练过程中的内存状态。
- 通过 epsilon 容差处理浮点数精度问题。
📄 许可证
本项目采用 MIT License,欢迎自由使用和修改!
Scan to contact