黄帝模型仓库:中医古籍知识问答AI大模型应用详解

版权申诉
0 下载量 101 浏览量 更新于2024-10-04 收藏 150KB ZIP 举报
资源摘要信息:"AI大模型应用-黄帝(Huang-Di)模型仓库" 标题解读: 标题中的《AI大模型应用》表明该资源关注的是人工智能领域中的大模型技术及其应用实践。"黄帝(Huang-Di)模型仓库"可能是该模型库的特定命名,可能以中国古代神话中的帝王“黄帝”命名,彰显了中国古代文化的深厚底蕴与现代技术的融合。基于"Ziya-LLaMA-13B-V1"的中医古籍知识问答大模型,说明该模型库中包含了一个专门针对中医古籍知识问答设计的大模型,Ziya-LLaMA-13B-V1很可能是指该模型库使用的底层技术或模型架构,"13B"可能表示该模型的规模或参数量级,例如130亿参数。 描述解读: 描述中提到的"个人深耕AI大模型应用领域积累的成果",透露了作者在AI大模型领域的深入研究和实践经验。作者对大模型账号、环境问题和AI大模型技术应用落地方案等实践问题提供了咨询和解决方案,这表明该资源不仅包含技术实践,还可能包含问题解决的策略和方法。作者反复强调"欢迎详聊"和"能为您解决问题是我的荣幸",显示了作者愿意分享知识、协助解决问题的热情。 标签解读: 标签"AI大模型、人工智能、自然语言处理"明确指出了该资源涉及的核心技术领域。AI大模型指的是当前AI领域研究与应用中使用的规模庞大、参数众多的深度学习模型;人工智能是整个领域的统称;自然语言处理则是人工智能中的一个子领域,专注于让计算机理解和处理人类语言的各种技术。 文件名称列表解读: LICENSE: 通常指许可证文件,包含了该资源使用的法律许可信息,说明了用户在使用该资源时的权利和限制。 README.md: 这是开源项目常见的文档文件,通常包含了项目的介绍、安装指南、快速上手教程、贡献指南等信息,是用户了解和使用该项目的重要入口。 src: 通常表示源代码目录,包含了项目的主要代码部分,通过查看该目录下的文件,可以了解项目的实现细节和架构设计。 data: 数据目录,可能包含了用于训练或测试AI模型的原始数据、处理后的数据集或数据预处理脚本等。 configs: 配置文件目录,存放项目的配置文件,这些配置文件可能包含了模型训练、测试、部署的参数设置,是项目运行和调整的关键依据。 scripts: 脚本目录,包含了各种运行和操作项目所需的脚本文件,如自动化部署脚本、数据处理脚本、模型训练脚本等。 综合来看,该资源是一个关于AI大模型技术应用的实践案例,特别针对中医古籍知识问答领域进行了专项设计和实现。它不仅提供了技术和工具,还可能包含了大量的实践知识和解决方案,适合对AI大模型应用有兴趣并希望深入了解和应用该技术的个人或机构。

