codeshell安装配置
codeshell安装配置
- 1 注意事项
- 1.1 Python版本问题
- 2 codeshell环境搭建
- 2.1 codeshell使用软件各版本
- 2.2 软件下载
- 2.3 codeshell使用环境安装
- 2.3.1 python-3.10.9-amd64.exe安装
- 2.3.2 Anaconda3-2022.10-Windows-x86_64.exe安装
- 2.3.3 创建环境
- 2.3.4 Pytorch安装
- 2.3.5 transformers
- 3 下载codeshell模型
- 4 codeshell使用
- 注意:这里是在py310环境使用的,所以需要先激活py310环境。
- 4.1 Web UI
- 4.2 CLI Demo
- 5 总结
1 注意事项
1.1 Python版本问题
codeshell
推荐使用的python
版本是3.8以上,但是最好不要选择最新版本的,否则可能会在配置pytorch
环境时,报环境不兼容的错误。
这里使用目前最新版本python=3.12后,错误信息如下:
(py312) C:\Users\lc>conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: unsuccessful attempt using repodata from current_repodata.json, retrying with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: |
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failedUnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:Specifications:- torchaudio -> python[version='>=2.7,<2.8.0a0|>=3.5,<3.6.0a0']- torchaudio -> python[version='>=3.10,<3.11.0a0|>=3.11,<3.12.0a0|>=3.9,<3.10.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0']- torchvision -> python[version='>=3.10,<3.11.0a0|>=3.8,<3.9.0a0|>=3.9,<3.10.0a0|>=3.11,<3.12.0a0|>=3.7,<3.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']Your python: python=3.12If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.The following specifications were found to be incompatible with each other:Output in format: Requested package -> Available versionsPackage pytorch-cuda conflicts for:
torchvision -> pytorch==2.1.0 -> pytorch-cuda[version='>=11.6,<11.7|>=11.7,<11.8|>=11.8,<11.9|>=12.1,<12.2']
torchaudio -> pytorch==2.1.0 -> pytorch-cuda[version='>=11.6,<11.7|>=11.7,<11.8|>=11.8,<11.9|>=12.1,<12.2']
torchaudio -> pytorch-cuda[version='11.6.*|11.7.*|11.8.*|12.1.*']
torchvision -> pytorch-cuda[version='11.6.*|11.7.*|11.8.*|12.1.*']Package setuptools conflicts for:
python=3.12 -> pip -> setuptools
pytorch -> jinja2 -> setuptools
torchvision -> setuptoolsPackage flit-core conflicts for:
torchvision -> typing_extensions -> flit-core[version='>=3.6,<4']
pytorch -> typing_extensions -> flit-core[version='>=3.6,<4']Package pytorch conflicts for:
torchvision -> pytorch[version='1.10.0|1.10.1|1.10.2|1.11.0|1.12.0|1.12.1|1.13.0|1.13.1|2.0.0|2.0.1|2.1.0|1.9.1|1.9.0|1.8.1|1.8.0|1.7.1|1.7.0|1.6.0|1.5.1']
torchaudio -> pytorch[version='1.10.0|1.10.1|1.10.2|1.11.0|1.12.0|1.12.1|1.13.0|1.13.1|2.0.0|2.0.1|2.1.0|1.9.1|1.9.0|1.8.1|1.8.0|1.7.1|1.7.0|1.6.0']Package requests conflicts for:
torchvision -> requests
python=3.12 -> pip -> requests
2 codeshell环境搭建
codeshell地址:https://github.com/WisdomShell/codeshell
codeshell使用环境:
- python 3.8 and above【python 3.8以上】
- pytorch 2.0 and above are recommended【pytorch 建议2.0以上】
- transformers 4.32 and above【transformers 4.32以上】
- CUDA 11.8 and above are recommended (this is for GPU users, flash-attention users, etc.)【CUDA 11.8以上(可选)】
2.1 codeshell使用软件各版本
- python-3.10.9-amd64.exe【这里选择的是2022年的版本】
- Anaconda3-2022.10-Windows-x86_64.exe【用于安装管理Pytorch,这里选择的是2022年最后一个版本】
- Pytorch【根据实际情况而定】
- transformers【默认最新版】
2.2 软件下载
- python-3.10.9-amd64.exe
- 下载地址:https://www.python.org/downloads
- 选择如图所示下载
2. Anaconda3-2022.10-Windows-x86_64.exe
- 下载地址:清华开源镜像anaconda
- 选择如图所示下载
3. Pytorch【非安装包的形式,不用下载】
4. transformers【非安装包的形式,不用下载】
2.3 codeshell使用环境安装
2.3.1 python-3.10.9-amd64.exe安装
- 选择自定义安装,并勾选使用管理员权限安装和将
python.exe
加入到环境。
- 设置自定义安装位置
- 验证安装结果
cmd
命令弹窗,输入python
,点击回车,看到下图,则安装python
成功。
2.3.2 Anaconda3-2022.10-Windows-x86_64.exe安装
- 选择
Just Me
- 自定义安装路径
- 只勾选
Register
,然后点击Install
。
- 去除这两个勾选,然后点击
Finish
。
2.3.3 创建环境
1.查看Python版本
cmd
打开命令行,输入python --version
,查验python
版本。
2. 打开Anaconda Prompt
页面,输入指令conda create -n py310 python=3.10
(这里每个人不一样,要根据查出来的版本做修改。)
3. 看见如下图的示例,表示环境创建完毕。
4. 最后conda activate py310
激活环境,看到左下角改变为py310
,代表进入该环境。
5. 其他命令
- 退出激活的环境,conda deactivate
。
- 查看虚拟环境列表,conda env list
。
- conda
删除环境,conda remove -n
需要删除的环境名 --all。
到这里,就代表anaconda
的安装配置全部完成。
2.3.4 Pytorch安装
- conda配置
- 更换镜像源地址,以下是清华大学镜像源地址:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
- 把连接超时的时间设置成
40s
,读取超时的时间修改成100s
conda config --set remote_connect_timeout_secs 40
conda config --set remote_read_timeout_secs 100
- 配置文件位置:
C:\Users\liuch\.condarc
channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/- defaults
show_channel_urls: true
remote_connect_timeout_secs: 40.0
remote_read_timeout_secs: 100.0
注意:需要把 - defaults
删掉。
- 查看本机的
CUDA
版本
cmd
命令行输入nvidia-smi
,在第一行最右边可以看到CUDA
的版本号。
- 点击进入Pytorch官网,然后下拉至如图所示位置,只需保证系统和电脑匹配,
CUDA
版本小于本机CUDA
版本,调整结束后,复制红框中的指令。conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
4. 打开Anaconda Prompt
,激活py310环境(conda activate py310
),然后粘贴上一步的指令,回车执行。
5. 如果报OpenSSL
错误
(py310) C:\Users\liuch>conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
Collecting package metadata (current_repodata.json): failedCondaSSLError: OpenSSL appears to be unavailable on this machine. OpenSSL is required to
download and install packages.Exception: HTTPSConnectionPool(host='conda.anaconda.org', port=443): Max retries exceeded with url: /pytorch/win-64/current_repodata.json (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))
可去 https://slproweb.com/products/Win32OpenSSL.html 下载安装包,注意最好下载Win64 OpenSSL v1.1.1w Light
的EXE
,也就是低版本的,因为v3.x
的安装后依旧报错。
6. 输入y确认,回车。
7. 等待安装直到左上角出现done
【下载依赖较多,耗时较长】。
8. 输入pip list
,查看安装了哪些包。
9. 输入python
进入环境,输入import torch
,无报错代表导入成功(这里要等待一段时间)。
10. 输入torch.cuda.is_available()
查看torch
是否可以使用显卡,True
代表可以。
至此,Pytorch
安装完毕。
2.3.5 transformers
安装最新版本:
pip install transformers
指定版本(推荐):
pip install transformers==4.34.0
输入pip list
,查看安装了哪些包。
至此,codeshell
环境安装完毕。
3 下载codeshell模型
在第二部分主要是搭建了codeshell
使用环境,但是本地还没有最底层的模型文件,所以需要单独下载模型文件,才能真正使用codeshell
。
目前有四个开源的模型如下:
- CodeShell Base:
CodelShell
底座模型,具有强大的代码基础能力。 - CodeShell Chat:
CodelShell
对话模型,在代码问答、代码补全等下游任务重性能优异。 - CodeShell Chat 4bit:
CodelShell
对话模型4bit量化版本,在保证模型性能的前提下内存消耗更小,速度更快。 - CodeShell CPP:
CodelShell
对话模型CPP
版本,支持开发者在没有GPU
的个人电脑中使用。注意,CPP
版本同样支持量化操作,用户可以在最小内存为8G的个人电脑中运行CodelShell
。
其中有三个模型是在huggingface
上托管:
WisdomShell/CodeShell-7B
:对应CodeShell Base
。WisdomShell/CodeShell-7B-Chat
:对应CodeShell Chat
。WisdomShell/CodeShell-7B-Chat-int4
:对应CodeShell Chat 4bit
。
所以需要从huggingface上下载下来。
git lfs install
git clone https://huggingface.co/WisdomShell/CodeShell-7B-Chat
4 codeshell使用
注意:这里是在py310环境使用的,所以需要先激活py310环境。
conda activate py310
4.1 Web UI
通过下列命令启动Web
服务,服务启动后,可以通过https://127.0.0.1:8000
进行访问。
python demos/web_demo.py
- 如果报错提示缺少相关依赖模块,使用
pip install +模块名称
下载安装即可,例如报下错误:
(py310) E:\Python\codeshell>python demos/web_demo.py
Traceback (most recent call last):File "E:\Python\codeshell\demos\web_demo.py", line 28, in <module>import gradio as gr
ModuleNotFoundError: No module named 'gradio'
则需要安装相关依赖,然后重新启动:
pip install gradio
- 如果提示连接不上
https://huggingface.co
,需要开代理,或者将model下载到本地。
4.2 CLI Demo
python demos/cli_demo.py
5 总结
-
耗内存
在4.1 Web UI
和4.2 CLI Demo
使用时,可以看到占用内存16943MB,即16.54GB。
-
响应慢
根据问题写代码时,很慢。 -
准确性 尚可
- golang语言实现,输入一个英文句子,反转句子中单词的顺序,但单词内的字符顺序不变,简单起见,标点符号和普通单词一样处理。
package mainimport ("fmt""strings" )func reverseWords(s string) string {words := strings.Fields(s)for i, j := 0, len(words)-1; i < j; i, j = i+1, j-1 {words[i], words[j] = words[j], words[i]}return strings.Join(words, " ") }func main() {s := "the weather is nice today."fmt.Println(reverseWords(s)) }
- golang语言使用两个协程交替打印数字和字母。
package mainimport ("fmt""time" )func main() {// 创建两个协程go printNumber()go printLetter()// 阻塞,直到协程完成for {// 休眠一段时间time.Sleep(1 * time.Second)} }func printNumber() {for i := 0; i < 10; i++ {fmt.Printf("%d ", i)time.Sleep(1 * time.Second)} }func printLetter() {for i := 'a'; i < 'z'; i++ {fmt.Printf("%c ", i)time.Sleep(1 * time.Second)} }
-
其他
未测
个人目前觉得在配置较高的电脑运行可能会比较流畅,个人使用体验不是很好。
相关文章:

codeshell安装配置
codeshell安装配置 1 注意事项1.1 Python版本问题 2 codeshell环境搭建2.1 codeshell使用软件各版本2.2 软件下载2.3 codeshell使用环境安装2.3.1 python-3.10.9-amd64.exe安装2.3.2 Anaconda3-2022.10-Windows-x86_64.exe安装2.3.3 创建环境2.3.4 Pytorch安装2.3.5 transforme…...

mfc140u.dll丢失的详细解决方法,最详细修复mfc140u.dll丢失的办法分享
在计算机技术日益发展的今天,我们不可避免地会遇到各种各样的技术问题。其中,“MFC140U.DLL丢失”是一个常见的错误,它可能会影响我们的电脑性能和软件运行。本文将详细介绍四种解决“MFC140U.DLL丢失”问题的方法。 首先,我们需…...
CMake
文章目录 前言一、快速开始编译C/C代码1. 只有源码的项目2. 包含库的项目3. 编译成库给他人使用使用cmake的流程1. 生成构建系统2. 执行构建3. 执行测试4. 安装 && 打包 二、cmake 语法简介1 变量2 条件语句3 脚本命令**消息打印****if-else**:**list命令**:…...

互联网Java工程师面试题·Spring篇·第二弹
目录 3、Beans 3.1、什么是 spring bean? 3.2、spring 提供了哪些配置方式? 3.3、spring 支持集中 bean scope? 3.4、spring bean 容器的生命周期是什么样的? 3.5、什么是 spring 的内部 bean? 3.6、什么是 spri…...

AM@两种余项型泰勒公式的对比和总结@常用函数的麦克劳林公式
文章目录 abstract两种余项型泰勒公式的对比和总结Maclaurin公式常用函数的Maclaurin公式推导例求极限按幂展开 abstract 泰勒公式的两种余项型(Penao&Lagrange)泰勒公式的对比和总结常用的Maclaurin公式列举(Peano余项型为主) 两种余项型泰勒公式的对比和总结 Taylor公式…...

Django实现音乐网站 (22)
使用Python Django框架做一个音乐网站, 本篇音乐播放器功能完善:顺序播放、设置播放数、歌词滚动等功能。 目录 顺序播放 设置顺序播放 单曲播放数 添加路由 视图处理 模板处理 歌词滚动 视图内容返回修改 样式设置 模板内容 歌词滚动脚本 歌…...
pnpm ERR_PNPM_ADDING_TO_ROOT
ERR_PNPM_ADDING_TO_ROOT Running this command will add the dependency to the workspace root, which might not be what you want - if you really meant it, make it explicit by running this command again with the -w flag (or --workspace-root). If you don’t wa…...
统计学习方法 拉格朗日对偶性
文章目录 统计学习方法 拉格朗日对偶性原始问题对偶问题原始问题和对偶问题的关系 统计学习方法 拉格朗日对偶性 读李航的《统计学习方法》时,关于拉格朗日对偶性的笔记。 在许多统计学习的约束最优化问题中,例如最大熵模型和支持向量机,常…...

.rancher-pipeline.yml
一、注意点 其实下文二的image是基于这个镜像作为基础镜像在这个镜像中执行打包,shellScript 当前路径是你代码块与上图settings.xml,图中的settings.xml可以替换下你当前镜像的settings.xml 示例 二、.rancher-pipeline.yml ${CICD_GIT_BRANCH}这些从官…...

RK3588平台开发系列讲解(显示篇)MIPI DSI协议介绍之分层
🚀返回专栏总目录 文章目录 一、MIPI DSI 分层1.1、应用层1.2、协议层1.3、链路层1.4、物理层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 DSI 全称是 Display Serial Interface,是主控和显示模组之间的串行连接接口。 MIPI DSI 接口分为数据线和时钟线,均为…...

前端学成在线项目详细解析三
19-推荐课程-内容样式 HTML结构 <ul><li><a href"#"><div class"pic"><img src"./uploads/course01.png" alt""></div><div class"text"><h4>JavaScript数据看板项目实战…...

使用Kali进行实验---主机发现
主机发现 【实训目的】 掌握主机扫描的工作原理,学会使用ping等扫描工具,发现网络当中活跃的主机。 【场景描述】 在虚拟机环境下配置4个虚拟系统“Win XP1” “Win XP2” “Kali Linux”和“Metasploitable2”,使得4个系统之间能够相互通…...
美团笔试真题2023第一场(4题)
点评: 题目总体来说偏向于中下难度 1.字符串前缀 题目描述: 现在有两个字符串S和T,你需要对S进行若干次操作,使得S是T的一个前缀(空串也是一个前缀)。每次操作可以修改S的一个字符,或者删除一个…...
PHP explode (多)分隔符(delimiters) 使用
PHP explode (多)分隔符(delimiters) 使用 问题:[https://blog.csdn.net/YBaog?typeblog] 把链接中所有的字符串取出。 ㊙️ 神秘算法 ㊙️ function multi_explode($delimiters, $string) {$data [];if ($string) {$str str_replace($delimiters, $delimiter…...

AI的Prompt是什么
一.AI的Prompt的作用 在人工智能(AI)中,"Prompt"通常指的是向AI系统提供的输入或指令,用于引导AI进行特定的操作或生成特定的输出。例如,在一个对话型AI系统中,用户输入的问题就是一个prompt&…...

Qt之自定义model读写CSV文件
一.效果 本文基于QAbstractTableModel实现了一个支持读写CSV文件的TableModel。CSV数据格式虽然很简单,但是网上大多数读写方式其实都是有bug的,没考虑到字段里包含逗号或换行符这种复杂数据的情况。 二.原理 CSV(Comma-Separated Values)文件是一种简单类型的纯文本文件…...

golang 工程组件:grpc-gateway 环境安装+默认网关测试
grpc-gateway grpc-gateway 顾名思义是专门是grpc的网关。也是一个protobuf的编译器,是一个proto的插件。 grpc-gateway就是将http请求处理后转发到对应grpc服务上。很多浏览器,或者客户端开箱不支持grpc,只支持传统的restful API。 grpc网关…...

IP地址SSL证书 IP证书
在许多企业用例中,公司需要SSL证书作为IP地址。公司使用IP地址通过Internet访问各种类型的应用程序。 公网IP地址的SSL证书: 内部IP(也称为私有IP)是IANA设置为保存的IPv4或IPv6地址,例如: RFC 1918范围内…...
MVCC 过程中会加锁吗?
MVCC 机制,全称(Multi-Version Concurrency Control)多版本并发控制,是确保 在高并发下, 多个事务读取数据时不加锁也可以多次读取相同的值。 MVCC 在读已提交(READ COMMITTED)、可重复读&…...

NLP入门——语言结构/语言建模
一、Linguistics 语言学 wordsmorphology 形态学:词的构成和内部结构研究。如英语的dog、dogs和dog-catcher有相当的关系morpheme 语素:最小的语法单位,是最小的音义结合体lexeme 词位:词的意义的基本抽象单位,是一组…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...