本地部署 CodeLlama 并在 VSCode 中使用 CodeLlama

本地部署 CodeLlama 并在 VSCode 中使用 CodeLlama

  • 1. CodeLlama 是什么
  • 2. CodeLlama Github 地址
  • 3. 下载 CodeLlama 模型
  • 4. 部署 CodeLlama
  • 5. 在 VSCode 中使用 CodeLlama
  • 6. 使用WSGI启动服务
  • 7. 创建 `start.sh` 启动脚本

1. CodeLlama 是什么

Code Llama 是一个基于 Llama 2 的大型代码语言模型系列,在开放模型、填充功能、对大输入上下文的支持以及编程任务的零样本指令跟踪能力中提供最先进的性能。我们提供多种风格来覆盖广泛的应用:基础模型 (Code Llama)、Python 专业化 (Code Llama - Python) 和指令跟随模型 (Code Llama - Instruct),每个模型都有 7B、13B 和 34B 参数。所有模型均在 16k 个标记序列上进行训练,并在最多 100k 个标记的输入上显示出改进。 7B 和 13B Code Llama 和 Code Llama - 指令变体支持基于周围内容的填充。 Code Llama 是通过使用更高的代码采样对 Llama 2 进行微调而开发的。

2. CodeLlama Github 地址

https://github.com/facebookresearch/codellama

3. 下载 CodeLlama 模型

要下载模型权重和标记器,请访问 Meta AI 网站并接受他们的许可证。

一旦您的请求获得批准,您将通过电子邮件收到签名的 URL。然后运行 ​​download.sh 脚本,并在提示开始下载时传递提供的 URL。确保复制 URL 文本本身,右键单击 URL 时不要使用“复制链接地址”选项。如果复制的 URL 文本以:https://download.llamameta.net 开头,则您复制正确。如果复制的 URL 文本以:https://l.facebook.com 开头,则您复制的方式错误。

4. 部署 CodeLlama

创建虚拟环境,

conda create -n codellama python==3.10 -y
conda activate codellama

克隆代码,

git clone https://github.com/facebookresearch/codellama.git; cd codellama

安装依赖,

pip install -e .

5. 在 VSCode 中使用 CodeLlama

下载 llamacpp_mock_api.py

cd codellama
wget https://raw.githubusercontent.com/xNul/code-llama-for-vscode/main/llamacpp_mock_api.py

启动 llamacpp_mock_api.py

torchrun --nproc_per_node 1 llamacpp_mock_api.py \--ckpt_dir CodeLlama-7b-Instruct/ \--tokenizer_path CodeLlama-7b-Instruct/tokenizer.model \--max_seq_len 512 --max_batch_size 4

VSCode 安装 Continue 插件,使用浏览器打开 Continue VSCode extension,单击 Install,
在这里插入图片描述
VSCode 中打开 Continue,输入 /config,修改 models 的配置如下,

在这里插入图片描述
然后就可以在 Continue 的对话框和 CodeLlama 对话了,

在这里插入图片描述

6. 使用WSGI启动服务

安装 gevent 库,

pip install gevent

修改代码,

vi llamacpp_mock_api.py---# Run the Flask API server.# app.run(port=port)server = pywsgi.WSGIServer(('0.0.0.0', port), app)server.serve_forever()
---

7. 创建 start.sh 启动脚本

创建 start.sh 启动脚本,

cat << "EOF" > start.sh
eval "$(conda shell.bash hook)"
conda activate codellama
torchrun --nproc_per_node 1 llamacpp_mock_api.py \--ckpt_dir CodeLlama-7b-Instruct/ \--tokenizer_path CodeLlama-7b-Instruct/tokenizer.model \--max_seq_len 512 --max_batch_size 4
EOF

运行 start.sh 启动脚本,

chmod +x ./start.sh
./start.sh

完结!

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

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

相关文章

Navicat 强大的数据模型功能 | 面向数据库设计、架构和数据资产梳理等使用场景

