llm学习-1(包含如何使用github的codespace):

本文学习参考:datawhalechina/llm-universe: 本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/


一些可使用的大模型地址:

Claude 使用地址

PaLM 官方地址

Gemini 使用地址

文心一言使用地址

星火大模型使用地址


开源大模型:

1:Llama

LLaMA 开源地址:

LLaMA 系列模型是 Meta 开源的一组参数规模 从 7B 到 70B 的基础语言模型。LLaMA 于2023 年 2 月发布,2023 年 7 月发布了 LLaMA2 模型,并于 2024 年 4 月 18 日发布了 LLaMA3 模型。

2:Qwen

通义千问开源地址:

通义千问由阿里巴巴基于“通义”大模型研发,于 2023 年 4 月正式发布。2023 年 9 月,阿里云开源了 Qwen(通义千问)系列工作。2024 年 2 月 5 日,开源了 Qwen1.5(Qwen2 的测试版)。并于 2024 年 6 月 6 日正式开源了 Qwen2。 Qwen2 是一个 decoder-Only 的模型,采用 SwiGLU 激活RoPEGQA的架构。中文能力相对来说非常不错的开源模型。

目前,已经开源了 5 种模型大小:0.5B、1.5B、7B、72B 的 Dense 模型和 57B (A14B)的 MoE 模型;所有模型均支持长度为 32768 token 的上下文。并将 Qwen2-7B-Instruct 和 Qwen2-72B-Instruct 的上下文长度扩展至 128K token

3:ChatGLM

ChatGLM 开源地址:

GLM 系列模型清华大学和智谱 AI 等合作研发的语言大模型。2023 年 3 月 发布了 ChatGLM。6 月发布了 ChatGLM 2。10 月推出了 ChatGLM3。2024 年 1 月 16 日 发布了 GLM4,并于 2024 年 6 月 6 日正式开源。

GLM-4-9B-Chat 支持多轮对话的同时,还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等功能。

开源了对话模型 GLM-4-9B-Chat基础模型 GLM-4-9B长文本对话模型 GLM-4-9B-Chat-1M(支持 1M 上下文长度)、多模态模型GLM-4V-9B 等全面对标 OpenAI

4:Baichuan

百川开源地址:

Baichuan 是由百川智能开发的开源可商用的语言大模型。其基于Transformer 解码器架构(decoder-only)

2023 年 6 月 15 日发布了 Baichuan-7B 和 Baichuan-13B。百川同时开源了预训练对齐模型,预训练模型是面向开发者的“基座”,而对齐模型则面向广大需要对话功能的普通用户

Baichuan2 于 2023年 9 月 6 日推出。发布了 7B、13B 的 Base 和 Chat 版本,并提供了 Chat 版本的 4bits 量化

2024 年 1 月 29 日 发布了 Baichuan 3。但是目前还没有开源


