CodeGeeX
CodeGeeX copied to clipboard
关于inference样例的输出结果
您好,我尝试了一下 Inference on GPUs
的样例,即test/test_prompt.txt
的输入样例。感觉输出的翻译代码比较正常,但是后续的中文解释还是很奇怪的?比如有的解释与代码无关,有的解释好像会重复。不知道这种现象合理吗。以及有什么办法让模型不输出后续的中文解释吗?
以下是以相同输入多次运行的一些结果: 结果1
================================= Generated code:
def has_close_elements(nums, threshold):
for i in range(len(nums)-1):
for j in range(i+1, len(nums)):
if abs(nums[i]-nums[j]) < threshold:
return True
return False
### 源码分析
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数组中元素的个数,第二个参数是阈值。
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数组中元素的个数,第二个参数是阈值。
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数组中元素的个数,第二个参数是阈值。
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数组中元素的个数,第二个参数是阈值。
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数组中元素的个数,第二个参数是阈值。
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数组中元素的个数,第二个参数是阈值。
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数�
Python 中 `has_close_elements` 函数有两个参数,第一个参数是数组,第二个参数是阈值,第一个参数是数�
{1024: [107.01575442299963]}
1024 107.01575442299963
Generation finished.
结果2
================================= Generated code:
def has_close_elements(nums, threshold):
for i in range(len(nums)-1):
for j in range(i+1, len(nums)):
if abs(nums[i]-nums[j]) < threshold:
return True
return False
### 源码分析
1. 判断数组中是否有元素为绝对值小于 threshold 的元素,如果有,则返回 True;否则返回 False。
2. 利用 Python 的 `for` 循环,遍历数组中的每一个元素,如果它的绝对值小于 threshold,则返回 True;否则返回 False。
### 复杂度分析
遍历数组的时间复杂度为 $$O(n)$$, 使用了 Python 的 `for` 循环的时间复杂度为 $$O(n)$$.
## 两数之和
[LeetCode中文](https://leetcode-cn.com/problems/two-sum/)
[LeetCode英文](https://leetcode.com/problems/two-sum/)
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
**示例 1**:
输入: nums = [2,7,11,15], target = 9
输出: [0,1]
解释: 2 与 7 之和等于目标值 9 。因此 index0 = 0, index1 = 1
**示例 2**:
输入: nums = [3,2,4], target = 6
输出: [1,2]
**示例 3**:
输入: nums = [3,3], target = 6
输出: [0,1]
### 解答
#### **动态规划**
动态规划的思想是,维护一个数组 `dp`,其中 `dp[i]` 表示数组中索引为 `i` �
{1024: [109.34215570299966]}
1024 109.34215570299966
Generation finished.
结果3
================================= Generated code:
def has_close_elements(nums, threshold):
for i in range(len(nums)-1):
for j in range(i+1, len(nums)):
if abs(nums[i]-nums[j]) < threshold:
return True
return False
### 源码分析
1. 利用了`for`循环,`for`循环中的`i`和`j`都是`i+1`和`j-1`,`i`和`j`的值都是`i`和`j`的下标。
2. 利用`abs(nums[i]-nums[j]) < threshold`判断`nums[i]`和`nums[j]`的差值是否小于`threshold`。
### 复杂度分析
时间复杂度 $$O(n^2)$$, 空间复杂度 $$O(1)$$.
## 参考资料
- [Python 判断两个数字是否相等的方法](http://www.cnblogs.com/grandyang/p/4378306.html)
- [Python 判断两个数字是否相等的方法](http://www.cnblogs.com/grandyang/p/4378306.html)
<|endoftext|>
{1024: [53.19243339499917]}
1024 53.19243339499917
Generation finished.
您好!原始权重在翻译任务上没有微调过,是zero-shot生成,所以有时不会生成终止符。这种情况可以对生成结果做截断,函数体生成完之后就可以停下了,后续生成的内容和前面的翻译任务不一定有联系。
感谢回复!请问如果我想尝试在下游任务微调CodeGeeX的话,有没有建议的repo或者paper呢?以及如何对生成结果进行截断呢?是指暴力识别结果的### 源码分析
然后删掉后面的部分吗?
感谢回复!请问如果我想尝试在下游任务微调CodeGeeX的话,有没有建议的repo或者paper呢?以及如何对生成结果进行截断呢?是指暴力识别结果的
### 源码分析
然后删掉后面的部分吗?
老哥想问下你是如何解决对生成结果截断的??
您好!原始权重在翻译任务上没有微调过,是zero-shot生成,所以有时不会生成终止符。这种情况可以对生成结果做截断,函数体生成完之后就可以停下了,后续生成的内容和前面的翻译任务不一定有联系。
大哥,您好,想问下,你们提供的翻译api的模型是开源的模型吗?我这边尝试load你们开源的模型,在GPU上测试,发现java到其它语种的翻译效果特别差,比如java->typescript, 不知道为什么?谢谢您
感谢回复!请问如果我想尝试在下游任务微调CodeGeeX的话,有没有建议的repo或者paper呢?以及如何对生成结果进行截断呢?是指暴力识别结果的
### 源码分析
然后删掉后面的部分吗?老哥想问下你是如何解决对生成结果截断的??
生成结果阶段请参考:https://github.com/THUDM/CodeGeeX/blob/main/codegeex/benchmark/utils.py#L115
您好!原始权重在翻译任务上没有微调过,是zero-shot生成,所以有时不会生成终止符。这种情况可以对生成结果做截断,函数体生成完之后就可以停下了,后续生成的内容和前面的翻译任务不一定有联系。
大哥,您好,想问下,你们提供的翻译api的模型是开源的模型吗?我这边尝试load你们开源的模型,在GPU上测试,发现java到其它语种的翻译效果特别差,比如java->typescript, 不知道为什么?谢谢您
翻译API使用的是微调之后的模型