基于ollama部署微调模型

基于ollama部署微调模型

目标

基于ollama部署微调模型

修改gguf文件名

将之前的 model-unsloth.Q4_K_M.gguf 重命名为 echarts.gguf

创建一个Modelflie.txt

输入 FROM {绝对路径}\echarts.gguf

注意,wsl是将windows主机上的硬盘映射到了 /mnt 目录,因此需要做相应的修改,和否则无法检测。

安装echarts.gguf

ollama create echarts -f Modelflie.txt 将新模型的别名更改为echarts

命令台进行测试

ollama run echarts 运行这个命令,开始对话。

将AI给出的代码放入在线调试。

有一些不尽如人意,可能是没有给出数据的缘故。

API调试

修改传入参数,将model改为echarts,API访问成功。

编写Java代码

编写一个 askLocalEchartsModel 方法,传入prompt,固定model为微调后的Echarts模型。

按照API工具编写一个POST请求,得到返回值,并提取返回值,作为函数结果返回。

public static String askLocalEchartsModel(String prompt) throws IOException {
    // 定义固定的URL
    String urlString = "http://localhost:11434/api/generate";
    URL url = new URL(urlString);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
​
    // 设置请求方法为POST
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "application/json; utf-8");
    conn.setRequestProperty("Accept", "application/json");
    conn.setDoOutput(true);
​
    // 创建要发送的JSON对象
    JSONObject jsonInput = new JSONObject();
    jsonInput.put("model", "Echarts");
    jsonInput.put("prompt", prompt);
    jsonInput.put("stream", false);
​
    // 将JSON输入写入请求的输出流
    try (OutputStream os = conn.getOutputStream()) {
        byte[] input = jsonInput.toString().getBytes("utf-8");
        os.write(input, 0, input.length);
    }
​
    // 读取响应内容
    try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"))) {
        StringBuilder response = new StringBuilder();
        String responseLine;
        while ((responseLine = br.readLine()) != null) {
            response.append(responseLine.trim());
        }
​
        // 解析JSON响应并提取response字段
        JSONObject jsonResponse = new JSONObject(response.toString());
        return jsonResponse.getString("response");
    }
}

结果

模型的训练结果不太如人意,深度学习模型为黑盒无法深入其中进行修改。

考虑使用向量数据库进行学习,达到增加模型专业知识的效果。

本课程了有关Transformer和大语言模型(LLM)的关键前置知识, 包括注意力机制、多头注意力、编码器-解码器结构等Transformer原理, 以及LLM的文本生成和LLM微调技术原理。在此基础上, 重点介绍了Llama 3模型的进化历程、技术原理和代码实现。其中涉及RMSNorm归一化、SwiGLU激活函数、RoPE位置编码、GQA注意力和KVCache等关键技术。通过代码解析, 深入剖析了Llama 3的架构设计和代码实现。在实践部分, 课程还介绍了如何在阿里云使用Ollama和vLLM部署Llama 3模型, 以及使用llama_factory工具进行基于LoRA和QLoRA的llama3 8B大模型微调。项目实战环节则提供了从准备数据集到训练、推理、评估的全流程指导, 聚焦中文增强和医疗问答两大应用方向。这是一门内容全面、理论实践并重的大模型课程。不仅系统讲解了LLM和Llama 3的技术原理, 还通过代码解析和实战项目深度剖析了相关技术在工程落地中的关键环节, 有助于学员全面掌握大模型相关知识和动手实战能力。-------------------------------------------------------------------------------具体课程内容如下:前置知识1:Transformer原理与代码精讲- 注意力机制:了解注意力机制如何使模型能够捕捉输入序列中不同位置之间的相关性。- 自注意力:解释自注意力如何允许序列的每个元素都与序列中的其他元素进行交互。- 多头注意力:探讨多头注意力如何通过并行处理多个注意力层来增强模型的能力。- 位置编码:学习位置编码如何为模型提供序列中单词的位置信息。- 编码器和解码器:深入分析Transformer的编码器和解码器结构,以及它们在模型中的作用。- 层归一化(LayerNorm)和前馈网络(FFN):介绍这两种技术如何帮助稳定和增强模型的训练过程。- 代码精讲:讲解Transformer模型的PyTorch代码实现细节等。 前置知识2:大模型(LLM)文本生成- LLM的推理方式- LLM的文本生成模式: 主要有Completion模式和Chat模式两种- LLM的文本生成策略: 包括贪婪搜索、束搜索、随机采样、温度采样、Top-k采样和Top-p采样等- LLM中的Token与分词器- llama3的文本生成过程- LLM文本生成的预填充和解码阶段- LLM文本生成中的Q、K、V机制 前置知识3:大模型微调原理- LLM的开发流程可分为预训练、有监督微调、奖励建模和强化学习四个阶段- 从基座模型到对话模型的转变。- 针对特定领域的SFT微调- 微调的技术方法包括全参微调、冻结微调、LoRA、QLoRA- LoRA技术原理和有效性- QLoRA技术原理 Llama3进化史和生态 Llama3原理精讲- Llama3模型架构- RMSNorm归一化技术- SwiGLU激活函数- RoPE旋转位置编码- GQA分组查询注意力- KVCache Llama3代码解析- 各文件功能- completion和chat应用脚本代码解析- generation.py代码解析- model.py代码解析- tokenizer.py代码解析- RMSNorm代码解析- SwiGLU代码解析- GQA代码解析- RoPE代码解析- KVCache代码解析 Llama3部署- Ollama部署llama3-阿里云免费GPU算力领取及实例创建、ollama安装、llama3推理- VLLM部署llama3 Llama3项目实战1-llama_factory微调llama3中文增强大模型- llama_factory介绍- llama_factory安装及llama3模型下载- LoRA微调训练llama3 8B Instruct模型- llama3中文增强大模型推理- llama3中文增强大模型评估(MMLU, CEVAL, CMMLU)- LoRA文件合并 Llama3项目实战2-llama_factory微调llama3医疗问答大模型(LoRA)- 准备医疗问答大模型数据集- LoRA微调训练llama3 8B Instruct模型- llama3医疗问答大模型推理 Llama3项目实战3-llama_factory微调llama3医疗问答大模型(QLoRA)- QLoRA微调训练llama3 8B Instruct模型- llama3医疗问答大模型推理-----------------------------------------------------------------------------------购课后可加入课程学习QQ群:364717673
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值