代码改进,用printf代替cout。#include <iostream> #include <queue> #include <string> using namespace std; struct Student { string name; int number; int score; }; struct TreeNode { Student data; TreeNode* left; TreeNode* right; TreeNode(Student s) : data(s), left(nullptr), right(nullptr) {} }; void inOrder(TreeNode* root) { if (!root) return; inOrder(root->left); cout << root->data.name << " " << root->data.number << " " << root->data.score << endl; inOrder(root->right); } TreeNode* insert(TreeNode* root, Student s) { if (!root) return new TreeNode(s); if (s.number < root->data.number) { root->left = insert(root->left, s); } else { root->right = insert(root->right, s); } return root; } TreeNode* search(TreeNode* root, string name) { if (!root) return nullptr; if (name == root->data.name) { return root; } else if (name < root->data.name) { return search(root->left, name); } else { return search(root->right, name); } } void print(TreeNode* root) { if (!root) return; if (root->data.score <= 75) { cout << root->data.name << " " << root->data.number << " " << root->data.score << endl; } print(root->left); print(root->right); } int main() { Student students[] = { {"Lei Zhenzi", 101401, 82}, {"Jiang Ziya", 100032, 90}, {"Ne Zha", 101674, 70}, {"Shen Gongbao", 101982, 87}, {"Jiu Weihu", 107431, 75}, {"Tian Zun", 100001, 98}, {"Tai Yi", 101009, 81}, {"Yang Jian", 101321, 63}, {"Huang Feihu", 101567, 72}, {"Zhou Wang", 108160, 55}, {"Li Jing", 102456, 84}, {"Tu Xingsun", 102245, 65}, }; int n = sizeof(students) / sizeof(Student); TreeNode* root = nullptr; for (int i = 0; i < n; i++) { root = insert(root, students[i]); } cout << "In-order traversal: " << endl; inOrder(root); cout << "Level-order traversal: " << endl; queue<TreeNode*> q; q.push(root); while (!q.empty()) { TreeNode* node = q.front(); q.pop(); if (node) { cout << node->data.name << " " << node->data.number << " " << node->data.score << endl; q.push(node->left); q.push(node->right); } } cout << "Search for Tai Yi: " << endl; TreeNode* node = search(root, "Tai Yi"); if (node) { cout << node->data.name << " " << node->data.number << " " << node->data.score << endl; } else { cout << "Not found." << endl; } cout << "Students with score <= 75: " << endl; print(root); return 0; }

2023-05-22 上传

代码改进,用printf代替cout。#include <iostream> #include <queue> #include <stack> #include <string> using namespace std; struct Student { string name; int number; int score; }; struct TreeNode { Student data; TreeNode* left; TreeNode* right; TreeNode(Student s) : data(s), left(nullptr), right(nullptr) {} }; void postOrder(TreeNode* root) { if (!root) return; postOrder(root->left); postOrder(root->right); cout << root->data.name << " " << root->data.number << " " << root->data.score << endl; } void preOrder(TreeNode* root) { stack<TreeNode*> s; s.push(root); while (!s.empty()) { TreeNode* node = s.top(); s.pop(); if (node) { cout << node->data.name << " " << node->data.number << " " << node->data.score << endl; s.push(node->right); s.push(node->left); } } } void levelOrder(TreeNode* root) { queue<TreeNode*> q; q.push(root); while (!q.empty()) { TreeNode* node = q.front(); q.pop(); if (node) { cout << node->data.name << " " << node->data.number << " " << node->data.score << endl; q.push(node->left); q.push(node->right); } } } int main() { Student students[] = { {"Lei Zhenzi", 101401, 82}, {"Jiang Ziya", 100032, 90}, {"Ne Zha", 101674, 70}, {"Shen Gongbao", 101982, 87}, {"Jiu Weihu", 107431, 75}, {"Tian Zun", 100001, 98}, {"Tai Yi", 101009, 81}, {"Yang Jian", 101321, 63}, {"Huang Feihu", 101567, 72}, {"Zhou Wang", 108160, 55}, {"Li Jing", 102456, 84}, {"Tu Xingsun", 102245, 65}, }; int n = sizeof(students) / sizeof(Student); TreeNode* root = new TreeNode(students[0]); queue<TreeNode*> q; q.push(root); for (int i = 1; i < n; i += 2) { TreeNode* parent = q.front(); q.pop(); parent->left = new TreeNode(students[i]); q.push(parent->left); if (i + 1 < n) { parent->right = new TreeNode(students[i + 1]); q.push(parent->right); } } cout << "Post-order traversal: " << endl; postOrder(root); cout << "Pre-order traversal: " << endl; preOrder(root); cout << "Level-order traversal: " << endl; levelOrder(root); return 0; }

2023-05-22 上传