English | 中文
CSGHub SDK 是一个强大的 Python 客户端,专门设计用于与 CSGHub 服务器无缝交互。这个工具包旨在为 Python 开发者提供一个高效且直接的方法来操作和管理远程 CSGHub 实例。无论您是希望自动化任务、管理数据,还是将 CSGHub 功能集成到您的 Python 应用中,CSGHUB SDK 都提供了一整套功能,让您轻松实现目标。
仅需几行代码即可无缝快速切换模型下载地址至OpenCSG,提高模型下载速度。
轻松连接并与您的 Python 代码中的 CSGHub 服务器实例交互。
全面的 API 覆盖:完全访问 CSGHub 服务器提供的广泛功能,确保您可以执行广泛的操作。
用户友好:设计简单,使其对初学者友好,同时对高级用户来说足够强大。
高效的数据管理:简化在您的 CSGHub 服务器上管理和操作数据的过程。
自动化就绪:自动化重复任务和过程,节省时间并减少人为错误的可能性。
开源:深入源代码,贡献并自定义 SDK 以适应您的特定需求。
主要功能包括:
- 仓库下载(模型/数据集)
- 仓库信息查询(与huggingface兼容)
浏览器访问OpenCSG,点击右上角注册
完成用户注册过程,使用已经注册成功的用户和密码登录OpenCSG,登录成功后在账号设置
中找到Access Token
来获取token。
要开始使用 CSGHub SDK,请确保您的系统上安装了 Python。然后,您可以使用 pip 安装 SDK:
pip install csghub-sdk
安装后,您可以开始将 SDK 导入到您的 Python 脚本中,以连接到您的 CSGHub 服务器:
import os
from pycsghub.repo_reader import AutoModelForCausalLM, AutoTokenizer
os.environ['CSG_TOKEN'] = '3b77c98077b415ca381ded189b86d5df226e3776'
mid = 'OpenCSG/csg-wukong-1B'
model = AutoModelForCausalLM.from_pretrained(mid)
tokenizer = AutoTokenizer.from_pretrained(mid)
inputs = tokenizer.encode("Write a short story", return_tensors="pt")
outputs = model.generate(inputs)
print('result: ',tokenizer.batch_decode(outputs))
通过如下方式仅需将导入包名transformers
修改为pycsghub.repo_reader
并设置下载token,即可实现无缝快速切换模型下载地址
os.environ['CSG_TOKEN'] = 'token-of-your'
from pycsghub.repo_reader import AutoModelForCausalLM, AutoTokenizer
git clone https://github.com/OpenCSGs/csghub-sdk.git
cd csghub-sdk
pip install .
您可以使用pip install '.[train]'
来安装与模型和数据集相关的依赖,例如:
pip install '.[train]'
export CSG_TOKEN=your_access_token
# 模型下载
csghub-cli download wanghh2000/myprivate1
# 数据集下载
csghub-cli download wanghh2000/myds1 -t dataset
# 上传单个文件
csghub-cli upload wanghh2000/myprivate1 abc/3.txt
# 上传多个文件
csghub-cli upload wanghh2000/myds1 abc/4.txt abc/5.txt -t dataset
文件默认下载路径为~/.cache/csg/
from pycsghub.snapshot_download import snapshot_download
token = "your_access_token"
endpoint = "https://hub.opencsg.com"
repo_type = "model"
repo_id = 'OpenCSG/csg-wukong-1B'
cache_dir = '/Users/hhwang/temp/'
result = snapshot_download(repo_id, repo_type=repo_type, cache_dir=cache_dir, endpoint=endpoint, token=token,)
from pycsghub.snapshot_download import snapshot_download
token = "your_access_token"
endpoint = "https://hub.opencsg.com"
repo_id = 'AIWizards/tmmluplus'
repo_type = "dataset"
cache_dir = '/Users/xiangzhen/Downloads/'
result = snapshot_download(repo_id, repo_type=repo_type, cache_dir=cache_dir, endpoint=endpoint, token=token)
使用file_download
封装接口进行单文件下载
from pycsghub.file_download import file_download
token = "your_access_token"
endpoint = "https://hub.opencsg.com"
repo_type = "model"
repo_id = 'OpenCSG/csg-wukong-1B'
cache_dir = '/home/test/'
result = file_download(repo_id, file_name='README.md', cache_dir=cache_dir, endpoint=endpoint, token=token, repo_type=repo_type)
使用http_get
接口进行单文件下载
from pycsghub.file_download import http_get
token = "your_access_token"
url = "https://hub.opencsg.com/api/v1/models/OpenCSG/csg-wukong-1B/resolve/tokenizer.model"
local_dir = '/home/test/'
file_name = 'test.txt'
headers = None
cookies = None
http_get(url=url, token=token, local_dir=local_dir, file_name=file_name, headers=headers, cookies=cookies)
from pycsghub.file_upload import http_upload_file
token = "your_access_token"
endpoint = "https://hub.opencsg.com"
repo_type = "model"
repo_id = 'wanghh2000/myprivate1'
result = http_upload_file(repo_id, endpoint=endpoint, token=token, repo_type='model', file_path='test1.txt')
from pycsghub.file_upload import http_upload_file
token = "your_access_token"
endpoint = "https://hub.opencsg.com"
repo_type = "model"
repo_id = 'wanghh2000/myprivate1'
repo_files = ["1.txt", "2.txt"]
for item in repo_files:
http_upload_file(repo_id=repo_id, repo_type=repo_type, file_path=item, endpoint=endpoint, token=token)
在开始之前,请确保您已安装 Git-LFS(安装说明请参见 这里)。
from pycsghub.repository import Repository
token = "your access token"
r = Repository(
repo_id="wanghh2003/ds15",
upload_path="/Users/hhwang/temp/bbb/jsonl",
user_name="wanghh2003",
token=token,
repo_type="dataset",
)
r.upload()
huggingface的transformers库支持直接输入huggingface上的repo_id以下载并读取相关模型,如下列所示:
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('model/repoid')
在这段代码中,hf的transformer库首先下载模型到本地cache文件夹中,然后读取配置,并通过反射到相关类进行加载的方式加载模型。
CSGHub SDK v0.2版本为了兼容huggingface也提供用户最常用的功能,模型下载与加载。并可以通过如下的方式进行模型下载与加载
# 注意首先要进行环境变量设置,因为下载需要token,下述api的调用,会直接在环境变量中查找相应的token。
# import os
# os.environ['CSG_TOKEN'] = 'token_to_set'
from pycsghub.repo_reader import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained('model/repoid')
这段代码首先:
-
调用CSGHub SDK库的
snapshot_download
下载相关文件。 -
通过动态批量类生成与类名反射机制,批量创建大量与transformers自动类加载的重名类。
-
为其赋予from_pretrained方法,这样读取出来的模型即为hf-transformers模型。
- 数据集下载
- 使用命令行工具的方式与CSGHub交互
- CSGHub仓库的创建、修改等管理操作
- 模型本地或在线部署
- 模型本地或在线微调
- 模型发布到远程托管仓库