--- license: apache-2.0 widget: - text: "<|endoftext|>\ndef load_excel(path):\n return pd.read_excel(path)\n# docstring\n\"\"\"" --- ## Basic info model based [Salesforce/codegen-350M-mono](https://huggingface.co/Salesforce/codegen-350M-mono) fine-tuned with data [codeparrot/github-code-clean](https://huggingface.co/datasets/codeparrot/github-code-clean) data filter by python ## Usage ```python from transformers import AutoTokenizer, AutoModelForCausalLM model_type = 'kdf/python-docstring-generation' tokenizer = AutoTokenizer.from_pretrained(model_type) model = AutoModelForCausalLM.from_pretrained(model_type) inputs = tokenizer('''<|endoftext|> def load_excel(path): return pd.read_excel(path) # docstring """''', return_tensors='pt') doc_max_length = 128 generated_ids = model.generate( **inputs, max_length=inputs.input_ids.shape[1] + doc_max_length, do_sample=False, return_dict_in_generate=True, num_return_sequences=1, output_scores=True, pad_token_id=50256, eos_token_id=50256 # <|endoftext|> ) ret = tokenizer.decode(generated_ids.sequences[0], skip_special_tokens=False) print(ret) ``` ## Prompt You could give model a style or a specific language, for example: ```python inputs = tokenizer('''<|endoftext|> def add(a, b): return a + b # docstring """ Calculate numbers add. Args: a: the first number to add b: the second number to add Return: The result of a + b """ <|endoftext|> def load_excel(path): return pd.read_excel(path) # docstring """''', return_tensors='pt') doc_max_length = 128 generated_ids = model.generate( **inputs, max_length=inputs.input_ids.shape[1] + doc_max_length, do_sample=False, return_dict_in_generate=True, num_return_sequences=1, output_scores=True, pad_token_id=50256, eos_token_id=50256 # <|endoftext|> ) ret = tokenizer.decode(generated_ids.sequences[0], skip_special_tokens=False) print(ret) inputs = tokenizer('''<|endoftext|> def add(a, b): return a + b # docstring """ 计算数字相加 Args: a: 第一个加数 b: 第二个加数 Return: 相加的结果 """ <|endoftext|> def load_excel(path): return pd.read_excel(path) # docstring """''', return_tensors='pt') doc_max_length = 128 generated_ids = model.generate( **inputs, max_length=inputs.input_ids.shape[1] + doc_max_length, do_sample=False, return_dict_in_generate=True, num_return_sequences=1, output_scores=True, pad_token_id=50256, eos_token_id=50256 # <|endoftext|> ) ret = tokenizer.decode(generated_ids.sequences[0], skip_special_tokens=False) print(ret) ```