RAG:检索增强生成(Retrieval-Augmented Generation

RAG 是一个完整的系统,其工作流程可以简单地分为数据处理、检索、增强和生成四个阶段:

1:微调和RAG的对比:

提到rag肯定会提到langchian:

2:LangChain 主要由以下 6 个核心组件组成:

  • 模型输入/输出(Model I/O):与语言模型交互的接口
  • 数据连接(Data connection):与特定应用程序的数据进行交互的接口
  • 链(Chains):将组件组合实现端到端应用。比如后续我们会将搭建检索问答链来完成检索问答。
  • 记忆(Memory):用于链的多次运行之间持久化应用程序状态;
  • 代理(Agents):扩展模型的推理能力。用于复杂的应用的调用序列;
  • 回调(Callbacks):扩展模型的推理能力。用于复杂的应用的调用序列;

langchain的结构:Langchain-rag小demo-CSDN博客

3:langchain的生态:


大模型开发:


实践:

1:首先建立一个虚拟环境然后拷贝项目

  1. 新建虚拟环境 conda create -n llm-universe python=3.10
  2. 激活虚拟环境 conda activate llm-universe
  3. 在希望存储项目的路径下克隆当前仓库 git clone git@github.com:datawhalechina/llm-universe.git(下载的时候可能出现需要匹配秘钥:解决git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Pleas-CSDN博客,如果还是不行就用这个:git clone https://github.com/datawhalechina/llm-universe.git)

2:配置环境

在llm-universe下进行环境配置

pip install -r requirements.txt

如果下载得很慢的话:
 这里列出了常用的国内镜像源,镜像源不太稳定时,大家可以按需切换: 清华:Simple Index 阿里云:Simple Index 中国科技大学:Simple Index 华中科技大学:http://pypi.hustunique.com/simple/ 上海交通大学:https://mirror.sjtu.edu.cn/pypi/web/simple/ 豆瓣:http://pypi.douban.com/simple


Prompt:

具体来说,在使用 ChatGPT API 时,你可以设置两种 Prompt:一种是 System Prompt,该种 Prompt 内容会在整个会话过程中持久地影响模型的回复,且相比于普通 Prompt 具有更高的重要性;另一种是 User Prompt,这更偏向于我们平时提到的 Prompt,即需要模型做出回复的输入

我们一般设置 System Prompt 来对模型进行一些初始化设定,例如,我们可以在 System Prompt 中给模型设定我们希望它具备的人设如一个个人知识库助手等。System Prompt 一般在一个会话中仅有一个。在通过 System Prompt 设定好模型的人设或是初始设置后,我们可以通过 User Prompt 给出模型需要遵循的指令。例如,当我们需要一个幽默风趣的个人知识库助手,并向这个助手提问我今天有什么事时,可以构造如下的 Prompt:

{"system prompt": "你是一个幽默风趣的个人知识库助手,可以根据给定的知识库内容回答用户的提问,注意,你的回答风格应是幽默风趣的","user prompt": "我今天有什么事务?"
}

通过如上 Prompt 的构造,我们可以让模型以幽默风趣的风格回答用户提出的问题。


使用 LLM API:

llm-universe/docs/C2/2. 使用 LLM API.md at main · datawhalechina/llm-universe (github.com)

例子:

文心一言----千帆 SDK

通过文心千帆平台调用文心一言 API,要去百度智能云获取AK和SK


1:创建.env文件

2:将密钥加载到环境变量中

import os  
from dotenv import load_dotenv, find_dotenv  # 寻找并定位 .env 文件的路径  
dotenv_path = find_dotenv()  
if dotenv_path:  print(f"Found .env file at {dotenv_path}")  
else:  print("No .env file found")  # 读取该 .env 文件,并将其中的环境变量加载到当前的运行环境中  
load_dotenv(dotenv_path)  # 检查环境变量是否已经被加载  
qianfan_ak = os.getenv('QIANFAN_AK')  
qianfan_sk = os.getenv('QIANFAN_SK')  if qianfan_ak and qianfan_sk:  print(f"QIANFAN_AK: {qianfan_ak}")  print(f"QIANFAN_SK: {qianfan_sk}")  print("Environment variables loaded successfully.")  
else:  print("Environment variables not found in the environment.")

3:使用sdk封装一下,然后进行使用

import qianfandef gen_wenxin_messages(prompt):'''构造文心模型请求参数 messages请求参数:prompt: 对应的用户提示词'''messages = [{"role": "user", "content": prompt}]return messagesdef get_completion(prompt, model="ERNIE-Bot", temperature=0.01):'''获取文心模型调用结果请求参数:prompt: 对应的提示词model: 调用的模型,默认为 ERNIE-Bot,也可以按需选择 ERNIE-Bot-4 等其他模型temperature: 模型输出的温度系数,控制输出的随机程度,取值范围是 0~1.0,且不能设置为 0。温度系数越低,输出内容越一致。'''chat_comp = qianfan.ChatCompletion()message = gen_wenxin_messages(prompt)resp = chat_comp.do(messages=message, model=model,temperature = temperature,system="你是一名个人助理-小鲸鱼")return resp["result"]result = get_completion("你好,介绍一下你自己", model="Yi-34B-Chat")
print(result)

备注:想要使用其他大模型的api可以参考:llm-universe/docs/C2/2. 使用 LLM API.md at main · datawhalechina/llm-universe (github.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣第一道困难题《3. 无重复字符的最长子串》,c++

目录 方法一: 方法二: 方法三: 方法四: 没有讲解,但给出了优秀题解 本题链接:4. 寻找两个正序数组的中位数 - 力扣(LeetCode) 话不多说,我们直接开始进行本题的思路解…

24/06/24(12.1117)指针进阶 ,冒泡和快排 习题为依托巩固概念(strlen,sizeof,字符串,数组,指针大小的区别)

回调函数 回过头来调用的函数 #include <stdio.h> #include <stdlib.h> int Find_Max(int arr[], int n){ int max_value arr[0]; for (int i 1; i < n; i){ if (max_value < arr[i]) max_value arr[i]; } return…

金榜题名升学宴,怀庄之醉鸿运添彩

十年寒窗苦读&#xff0c;终于迎来金榜题名的辉煌时刻。这是对知识的向往与追求&#xff0c;也是对未来的期许与梦想。在这样一个值得纪念的时刻&#xff0c;举办一场升学宴&#xff0c;无疑是对过去努力的最好告别&#xff0c;也是对未来人生新旅程的美好祝愿。在选择升学宴用…

大数据面试题之HBase(3)

HBase的预分区 HBase的热点问题 HBase的memstore冲刷条件 HBase的MVCC HBase的大合并与小合并&#xff0c;大合并是如何做的?为什么要大合并 既然HBase底层数据是存储在HDFS上&#xff0c;为什么不直接使用HDFS&#xff0c;而还要用HBase HBase和Phoenix的区别 HBase支…

Java怎么对线程池做监控

对Java线程池进行监控是确保系统性能和稳定性的重要部分。监控线程池可以帮助我们了解线程池的状态&#xff0c;如当前活跃线程数、任务队列长度、已完成任务数等。以下是一个详细的介绍和代码示例&#xff0c;说明如何对Java线程池进行监控。 1. 监控内容 &#xff08;1&…

Spring MVC数据绑定和响应——页面跳转(一)返回值为void类型的页面跳转

一、返回值为void类型的页面跳转到默认页面 当Spring MVC方法的返回值为void类型&#xff0c;方法执行后会跳转到默认的页面。默认页面的路径由方法映射路径和视图解析器中的前缀、后缀拼接成&#xff0c;拼接格式为“前缀方法映射路径后缀”。如果Spring MVC的配置文件中没有配…

1,Windows-本地Linux 系统(WSL)

目录 第一步电脑设置 第二步安装Ubuntu 第三文件传递 开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL)&#xff0c;开发人员可以安装 Linux 发行版&#xff08;例如 Ubuntu、OpenSUSE、Kali、Debian、Arc…

【子串】3. 无重复的最长子串

3. 无重复的最长子串 难度&#xff1a;中等难度 力扣地址&#xff1a;https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/ 题目看起来简单&#xff0c;刷起来有好几个坑&#xff0c;特此记录一下&#xff0c;解法比官网的更加简单&…

51单片机第10步_数组

本章重点介绍如何访问数组。 #include <REG51.h> //包含头文件REG51.h,使能51内部寄存器; #include <string.h> //使能strcpy(); #include <stdio.h> //包含头文件stdio.h //_getkey();从串口读入一个字符; //putchar();向串口发送一个字节; //printf()…

[OtterCTF 2018]Play Time

还是这个程序 。。要找到游戏名字查看 进程 psscan pstree pslist 0x000000007d686b30 Rick And Morty 3820 2728 0x000000000b59a000 2018-08-04 19:32:55 UTC0000 0x000000007d7cb740 LunarMS.exe 708 2728 0x00000000731cb000 2018-08-04 19:27:39 UTC0000…

《昇思25天学习打卡营第12天 | 昇思MindSpore基于MindSpore的GPT2文本摘要》

12天 本节学习了基于MindSpore的GPT2文本摘要。 1.数据集加载与处理 1.1.数据集加载 1.2.数据预处理 2.模型构建 2.1构建GPT2ForSummarization模型 2.2动态学习率 3.模型训练 4.模型推理

支持纳管达梦数据库,命令存储支持对接Elasticsearch 8,JumpServer堡垒机v3.10.11 LTS版本发布

2024年6月24日&#xff0c;JumpServer开源堡垒机正式发布v3.10.11 LTS版本。JumpServer开源项目组将对v3.10 LTS版本提供长期的支持和优化&#xff0c;并定期迭代发布小版本。欢迎广大社区用户升级至v3.10 LTS最新版本&#xff0c;以获得更佳的使用体验。 在JumpServer v3.10.…

Redis主从复制、哨兵模式以及Cluster集群

一.主从复制 1.主从复制的概念 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。默认情况下&#xff0c;…

More Effective C++ 35个改善编程与设计的有效方法笔记与心得 1

一. 基础议题 条款1&#xff1a;仔细区别 pointers 和 references ‌‌‌‌  这是一个常见的问题。指针&#xff08;pointers&#xff09;和引用&#xff08;references&#xff09;都是C面向对象编程中常用的概念&#xff0c;虽然他们在某些方面表现得很相似&#xff0c;但…

深入Symfony事件调度器:掌控应用程序的核心动力

&#x1f39a;️ 深入Symfony事件调度器&#xff1a;掌控应用程序的核心动力 &#x1f680; Symfony是一个高度灵活的PHP框架&#xff0c;以其组件化和可扩展性而闻名。在Symfony中&#xff0c;事件调度器&#xff08;Event Dispatcher&#xff09;是一个强大的工具&#xff0…

Github Page 使用手册(保姆级教程!)

搭建个人网站&#xff1f;没有服务器&#xff1f;那不如尝试一下 Github Page &#xff01; 最近我正好在搭建个人网站&#xff0c;于是就写一篇博客来详细介绍 Github Page 的使用、部署方式吧&#xff01; 一、进入 Github 访问&#xff1a;github.com 如果你没有 github…

Linux中彩色打印

看之前关注下公众号呗 第1部分&#xff1a;引言 1.1 Python在文本处理中的重要性 Python作为一种广泛使用的高级编程语言&#xff0c;以其简洁的语法和强大的功能在文本处理领域占有一席之地。无论是数据清洗、自动化脚本编写&#xff0c;还是复杂的文本分析&#xff0c;Py…

【第9章】MyBatis-Plus持久层接口之SimpleQuery

文章目录 前言一、使用步骤1.引入 SimpleQuery 工具类2.使用 SimpleQuery 进行查询 二、使用提示三、功能详解1. keyMap1.1 方法签名1.2 参数说明1.3 使用示例1.4 使用提示 2. map2.1 方法签名2.2 参数说明2.3 使用示例2.4 使用提示 3. group3.1 方法签名3.2 参数说明3.3 使用示…

RHCE四---web服务器的高级优化方案

一、Web服务器&#xff08;2&#xff09; 基于https协议的静态网站 概念解释 HTTPS&#xff08;全称&#xff1a;Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure&#xff0c;超文本传输安全协议&#xff09;&#xff0c;是以…

【Android】保留elevation层级效果,舍弃阴影效果

关于elevation属性 elevation是高度&#xff0c;海拔的意思 该属性可以设置View在父容器中的层级&#xff0c;即z属性 当view的elevation高于其它view时&#xff0c;它将显示在最上方&#xff0c;并产生阴影效果 关闭阴影效果 view的高度阴影&#xff0c;通过outlineProvi…