数据模型是用来描述数据、组织数据和对数据进行操作的一组概念和定义。根据不同的应用需求&#xff0c;数据模型可以分为概念模型、逻辑模型和物理模型。这些数据模型帮助数据库设计人员设计和管理数据库&#xff0c;以满足用户的需求。 Navicat 强大的数据模型功能主要适用于…

Linux内核源码分析 (A)常见内核面试题

Linux内核源码分析 (A)常见内核面试题 文章目录 Linux内核源码分析 (A)常见内核面试题调用 schedule() 进行进程切换的方式有几种CFS调度器vruntime的计算方式 网站收集面试题集合1 调用 schedule() 进行进程切换的方式有几种 系统调用 do_fork()&#xff1a;copy_process()定…

用idea查看sqlite数据库idea sqlite

1、安装Database Navigator插件 2、导入数据库并查看 3、删除数据库连接 在此做个笔记

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析

LabVIEW液压支架控制系统的使用与各种配置的预测模型的比较分析 模型预测控制在工业中应用广泛。这种方法的优点之一是在求解最优控制问题时能够明确考虑对输入和输出状态施加的约束。控制对象模型用于有限时间范围内最优控制的实时计算。所使用的数学设备允许从具有单输入和单…

WordPress(3)会员插件安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、服务器中上传插件二、使用步骤1.启动插件前言 提示:会员插件的安装不能在网站后台插件中心中直接安装原因我还没有排查 原因:会导致网站停止运行 一、服务器中上传插件 二、使用步骤 …

天津专业大数据培训班 教你分析大数据行业前景

大数据分析是IT行业挺火的词汇&#xff0c;围绕大数据分析产生的数据仓库、数据安全、数据挖掘等商业价值也渐渐地被挖掘了出来&#xff0c;大数据时代渐渐来临...... 大数据是什么 随着科技的发展&#xff0c;尤其是互联网的深入&#xff0c;新兴了大数据这个行业&#xff0…

数据结构day05(单链表)

今日任务&#xff1a; 思维导图&#xff1a; 实现 代码&#xff1a;&#xff08;多文件&#xff09; head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <string.h> #include <stdlib.h> typedef int datatype;typedef struct Lin…

java八股文面试[数据库]——MySQL索引的数据结构

知识点&#xff1a; 【2023年面试】mysql索引的基本原理_哔哩哔哩_bilibili 【2023年面试】mysql索引结构有哪些&#xff0c;各自的优劣是什么_哔哩哔哩_bilibili

SIEM中的安全事件管理

组织经常面临意外和未知的安全威胁&#xff0c;无论威胁的级别、类型或大小如何&#xff0c;它们的存在都会对企业的整体运作产生冲击&#xff0c;事件管理是尽快识别和响应这些中断以最大程度地减少其对日常业务运营的影响的过程。 什么是安全事件 安全事件是指示对组织网络…

Linux中创建文件夹,删除文件夹

Linux中创建目录&#xff1a;mkdir 文件夹&#xff0c; 比如&#xff1a;mkdir test 删除文件夹&#xff1a;rm -rf 文件夹&#xff0c; 比如&#xff1a;rm -rf soft vi强制不保存退出命令&#xff1a;q&#xff01;

python“魂牵”京东商品历史价格数据接口(含代码示例)

要通过京东的API获取商品详情历史价格数据&#xff0c;您可以使用京东开放平台提供的接口来实现。以下是一种使用Java编程语言实现的示例&#xff0c;展示如何通过京东开放平台API获取商品详情历史价格数据&#xff1a; 首先&#xff0c;确保您已注册成为京东开放平台的开发者…

1、Nginx 简介

文章目录 1、Nginx 简介1.1 Nginx 概述1.2 Nginx 作为 web 服务器1.3 正向代理1.4 反向代理1.5 负载均衡1.6 动静分离 【尚硅谷】尚硅谷Nginx教程由浅入深 志不强者智不达&#xff1b;言不信者行不果。 1、Nginx 简介 1.1 Nginx 概述 Nginx (“engine x”) 是一个高性能的 HT…