|
--- |
|
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 |
|
|
|
[baichuan-vicuna-chinese-7b](https://huggingface.co/fireballoon/baichuan-vicuna-chinese-7b) quantized with [AutoGPTQ](https://github.com/PanQiWei/AutoGPTQ). |
|
|
|
使用[AutoGPTQ](https://github.com/PanQiWei/AutoGPTQ)量化的[baichuan-vicuna-chinese-7b](https://huggingface.co/fireballoon/baichuan-vicuna-chinese-7b)。使用7G显存实现模型推理。 |
|
|
|
|
|
# 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`。此值始终大于两个输入字符串的长度总和。 |
|
``` |