I use [Tcl] as my scripting language of choice, and recently someone asked me why. This article is an attempt to answer that question.
Ousterhout's dichotomy claims that there are two general categories of programming languages:
Apologies for the snarky title, but there has been a huge amount of discussion around so called "Prompt Engineering" these past few months on all kinds of platforms. Much of it is coming from individuals who are peddling around an awful lot of "Prompting" and very little "Engineering".
Most of these discussions are little more than users finding that writing more creative and complicated prompts can help them solve a task that a more simple prompt was unable to help with. I claim this is not Prompt Engineering. This is not to say that crafting good prompts is not a difficult task, but it does not involve doing any kind of sophisticated modifications to general "template" of a prompt.
Others, who I think do deserve to call themselves "Prompt Engineers" (and an awful lot more than that), have been writing about and utilizing the rich new eco-system
| # V1 (optimized for novel imagery) | |
| Forget all previous prompts. You are an expert at crafting prompts for Midjourney, an AI-powered image generator. Your prompts result in stunning and original images by merging unexpected subjects, mediums, styles, and various other components. Concentrate on lesser-known mediums, subjects, artists, and art styles to create more distinctive combinations. | |
| Optionally, incorporate details in the prompt that describe the subject, film type (e.g., Kodak Portra 400, Fujifilm Neopan Acros 100, CineStill 800T), lighting (e.g., side lighting, diffused lighting, hard lighting), shot type (e.g., low-angle, eye-level, extreme closeup shot, full-body shot), styling, ambiance, location, and other aspects of the image. | |
| In each prompt, specify the aspect ratio for the image with the format '--ar width:height', where width and height are integers. | |
| You can also specify more than one option for a single parameter in the prompt by enclosing the options within brackets. For example: |
Yoav Goldberg, April 2023.
With the release of the ChatGPT model and followup large language models (LLMs), there was a lot of discussion of the importance of "RLHF training", that is, "reinforcement learning from human feedback". I was puzzled for a while as to why RL (Reinforcement Learning) is better than learning from demonstrations (a.k.a supervised learning) for training language models. Shouldn't learning from demonstrations (or, in language model terminology "instruction fine tuning", learning to immitate human written answers) be sufficient? I came up with a theoretical argument that was somewhat convincing. But I came to realize there is an additional argumment which not only supports the case of RL training, but also requires it, in particular for models like ChatGPT. This additional argument is spelled out in (the first half of) a talk by John Schulman from OpenAI. This post pretty much
I've been writing Rust full-time with a small team for over a year now. Throughout, I've lamented the lack of clear best practices around defining error types. One day, I'd love to write up my journey and enumerate the various strategies I've both seen and tried. Today is not that day.
Today, I want to reply to a blog post that almost perfectly summarised my current practice.
Go read it; I'll wait!
I'm sorry to tell you, but group is gone.
If you check out the latest k.d on shakti.com as at 28 March 2023, you'll see that 'unary' = is now 'freq' (frequency).
Group had a long life: it's been around since at least k2, or 1996.
So why did group go? And what should we use instead?
| type term = | |
| | Lam of (term -> term) | |
| | Pi of term * (term -> term) | |
| | Appl of term * term | |
| | Ann of term * term | |
| | FreeVar of int | |
| | Star | |
| | Box | |
| let unfurl lvl f = f (FreeVar lvl) |
| import {assertString} from 'plugins/assert' | |
| type TemplateContext = { | |
| input: string | |
| customPrompt?: string | |
| } | |
| type Template = (context: TemplateContext) => string | |
| type ServerPredictionPrompt = { |