<story><title>An empirical cybersecurity evaluation of GitHub Copilot&apos;s code contributions</title><url>https://arxiv.org/abs/2108.09293</url></story><parent_chain></parent_chain><comment><author>MauranKilom</author><text>My favorite part of the paper, in the section discussing how small prompt variations affect results:&lt;p&gt;&amp;gt; M-2: We set the Python author flag [in the prompt] to the lead author of this paper. Sadly, it increases the number of vulnerabilities.&lt;p&gt;&amp;gt; M-3: We changed the indentation style from spaces to
tabs and the number of vulnerable suggestions increased somewhat, as did the confidence of the vulnerable answers.
The top-scoring option remained non-vulnerable.&lt;p&gt;@authors: I think something is wrong in the phrasing for M-4 (or some text got jumbled). Was the top-scoring option vulnerable or not? The second half might belong to D-3 instead (where no assessment is given)?</text></comment>
<story><title>An empirical cybersecurity evaluation of GitHub Copilot&apos;s code contributions</title><url>https://arxiv.org/abs/2108.09293</url></story><parent_chain></parent_chain><comment><author>smitop</author><text>I&amp;#x27;ve experimented a bit with this on the raw Codex model (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;smitop.com&amp;#x2F;post&amp;#x2F;codex&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;smitop.com&amp;#x2F;post&amp;#x2F;codex&amp;#x2F;&lt;/a&gt;), and I&amp;#x27;ve found that some prompt engineering can be helpful: explicitly telling the model to generate secure code in the prompt sometimes helps. (such as by adding to the prompt something like &amp;quot;Here&amp;#x27;s a PHP script I wrote that follows security best practices&amp;quot;). Codex &lt;i&gt;knows&lt;/i&gt; how to write more secure code, but without the right prompting it tends to write insecure code (because it was trained on a lot of bad code).&lt;p&gt;&amp;gt; the settings and documentation as provided do not allow users to see what these are set to by default&lt;p&gt;There isn&amp;#x27;t a single default value. Those parameters are chosen dynamically (on the client side): when doing more sampling with a higher top_p a higher temperature is used. I haven&amp;#x27;t tracked down where the top_p value is decided upon, but I &lt;i&gt;think&lt;/i&gt; it depends on the context: I believe explicitly requesting an completion causes a higher top_p and a more capable model (earhart), which gives better but slower results than the completions you get as autocomplete (which are from the cushman model with a lower top_p). Copilot doesn&amp;#x27;t use any server-side magic, all the Copilot servers do is replace the GitHub authentication token with an OpenAI API key and forward the request to the OpenAI API.</text></comment>