Goals: Add links that are reasonable and good explanations of how stuff works. No hype and no vendor content if possible. Practical first-hand accounts of models in prod eagerly sought.
| from uuid import UUID | |
| import orjson | |
| import pendulum | |
| import rich.console | |
| from websockets.client import connect | |
| from websockets.exceptions import ConnectionClosedError | |
| from prefect.cli import root | |
| from prefect.cli._types import PrefectTyper |
| ## ------------------------------------------------------------------------------------------------ | |
| # Schema published automatically on the website. This allows TOML language | |
| # servers to autocomplete and show documentation for the entries below. | |
| # | |
| # I use the prerelease version as my builds on my machines are often from trunk. | |
| "$schema" = "https://jj-vcs.github.io/jj/prerelease/config-schema.json" | |
| ## ------------------------------------------------------------------------------------------------ | |
| ## ---- Basic settings |
| /* | |
| Usage: you'll want to search for the strings <bucket> and <prefix>, and insert the S3 bucket where your access | |
| logs are being delivered. Use (or delete) <prefix> to filter to a subset of your logs. | |
| */ | |
| /* | |
| These commented out configuration settings you can either run yourself in the REPL and source this file using | |
| `.read parse_s3_access_logs.sql`, or you can uncomment them and supply values for yourself. |
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
| mp=1; size=7B; # to run 7B | |
| mp=8; size=65B; # to run 65B | |
| for seed in $(randint 1000000) | |
| do | |
| export TARGET_FOLDER=~/ml/data/llama/LLaMA | |
| time python3 -m torch.distributed.run --nproc_per_node $mp example.py --ckpt_dir $TARGET_FOLDER/$size --tokenizer_path $TARGET_FOLDER/tokenizer.model --seed $seed --max_seq_len 2048 --max_gen_len 2048 --count 0 | tee -a ${size}_startrek.txt | |
| done |
Recently @dragostis at Google released an experimental vector graphics renderer called Forma.
The renderer has a pretty cool set of goals: portability, performance, simplicity, and size. Graphics and GPU computation models are a topic that I'm pretty interested in learning more about personally, and this project seems like an especially accessible / well-written codebase to learn from.
I'm very happy to see this work! The era of rendering vector graphics in GPU compute shaders is upon us, and I have no doubt it we'll start seeing these in production soon, as there's just such a performance advantage over CPU rendering, and I believe trying to run vector 2D graphics through the GPU rasterization pipeline doesn't quite work.
_This code is simpler than Vello (the new name for piet-gpu), focused on vector path rendering. It's also a strong demo of the power of WebGPU, while also having a performant software-only pipe
Zig aims to be a simple language. It is not easy to define what simple exactly means, but zig is also a low-level programming language that aims for c-compatibility. To reach this goal, it needs good semantics in its type system so that developers have a complete toolbox to manipulate data.
So types in zig are composable, but this can become rapidly overwhelming. See those examples. Are you able to understand them at a glance, as soon as you read them?
*const ?u8
?*const u8
*const [2]u8
ChatGPT appeared like an explosion on all my social media timelines in early December 2022. While I keep up with machine learning as an industry, I wasn't focused so much on this particular corner, and all the screenshots seemed like they came out of nowhere. What was this model? How did the chat prompting work? What was the context of OpenAI doing this work and collecting my prompts for training data?
I decided to do a quick investigation. Here's all the information I've found so far. I'm aggregating and synthesizing it as I go, so it's currently changing pretty frequently.
For a long time I've been really impacted by the ease of use Cassandra and CockroachDB bring to operating a data store at scale. While these systems have very different tradeoffs what they have in common is how easy it is to deploy and operate a cluster. I have experience with them with cluster sizes in the dozens, hundreds, or even thousands of nodes and in comparison to some other clustered technologies they get you far pretty fast. They have sane defaults that provide scale and high availability to people that wouldn't always understand how to achieve it with more complex systems. People can get pretty far before they have to become experts. When you start needing more extreme usage you will need to become an expert of the system just like any other piece of infrastructure. But what I really love about these systems is it makes geo-aware data placement, GDPR concerns potentially simplified and data replication and movement a breeze most of the time.
Several years ago the great [Andy Gross](ht