Text Generation
Transformers
Chinese
English
llama
fireballoon's picture
Create README.md
ab2507a
|
raw
history blame
7.56 kB
---
language:
- zh
- en
pipeline_tag: text-generation
inference: false
datasets:
- anon8231489123/ShareGPT_Vicuna_unfiltered
- QingyiSi/Alpaca-CoT
- mhhmm/leetcode-solutions-python
---
# baichuan-vicuna-chinese-7b-gptq
使用[AutoGPTQ](https://github.com/PanQiWei/AutoGPTQ)量化的[baichuan-vicuna-chinese-7b](https://huggingface.co/fireballoon/baichuan-vicuna-chinese-7b)。使用7G显存实现模型推理。
[baichuan-vicuna-chinese-7b](https://huggingface.co/fireballoon/baichuan-vicuna-chinese-7b) quantized with [AutoGPTQ](https://github.com/PanQiWei/AutoGPTQ).
# Quantize config
```
{
"bits": 4,
"group_size": 128,
"damp_percent": 0.01,
"desc_act": true,
"sym": true,
"true_sequential": true,
"model_name_or_path": null,
"model_file_base_name": null
}
```
# Inference
```ipython
>>> from transformers import AutoTokenizer, TextStreamer
>>> from auto_gptq import AutoGPTQForCausalLM
>>> tokenizer = AutoTokenizer.from_pretrained("fireballoon/baichuan-vicuna-chinese-7b-gptq", use_fast=False)
>>> model = AutoGPTQForCausalLM.from_pretrained("fireballoon/baichuan-vicuna-chinese-7b-gptq").cuda()
>>> streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
>>> instruction = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. USER: {} ASSISTANT:"
>>> prompt = instruction.format("How can I improve my time management skills?") # user message
>>> generate_ids = model.generate(input_ids=tokenizer(prompt, return_tensors='pt').input_ids.cuda(), max_new_tokens=2048, streamer=streamer)
'''
To improve your time management skills, you should first identify your priorities and set goals for each day. Then, create a schedule that allows you to allocate time to each task. Finally, prioritize your tasks and stick to your schedule.
'''
```
# Test cases on [Ziya-Eval-Chinese](https://huggingface.co/datasets/IDEA-CCNL/Ziya-Eval-Chinese)
```
Q: 小明有200元,买书花了66元,买文具花了12元,小明剩下的钱比原来少了多少元?
A: 小明剩下的钱比原来少了66+12=78元。
Q: 请翻译这段英文:Timmy was fined a large sum of money by the judge for drunken driving·
A: Timmy因醉驾被法官处以巨额罚款。
Q: 贝多芬和柴可夫斯基在风格上有什么差异吗
A: 贝多芬和柴可夫斯基都是古典音乐作曲家,但他们的风格在某些方面存在差异。贝多芬以其严肃、庄重、深沉的音乐风格而闻名,他的音乐常常具有内省和情感深度。柴可夫斯基则以其华丽、优雅、精致的音乐风格而闻名,他的音乐常常具有戏剧性和情感深度。贝多芬的音乐通常被描述为古典主义音乐,而柴可夫斯基的音乐则常常被描述为浪漫主义音乐。总的来说,贝多芬的音乐更具内省和情感深度,而柴可夫斯基的音乐则更具华丽和精致。
```
```
Q: 写一篇高中青涩的爱情故事,男主是“我”,女主叫小美。我在高一喜欢上了小美。 开始写吧
A: 我和我的女朋友小美是在高一的时候认识的。那是一个阳光明媚的午后,我正在教室里看书,突然听到有人喊我的名字。我转过头,看到小美站在我的面前,微笑着看着我。那一刻,我感觉整个世界都停止了,所有的目光都聚集在我和小美身上。
从那天起,我就开始关注小美。我发现她喜欢看漫画,我就买了很多漫画书送给她;我发现她喜欢听音乐,我就经常带她去听音乐会。我们经常一起去图书馆,一起去操场散步,一起去吃路边摊。
随着我们的关系越来越亲密,我开始意识到自己已经深深地爱上了小美。我每天都会给她写情书,给她送花,给她惊喜。我总是想方设法地逗她开心,让她笑。
但是小美似乎并不像我一样喜欢我。她经常拒绝我的邀请,对我的感情视而不见。我以为她只是害羞,所以更加努力地对她好,更加频繁地出现在她的面前。
但是无论我怎么努力,小美似乎都无法看到我的好。我以为她只是需要时间来接受我的感情,所以更加耐心地等待着。
但是等待并没有带来预期的结果。小美最终向我提出了分手,并拒绝了我的所有请求。我感到震惊和心痛,不知道为什么会这样。
我以为我们的爱情是坚不可摧的,但是小美却说它不够好。我感到失落和受伤,整整一个星期都没有说话。
但是随着时间的推移,我开始意识到小美的拒绝并不是我的失败,而是她的失败。我已经尽我所能去爱她,去关心她,但是她可能并不适合我。
我开始把注意力放在其他事情上,比如学习、运动和社交。我开始交新朋友,参加新的活动,甚至开始了一次新的冒险。
当我再次回头看时,我发现自己已经不再像以前那样爱小美了。我已经学会了接受她的拒绝,并继续前进。
我不知道未来会发生什么,但我知道一件事:我已经准备好迎接生活,无论它给我带来什么。
```
```
Q: 从零学习编程,请给我一个三个月的学习计划
A: 当然,这里有一个三个月的编程学习计划:
1. 从学习编程的基础知识开始,比如变量和循环。您可以通过阅读在线教程和书籍来完成此操作。
2. 接下来,学习编程的基本语法。这将帮助您编写代码并让其运行。
3. 一旦您对编程的基本语法有了很好的理解,开始学习编程的基本概念,比如条件语句和方法。
4. 接下来,学习编程中使用的不同编程语言,比如Python或Java。
5. 最后,通过完成小型项目来应用所学知识。这将帮助您将所学应用到实际问题中。
6. 定期练习,并尝试不同的编程语言和技术。
7. 不要害怕寻求帮助或向他人寻求反馈。
8. 耐心地尝试,不要害怕犯错。
9. 定期复习和练习,以巩固您的知识。
10. 保持对新技术和编程语言的最新趋势。
记住,学习编程是一个过程,需要时间和练习。坚持不懈,保持好奇心,您将成为一名熟练的编程人员。
```
```
Q: 实现一个Python函数以使用动态编程查找两个输入字符串的最长公共子序列
A: 以下是查找两个输入字符串的最长公共子序列的最简Python函数:
def longest_common_subsets(str1, str2):
m, n = len(str1), len(str2)
i, j = 0, 0
while i < m and j < n:
while str1[i] == str2[j]:
i += 1
j += 1
if i < m:
j += 1
else:
break
return j - i
该函数的工作原理是将两个输入字符串的长度 `m` 和 `n` 作为其变量 `i` 和 `j` 的计算代价来初始化。然后,循环开始从 `i` 和 `j` 两个索引开始。
两个字符串在循环过程中一直被比较,直到 `str1` 字符串中的某个字符不在 `str2` 字符串中。在这种情况下,循环终止,并执行上述操作,从 `i` 更新为输入字符串中较长字符串的索引(上步运行中较短字符串的索引)。
然后,程序检查当前 `i` 索引是否大于 `m`,如果是,则进行动态编程(循环将继续进行`j`次更新,以便使用最长公共子序列。
最后,函数返回`j`-`i`,这给出了输入字符串的最长公共子序列的长度,其中长序列长度`j`减去第一个可以访问的最长公共子序列的长度索引`i`。此值始终大于两个输入字符串的长度总和。
```