Papers › Offline Reinforcement Learning with Implicit Q-Learning
Offline Reinforcement Learning with Implicit Q-Learning
Ilya Kostrikov, Ashvin Nair, Sergey Levine
Offline reinforcement learning requires reconciling two conflicting aims: learning a policy that improves over the behavior policy that collected the dataset, while at the same time minimizing the deviation from the behavior policy so as to avoid errors due to distributional shift. This trade-off is critical, because most current offline reinforcement learning methods need to query the value of unseen actions during training to improve the policy, and therefore need to either constrain these actions to be in-distribution, or else regularize their values. We propose an offline RL method that never needs to evaluate actions outside of the dataset, but still enables the learned policy to improve substantially over the best behavior in the data through generalization. The main insight in our work is that, instead of evaluating unseen actions from the latest policy, we can approximate the policy improvement step implicitly by treating the state value function as a random variable, with randomness determined by the action (while still integrating over the dynamics to avoid excessive optimism), and then taking a state conditional upper expectile of this random variable to estimate the value of the best actions in that state. This leverages the generalization capacity of the function approximator to estimate the value of the best available action at a given state without ever directly querying a Q-function with this unseen action. Our algorithm alternates between fitting this upper expectile value function and backing it up into a Q-function. Then, we extract the policy via advantage-weighted behavioral cloning. We dub our method implicit Q-learning (IQL). IQL demonstrates the state-of-the-art performance on D4RL, a standard benchmark for offline reinforcement learning. We also demonstrate that IQL achieves strong performance fine-tuning using online interaction after offline initialization.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2110.06169")
Code
Syntology Ran 32 of 58 code samples harvested from 11 repositories linked to this paper; 26 have no recorded run. Of those that ran: 8 ran · our draft was wrong; 24 ran with no contract checked.
By repository: community (archive-listed): 57 samples from 11 repositories, 31 ran; 1 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
17 repositories listed; official and paper-mentioned ones first.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
58 samples harvested; 32 ran; 0 honoured the contract we drafted; 26 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 22 of the 58 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 11 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
9a453c413229c3e8 · report
966c8f4b02ba3120 · report
b6a1eedb944158c8 · report
bc6ec59a73ed3500 · report
f49a5596a23ec01c · report
80a6ad9eabb2130a · report
babedc4feb0bd1bc · report
1a4179d29d5698c1 · report
96a8264069e38c3a · report
8d9ce25604e09aac · report
6310a7198b14e85d · report
c23983ba22a35975 · report
d14cce65ce43e79e · report
ec0dfb8aa1f8f95a · report
27ef9688ee8bc0c2 · report
99526660d7c044e6 · report
73d62bef000c40fa · report
43876c48b7ed9f0e · report
e8ccb12a6101441f · report
7681050968341abc · report
ab256778314dd6eb · report
f90b550029795ff8 · report
03c7a0d62a9a41b5 · report
b2bdeb779182394b · report
dbb570ccd708ff1e · report
f55fa75eaa288304 · report
d65d964e0519b495 · report
cfb2071ad5f20847 · report
162c85e425a085c5 · report
553f6d4d94d916a1 · report
be003e2209473d34 · report
a2e8e5d2a2240f4c · report
7c0883f7901f1f98 · report
8f18a6efeac4cf16 · report
6970e6937dbee5a6 · report
1ea93cbf319bab05 · report
09d15343fe38fa60 · report
93fc887b580bd5ce · report
a369d99da375c4a9 · report
e30a96134d01076a · report
b67b22a168cce1a0 · report
4a012f1a3bd772ba · report
9c4866bb7ea6847e · report
8262bb9a6731a45a · report
008fedc7a27baf05 · report
cb170ee52e2c253f · report
9a868703a6f4ebc5 · report
9aff92bfd00fb101 · report
26547f61628cbc43 · report
046abc4b4ab05935 · report
30afe5f53a0af6db · report
b7d05dedb09fbc7e · report
3f617b1c2021d06a · report
e10139c8cfcc9897 · report
b9421a30c9ec520e · report
ba061d6a7ffd45bf · report
5fbcfd39eca9be93 · report
579d77f78c03773e · report
Tasks
Results from the paper archive 2025-07-28
No leaderboard rows for this paper in the archive.
Methods
Introduced by this paper: IQL
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections