12k words
在lesson3中,我们主要学习了两种大模型的开发范式,并详细学习了其中的RAG。本节课中,我们主要学习第二种范式,Finetune,并使用XTuner基于InternLM进行单卡微调。在普通的学习中,LLM没办法很好的应用于具体的实际和板块,因此需要微调来定制。对模型进行微调有两种策略,增加数据集和指令微调。XTuner是打包好的微调工具箱,它的微调原理是LoRA&QLoRA,能够减少显存占用,使开发者专注数据内容而不是格式。 XTuner概述FinetuneFinetune是大模型常见的两种范式之一,它的核心:在已有数据集上微调 可以进行更多个性化微调,以满足用户需求。 需要在新的数据集上进行训练,这可能会导致成本上升。然而,这也意味着模型可以更好地适应不断变化的环境。 需要注意的是,由于训练成本较高,模型的更新可能不是实时的,但我们可以定期进行更新以确保其性能始终保持在最佳状态。 LLMLLM就是大语言模型的统称。我们知道,LangChain封装了很多组件,通过将这些组件组合,一个chain能够封装一系列的LLM操作。 XTunerXTuner是打包好的微调工具...
1.5k words
https://leetcode.cn/problems/split-strings-by-separator/description/ 解答12345678910111213141516class Solution {public: vector<string> splitWordsBySeparator(vector<string>& words, char separator) { vector<string> res; for (string& word : words) { stringstream ss(word); string sub; while (getline(ss, sub, separator)) { if (sub != "") { res.push_b...
2.9k words
https://leetcode.cn/problems/minimum-time-to-make-array-sum-at-most-x/description/ 代码12345678910111213141516171819202122232425262728class Solution {public: int minimumTime(vector<int>& nums1, vector<int>& nums2, int x) { int n = nums1.size(); vector<vector<int>> dp(n + 1, vector<int>(n + 1, 0)); vector<pair<int, int>> nums(n); for (int i = 0; i < n; i++) { nums[i] = {nums2[i], nu...
3k words
https://leetcode.cn/problems/count-of-integers/description/ 求解暴力遍历123456789101112131415161718192021222324class Solution {protected: long long _SumofEvery(long long input){ int res=0; while(input){ res+=input%10; input/=10; } return res; }public: int count(string num1, string num2, int min_sum, int max_sum) { long long left = stoll(num1),right = stoll(num2); int sum=0; for(long long i=...
14k words
Lecture3. 作业1.基础作业:复现课程知识库助手搭建过程 (截图)环境配置 环境准备 开发机创建 https://aicarrier.feishu.cn/wiki/VLS7w5I22iQWmTk0ExpczIKcnpf 安装conda环境、安装依赖库 模型下载 下载internlm-chat-7b模型 LangChain 相关环境配置 安装LangChain依赖包 123456pip install langchain==0.0.292pip install gradio==4.4.0pip install chromadb==0.4.15pip install sentence-transformers==2.2.2pip install unstructured==0.10.30pip install markdown==3.3.7 下载开源词向量模型 Sentence Transformer 在/root/code下创建LangChain文件下,在该文件夹下创建download_hf.py文件 123456789import os...
8.2k words
大模型开发范式LLM大模型的局限性 知识时效性受限:如何让LLM能够获取最新的知识 专业能力有限:如何打造垂域大模型 定制化成本高:如何打造个人专属的LLM应用 两种思路(开发范式) RAG(检索增强生成) (核心思想:给大模型外挂知识库) 无需重新训练,能够实时更新 上限取决于基座大模型 需要大型的上下文,对于总结归纳任务表现不佳 RAG原理: 对于每个用户的输入,使用向量模型sentence transformer,将输入文本转化为向量,在Chroma向量数据库中寻找匹配的相似文本段,我们认为与问题相似的作为答案,将用户的输入和相似文本段一起嵌入到Prompt,传递给InternLM模型,再做出最终的回答。 Finetune(核心:在已有数据集上微调) 可以进行更多个性化微调,以满足用户需求。 需要在新的数据集上进行训练,这可能会导致成本上升。然而,这也意味着模型可以更好地适应不断变化的环境。 需要注意的是,由于训练成本较高,模型的更新可能不是实时的,但我们可以定期进行更新以确保其性能始终保持在最佳状态。 LangChain简介LangChain含义...
4.2k words
在网上看了不少与卡尔曼滤波相关的博客、论文,要么是只谈理论、缺乏感性,或者有感性认识,缺乏理论推导。能兼顾二者的少之又少,直到我看到了国外的一篇博文,真的惊艳到我了,不得不佩服作者这种细致入微的精神,翻译过来跟大家分享一下。 原文链接http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/ https://blog.csdn.net/u010720661/article/details/63253509 https://www.cnblogs.com/guochaoxxl/p/15745113.html   我不得不说说卡尔曼滤波,因为它能做到的事情简直让人惊叹!意外的是很少有软件工程师和科学家对对它有所了解,这让我感到沮丧,因为卡尔曼滤波是一个如此强大的工具,能够在不确定性中融合信息,与此同时,它提取精确信息的能力看起来不可思议。 什么是卡尔曼滤波?  你可以在任何含有不确定信息的动态系统中使用卡尔曼滤波,对系统下一步的走向做出有根据的预测,即使伴随着各种干扰,卡尔曼滤波总是能指出真实发生的情况。  在连续变化的...
1.8k words
题目https://leetcode.cn/problems/construct-string-with-repeat-limit/description/ 解答12345678910111213141516171819202122232425262728293031class Solution {public: string repeatLimitedString(string s, int repeatLimit) { vector<int> vec(26); for (char c : s) { ++vec[c-'a']; } string res; int cnt = 0; for (int i = 'z' - 'a', j = i - 1; i >= 0 && j >= 0;) { if (...
460 words
基础作业使用 InternLM-Chat-7B 模型生成 300 字的小故事(需截图)。 熟悉 hugging face 下载功能,使用 huggingface_hub python 包,下载 InternLM-20B 的 config.json 文件到本地(需截图下载过程)。 123456import osfrom huggingface_hub import hf_hub_download # Load model directly# 设置环境变量os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'hf_hub_download(repo_id="internlm/internlm-7b", filename="config.json",local_dir="./") 进阶作业(可选做)完成浦语·灵笔的图文理解及创作部署(需截图) 测试多模态对话 测试创作图文并茂文章 完成 Lagent 工具调用 Demo...
1.7k words
资料视频:https://www.bilibili.com/video/BV1Ci4y1z72H/文档:https://github.com/InternLM/tutorial/blob/main/helloworld/hello_world.md 大模型大模型通常指的是机器学习或人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。 这些模型利用大量数据进行训练,并且拥有数十亿甚至数千亿个参数。 这种模型通常采用深度神经网络结构,如 Transformer、BERT、GPT( Generative Pre-trained Transformer )等。 InternLM 模型全链条开源InternLM 是一个开源的轻量级训练框架,旨在支持大模型训练而无需大量的依赖。 基于 InternLM 训练框架,上海人工智能实验室已经发布了两个开源的预训练模型:InternLM-7B 和 InternLM-20B。 InternLM-Chat-7B 智能对话 Demo在https://studio.intern-ai.org.cn/使用 A100(1/4) 机器和 InternLM...