# CapAI-1006: 基于ChatGLM3的先进语言模型

CapAI-1006是FWERKOR团队开发的一款先进的开源语言模型，基于ChatGLM3架构，旨在提供高质量的文本生成和理解能力。这个模型在自然语言处理（NLP）领域展示了卓越的性能，支持广泛的应用，从聊天机器人到文本分析，再到语义搜索等。

## 核心特性

### 基于GLM的架构

CapAI-1006采用了基于GLM（Guided Language Model）的架构，这是一种先进的语言模型架构，可以有效地理解和生成自然语言文本。GLM通过大量的文本数据学习语言的深层结构和语义，使CapAI-1006能够生成流畅、自然且符合语境的文本。

### 高性能处理能力

模型支持最大8K tokens，这意味着CapAI-1006能够处理相当长的文档，提供深入的文本分析和生成能力。这种高性能的处理能力使得CapAI-1006特别适用于需要理解和生成大量文本的应用场景。

### 开源与可访问性

CapAI-1006是一个完全开源的项目，使研究人员和开发者能够自由地访问和修改模型代码，促进了技术的创新和应用的扩展。模型可在FWERKOR的官方网站ai.fwerkor.com体验，提供了一个易于使用的界面，使用户能够轻松地探索模型的功能。

## 应用场景

### 聊天机器人

利用其先进的文本生成能力，CapAI-1006能够驱动聊天机器人，提供流畅且自然的用户交互体验。无论是客服支持、教育辅导还是娱乐对话，CapAI-1006都能够提供高效且人性化的解决方案。

### 文本分析

CapAI-1006的深入文本理解能力使其成为文本分析应用的理想选择。从情感分析、主题检测到内容摘要，CapAI-1006能够提供深层次的洞察，帮助用户从大量文本中提取有价值的信息。

### 语义搜索

CapAI-1006能够理解查询的深层语义，提供与查询语意高度相关的搜索结果。这不仅限于关键字匹配，而是通过深入理解内容的语境和含义，大大提高了搜索的准确性和相关性。

## 使用方式

### 官方API和体验

FWERKOR团队官方提供的ai.fwerkor.com平台可进行体验和API调用。

### 自行部署

CapAI-1006是一个轻量化的AI对话模型，可以在性能有限的硬件上运行，显存占用约12GB。

如果你有多张 GPU，但是每张 GPU 的显存大小都不足以容纳完整的模型，那么可以将模型切分在多张GPU上。首先安装 accelerate: ```pip install accelerate``` ，然后即可正常加载模型。

#### Python调用

以下是一个简单的示例。

```Python
>> > from transformers import AutoTokenizer, AutoModel #需安装transformers库
>> > tokenizer = AutoTokenizer.from_pretrained("fwerkor/capai-1006", trust_remote_code=True)
>> > model = AutoModel.from_pretrained("fwerkor/capai-1006", trust_remote_code=True, device='cuda')
>> > model = model.eval()
>> > response, history = model.chat(tokenizer, "你好", history=[])
>> > print(response)
您好，我是你的人工智能助手。请问有什么我可以帮助您的吗？
>> > response, history = model.chat(tokenizer, "常州有哪些好玩的地方", history=history)
>> > print(response)
您好，常州是一个历史悠久、文化底蕴深厚的城市，有很多值得一游的景点和活动。以下是一些常州市内比较受欢迎的旅游景点和活动:
1.天宁寺:位于常州市中心，是常州市最著名的佛教寺庙之一，也是常州的文化地标之一。
2.常州博物馆:位于常州市文化广场，是一个集历史文化展示、科普教育为一体的综合性博物馆。
3.前后楼:位于常州市天宁区，是一对古老的建筑，前后相接，形成了一个独特的建筑群体。
4.红梅公园:位于常州市新北区的红梅广场，是一个集自然景观、文化底蕴和休闲娱乐为一体的城市公园。
5.常州科技馆:位于常州市新北区的文化路，是一个以科技为主题的综合性博物馆。
6.横山公园:位于常州市新北区的横山河边，是一个以自然景观和生态环保为主题的公园。
除此之外，常州还有很多其他好玩的地方，例如天宁区、武进区、新北区等各个区域的景点和活动，您可以根据自己的兴趣和时间来选择适合自己的旅游方式和目的地。
```

#### DEMO部署

可参考ChatGLM代码。

## 微调

为方便进行微调，FWERKOR对llama-factory及其llama-board进行了封装。

以下是docker-compose代码

```docker compose
version: '1.0'

services:
  llama-board:
    image: registry.hf.space/fwerkor-llama-board:latest
    platform: linux/amd64
    restart: unless-stopped
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=compute,utility
    ports:
      - "7860:7860"
    volumes:
      - ./files:/files
    command: python app.py
```

使用前需预先进行一些配置，以便docker使用Nvidia GPU。
{"language": ["zh"], "license": "apache-2.0"}
transformers safetensors chatglm feature-extraction custom_code zh license:apache-2.0 region:us